Skip to content
Snippets Groups Projects
Commit f3c27c0a authored by Anton's avatar Anton
Browse files

При удаление меняется OrderNum у модулей/мероприятий, находящихся ниже удаляемого

parent 69ccccac
Branches
Tags
No related merge requests found
......@@ -209,8 +209,11 @@ class Controller_Handler_Map extends Controller_Handler {
$data['success'] = false;
$this->post -> rule('ModuleID', 'not_empty')
-> rule('ModuleID', 'digit')
-> rule('SubmodulesID', 'not_empty');
-> rule('SubmodulesID', 'not_empty')
-> rule('CurrentModuleOrder', 'not_empty')
-> rule('CurrentModuleOrder', 'digit');
if($this->post->check()) {
$ChangeOrderModulesID = json_decode($this->post->offsetGet('ChangeOrderModulesID'));
$Submodules = json_decode($this->post->offsetGet('SubmodulesID'));
foreach ($Submodules as &$SubmoduleID) {
$this->privateDeleteSubmodule($SubmoduleID);
......@@ -219,8 +222,20 @@ class Controller_Handler_Map extends Controller_Handler {
$this->user['TeacherID'],
$this->post->offsetGet('ModuleID')
);
if ($result[0]['Num'] == 0)
if ($result[0]['Num'] == 0) {
if (count($ChangeOrderModulesID) > 0) {
$NewOrder = $this->post->offsetGet('CurrentModuleOrder');
foreach($ChangeOrderModulesID as $ModuleID) {
$this->model->ChangeModuleOrder(
$this->user['TeacherID'],
$ModuleID,
$NewOrder
);
$NewOrder++;
}
}
$data['success'] = true;
}
}
$this->response->body(json_encode($data));
}
......@@ -229,12 +244,27 @@ class Controller_Handler_Map extends Controller_Handler {
public function action_DeleteSubmodule() {
$data['success'] = false;
$this->post -> rule('SubmoduleID', 'not_empty')
-> rule('SubmoduleID', 'digit');
-> rule('SubmoduleID', 'digit')
-> rule('CurrentSubmoduleOrder', 'not_empty')
-> rule('CurrentSubmoduleOrder', 'digit');
if($this->post->check()) {
$ChangeOrderSubmodulesID = json_decode($this->post->offsetGet('ChangeOrderSubmodulesID'));
$result = $this->privateDeleteSubmodule($this->post->offsetGet('SubmoduleID'));
if ($result == 0)
if ($result == 0) {
if (count($ChangeOrderSubmodulesID) > 0) {
$NewOrder = $this->post->offsetGet('CurrentSubmoduleOrder');
foreach($ChangeOrderSubmodulesID as $SubmoduleID) {
$this->model->ChangeSubmoduleOrder(
$this->user['TeacherID'],
$SubmoduleID,
$NewOrder
);
$NewOrder++;
}
}
$data['success'] = true;
}
}
}
$this->response->body(json_encode($data));
}
......
......@@ -109,4 +109,16 @@ class Model_Teacher_Map extends Model
$sql = "CALL `GetSubjectList`(); ";
return DB::query(Database::SELECT, $sql)->execute();
}
public function ChangeModuleOrder($teacherID, $moduleID, $OrderNum)
{
$sql = "SELECT `ChangeModuleOrder`('$teacherID', '$moduleID', '$OrderNum') AS `Num`;";
return DB::query(Database::SELECT, $sql)->execute();
}
public function ChangeSubmoduleOrder($teacherID, $SubmoduleID, $OrderNum)
{
$sql = "SELECT `ChangeSubmoduleOrder`('$teacherID', '$SubmoduleID', '$OrderNum') AS `Num`;";
return DB::query(Database::SELECT, $sql)->execute();
}
}
......@@ -297,8 +297,8 @@ $(function() {
// Подтверждение при удаление модуля
$('.moduleList').on('click', '.confirmDeleteModule', function(){
$(this).parent('div').parent('div').parent('div').remove();
var subModulesDIV = $(this).parent('div').parent('div').next('.subModules');
var CurrentModuleOrder = $(this).parent().parent().parent().index() + 1;
// Собираем в JSON строку ID мероприятий
var JSONSubmodules = '[';
$('.subModule', subModulesDIV).each(function(){
......@@ -308,18 +308,18 @@ $(function() {
JSONSubmodules += ']';
//
// Собираем ID модулей, которые ниже для того, чтоб сменить их порадок на +1
var AttrID = $(this).parent().parent().nextAll().map(function(indx, element){
var AttrID = $(this).parent().parent().parent().nextAll().map(function(indx, element){
return $(element).attr("id");
});
var ModulesID = AttrID.get();
alert(ModulesID);
var ChangeOrderModulesID = '[' + AttrID.get() + ']';
//
/*
$.post(
'/~dev_rating/handler/map/DeleteModule',
{
'ModuleID': $(this).parent('div').parent('div').parent('div').attr('id'),
'SubmodulesID': JSONSubmodules
'SubmodulesID': JSONSubmodules,
'CurrentModuleOrder': CurrentModuleOrder,
'ChangeOrderModulesID': ChangeOrderModulesID
},
function(data){
data = $.parseJSON(data);
......@@ -328,7 +328,7 @@ $(function() {
else alert('Error, DeleteModule');
}
);
*/
$(this).parent('div').parent('div').parent('div').remove();
});
// Удалить мероприятие
......@@ -340,13 +340,21 @@ $(function() {
// Подтверждение при удаление мероприятия
$('.moduleList').on('click', '.confirmDeleteSubModule ', function(){
var subModulesDiv = $(this).parent().parent().parent();
$(this).parent('div').parent('div').remove();
var CurrentSubmoduleOrder = $(this).parent().parent().index() + 1;
CountCurrentControl(subModulesDiv);
CountLandmarkControl(subModulesDiv);
// Собираем ID мероприятий, которые ниже для того, чтоб сменить их порадок на +1
var AttrID = $(this).parent().parent().nextAll().map(function(indx, element){
return $(element).attr("id");
});
var ChangeOrderSubmodulesID = '[' + AttrID.get() + ']';
//
$.post(
'/~dev_rating/handler/map/DeleteSubmodule',
{
'SubmoduleID': $(this).parent('div').parent('div').attr('id')
'SubmoduleID': $(this).parent('div').parent('div').attr('id'),
'CurrentSubmoduleOrder': CurrentSubmoduleOrder,
'ChangeOrderSubmodulesID': ChangeOrderSubmodulesID
},
function(data){
data = $.parseJSON(data);
......@@ -355,9 +363,10 @@ $(function() {
else alert('Error, DeleteSubmodule');
}
);
$(this).parent('div').parent('div').remove();
});
// Отмена удаления
// Отмена удаления модулей/мероприятий
$('.moduleList').on('click', '.cancel ', function(){
$(this).parent().parent().children('.actions').css('display', 'block');
$(this).parent().remove();
......
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