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

Панель администратора - начало работы над разделом студента + добавление иконок к action

parent 7a7746f9
Branches
Tags
No related merge requests found
......@@ -4,10 +4,22 @@ class Controller_Admin_Students extends Controller_UserEnvi {
public function action_index()
{
// LOGIC
$model = new Model_Admin_Teachers;
$faculties = $model->getFaculties();
$facultiesHandled = array(); $i = 0;
foreach($faculties as $row)
{
$i++;
$facultiesHandled[$i]['ID'] = $row['FacultyID'];
$facultiesHandled[$i]['Name'] = $row['FacultyName'];
$facultiesHandled[$i]['Abbr'] = $row['FacultyAbbr'];
}
// VIEW
$twig = Twig::factory('admin/students/index');
$twig->Faculties = $facultiesHandled;
$twig->User = $this->UserInfo;
$this->response->body($twig);
$this->response->body($twig);
}
public function action_add()
......
<?php defined('SYSPATH') or die('No direct script access.');
class Model_Admin_Students extends Model
{
public function getFaculties()
{
$sql = "CALL `GetFaculties`(); ";
return DB::query(Database::SELECT, $sql)->execute();
}
public function getStudyGroups($gradeNum, $facultyID)
{
$sql = "CALL `GetStudyGroups`('$gradeNum', '$facultyID'); ";
return DB::query(Database::SELECT, $sql)->execute();
}
}
\ No newline at end of file
......@@ -9,9 +9,12 @@
</div>
{% endmacro %}
{% macro action(URL, title, message) %}
{% macro action(URL, image, title, message, actionID = '') %}
<a href="{{ URL }}">
<div class="action">
<div class="action_image">
<img src="{{ image }}" />
</div>
<div class="action_content">
<div class="action_title">
{{ title }}
......@@ -39,14 +42,14 @@
<div class="header_wrapper">
<div class="header">
<div class="top_logo">
{{ HTML.anchor('/', System.Title, {'title': 'Перейти на главную'})|raw }}
{{ HTML.anchor('/', System.Title~' '~System.Version, {'title': 'Вернуться на сайт'})|raw }}
</div>
<div class="top_name_faculty">
{{ HTML.anchor('/admin', System.Title, {'title': 'Перейти на главную'})|raw }}
{{ HTML.anchor('/admin', 'Панель администратора', {'title': 'Перейти на главную'})|raw }}
</div>
<div class="top_user">
{{ User.First }} {{ User.Last }} |
{{ HTML.anchor('admin/logout', 'Выход из панели администратора', {'title': 'Вернуться на сайт'})|raw }}
{{ HTML.anchor('sign/out', 'Выход', {'title': 'Выход из аккаунта'})|raw }}
</div>
</div>
</div>
......
{% extends "admin/base" %}
{% block media %}
{{ HTML.style('media/css/admin/searchBox.css')|raw }}
{{ HTML.script('media/js/admin/students/index.js')|raw }}
{% endblock %}
{% block title %}Студенты{% endblock %}
{% block main_top_title %}Управление студентами{% endblock %}
{% block main_content %}
<div class='search'>
<div class='search_box'>
<div class='search_inputs'>
<div class='search_mainInput'>
<input type='text' placeholder="Поиск по фамилии, имени, отчеству">
</div>
<div class='search_inputFilters'>
<div class='filterLarge'>
<select id="facultySelect">
<option value="0">--- Подразделение ЮФУ ---</option>
{% for row in Faculties %}
<option value="{{ row.ID }}">{{ row.Name }} ({{ row.Abbr }})</option>
{% endfor %}
</select>
</div>
<div class='filter'>
<select id="gradeSelect">
<option value="0">--- Курс ---</option>
<optgroup label="Бакалавриат">
<option value="1">1 курс</option>
<option value="2">2 курс</option>
<option value="3">3 курс</option>
<option value="4">4 курс</option>
</optgroup>
<optgroup label="Магистратура">
<option value="1">1 курс</option>
<option value="2">2 курс</option>
</optgroup>
</select>
</div>
<div class='filter'>
<select id="studyGroupSelect">
<option value="0">--- Учебная группа ---</option>
</select>
</div>
</div>
</div>
</div>
<div class='search_results'>
<div class='search_results_title' id="search_title">
</div>
<div class='results' id='search_results'>
<div class='search_results_title'>Для отображения списка студентов <b>выберите</b> один из пунктов или <b>введите</b> запрос в поисковое поле.</div>
</div>
</div>
</div>
<div class="action_bar">
{{ admin.action(URL.site('admin/students/add'), URL.site('media/img/addUser.png'), 'Добавить нового студента', 'Добавить в систему '~System.Title~' нового студента. '~
'Для него будет создан аккаунт и сгенерирован код активации.') }}
{{ admin.action(URL.site('admin/students/upload'), URL.site('media/img/uploadList.png'), 'Загрузить список студентов',
'Загрузить в систему '~System.Title~' список студентов из заранее подготовленных csv-файлов. '~
'Для каждого студента, загруженного данной утилитой, будет создан аккаунт и сгенерирован код активации.') }}
</div>
{% endblock %}
\ No newline at end of file
......@@ -39,13 +39,15 @@
</div>
<div class='results' id='search_results'>
<div class='search_results_title'>Для отображения списка преподавателей <b>выберите</b> один из пунктов или <b>введите</b> запрос в поисковое поле.</div>
</div>
</div>
</div>
{{ admin.action(URL.site('admin/teachers/upload'), 'Загрузить список преподавателей',
<div class="action_bar">
{{ admin.action(URL.site('admin/teachers/add'), URL.site('media/img/addUser.png'), 'Добавить нового преподавателя', 'Добавить в систему '~System.Title~' нового преподавателя. '~
'Для него будет создан аккаунт и сгенерирован код активации.') }}
{{ admin.action(URL.site('admin/teachers/upload'), URL.site('media/img/uploadList.png'), 'Загрузить список преподавателей',
'Загрузить в систему '~System.Title~' список преподавателей из заранее подготовленных csv-файлов. '~
'Для каждого преподавателя, загруженного данной утилитой, будет создан аккаунт и сгенерирован код активации.') }}
{{ admin.action(URL.site('admin/teachers/add'), 'Добавить нового преподавателя', 'Добавить в систему '~System.Title~' нового преподавателя. '~
'Для него будет создан аккаунт и сгенерирован код активации.') }}
</div>
{% endblock %}
\ No newline at end of file
......@@ -187,6 +187,11 @@ a:hover {
/*-------------------------------------ACTION-----------------------------------------*/
.action_bar
{
margin-top: 10px;
}
.action
{
background-color: #ffffff;
......@@ -200,11 +205,19 @@ a:hover {
.action:hover
{
background-color: #f2f2f2;
text-decoration: none;
}
.action_content
.action > div
{
display: inline-block;
vertical-align: middle;
}
.action_content
{
width: 90%;
margin-left: 5px;
}
.action_title
......@@ -220,16 +233,8 @@ a:hover {
color: #000;
}
.action_arrow
{
display: inline-block;
}
/*-------------------------------------FOOTER-----------------------------------------*/
.footer {
box-shadow: 0 0 0 1px #ddd,0 3px 4px -3px #ddd;
border-top: 1px solid #ccc;
......@@ -237,9 +242,7 @@ a:hover {
text-align: center;
height: 50px;
width: 100%;
}
}
/*--------------------------FUCKING MAGIC!-----------------------------*/
#wrap {
......
......@@ -26,15 +26,19 @@
.search .search_box .search_inputFilters .filter select
{
padding: 5px;
width: 200px;
width: 202.5px;
}
.search .search_box .search_inputFilters .filterLarge select
{
padding: 5px;
width: 400px;
width: 409.5px;
}
.search_results_title
{
padding: 0 10px;
}
.search_item
{
padding: 10px;
......
~dev_rating/media/img/addUser.png

992 B

~dev_rating/media/img/uploadList.png

617 B

$(function()
{
$("#facultySelect [value='0']").attr('selected', 'selected');
$('#departmentSelect').attr('disabled', 'disabled');
$("#departmentSelect [value='0']").attr('selected', 'selected');
$("#jobPositionSelect [value='0']").attr('selected', 'selected');
// Выбор факультета
$('#facultySelect').change(function(){
if (($('#facultySelect option:selected').val()!= '0')) {
$("#departmentSelect").html('<option value="0">--- Кафедра ---</option>');
$('#departmentSelect').attr('disabled', 'disabled');
$.post('/~dev_rating/handler/admTeachers/getDepartmentsList', {'facultyID': $('#facultySelect option:selected').val()}, function(data){
$.each(data, function(i){
$("#departmentSelect").append('<option value="'+data[i].ID+'">'+data[i].Name+'</option>');
});
$("#departmentSelect").removeAttr("disabled");
}, "json");
}
else
{
$('#departmentSelect').attr('disabled', 'disabled');
}
});
$('#inputGroupSubmit').click(function(){
$('#inputGroupSubmit').attr('disabled', 'disabled');
$.post('/~dev_rating/handler/admTeachers/createTeacher',
{
'firstName': $('#firstName').val(),
'secondName': $('#secondName').val(),
'lastName': $('#lastName').val(),
'jobPositionID': $('#jobPositionSelect option:selected').val(),
'departmentID': $('#departmentSelect option:selected').val(),
},
function(data){
$('.inputGroupMessages').html('<ul>');
$.each(data.messages, function(i){
$('.inputGroupMessages').append('<li>' + data.messages[i]);
});
$('.inputGroupMessages').append('</ul>');
$('#inputGroupSubmit').removeAttr('disabled');
}, "json");
});
});
\ No newline at end of file
$(function()
{
$("#facultySelect [value='0']").attr('selected', 'selected');
$("#gradeSelect [value='0']").attr('selected', 'selected');
$("#studyGroupSelect [value='0']").attr('selected', 'selected');
$('#gradeSelect').attr('disabled', 'disabled');
$('#studyGroupSelect').attr('disabled', 'disabled');
// Выбор факультета
$('#facultySelect').change(function(){
if (($('#facultySelect option:selected').val()!= '0')) {
$("#search_results").html('');
$('#gradeSelect').removeAttr('disabled');
$('#studyGroupSelect').attr('disabled', 'disabled');
$("#studyGroupSelect").html('<option value="0">--- Учебная группа ---</option>');
$.post('/~dev_rating/handler/admStudents/getStudentsByFaculty',
{
'facultyID': $('#facultySelect option:selected').val()
},
function(data){
$("#search_results").html(data);
});
}
else
{
$('#gradeSelect').attr('disabled', 'disabled');
}
});
// Выбор кафедры
$('#gradeSelect').change(function(){
$("#search_results").html('');
if (($('#gradeSelect option:selected').val()!= '0')) {
$.post('/~dev_rating/handler/admStudents/getStudyGroups',
{
'facultyID': $('#facultySelect option:selected').val(),
'gradeNum': $('#gradeSelect option:selected').val()
},
function(data){
$.each(data, function(i){
$("#studyGroupSelect").append('<option value="'+data[i].ID+'">'+data[i].Name+'</option>');
});
$("#studyGroupSelect").removeAttr("disabled");
}, "json");
}
});
// Выбор группы
$('#studyGroupSelect').change(function(){
$("#search_results").html('');
if (($('#studyGroupSelect option:selected').val()!= '0')) {
$.post('/~dev_rating/handler/admStudents/getStudentsByStudyGroup',
{
'studyGroupID': $('#studyGroupSelect option:selected').val()
},
function(data){
$("#search_results").html(data);
});
}
});
});
\ 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