Skip to content
Snippets Groups Projects
Commit 4a6698e1 authored by Andrew Rudenets's avatar Andrew Rudenets
Browse files

Начало разработки панели администратора

parent a8905a07
Branches
Tags
No related merge requests found
......@@ -302,3 +302,28 @@ Route::set('tchr:profile', 'teacher/profile(/<action>(/<id>))', array('action' =
'controller' => 'profile',
'action' => 'show'
));
/* --------------- Администрирование ---------------- */
Route::set('admin:log', 'admin/log(/<action>(/<id>))', array('action' => '(user|kohana)', 'id' => '[0-9]+'))
->defaults(array(
'directory' => 'admin',
'controller' => 'log',
'action' => 'all'
));
Route::set('admin:requests', 'admin/requests(/<action>(/<id>))', array('action' => '(errors|remark|restore)', 'id' => '[0-9]+'))
->defaults(array(
'directory' => 'admin',
'controller' => 'request',
'action' => 'all'
));
Route::set('admin:process', 'admin/<controller>(/<action>(/<id>))',
array(
'controller' => '(students|teachers|disciplines|semestr)',
'id' => '[0-9]+'
))
->defaults(array(
'directory' => 'admin',
'action' => 'index'
));
\ No newline at end of file
<?php defined('SYSPATH') or die('No direct script access.');
class Controller_Teacher_Index extends Controller_UserEnvi {
public function action_index()
{
$twig = Twig::factory('teacher/index');
// ???
$twig->User = $this->UserInfo;
$this->response->body($twig);
}
public function action_settings() {
$twig = Twig::factory('settings');
$twig->User = $this->UserInfo;
$this->response->body($twig);
}
}
\ No newline at end of file
{% macro message(type, title, message) %}
<div class="{{ type }}">
<div class="{{ type }}_top">
<div class="{{ type }}_top_title">{{ title }}</div>
</div>
<div class="{{ type }}_content">
{{ message }}
</div>
</div>
{% endmacro %}
{% import 'admin/base' as admin %}
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<title>{% block title %}{% endblock %} | {{ System.Title }}</title>
{{ HTML.style('media/css/admin/base.css')|raw }}
{{ HTML.style('media/css/admin/macro.css')|raw }}
{{ HTML.script('media/js/jquery-1.11.1.min.js')|raw }}
{% block media %}{% endblock %}
</head>
<body>
<div id="wrap">
<div class="header_wrapper">
<div class="header">
<div class="top_logo">
{{ HTML.anchor('/', System.Title, {'title': 'Перейти на главную'})|raw }}
</div>
<div class="top_name_faculty">
Панель администратора
</div>
<div class="top_user">
{{ User.FirstName }} {{ User.LastName }}
{{ HTML.anchor('admin/logout', 'Выход из панели администратора', {'title': 'Вернуться на сайт'})|raw }}
</div>
</div>
</div>
<div class="layout_wrapper">
<div class="layout">
<div class="menu_wrapper">
{% include 'admin/menu.structure' %}
{% include 'admin/menu.process' %}
{% include 'admin/menu.accounts' %}
{% include 'admin/menu.system' %}
</div>
<div class="main">
<div class="main_top">
<div class="main_top_tittle">{% block main_top_title %}Добро пожаловать в панель администратора!{% endblock %}</div>
</div>
<div class="main_content">
{% block main_content %}
{{ admin.message('error', 'Внутренняя ошибка сервера', 'Я - сообщение') }}
{{ admin.message('tips', 'Внутренняя подсказка сервера', 'Я - сообщение') }}
{{ admin.message('warning', 'Внутреннее предупреждение сервера', 'Я - сообщение') }}
{{ admin.message('success', 'Внутренний успех сервера', 'Я - сообщение') }}
{% endblock %}
</div>
</div>
</div>
</div>
<div id="footer_fixBug"></div>
<div class="footer">
<a href='http://vk.com/itlab_mmcs'>IT-лаборатория мехмата ЮФУ &copy; 2014</a>
</div>
</div>
</body>
</html>
<div class="menu">
<div class="menu_top">
<div class="menu_top_title">Учетные записи</div>
</div>
<div class="menu_content">
<ul>
{{ HTML.anchor('admin/users', '<li>Управление пользователями</li>')|raw }}
{{ HTML.anchor('admin/requests/remark', '<li>Запросы на исправление <b>(1)</b></li>')|raw }}
{{ HTML.anchor('admin/requests/restore', '<li>Восстановление доступа <b>(1)</b></li>')|raw }}
</ul>
</div>
</div>
\ No newline at end of file
<div class="menu">
<div class="menu_top">
<div class="menu_top_title">Учебный процесс</div>
</div>
<div class="menu_content">
<ul>
{{ HTML.anchor('admin/semester', '<li>Управление семестром</li>')|raw }}
{{ HTML.anchor('admin/disciplines', '<li>Управление дисциплинами</li>')|raw }}
{{ HTML.anchor('admin/teachers', '<li>Управление преподавателями</li>')|raw }}
{{ HTML.anchor('admin/students', '<li>Управление студентами</li>')|raw }}
</ul>
</div>
</div>
\ No newline at end of file
<div class="menu">
<div class="menu_top">
<div class="menu_top_title">Структура ЮФУ</div>
</div>
<div class="menu_content">
<ul>
{{ HTML.anchor('admin/structure', '<li>Подразделения ЮФУ</li>')|raw }}
{{ HTML.anchor('admin/specializations', '<li>Направления подготовки</li>')|raw }}
</ul>
</div>
</div>
\ No newline at end of file
<div class="menu">
<div class="menu_top">
<div class="menu_top_title">Система</div>
</div>
<div class="menu_content">
<ul>
{{ HTML.anchor('admin/log/user', '<li>История действий</li>')|raw }}
{{ HTML.anchor('admin/log/kohana', '<li>Log-файлы Kohana</li>')|raw }}
{{ HTML.anchor('admin/requests/errors', '<li>Сообщения об ошибках <b>(100500)</b></li>')|raw }}
{{ HTML.anchor('admin/stats', '<li>Статистика использования</li>')|raw }}
{{ HTML.anchor('admin/sysinfo', '<li>Информация о системе</li>')|raw }}
</ul>
</div>
</div>
\ No newline at end of file
*{
font-family: Arial, Tahoma, Lucida Grande, Sans-Serif, Lucida Sans;;
}
body {
padding: 0;
margin: 0;
background-color: #f1f1f1;
min-width: 1150px;
}
div {
height: auto;
overflow: hidden
}
/*-----------------------------------HEAD-------------------------------------------------*/
.header_wrapper {
background-color: #ffffff;
width: 100%;
box-shadow: 0px 0px 12px #ccc;
-webkit-box-shadow: 0px 0px 12px #ccc;
-moz-box-shadow: 0px 0px 12px #ccc;
}
.header {
padding: 10px 20px;
}
.top_logo {
display: inline;
float: left;
margin-right: 30px;
font-size: 11pt;
color: #757575;
}
.top_name_faculty {
display: inline;
float: left;
font-size: 11pt;
color: #757575;
}
.top_user {
display: inline;
float: right;
text-align: right;
font-size: 10pt;
color: #0183ce;
}
/*------------------------------------------------------------------------------------*/
/*------------------------------------MAIN--------------------------------------------*/
.layout_wrapper
{
margin: 35px auto;
width: 1115px;
}
.layout
{
margin: 0 auto;
}
.menu_wrapper
{
vertical-align: top;
display: inline-block;
margin-right: 30px;
}
/*------------------------------------MENU--------------------------------------------*/
.menu
{
margin-bottom: 30px;
width: 230px;
border-radius: 5px;
background-color: #ffffff;
box-shadow: 0 0 0 1px #ddd,0 3px 4px -3px #ddd;
}
.menu_top {
display: inline;
position: absolute;
margin: -15px 0px 0px -5px;
padding: 5px 50px 5px 20px;
width: 150px;
background-color: #2bbd19;
}
.menu_top_title {
font-size: 11pt;
color: #ffffff;
}
.menu_content {
width: 100%;
padding-top: 20px;
}
.menu a
{
color: #113c32;
font-size: 10pt;
text-decoration: none;
}
.menu ul, .menu ul li
{
margin: 0;
padding: 0;
list-style: none;
}
.menu ul
{
margin: 5px 0;
}
.menu ul li
{
padding: 5px;
text-align: center;
}
.menu ul li:hover
{
background-color: #eeeeee;
text-align: center;
}
/*------------------------------------MAIN--------------------------------------------*/
.main {
display: inline-block;
width: 850px;
border-radius: 5px;
background-color: #ffffff;
box-shadow: 0 0 0 1px #ddd,0 3px 4px -3px #ddd;
}
.main_top {
display: inline;
position: absolute;
margin: -15px 0px 0px -5px;
padding: 5px 50px 5px 20px;
min-width: 150px;
background-color: #3399CC;
}
.main_top_tittle {
font-size: 15pt;
color: #ffffff;
}
.main_content {
width: 100%;
padding-top: 25px;
padding-bottom: 20px;
font-size: 12pt;
}
/*------------------------------------------------------------------------------------*/
/*-------------------------------------FOOTER-----------------------------------------*/
.footer {
box-shadow: 0 0 0 1px #ddd,0 3px 4px -3px #ddd;
border-top: 1px solid #ccc;
background-color: #ffffff;
text-align: center;
height: 50px;
width: 100%;
}
/*--------------------------FUCKING MAGIC!-----------------------------*/
#wrap {
position: relative;
height: 100%;
width: 100%;
}
html>body #wrap
{
height: auto;
min-height: 100%;
}
html,body
{
height: 100%;
padding:0;
margin:0;
}
#footer_fixBug {
height: 30px;
}
.footer
{
box-shadow: 0 0 0 1px #ddd,0 3px 4px -3px #ddd;
border-top: 1px solid #ccc;
background-color: #eeeeee;
text-align: center;
font-size: 11px;
text-decoration: none;
color: #757575;
height: 30px;
position: absolute;
margin: 0px;
padding: 10px;
left: 0;
bottom: 0;
width: 100%;
}
/*------------------------------------------------------------------------------------*/
/*------------------------------ WARNING -------------------------------------*/
.warning
{
border-radius: 5px;
background-color: #ffffff;
border: 1px solid #ffb100;
margin: 15px 10px;
}
.warning_top {
display: inline;
position: absolute;
margin: -15px 0px 0px 10px;
padding: 5px;
background-color: #fff;
}
.warning_top_title {
font-size: 11pt;
color: #d36000;
}
.warning_content {
width: 100%;
font-size: 10pt;
padding: 15px;
padding-top: 20px;
}
/*------------------------------- ERROR --------------------------------------*/
.error
{
border-radius: 5px;
background-color: #ffffff;
border: 1px solid #ff3d00;
margin: 15px 10px;
}
.error_top {
display: inline;
position: absolute;
margin: -15px 0px 0px 10px;
padding: 5px;
background-color: #fff;
}
.error_top_title {
font-size: 11pt;
color: #ff0700;
}
.error_content {
width: 100%;
font-size: 10pt;
padding: 15px;
padding-top: 20px;
}
/*------------------------------- SUCCESS ------------------------------------*/
.success
{
border-radius: 5px;
background-color: #ffffff;
border: 1px solid #009900;
margin: 15px 10px;
}
.success_top {
display: inline;
position: absolute;
margin: -15px 0px 0px 10px;
padding: 5px;
background-color: #fff;
}
.success_top_title {
font-size: 11pt;
color: #009900;
}
.success_content {
width: 100%;
font-size: 10pt;
padding: 15px;
padding-top: 20px;
}
/*------------------------------ TIPS ----------------------------------------*/
.tips
{
border-radius: 5px;
background-color: #ffffff;
border: 1px solid #0072c2;
margin: 15px 10px;
}
.tips_top {
display: inline;
position: absolute;
margin: -15px 0px 0px 10px;
padding: 5px;
background-color: #fff;
}
.tips_top_title {
color: #0072c2;
font-size: 11pt;
}
.tips_content {
width: 100%;
font-size: 10pt;
padding: 15px;
padding-top: 20px;
}
\ No newline at end of file
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment