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