Skip to content
Snippets Groups Projects
Commit 2a01caec authored by pimka's avatar pimka
Browse files

Рефакторинг: анимация в конструкторе дисциплины

parent cc555d51
Branches
Tags
No related merge requests found
......@@ -165,6 +165,7 @@
}
.moduleList {
padding: 0 4px;
position: relative;
}
.empty { /* Когда нет структуры сообщение */
......@@ -174,6 +175,8 @@
/* Div, в котором модуль и его мероприятия */
.moduleGroup {
padding: 5px 4px 15px 4px;
position: relative;
/*display: none;*/
}
/* Количество баллов (индикатор) */
.rateIndicatorDIV {
......@@ -283,6 +286,7 @@
/* Список мероприятий (подмодулей) */
.submodules {
position: relative;
}
/* Мероприятие (Подмодуль) */
.submodule {
......@@ -290,6 +294,7 @@
padding: 6px 15px;
margin: 5px 8px 8px 8px;
box-shadow: 2px 2px 2px #ccc;
position: relative;
}
/* Экзамен */
.ExamModule {
......
......@@ -40,13 +40,17 @@ var jConfirmPrototype = $($.parseHTML(
// Шаблон мероприятия
function ConstructSubmodule(){
return jSubmodulePrototype.clone();
var temp = jSubmodulePrototype.clone();
temp.css('display','none');
return temp;
}
// Шаблон модуля
function ConstructModule() {
var ret = jModulePrototype.clone();
ret.css('display','none');
ret.children('div.submodules').append(ConstructSubmodule());
return ret;
};
......@@ -154,6 +158,7 @@ var jConfirmPrototype = $($.parseHTML(
CountCurrentControl(jSubModulesDiv);
CountLandmarkControl(jSubModulesDiv);
}
// Поменять местами два модуля
function SwapModuleOrder(jModule1, jModule2) {
......@@ -166,7 +171,22 @@ var jConfirmPrototype = $($.parseHTML(
function(data){
data = $.parseJSON(data);
if(data.success === true) {
jModule1.insertBefore(jModule2);
var distance = Math.abs(jModule1.offset().top - jModule2.offset().top);
var hDiff = Math.abs(jModule1.height() - jModule2.height());
$.when(jModule1.animate({
top: -distance
}, 200),
jModule2.animate({
top: distance
}, 200)).done(function () {
jModule1.css('top', '0px');
jModule2.css('top', '0px');
jModule1.insertBefore(jModule2);
animating = false;
});
}
else EventInspector_ShowMsg('Ошибка при изменении порядка модулей', 'error');
}
......@@ -184,7 +204,23 @@ var jConfirmPrototype = $($.parseHTML(
function(data){
data = $.parseJSON(data);
if(data.success === true) {
jSubmodule1.insertBefore(jSubmodule2);
var distance = Math.abs(jSubmodule1.offset().top - jSubmodule2.offset().top);
var hDiff = Math.abs(jSubmodule1.height() - jSubmodule2.height());
$.when(jSubmodule1.animate({
top: -distance
}, 200),
jSubmodule2.animate({
top: distance
}, 200)).done(function () {
jSubmodule1.css('top', '0px');
jSubmodule2.css('top', '0px');
jSubmodule1.insertBefore(jSubmodule2);
animating = false;
});
//jSubmodule1.insertBefore(jSubmodule2);
}
else
EventInspector_ShowMsg('Ошибка при изменении порядка мероприятий', 'error');
......@@ -198,6 +234,7 @@ var jConfirmPrototype = $($.parseHTML(
$(".moduleList").on('click', '.upModule', function(){
var jCkickedModule = $(this).parent().parent().parent();
var jModuleGroupDiv = jCkickedModule.prev('div.moduleGroup');
if (jModuleGroupDiv.length > 0) {
SwapModuleOrder(jCkickedModule, jModuleGroupDiv);
}
......@@ -207,6 +244,7 @@ var jConfirmPrototype = $($.parseHTML(
$(".moduleList").on('click', '.downModule', function(){
var jCkickedModule = $(this).parent().parent().parent();
var jModuleGroupDiv = jCkickedModule.next('div.moduleGroup');
if (jModuleGroupDiv.length > 0) {
SwapModuleOrder(jModuleGroupDiv, jCkickedModule);
}
......@@ -233,7 +271,7 @@ var jConfirmPrototype = $($.parseHTML(
// Добавить модуль
$('.addModule').click(function(){
var jThis = $(this);
$(this).attr("disabled", true);
$(this).attr("disabled", true);
var orderNum = $('div.moduleGroup', 'div.moduleList').last().index('.moduleGroup') + 2;
$.post(
g_URLdir + 'handler/map/AddModule',
......@@ -242,6 +280,7 @@ var jConfirmPrototype = $($.parseHTML(
},
function(data){
data = $.parseJSON(data);
if(data.success === true) {
var place = $('.moduleList').children('.moduleGroup').last();
if (place.length > 0)
......@@ -253,6 +292,8 @@ var jConfirmPrototype = $($.parseHTML(
// К добавленному модулю добавляем ID
var thisModuleDIV = $('div.moduleGroup').eq(orderNum - 1);
thisModuleDIV.attr('id', data.moduleID);
$('#'+data.moduleID).slideDown(200);
// К добавленному в модуль мероприятию добавляем ID
thisModuleDIV.children('div.submodules').children('div.submodule').eq(0).attr('id', data.submoduleID);
} else
......@@ -283,6 +324,8 @@ var jConfirmPrototype = $($.parseHTML(
// К добавленному мероприятию добавляем ID
jSubmodulesDIV.append(ConstructSubmodule());
jSubmodulesDIV.children('div.submodule').eq(orderNum - 1).attr('id', data.submoduleID);
$('#'+data.submoduleID).slideDown(200);
} else EventInspector_ShowMsg('Ошибка при добавлении мероприятия', 'error');
jThis.removeAttr('disabled');
}
......@@ -301,7 +344,6 @@ var jConfirmPrototype = $($.parseHTML(
// Подтверждение при удаление модуля
$('.moduleList').on('click', '.confirmDeleteModule', function(){
var jThis = $(this);
$.post(
g_URLdir + 'handler/map/DeleteModule',
{
......@@ -310,8 +352,12 @@ var jConfirmPrototype = $($.parseHTML(
function(data){
data = $.parseJSON(data);
if(data.success === true) {
jThis.parent().parent().parent().remove();
jThis.parent().parent().parent().slideUp(200);
setTimeout('jThis.parent().parent().parent().remove()', 200);
var c = 0;
$('div.moduleGroup')
.children('div.moduleHead')
......@@ -390,7 +436,8 @@ var jConfirmPrototype = $($.parseHTML(
old = rateIndicator.html();
rateIndicator.html(old - dif1 - dif2);
jThis.parent().parent().remove();
jThis.parent().parent().slideUp(200);
setTimeout('jThis.parent().parent().remove()', 200);
}
else EventInspector_ShowMsg('Ошибка при удалении мероприятия', 'error');
}
......
......@@ -9,7 +9,7 @@ $(function()
if (flag === true) {
flag = false;
} else if (isOpened === true) {
jProfiler.css('display', 'none');
jProfiler.slideUp(200);//css('display', 'none');
isOpened = false;
}
});
......@@ -22,12 +22,12 @@ $(function()
flag = true;
if(isOpened)
{
jProfiler.css('display', 'none');
jProfiler.slideUp(200);//css('display', 'none');
isOpened = false;
}
else
{
jProfiler.css('display', 'block');
jProfiler.slideDown(200);//css('display', 'block');
isOpened = true;
}
});
......
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