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

Office interface has been improved

parent 006b6296
Branches
Tags
No related merge requests found
Showing
with 179 additions and 187 deletions
$(function()
{
var jFaculty = $('#facultySelect');
jFaculty.change(function() {
var item = jFaculty.find('option:selected').val();
$('#SecondStep').css('display', Number(item) ? 'block' : 'none');
});
});
\ No newline at end of file
...@@ -82,6 +82,18 @@ body { ...@@ -82,6 +82,18 @@ body {
height: 100%; height: 100%;
} }
pre
{
font-family: "Courier New", Courier, monospace;
font-size: 0.85em;
padding: 5px;
margin: 0;
word-wrap: normal;
white-space: normal;
background: @ColorBaseGrey;
border: 1px solid @ColorLightGrey;
}
.page { .page {
width: 100%; width: 100%;
} }
...@@ -89,6 +101,7 @@ body { ...@@ -89,6 +101,7 @@ body {
p { p {
text-align: justify; text-align: justify;
margin-bottom: 10px; margin-bottom: 10px;
font-size: 0.9em;
} }
b { b {
......
...@@ -51,7 +51,7 @@ ...@@ -51,7 +51,7 @@
} }
} }
input[type=button].defaultForm, button.defaultForm { input[type=button].defaultForm, button.defaultForm, input[type=submit].defaultForm {
display: inline-block; display: inline-block;
cursor: pointer; cursor: pointer;
padding: 7px 0; padding: 7px 0;
......
@import (reference) "../common.less"; @import (reference) "../common.less";
.tabsWrapper { .tabsWrapper {
margin: 5px auto; margin: 5px auto;
width: 95%; width: 95%;
//margin: 5px 25px 10px 25px;
.tabs { .tabs {
display: table; display: table;
width: 100%; width: 100%;
margin: 0; margin: 0;
padding: 0; padding: 0;
.tab { .tab {
display: table-cell; display: table-cell;
width: 20%; width: 20%;
float: none; float: none;
text-align: center; text-align: center;
border-left: 3px solid #fff; border-left: 3px solid #fff;
a { a {
display: block; display: block;
padding-top: 5px; padding-top: 7px;
padding-bottom: 5px; padding-bottom: 7px;
background: @ColorBaseGrey; background: @ColorBaseGrey;
font-size: 13px; font-size: 13px;
color: @ColorLightBlue; color: @ColorLightBlue;
} }
a:hover { a:hover {
background-color: @ColorLightenBlue; background-color: @ColorLightenBlue;
color: @ColorBaseGrey; color: @ColorBaseGrey;
text-decoration: none; text-decoration: none;
} }
a.inactive a.inactive {
{ background-color: @ColorBaseGrey;
background-color: @ColorBaseGrey; color: @ColorDarkGrey;
color: @ColorDarkGrey; }
} a.inactive:hover {
a.inactive:hover background-color: @ColorBaseGrey;
{ color: @ColorDarkGrey;
background-color: @ColorBaseGrey; cursor: help;
color: @ColorDarkGrey; }
cursor: help; a.active {
} background-color: @ColorLightenBlue;
a.active { color: @ColorBaseGrey;
background-color: @ColorLightenBlue; text-decoration: none;
color: @ColorBaseGrey; }
text-decoration: none; }
} }
.tab:first-child {
margin-left: 0;
}
&.noTopMargin {
margin: 0 auto;
margin-bottom: 10px;
} }
}
.tab:first-child {
margin-left: 0px;
}
} }
\ No newline at end of file
...@@ -3,6 +3,7 @@ ...@@ -3,6 +3,7 @@
{% block media %} {# head -> css, js #} {% block media %} {# head -> css, js #}
{{ HTML.style('static/css/sidepanel.css')|raw }} {{ HTML.style('static/css/sidepanel.css')|raw }}
{{ HTML.style('static/css/dean_office/dean.css')|raw }} {{ HTML.style('static/css/dean_office/dean.css')|raw }}
{{ HTML.style('static/css/common/tabs.css')|raw }}
<script> <script>
{# todo: remove, http://jsfiddle.net/uojpa23a/1/ #} {# todo: remove, http://jsfiddle.net/uojpa23a/1/ #}
$(function () { $(function () {
...@@ -40,6 +41,7 @@ ...@@ -40,6 +41,7 @@
{% endfor %} {% endfor %}
</div> </div>
<div class="main_side_content"> <div class="main_side_content">
{% block office_tabs %}{% endblock %}
{% block office_content %}{% endblock %} {% block office_content %}{% endblock %}
</div> </div>
</div> </div>
......
{% extends "office/base" %}
{% block main_top_title %}Студенты{% endblock %}
{% block office_tabs %}
<div class="tabsWrapper noTopMargin">
<div class="tabs">
<div class="tab">{{ HTML.anchor('office/students/search', 'Поиск')|raw }}</div>
<div class="tab">{{ HTML.anchor('office/students/upload', 'Добавление')|raw }}</div>
<div class="tab">{{ HTML.anchor('office/students/transfer', 'Перевод')|raw }}</div>
</div>
</div>
{% endblock %}
\ No newline at end of file
{% extends "office/base" %} {% extends "office/students" %}
{% block title %}Студенты{% endblock %} {% block title %}Студенты{% endblock %}
...@@ -7,7 +7,6 @@ ...@@ -7,7 +7,6 @@
{{ HTML.script('static/js/admin/students/add.js')|raw }} {{ HTML.script('static/js/admin/students/add.js')|raw }}
{% endblock %} {% endblock %}
{% block main_top_title %}Добавление студента{% endblock %} {% block main_top_title %}Добавление студента{% endblock %}
{% block office_content %} {% block office_content %}
...@@ -22,8 +21,8 @@ ...@@ -22,8 +21,8 @@
<div class="error_text">Какая-то ошибка :(</div> <div class="error_text">Какая-то ошибка :(</div>
</div> </div>
</div> </div>
<div class="inputGroup"> <div class="inputGroup">
<div class="inputGroup_title"> <div class="inputGroup_title">
Персональная информация Персональная информация
...@@ -34,21 +33,21 @@ ...@@ -34,21 +33,21 @@
<input type="text" id="secondName" placeholder="Отчество"> <input type="text" id="secondName" placeholder="Отчество">
</div> </div>
</div> </div>
<div class="inputGroup"> <div class="inputGroup">
<div class="inputGroup_title"> <div class="inputGroup_title">
Выбор учебной группы Выбор учебной группы
</div> </div>
<div class="inputGroup_input"> <div class="inputGroup_input">
<select id="facultySelect"> <select id="facultySelect">
<option value="0">— Подразделение ЮФУ —</option> <option value="0">— Подразделение ЮФУ —</option>
{% for row in Faculties %} {% for row in Faculties %}
<option value="{{ row.ID }}">{{ row.Name }} ({{ row.Abbr }})</option> <option value="{{ row.ID }}">{{ row.Name }} ({{ row.Abbr }})</option>
{% endfor %} {% endfor %}
</select> </select>
<select id="gradeSelect"> <select id="gradeSelect">
<option value="0">— Курс —</option> <option value="0">— Курс —</option>
{% for Title, Degree in Grades %} {% for Title, Degree in Grades %}
...@@ -59,15 +58,15 @@ ...@@ -59,15 +58,15 @@
</optgroup> </optgroup>
{% endfor %} {% endfor %}
</select> </select>
<select id="groupSelect"> <select id="groupSelect">
<option value="0">— Учебная группа —</option> <option value="0">— Учебная группа —</option>
</select> </select>
</div> </div>
</div> </div>
<div class="inputGroup"> <div class="inputGroup">
<div class="inputGroup_submit"> <div class="inputGroup_submit">
<button id="inputGroupSubmit">Добавить студента</button> <button id="inputGroupSubmit">Добавить студента</button>
......
{% extends "office/base" %} {% extends "office/students" %}
{% block title %}Профиль студента{% endblock %} {% block title %}Профиль студента{% endblock %}
...@@ -10,7 +10,6 @@ ...@@ -10,7 +10,6 @@
</script> </script>
{% endblock %} {% endblock %}
{% block main_top_title %}Профиль студента{% endblock %} {% block main_top_title %}Профиль студента{% endblock %}
{% block office_content %} {% block office_content %}
...@@ -19,22 +18,22 @@ ...@@ -19,22 +18,22 @@
<div class="profile_clearFix"> <div class="profile_clearFix">
<h2>{{ Profile.FirstName }} {{ Profile.SecondName }} {{ Profile.LastName }}</h2> <h2>{{ Profile.FirstName }} {{ Profile.SecondName }} {{ Profile.LastName }}</h2>
</div> </div>
<div class="profile_clearFix"> <div class="profile_clearFix">
<div class="label">Подразделение:</div> <div class="label">Подразделение:</div>
<div class="labeled_info">{{ Profile.FacultyName }}</div> <div class="labeled_info">{{ Profile.FacultyName }}</div>
</div> </div>
<div class="profile_clearFix"> <div class="profile_clearFix">
<div class="label">Направление:</div> <div class="label">Направление:</div>
<div class="labeled_info">{{ Profile.SpecName }}</div> <div class="labeled_info">{{ Profile.SpecName }}</div>
</div> </div>
<div class="profile_clearFix"> <div class="profile_clearFix">
<div class="label">Степень:</div> <div class="label">Степень:</div>
<div class="labeled_info">{{ Rus[Profile.Degree] }}</div> <div class="labeled_info">{{ Rus[Profile.Degree] }}</div>
</div> </div>
<div class="profile_clearFix"> <div class="profile_clearFix">
<div class="label">Курс, группа:</div> <div class="label">Курс, группа:</div>
<div class="itemBlock"> <div class="itemBlock">
...@@ -57,7 +56,7 @@ ...@@ -57,7 +56,7 @@
</div> </div>
</div> </div>
</div> </div>
{# TODO Statuses (see Controller/Office/Students) #} {# TODO Statuses (see Controller/Office/Students) #}
{#<div class="profile_clearFix">#} {#<div class="profile_clearFix">#}
{#<div class="label">Статус:</div>#} {#<div class="label">Статус:</div>#}
...@@ -74,7 +73,7 @@ ...@@ -74,7 +73,7 @@
{#</div>#} {#</div>#}
{#</div>#} {#</div>#}
{% if User.isAdmin %} {% if User.isAdmin %}
<div id="For_Admin"> <div id="For_Admin">
{% if Account.Code %} {% if Account.Code %}
...@@ -83,22 +82,22 @@ ...@@ -83,22 +82,22 @@
<div class="labeled_info">{{ Account.Code|default('Аккаунт активирован') }}</div> <div class="labeled_info">{{ Account.Code|default('Аккаунт активирован') }}</div>
</div> </div>
{% endif %} {% endif %}
<div class="profile_clearFix"> <div class="profile_clearFix">
<div class="label">Логин пользователя:</div> <div class="label">Логин пользователя:</div>
<div class="labeled_info">{{ Account.Login|default('—') }}</div> <div class="labeled_info">{{ Account.Login|default('—') }}</div>
</div> </div>
<div class="profile_clearFix"> <div class="profile_clearFix">
<div class="label">E-Mail:</div> <div class="label">E-Mail:</div>
<div class="labeled_info">{{ Account.EMail|default('—') }}</div> <div class="labeled_info">{{ Account.EMail|default('—') }}</div>
</div> </div>
<div class="profile_clearFix"> <div class="profile_clearFix">
<div class="label">ID:</div> <div class="label">ID:</div>
<div class="labeled_info">{{ Account.ID|default('—') }}</div> <div class="labeled_info">{{ Account.ID|default('—') }}</div>
</div> </div>
<div class="profile_clearFix"> <div class="profile_clearFix">
<div class="label">Роль:</div> <div class="label">Роль:</div>
<div class="labeled_info">{{ Account.Role|default('—') }}</div> <div class="labeled_info">{{ Account.Role|default('—') }}</div>
......
{% extends "office/base" %} {% extends "office/students" %}
{% import 'controls/searchStudent' as search %} {% import 'controls/searchStudent' as search %}
...@@ -6,7 +6,6 @@ ...@@ -6,7 +6,6 @@
{% block office_media %} {% block office_media %}
{{ search.head("URLdir + 'handler/search/GetStudentsByName'") }} {# todo: this is not a good sign #} {{ search.head("URLdir + 'handler/search/GetStudentsByName'") }} {# todo: this is not a good sign #}
{{ HTML.style('static/css/common/tabs.css')|raw }}
{% endblock %} {% endblock %}
{% block _ResultPrototype %} {% block _ResultPrototype %}
...@@ -25,8 +24,6 @@ ...@@ -25,8 +24,6 @@
</div> </div>
{% endblock %} {% endblock %}
{% block main_top_title %}Студенты{% endblock %}
{% block office_content %} {% block office_content %}
{{ search.control(block('_ResultPrototype'), GradesList, User.isAdmin ? Faculties) }} {{ search.control(block('_ResultPrototype'), GradesList, User.isAdmin ? Faculties) }}
{% endblock %} {% endblock %}
{% extends "office/base" %} {% extends "office/students" %}
{% block title %}Студенты{% endblock %} {% block title %}Добавление студентов{% endblock %}
{% block office_media %}
{{ HTML.style('static/css/admin/stepByStep.css')|raw }}
{{ HTML.script('static/js/admin/students/upload.js')|raw }}
{% endblock %}
{% block main_top_title %}Студенты{% endblock %}
{% block main_top_title %}Загрузка списка студентов{% endblock %}
{% block office_content %} {% block office_content %}
<h2 class="defaultForm marginBetween">Пакетная загрузка студентов</h2>
{% if Errors is not empty %} {% if Errors is not empty %}
{% set res %} {% set res %}
{% for item in Errors %} {% for item in Errors %}
...@@ -21,31 +17,21 @@ ...@@ -21,31 +17,21 @@
{{ admin.message(warning, 'Возникли проблемы!', '<ul>' ~ res ~ '</ul>') }} {{ admin.message(warning, 'Возникли проблемы!', '<ul>' ~ res ~ '</ul>') }}
{% endif %} {% endif %}
<p>Инструмент пакетной загрузки студентов предоставляет возможность регистрировать в системе множество студентов.</p>
<p>Файл со списком студентов представляет собой .csv-файл, который должен иметь следующий формат:</p>
<p><pre>ФИО;Курс;Группа;[Бакалавриат, Специалитет, Магистратура];Специальность</pre></p>
<form enctype="multipart/form-data" action="" method="POST"> <form enctype="multipart/form-data" action="" method="POST">
<div class="stepBox" id="FirstStep"> <div class="goodClearFix defaultForm marginBetween">
<div class="step_title"> <select id="facultySelect" name="facultyID" class="defaultForm">
<span class='step_title_count'>Шаг 1:</span> <option value="0" selected="selected">— Выберите подразделение ЮФУ —</option>
<span class='step_title_description'>Выберите подразделение университета</span> {% for row in Faculties %}
</div> <option value="{{ row.ID }}">{{ row.Name }} ({{ row.Abbr }})</option>
<div class="step_body"> {% endfor %}
<select id="facultySelect" name="facultyID"> </select>
<option value="0" selected="selected">— Подразделение ЮФУ —</option>
{% for row in Faculties %}
<option value="{{ row.ID }}">{{ row.Name }} ({{ row.Abbr }})</option>
{% endfor %}
</select>
</div>
</div> </div>
<div class="goodClearFix">
<div class="stepBox" id="SecondStep"> <div class="defaultForm FLeft"><input name="students" class="defaultForm FullWidth" type="file"></div>
<div class="step_title"> <div class="defaultForm FRight"><input type="submit" class="defaultForm GreenButton P2Width noMargin" value="Загрузить"></div>
<span class='step_title_count'>Шаг 2:</span>
<span class='step_title_description'>Выберите файл для загрузки</span>
</div>
<div class="step_body">
<input name="students" type="file">
<input type="submit" value="Send">
</div>
</div> </div>
</form> </form>
{% endblock %} {% endblock %}
{% extends "office/base" %} {% extends "office/base" %}
{% block title %}Предметы{% endblock %} {% block title %}Загрузка предметов{% endblock %}
{% block main_top_title %}Загрузка списка предметов{% endblock %} {% block main_top_title %}Предметы{% endblock %}
{% block office_media %}
{{ HTML.style('static/css/admin/stepByStep.css')|raw }}
{{ HTML.script('static/js/admin/students/upload.js')|raw }}
{% endblock %}
{% block office_content %} {% block office_content %}
<h2 class="defaultForm marginBetween">Пакетная загрузка предметов</h2>
{% if UploadingResult is not empty %} {% if UploadingResult is not empty %}
<p>Обработано: {{ UploadingResult.RecordsCount }}, в том числе с ошибками: {{ UploadingResult.ErrorsCount }}, <p>Обработано: {{ UploadingResult.RecordsCount }}, в том числе с ошибками: {{ UploadingResult.ErrorsCount }},
найдены в базе: {{ UploadingResult.RecordsExistsCount }}.</p> найдены в базе: {{ UploadingResult.RecordsExistsCount }}.</p>
...@@ -25,31 +23,21 @@ ...@@ -25,31 +23,21 @@
{% endif %} {% endif %}
{% endif %} {% endif %}
<p>Инструмент пакетной загрузки предметов предоставляет возможность добавлять в систему множество наименований предметов.</p>
<p>Файл со списком предметов представляет собой .csv-файл, который должен иметь следующий формат:</p>
<p><pre>Название;Аббревиатура</pre></p>
<form enctype="multipart/form-data" action="" method="POST"> <form enctype="multipart/form-data" action="" method="POST">
<div class="stepBox" id="FirstStep"> <div class="goodClearFix defaultForm marginBetween">
<div class="step_title"> <select id="facultySelect" name="facultyID" class="defaultForm">
<span class='step_title_count'>Шаг 1:</span> <option value="0" selected="selected">— Выберите подразделение ЮФУ —</option>
<span class='step_title_description'>Выберите подразделение университета</span> {% for row in Faculties %}
</div> <option value="{{ row.ID }}">{{ row.Name }} ({{ row.Abbr }})</option>
<div class="step_body"> {% endfor %}
<select id="facultySelect" name="facultyID"> </select>
<option value="0" selected="selected">— Подразделение ЮФУ —</option>
{% for row in Faculties %}
<option value="{{ row.ID }}">{{ row.Name }} ({{ row.Abbr }})</option>
{% endfor %}
</select>
</div>
</div> </div>
<div class="goodClearFix">
<div class="stepBox" id="SecondStep"> <div class="defaultForm FLeft"><input name="students" class="defaultForm FullWidth" type="file"></div>
<div class="step_title"> <div class="defaultForm FRight"><input type="submit" class="defaultForm GreenButton P2Width noMargin" value="Загрузить"></div>
<span class='step_title_count'>Шаг 2:</span>
<span class='step_title_description'>Выберите файл для загрузки</span>
</div>
<div class="step_body">
<input name="subjects" type="file">
<input type="submit" value="Send">
</div>
</div> </div>
</form> </form>
{% endblock %} {% endblock %}
{% extends "office/base" %}
{% block main_top_title %}Студенты{% endblock %}
{% block office_tabs %}
<div class="tabsWrapper noTopMargin">
<div class="tabs">
<div class="tab">{{ HTML.anchor('office/teachers/search', 'Поиск')|raw }}</div>
<div class="tab">{{ HTML.anchor('office/teachers/upload', 'Добавление')|raw }}</div>
</div>
</div>
{% endblock %}
\ No newline at end of file
{% extends "office/base" %} {% extends "office/teachers" %}
{% block office_media %} {% block office_media %}
{{ HTML.style('static/css/admin/inputGroup.css')|raw }} {{ HTML.style('static/css/admin/inputGroup.css')|raw }}
...@@ -21,8 +21,8 @@ ...@@ -21,8 +21,8 @@
<input type="text" id="secondName" placeholder="Отчество"> <input type="text" id="secondName" placeholder="Отчество">
</div> </div>
</div> </div>
<div class="inputGroup"> <div class="inputGroup">
<div class="inputGroup_title"> <div class="inputGroup_title">
Выбор места работы Выбор места работы
...@@ -45,8 +45,8 @@ ...@@ -45,8 +45,8 @@
</select> </select>
</div> </div>
</div> </div>
<div class="inputGroup"> <div class="inputGroup">
<div class="inputGroup_submit"> <div class="inputGroup_submit">
<button id="inputGroupSubmit">Добавить преподавателя</button> <button id="inputGroupSubmit">Добавить преподавателя</button>
......
{% extends "office/base" %} {% extends "office/teachers" %}
{% block title %}Профиль преподавателя{% endblock %} {% block title %}Профиль преподавателя{% endblock %}
......
{% extends "office/base" %} {% extends "office/teachers" %}
{% import 'controls/searchTeacher' as search %} {% import 'controls/searchTeacher' as search %}
......
{% extends "office/base" %} {% extends "office/teachers" %}
{% block title %}Преподаватели{% endblock %} {% block title %}Преподаватели{% endblock %}
{% block main_top_title %}Загрузка списка преподавателей{% endblock %} {% block main_top_title %}Преподаватели{% endblock %}
{% block office_media %}
{{ HTML.style('static/css/admin/stepByStep.css')|raw }}
{{ HTML.script('static/js/admin/students/upload.js')|raw }}
{% endblock %}
{% block office_content %} {% block office_content %}
<h2 class="defaultForm marginBetween">Пакетная загрузка преподавателей</h2>
{% if Errors is not empty %} {% if Errors is not empty %}
{% set res %} {% set res %}
{% for item in Errors %} {% for item in Errors %}
...@@ -19,31 +15,25 @@ ...@@ -19,31 +15,25 @@
{{ admin.message(warning, 'Возникли проблемы!', '<ul>' ~ res ~ '</ul>') }} {{ admin.message(warning, 'Возникли проблемы!', '<ul>' ~ res ~ '</ul>') }}
{% endif %} {% endif %}
<div class="dialogTopText">
<p>Инструмент пакетной загрузки преподавателей предоставляет возможность регистрировать в системе множество преподавателей.</p>
<p>Файл со списком преподавателей представляет собой .csv-файл, который должен иметь следующий формат:</p>
<p>
<pre>ФИО;Кафедра</pre>
</p>
</div>
<form enctype="multipart/form-data" action="" method="POST"> <form enctype="multipart/form-data" action="" method="POST">
<div class="stepBox" id="FirstStep"> <div class="goodClearFix defaultForm marginBetween">
<div class="step_title"> <select id="facultySelect" name="facultyID" class="defaultForm">
<span class='step_title_count'>Шаг 1:</span> <option value="0" selected="selected">— Выберите подразделение ЮФУ —</option>
<span class='step_title_description'>Выберите подразделение университета</span> {% for row in Faculties %}
</div> <option value="{{ row.ID }}">{{ row.Name }} ({{ row.Abbr }})</option>
<div class="step_body"> {% endfor %}
<select id="facultySelect" name="facultyID"> </select>
<option value="0" selected="selected">— Подразделение ЮФУ —</option>
{% for row in Faculties %}
<option value="{{ row.ID }}">{{ row.Name }} ({{ row.Abbr }})</option>
{% endfor %}
</select>
</div>
</div> </div>
<div class="goodClearFix">
<div class="stepBox" id="SecondStep"> <div class="defaultForm FLeft"><input name="students" class="defaultForm FullWidth" type="file"></div>
<div class="step_title"> <div class="defaultForm FRight"><input type="submit" class="defaultForm GreenButton P2Width noMargin" value="Загрузить"></div>
<span class='step_title_count'>Шаг 2:</span>
<span class='step_title_description'>Выберите файл для загрузки</span>
</div>
<div class="step_body">
<input name="teachers" type="file">
<input type="submit" value="Send">
</div>
</div> </div>
</form> </form>
{% endblock %} {% endblock %}
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