var city_location = (function ($, window, jQuery) { var _vars_ = {}; return { "set_vars": function (options) { $.extend(_vars_, options || {}); }, "get_vars" : function(){ return _vars_; }, "_load" : function(){ }, "_add" : { "modal" : function(){ //config $("h4#cityModalTitle").text("").text(app.get_vars().system_config.title.add_new_city); $("button#updateCityBtn").hide(); $("button#addNewCityBtn").show(); $("#cityModal").modal({backdrop: 'static',keyboard : true}).on('shown.bs.modal', function() { app._form._reset(this); $("#city").focus(); //submit form on keypress or enter app._form._form_submit_on_keypress("cityForm", function(){ city_location._validate('add'); }); $('#cityModal').off('shown.bs.modal'); }).on('hidden.bs.modal', function () { app._form._resetFormValidation("#cityModal"); app._form._reset(this); $(this).data('bs.modal', null); $('#cityModal').off('hidden.bs.modal'); }); }, "save" : function(form){ $.ajax({ url : app.get_vars().baseurl+"admin/city_location/add_city", type : "POST", dataType : "json", data : $(form).serializeArray(), success : function(result){ if(app.isalive(result)) { app._notify(result.mtype, result.message); if (result.mtype == "success") { //reload grid $("#cityModal").modal("hide"); (city_location.get_vars()._city_location).ajax.reload(null, false); //window.setTimeout(function(){window.location.href = app.get_vars().baseurl+"city_location";},1000); } else { var x = 0; $.map(result.mdetail, function (input, i) { app._form._populate_field_error(input.field, input.message, x); x++; }); } } } }); } }, "_edit" : { "modal" : function(city_location_id, city){ //config $("#cityModal").data("city_location_id", city_location_id); $("h4#cityModalTitle").text("").text(app.get_vars().system_config.title.edit_city); $("button#addNewCityBtn").hide(); $("button#updateCityBtn").show(); $("#cityModal").modal({backdrop: 'static',keyboard : true}).on('shown.bs.modal', function() { app._form._reset(this); $("#city").val(city).focus(); //submit form on keypress or enter app._form._form_submit_on_keypress("cityForm", function(){ city_location._validate('edit'); }); $('#cityModal').off('shown.bs.modal'); }).on('hidden.bs.modal', function () { app._form._resetFormValidation("#cityModal"); app._form._reset(this); $(this).data('bs.modal', null); $('#cityModal').off('hidden.bs.modal'); }); }, "save" : function(form){ var city_location_id = $("#cityModal").data("city_location_id"); $.ajax({ "url" : app.get_vars().baseurl+"admin/city_location/edit_city/"+city_location_id, "type" : "POST", "dataType" : "json", "data" : $(form).serializeArray(), "success" : function(result){ if(app.isalive(result)) { app._notify(result.mtype, result.message); if (result.mtype == "success") { //reload grid $("#cityModal").modal("hide"); (city_location.get_vars()._city_location).ajax.reload(null, false); } else { var x = 0; $.map(result.mdetail, function (input, i) { app._form._populate_field_error(input.field, input.message, x); x++; }); } } } }); } }, "_delete" : { "confirm" : function(city_location_id, order){ app.modal.confirm_box({ "message" : app.get_vars().system_config.cma_msg.delete_city+" [#"+order+"]?

"+app.get_vars()._app.cma_msg.note+"", "_continue" : function() { city_location._delete.save(city_location_id); }, "id" : "delete_confirm_box", "className" : "delete_confirm_box" }); }, "save" : function(city_location_id){ $.ajax({ "url" : app.get_vars().baseurl+"admin/city_location/delete_city/"+city_location_id, "type" : "POST", "data" : { "ask" : "x0dkdp" }, "dataType" : "json", "success" : function(result){ if(app.isalive(result)) { app._notify(result.mtype, result.message); if (result.mtype == "session_timeout") { window.setTimeout(function () { window.location.href = result.mdetail.path; }, result.mdetail.redirect); } else if (result.mtype == "success") { //reload grid (city_location.get_vars()._city_location).ajax.reload(null, false); } } } }); } }, "_validate" : function(action){ var options = { boot_box : { "message" : (action == "add") ? app.get_vars().system_config.cma_msg.add_new_city : app.get_vars().system_config.cma_msg.update_city , "_continue" : function() { (action == "add") ? city_location._add.save($("form#cityForm")) : city_location._edit.save($("form#cityForm")) }, "id" : action+"_confirm_box", "className" : action+"_confirm_box" }, "validation" : { "form_id" : "form#cityForm", "rules" : { "city": { "minlength":3, "required": true } } } }; app._form._validate(options); }, "load" : function(){ var table = $('#city_location').DataTable({ "autoWidth": false, "responsive": true, "processing": true, //Feature control the processing indicator. "serverSide": true, //Feature control DataTables' server-side processing mode. "order": [0], //Initial no order. "oLanguage": fr_onload_lang.oLanguage, // Load data for the table's content from an Ajax source "ajax": { "url": app.get_vars().baseurl+"city_location_list", "type": "POST" }, "columns": [ { "data": "city_order"}, { "data": "city"}, { "data": "action" , render : function(data, type, full, meta){ var action_btns = ""; if (authorize(PAGE_CODE['sys_settings'], PRIVS[PAGE_CODE['sys_settings']]['city_mgt_edit'])) { action_btns +=app.grid.create_action_btn(app.get_vars()._app.action._edit, "pencil", "success", "city_location._edit.modal("+data+", \'"+full.city+"\')"); } if (authorize(PAGE_CODE['sys_settings'], PRIVS[PAGE_CODE['sys_settings']]['city_mgt_delete'])) { action_btns +=app.grid.create_action_btn(app.get_vars()._app.action._delete, "trash", "danger", "city_location._delete.confirm("+data+", "+full.city_order+")"); } return '
'+action_btns+'
'; }} ], "fnDrawCallback": function() { app._tooltip._hide(); $('#city_location tbody tr td').each( function(x, y) { var _this = $(this); if(_this.hasClass('truncate-content-text')){ _this.css('max-width', '180px'); this.setAttribute( 'title', _this.text()); this.setAttribute( 'data-toggle',"tooltip"); } }); app._tooltip._pop(); }, //Set column definition initialisation properties. "columnDefs": [ { "targets": [2], "orderable": false}, { "targets": [0], "orderable": false} //{ "targets": [1], className : "truncate-content-text custom-popover-tooltip"} ], "initComplete": function(settings, json) { //run tooltip app._tooltip._hide(); app._tooltip._pop(); //add custom button beside searchbox $('.dataTables_filter').each(function () { if (authorize(PAGE_CODE['sys_settings'], PRIVS[PAGE_CODE['sys_settings']]['city_mgt_add'])) { $(this).append(''); } }); //fire search filter event app.grid.search_filter("city_location", city_location.get_vars()._city_location); } }); city_location.set_vars({_city_location : table}); } };//end of return // Pass in jQuery. })(jQuery, this); $(function() { //load datatable city_location.load(); });