init
This commit is contained in:
1
web/js/boostrap-notify.min.js
vendored
Normal file
1
web/js/boostrap-notify.min.js
vendored
Normal file
File diff suppressed because one or more lines are too long
446
web/js/common.js
Normal file
446
web/js/common.js
Normal file
@@ -0,0 +1,446 @@
|
||||
$(function () {
|
||||
$('[data-toggle="tooltip"]').tooltip({
|
||||
container: 'body'
|
||||
});
|
||||
function youtube_parser(url) {
|
||||
var regExp = /^.*((youtu.be\/)|(v\/)|(\/u\/\w\/)|(embed\/)|(watch\?))\??v?=?([^#\&\?]*).*/;
|
||||
var match = url.match(regExp);
|
||||
return (match && match[7].length == 11) ? match[7] : false;
|
||||
}
|
||||
$('iframe').each(function (i, o) {
|
||||
var $o = $(o);
|
||||
if ($o.prop('src').search('youtube') != -1) {
|
||||
if (!$o.parent().hasClass('embed-responsive')) {
|
||||
$o.addClass('embed-responsive-item');
|
||||
$o.wrapAll('<div class="embed-responsive embed-responsive-16by9" />');
|
||||
var vid = youtube_parser($o.prop("src"));
|
||||
if (vid) {
|
||||
$o.addClass('hidden-print');
|
||||
$o.parent().addClass('youtube-preview youtube-preview-print').append('<img class="embed-responsive-item visible-print" src="https://img.youtube.com/vi/' + vid + '/0.jpg" onerror="this.src=\"https:\/\/img.youtube.com\/vi\/' + vid + '\/maxresdefault.jpg\""/>');
|
||||
$o.parent().append('<a class="youtube-play-icon" href="' + $o.prop("src") + '"><img class="visible-print" src="/assets/images/icon_youtube_play.png"/></a>');
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
$.fn.modal.Constructor.prototype.enforceFocus = function () {};
|
||||
// var api = common.getAPI();
|
||||
// var socket = io.connect(api);
|
||||
// socket.on('getNotification', function (data) {
|
||||
// if (data.user_id == parseInt($("input[name='current_user_id']").val())) {
|
||||
// var number = parseInt($("#number_notif_1").html()) + 1;
|
||||
// $("#number_notif_1").html(number).removeClass("hidden");
|
||||
// $("#number_notif_2").html(number);
|
||||
// var html = `<li {if style="background: #edf2fa;">
|
||||
// <a href="` + data.url + `">
|
||||
// <i class="fa fa-book text-aqua"></i> ` + data.content + `
|
||||
// </a>
|
||||
// </li>`;
|
||||
// $("#notif_lists").prepend(html);
|
||||
// notification.df(`<a href="` + data.url + `" style="text-decoration: none;">` + data.content + `</a>`, 30000, data.type);
|
||||
// }
|
||||
// });
|
||||
});
|
||||
$(document).on('focusin', function (e) {
|
||||
if ($(e.target).closest(".mce-window").length) {
|
||||
e.stopImmediatePropagation();
|
||||
}
|
||||
});
|
||||
|
||||
/**
|
||||
* Các hàm sử dụng chung
|
||||
*/
|
||||
var common = {};
|
||||
common.csrf = $('meta[name="csrf-token"]').attr("content");
|
||||
common.csrfParam = $('meta[name="csrf-param"]').attr("content");
|
||||
common.getAPI = function () {
|
||||
var protocol = location.protocol;
|
||||
var slashes = protocol.concat("//");
|
||||
var host = slashes.concat(window.location.hostname);
|
||||
return host + ":8002/";
|
||||
};
|
||||
common.sendNotification = function (data) {
|
||||
var api = common.getAPI();
|
||||
$.ajax({
|
||||
url: api + "notification",
|
||||
type: 'POST',
|
||||
data: JSON.stringify(data),
|
||||
contentType: 'application/json',
|
||||
success: function (data) {
|
||||
}
|
||||
});
|
||||
};
|
||||
common.mark = function (e) {
|
||||
$.ajax({
|
||||
url: $(e).attr("data-href"),
|
||||
type: 'POST',
|
||||
success: function (data) {
|
||||
$("#number_notif_2").html("0");
|
||||
$("#number_notif_1").html("0").addClass("hidden");
|
||||
}
|
||||
});
|
||||
};
|
||||
common.modalOpen = function (data, lg, title) {
|
||||
$("#myModalContent").html(data);
|
||||
$("#myModalContent").attr("style", "");
|
||||
if (lg) {
|
||||
$(".modal-dialog").addClass("modal-lg");
|
||||
} else {
|
||||
$(".modal-dialog").removeClass("modal-lg");
|
||||
}
|
||||
if (!title) {
|
||||
$("#modalHeader").addClass("hidden");
|
||||
} else {
|
||||
$("#modalHeader").removeClass("hidden");
|
||||
$("#myModalLabel").html(title);
|
||||
}
|
||||
$("#myModalFooter").addClass("hidden");
|
||||
$("#myModal").modal();
|
||||
};
|
||||
common.modalOpenFullScreen = function (data, title) {
|
||||
$("input[name='ReLoadFullScreen']").val("false");
|
||||
$("#myModalFullScreenContent").html(data);
|
||||
if (title == false) {
|
||||
$("#modalFullScreenHeader").addClass("hidden");
|
||||
} else {
|
||||
$("#modalFullScreenHeader").removeClass("hidden");
|
||||
$("#myModalFullScreenLabel").html(title);
|
||||
}
|
||||
$("#myModalFullScreen").modal();
|
||||
};
|
||||
common.modalBlock = function (stt) {
|
||||
if (stt) {
|
||||
$("#blocking").modal({
|
||||
keyboard: false,
|
||||
backdrop: false
|
||||
});
|
||||
} else {
|
||||
$("#blocking").modal("hide");
|
||||
}
|
||||
};
|
||||
common.uploadBlock = function (stt) {
|
||||
if (stt) {
|
||||
$("#uploadBlock").modal({
|
||||
keyboard: false,
|
||||
backdrop: false
|
||||
});
|
||||
} else {
|
||||
$("#uploadBlock").modal("hide");
|
||||
}
|
||||
};
|
||||
common.modalAlert = function (text, cls, link) {
|
||||
$("#alertModalContent").html(text);
|
||||
$("#alertModalDialog").removeClass("modal-lg");
|
||||
$("#alertModal").modal({
|
||||
backdrop: 'static',
|
||||
keyboard: false
|
||||
});
|
||||
switch (cls) {
|
||||
case "success":
|
||||
$("#alertModalHeader").attr("style", "background-color:#5cb85c;color:white;");
|
||||
break;
|
||||
case "danger":
|
||||
$("#alertModalHeader").attr("style", "background-color:#d9534f;color:white;");
|
||||
break;
|
||||
case "info":
|
||||
$("#alertModalHeader").attr("style", "background-color:#5bc0de;color:white;");
|
||||
break;
|
||||
case "warning":
|
||||
$("#alertModalHeader").attr("style", "background-color:#f0ad4e;color:white;");
|
||||
break;
|
||||
}
|
||||
if (link !== "") {
|
||||
$('#alertModal').on('hide.bs.modal', function () {
|
||||
window.location = link;
|
||||
});
|
||||
}
|
||||
};
|
||||
common.ajaxError = function () {
|
||||
common.modalAlert("Có lỗi xảy ra, có thể do đường truyền mạng, xin vui lòng thử lại!", "danger", "");
|
||||
};
|
||||
common.btnUpload = function (mUrl, className, extension, fileSize) {
|
||||
var fData = {
|
||||
UploadFile: true,
|
||||
Name: className
|
||||
};
|
||||
fData[common.csrfParam] = common.csrf;
|
||||
new afuButton({
|
||||
uploadURI: mUrl,
|
||||
formData: fData,
|
||||
wrap: {
|
||||
tagName: 'div',
|
||||
classes: ''
|
||||
},
|
||||
fileExtension: extension,
|
||||
fileSizeLimit: fileSize,
|
||||
classes: 'btn btn-default file-paperclip-' + className,
|
||||
fakeInputContent: '<span class=\'fa fa-paperclip\'></span>',
|
||||
onUploaded: function (data) {
|
||||
common.uploadBlock(false);
|
||||
if (data !== 'false') {
|
||||
var r = JSON.parse(data);
|
||||
if (r['link'] == 2) {
|
||||
alert('Định dạng tệp tin không được hỗ trợ!\n Các loại tệp tin được hỗ trợ: ' + extension);
|
||||
} else {
|
||||
//alert("Tệp tin đã được tải lên thành công");
|
||||
$("#fileUpload" + className).attr("href", r['link']);
|
||||
$("#fileUpload" + className).html(r['name'] + " ");
|
||||
$("input[name='fileUploadLink" + className + "']").val(r['link']);
|
||||
}
|
||||
} else {
|
||||
alert('Có lỗi xảy ra, tải tệp tin không thành công!');
|
||||
}
|
||||
}
|
||||
}).addInstance('file' + className);
|
||||
$(".file-paperclip-" + className).closest("div").attr("style", "display:inline-block;");
|
||||
};
|
||||
common.btnUploadImage = function (mUrl, className, extension, fileSize) {
|
||||
var fData = {
|
||||
UploadImage: true,
|
||||
Name: className
|
||||
};
|
||||
fData[common.csrfParam] = common.csrf;
|
||||
new afuButton({
|
||||
uploadURI: mUrl,
|
||||
formData: fData,
|
||||
wrap: {
|
||||
tagName: 'div',
|
||||
classes: ''
|
||||
},
|
||||
fileExtension: extension,
|
||||
fileSizeLimit: fileSize,
|
||||
classes: 'btn btn-primary btn-xs',
|
||||
fakeInputContent: '<span class=\'fa fa-file-image-o\'></span> Chọn hình ảnh',
|
||||
onUploaded: function (data) {
|
||||
common.uploadBlock(false);
|
||||
alert("Hình ảnh đã được tải lên thành công");
|
||||
$("#HinhMinhHoa" + className).attr("src", "data/uploads" + data);
|
||||
$("input[name='HinhMinhHoaLink" + className + "']").val(data);
|
||||
$("input[name='updateStatus']").val("1");
|
||||
}
|
||||
}).addInstance('image' + className);
|
||||
};
|
||||
common.dateTimePicker = function (id) {
|
||||
$('#' + id).datetimepicker({
|
||||
locale: 'vi',
|
||||
ignoreReadonly: true,
|
||||
format: 'HH:mm DD/MM/YYYY',
|
||||
sideBySide: true
|
||||
});
|
||||
};
|
||||
common.dateTimePickerDay = function (id) {
|
||||
$('#' + id).datetimepicker({
|
||||
locale: 'vi',
|
||||
ignoreReadonly: true,
|
||||
format: 'DD/MM/YYYY'
|
||||
});
|
||||
};
|
||||
common.dateTimePickerHour = function (id) {
|
||||
$('#' + id).datetimepicker({
|
||||
locale: 'vi',
|
||||
ignoreReadonly: true,
|
||||
format: 'HH:mm'
|
||||
});
|
||||
};
|
||||
common.checkAll = function (id, cls) {
|
||||
$('#' + id).on('ifChecked', function (event) {
|
||||
$('.' + cls).iCheck('check');
|
||||
});
|
||||
$('#' + id).on('ifUnchecked', function (event) {
|
||||
$('.' + cls).iCheck('uncheck');
|
||||
});
|
||||
$('#' + id).on('ifChanged', function (event) {
|
||||
if (!this.changed) {
|
||||
this.changed = true;
|
||||
$('#' + id).iCheck('check');
|
||||
} else {
|
||||
this.changed = false;
|
||||
$('#' + id).iCheck('uncheck');
|
||||
}
|
||||
$('#' + id).iCheck('update');
|
||||
});
|
||||
};
|
||||
common.getUrlParameter = function (sParam) {
|
||||
var sPageURL = decodeURIComponent(window.location.search.substring(1)),
|
||||
sURLVariables = sPageURL.split('&'),
|
||||
sParameterName,
|
||||
i;
|
||||
for (i = 0; i < sURLVariables.length; i++) {
|
||||
sParameterName = sURLVariables[i].split('=');
|
||||
if (sParameterName[0] === sParam) {
|
||||
return sParameterName[1] === undefined ? true : sParameterName[1];
|
||||
}
|
||||
}
|
||||
};
|
||||
common.error = function (id, text) {
|
||||
$("#" + id).addClass("has-error").removeClass("has-success");
|
||||
$("#" + id).find(".help-block").html(text).removeClass("hidden");
|
||||
};
|
||||
common.success = function (id) {
|
||||
$("#" + id).addClass("has-success").removeClass("has-error");
|
||||
$("#" + id).find(".help-block").addClass("hidden");
|
||||
};
|
||||
/**
|
||||
* =========================
|
||||
*/
|
||||
|
||||
/**
|
||||
* Notification
|
||||
*/
|
||||
var notification = {
|
||||
success: function (text, time) {
|
||||
$.notify({
|
||||
icon: "fa fa-check",
|
||||
message: "<strong>" + text + "</strong>"
|
||||
}, {
|
||||
type: "success",
|
||||
allow_dismiss: false,
|
||||
showProgressbar: false,
|
||||
z_index: 99999999,
|
||||
placement: {
|
||||
from: "bottom",
|
||||
align: "left"
|
||||
},
|
||||
offset: 70,
|
||||
delay: time,
|
||||
animate: {
|
||||
enter: 'animated fadeInDown',
|
||||
exit: 'animated fadeOutUp'
|
||||
},
|
||||
});
|
||||
},
|
||||
danger: function (text, time) {
|
||||
$.notify({
|
||||
icon: "fa fa-remove",
|
||||
message: "<strong>" + text + "</strong>"
|
||||
}, {
|
||||
type: "danger",
|
||||
allow_dismiss: false,
|
||||
showProgressbar: false,
|
||||
z_index: 99999999,
|
||||
placement: {
|
||||
from: "bottom",
|
||||
align: "left"
|
||||
},
|
||||
offset: 70,
|
||||
delay: time,
|
||||
animate: {
|
||||
enter: 'animated fadeInDown',
|
||||
exit: 'animated fadeOutUp'
|
||||
},
|
||||
});
|
||||
},
|
||||
warning: function (text, time) {
|
||||
$.notify({
|
||||
icon: "fa fa-question-circle",
|
||||
message: "<strong>" + text + "</strong>"
|
||||
}, {
|
||||
type: "warning",
|
||||
allow_dismiss: false,
|
||||
showProgressbar: false,
|
||||
z_index: 99999999,
|
||||
placement: {
|
||||
from: "bottom",
|
||||
align: "left"
|
||||
},
|
||||
offset: 70,
|
||||
delay: time,
|
||||
animate: {
|
||||
enter: 'animated fadeInDown',
|
||||
exit: 'animated fadeOutUp'
|
||||
},
|
||||
});
|
||||
},
|
||||
info: function (text, time) {
|
||||
$.notify({
|
||||
icon: "fa fa-info-circle",
|
||||
message: "<strong>" + text + "</strong>"
|
||||
}, {
|
||||
type: "info",
|
||||
allow_dismiss: false,
|
||||
showProgressbar: false,
|
||||
z_index: 99999999,
|
||||
placement: {
|
||||
from: "bottom",
|
||||
align: "right"
|
||||
},
|
||||
offset: 70,
|
||||
delay: time,
|
||||
animate: {
|
||||
enter: 'animated fadeInDown',
|
||||
exit: 'animated fadeOutUp'
|
||||
},
|
||||
});
|
||||
},
|
||||
df: function (text, time, type) {
|
||||
$.notify({
|
||||
icon: "fa fa-info-circle",
|
||||
message: text
|
||||
}, {
|
||||
type: type,
|
||||
allow_dismiss: false,
|
||||
showProgressbar: false,
|
||||
z_index: 99999999,
|
||||
placement: {
|
||||
from: "bottom",
|
||||
align: "right"
|
||||
},
|
||||
offset: 70,
|
||||
delay: time,
|
||||
animate: {
|
||||
enter: 'animated fadeInDown',
|
||||
exit: 'animated fadeOutUp'
|
||||
},
|
||||
});
|
||||
},
|
||||
primary: function (text, time) {
|
||||
$.notify({
|
||||
icon: "fa fa-info-circle",
|
||||
message: "<strong>" + text + "</strong>"
|
||||
}, {
|
||||
type: "primary",
|
||||
allow_dismiss: false,
|
||||
showProgressbar: false,
|
||||
z_index: 99999999,
|
||||
placement: {
|
||||
from: "bottom",
|
||||
align: "left"
|
||||
},
|
||||
offset: 70,
|
||||
delay: time,
|
||||
animate: {
|
||||
enter: 'animated fadeInDown',
|
||||
exit: 'animated fadeOutUp'
|
||||
},
|
||||
});
|
||||
},
|
||||
};
|
||||
|
||||
+function ($, document) {
|
||||
//Fix scroll with modal multiple show
|
||||
var stackModal = 0;
|
||||
var orginBodyPad = '';
|
||||
$(document).on('show.bs.modal', '.modal', function (event) {
|
||||
// var zIndex = 1040 + (10 * $('.modal:visible').length);
|
||||
// $(this).css('z-index', zIndex);
|
||||
if (stackModal <= 0) {
|
||||
orginBodyPad = document.body.style.paddingRight || '';
|
||||
}
|
||||
stackModal++;
|
||||
setTimeout(function () {
|
||||
$('.modal-backdrop').not('.modal-stack')
|
||||
// .css('z-index', zIndex - 1)
|
||||
.addClass('modal-stack');
|
||||
}, 0);
|
||||
$(this).appendTo(document.body);
|
||||
});
|
||||
$(document).on('hidden.bs.modal', '.modal', function (event) {
|
||||
stackModal--;
|
||||
if (stackModal > 0) {
|
||||
$('body').addClass("modal-open");
|
||||
} else {
|
||||
$('body').removeClass("modal-open");
|
||||
document.body.style.paddingRight = orginBodyPad;
|
||||
orginBodyPad = '';
|
||||
}
|
||||
});
|
||||
}(jQuery, document);
|
||||
213
web/js/editor.js
Normal file
213
web/js/editor.js
Normal file
@@ -0,0 +1,213 @@
|
||||
var ed_temp = false;
|
||||
var editor = {
|
||||
href: "index.php?r=teacher/docs#Ajax",
|
||||
mUrl: "index.php?r=teacher/docs",
|
||||
loadEditorMin: function (id, rows) {
|
||||
rows = rows || 300;
|
||||
this.removeTinyMCE(id);
|
||||
tinymce.init({
|
||||
selector: 'textarea#' + id,
|
||||
height: rows,
|
||||
theme: 'modern',
|
||||
language: 'vi_VN',
|
||||
branding: false,
|
||||
plugins: [
|
||||
'advlist autolink lists link image charmap print preview hr anchor pagebreak',
|
||||
'searchreplace wordcount visualblocks visualchars code fullscreen',
|
||||
'insertdatetime media nonbreaking save table contextmenu directionality',
|
||||
'emoticons template textcolor colorpicker textpattern imagetools mathjax'
|
||||
],
|
||||
toolbar1: 'styleselect | bold underline italic | alignleft aligncenter alignright alignjustify | bullist numlist | forecolor | media image btnVideo btnFlash btnPicture | math mathjax',
|
||||
setup: function (ed) {
|
||||
},
|
||||
image_class_list: [
|
||||
{title: 'Không dùng', value: ''},
|
||||
{title: 'Tự co dãn theo chiều rộng', value: 'img-responsive img-c2f'},
|
||||
],
|
||||
image_advtab: false,
|
||||
relative_urls : false,
|
||||
remove_script_host : false,
|
||||
entity_encoding: 'raw',
|
||||
init_instance_callback: function (ed) {
|
||||
// ed.execCommand('mceImage');
|
||||
}
|
||||
});
|
||||
},
|
||||
loadEditorMin2: function (id, rows) {
|
||||
rows = rows || 300;
|
||||
this.removeTinyMCE(id);
|
||||
tinymce.init({
|
||||
selector: 'textarea#' + id,
|
||||
height: rows,
|
||||
theme: 'modern',
|
||||
language: 'vi_VN',
|
||||
branding: false,
|
||||
menubar: false,
|
||||
toolbar1: 'styleselect | bold underline italic | alignleft aligncenter alignright alignjustify | bullist numlist',
|
||||
image_advtab: false,
|
||||
image_class_list: [
|
||||
{title: 'Không dùng', value: ''},
|
||||
{title: 'Tự co dãn theo chiều rộng', value: 'img-responsive img-c2f'},
|
||||
],
|
||||
templates: [
|
||||
{title: 'Test template 1', content: 'Test 1'},
|
||||
{title: 'Test template 2', content: 'Test 2'}
|
||||
],
|
||||
relative_urls : false,
|
||||
remove_script_host : false,
|
||||
entity_encoding: 'raw'
|
||||
});
|
||||
},
|
||||
loadEditorInline: function (id, callback_config) {
|
||||
this.removeTinyMCE(id);
|
||||
tinymce.init({
|
||||
selector: '#' + id,
|
||||
inline: true,
|
||||
theme: 'modern',
|
||||
language: 'vi_VN',
|
||||
branding: false,
|
||||
plugins: [
|
||||
'advlist autolink lists link image charmap print preview hr anchor pagebreak',
|
||||
'searchreplace wordcount visualblocks visualchars code fullscreen',
|
||||
'insertdatetime media nonbreaking save table contextmenu directionality',
|
||||
'emoticons template paste textcolor colorpicker textpattern imagetools',
|
||||
'placeholder'
|
||||
],
|
||||
valid_elements: "p[style],h3,h4,h5,h6,a[href|target],strong/b,br,table,tbody,thead,tr,td,ul,ol,li,img[src|class]",
|
||||
toolbar1: 'styleselect | bold underline italic | alignleft aligncenter alignright alignjustify | bullist numlist | media btnVideo btnFlash btnPicture | math',
|
||||
setup: function (ed) {
|
||||
if (callback_config) {
|
||||
callback_config(ed);
|
||||
}
|
||||
},
|
||||
image_advtab: false,
|
||||
image_class_list: [
|
||||
{title: 'Không dùng', value: ''},
|
||||
{title: 'Tự co dãn theo chiều rộng', value: 'img-responsive img-c2f'},
|
||||
],
|
||||
relative_urls : false,
|
||||
remove_script_host : false,
|
||||
entity_encoding: 'raw',
|
||||
// document_base_url:document_base_url,
|
||||
file_picker_callback: filePicker
|
||||
});
|
||||
},
|
||||
addPreview: function () {
|
||||
var tex = $("#math-editor").val();
|
||||
if (tex !== "") {
|
||||
$("#math-preview").html("$" + tex + "$");
|
||||
} else {
|
||||
$("#math-preview").html("");
|
||||
}
|
||||
MathJax.Hub.Queue(["Typeset", MathJax.Hub, $("#math-preview")[0]]);
|
||||
},
|
||||
removeTinyMCE: function (id) {
|
||||
try {
|
||||
tinymce.execCommand('mceRemoveEditor', true, id);
|
||||
} catch (ex) {
|
||||
console.log(ex); //exception with Firefox
|
||||
}
|
||||
//remove editor from EditorManager
|
||||
var editors = tinymce.EditorManager.editors;
|
||||
for (var i = 0; i < editors.length; i++) {
|
||||
var editor = editors[i];
|
||||
if (editor.id == id) {
|
||||
editors.splice(i, 1);
|
||||
}
|
||||
}
|
||||
delete(editors[id]);
|
||||
},
|
||||
formAddVideo: function () {
|
||||
global.openModal(this.htmlLoading, true, "Quản lý video");
|
||||
$.ajax({
|
||||
url: this.href,
|
||||
type: 'POST',
|
||||
data: {
|
||||
formAddVideo: true
|
||||
},
|
||||
success: function (data) {
|
||||
$("#myModalContent").html(data);
|
||||
}
|
||||
});
|
||||
},
|
||||
formAddVideo2: function (e) {
|
||||
var Search = $("input[name='TimKiemVideo']").val();
|
||||
$(e).button("loading");
|
||||
$.ajax({
|
||||
url: this.href,
|
||||
type: 'POST',
|
||||
data: {
|
||||
formAddVideo: true,
|
||||
Search: Search
|
||||
},
|
||||
success: function (data) {
|
||||
$("#myModalContent").html(data);
|
||||
$("input[name='TimKiemVideo']").val(Search);
|
||||
}
|
||||
});
|
||||
},
|
||||
addVideo: function (e) {
|
||||
var HTML = "<video controls=\"controls\" width=\"80%\" height=\"300\"><source src=\"" + $(e).attr('data') + "\" type=\"video/" + $(e).attr('data-ext') + "\"/></video>";
|
||||
ed_temp.insertContent(HTML);
|
||||
$("#myModal").modal("hide");
|
||||
},
|
||||
formAddFlash: function () {
|
||||
global.openModal(this.htmlLoading, true, "Quản lý bài giảng tương tác");
|
||||
$.ajax({
|
||||
url: this.href,
|
||||
type: 'POST',
|
||||
data: {
|
||||
formAddFlash: true
|
||||
},
|
||||
success: function (data) {
|
||||
$("#myModalContent").html(data);
|
||||
}
|
||||
});
|
||||
},
|
||||
formAddFlash2: function (e) {
|
||||
var Search = $("input[name='TimKiemFlash']").val();
|
||||
$(e).button("loading");
|
||||
$.ajax({
|
||||
url: this.href,
|
||||
type: 'POST',
|
||||
data: {
|
||||
formAddFlash: true,
|
||||
Search: Search
|
||||
},
|
||||
success: function (data) {
|
||||
$("#myModalContent").html(data);
|
||||
$("input[name='TimKiemFlash']").val(Search);
|
||||
}
|
||||
});
|
||||
},
|
||||
addFlash: function (e) {
|
||||
var HTML = "<p><object style=\"display: block; margin-left: auto; margin-right: auto;\" data=\"" + $(e).attr("data") + "\" type=\"application/x-shockwave-flash\" width=\"80%\" height=\"430\"></object></p>";
|
||||
ed_temp.insertContent(HTML);
|
||||
$("#myModal").modal("hide");
|
||||
}
|
||||
};
|
||||
$("#math-editor").on("keyup", function () {
|
||||
editor.addPreview();
|
||||
});
|
||||
$("#math-ok").on("click", function () {
|
||||
if ($("#math-editor").val() !== "") {
|
||||
var tex = "$" + $("#math-editor").val() + "$";
|
||||
} else {
|
||||
var tex = "";
|
||||
}
|
||||
ed_temp.insertContent(tex);
|
||||
$("#mathEditor").modal("hide");
|
||||
});
|
||||
$("#math-refresh").on("click", function () {
|
||||
$("#math-editor").val("");
|
||||
$("#math-preview").html("");
|
||||
});
|
||||
$(".btn-math").on("click", function () {
|
||||
var code = $(this).attr("data");
|
||||
var cursorPos = $('#math-editor').prop('selectionStart');
|
||||
var v = $('#math-editor').val();
|
||||
var textBefore = v.substring(0, cursorPos);
|
||||
var textAfter = v.substring(cursorPos, v.length);
|
||||
$('#math-editor').val(textBefore + code + textAfter);
|
||||
editor.addPreview();
|
||||
});
|
||||
11
web/js/logs.js
Normal file
11
web/js/logs.js
Normal file
@@ -0,0 +1,11 @@
|
||||
$(function () {
|
||||
common.dateTimePicker("from");
|
||||
common.dateTimePicker("to");
|
||||
});
|
||||
|
||||
function search(e) {
|
||||
window.location = $(e).attr("data-href") + "?from=" + $("input[name='FromTime']").val() + "&to=" + $("input[name='ToTime']").val();
|
||||
}
|
||||
function _export(e) {
|
||||
window.location = $(e).attr("data-href") + "?from=" + $("input[name='FromTime']").val() + "&to=" + $("input[name='ToTime']").val();
|
||||
}
|
||||
2
web/js/md5.min.js
vendored
Normal file
2
web/js/md5.min.js
vendored
Normal file
@@ -0,0 +1,2 @@
|
||||
!function(n){"use strict";function t(n,t){var r=(65535&n)+(65535&t);return(n>>16)+(t>>16)+(r>>16)<<16|65535&r}function r(n,t){return n<<t|n>>>32-t}function e(n,e,o,u,c,f){return t(r(t(t(e,n),t(u,f)),c),o)}function o(n,t,r,o,u,c,f){return e(t&r|~t&o,n,t,u,c,f)}function u(n,t,r,o,u,c,f){return e(t&o|r&~o,n,t,u,c,f)}function c(n,t,r,o,u,c,f){return e(t^r^o,n,t,u,c,f)}function f(n,t,r,o,u,c,f){return e(r^(t|~o),n,t,u,c,f)}function i(n,r){n[r>>5]|=128<<r%32,n[14+(r+64>>>9<<4)]=r;var e,i,a,d,h,l=1732584193,g=-271733879,v=-1732584194,m=271733878;for(e=0;e<n.length;e+=16)i=l,a=g,d=v,h=m,g=f(g=f(g=f(g=f(g=c(g=c(g=c(g=c(g=u(g=u(g=u(g=u(g=o(g=o(g=o(g=o(g,v=o(v,m=o(m,l=o(l,g,v,m,n[e],7,-680876936),g,v,n[e+1],12,-389564586),l,g,n[e+2],17,606105819),m,l,n[e+3],22,-1044525330),v=o(v,m=o(m,l=o(l,g,v,m,n[e+4],7,-176418897),g,v,n[e+5],12,1200080426),l,g,n[e+6],17,-1473231341),m,l,n[e+7],22,-45705983),v=o(v,m=o(m,l=o(l,g,v,m,n[e+8],7,1770035416),g,v,n[e+9],12,-1958414417),l,g,n[e+10],17,-42063),m,l,n[e+11],22,-1990404162),v=o(v,m=o(m,l=o(l,g,v,m,n[e+12],7,1804603682),g,v,n[e+13],12,-40341101),l,g,n[e+14],17,-1502002290),m,l,n[e+15],22,1236535329),v=u(v,m=u(m,l=u(l,g,v,m,n[e+1],5,-165796510),g,v,n[e+6],9,-1069501632),l,g,n[e+11],14,643717713),m,l,n[e],20,-373897302),v=u(v,m=u(m,l=u(l,g,v,m,n[e+5],5,-701558691),g,v,n[e+10],9,38016083),l,g,n[e+15],14,-660478335),m,l,n[e+4],20,-405537848),v=u(v,m=u(m,l=u(l,g,v,m,n[e+9],5,568446438),g,v,n[e+14],9,-1019803690),l,g,n[e+3],14,-187363961),m,l,n[e+8],20,1163531501),v=u(v,m=u(m,l=u(l,g,v,m,n[e+13],5,-1444681467),g,v,n[e+2],9,-51403784),l,g,n[e+7],14,1735328473),m,l,n[e+12],20,-1926607734),v=c(v,m=c(m,l=c(l,g,v,m,n[e+5],4,-378558),g,v,n[e+8],11,-2022574463),l,g,n[e+11],16,1839030562),m,l,n[e+14],23,-35309556),v=c(v,m=c(m,l=c(l,g,v,m,n[e+1],4,-1530992060),g,v,n[e+4],11,1272893353),l,g,n[e+7],16,-155497632),m,l,n[e+10],23,-1094730640),v=c(v,m=c(m,l=c(l,g,v,m,n[e+13],4,681279174),g,v,n[e],11,-358537222),l,g,n[e+3],16,-722521979),m,l,n[e+6],23,76029189),v=c(v,m=c(m,l=c(l,g,v,m,n[e+9],4,-640364487),g,v,n[e+12],11,-421815835),l,g,n[e+15],16,530742520),m,l,n[e+2],23,-995338651),v=f(v,m=f(m,l=f(l,g,v,m,n[e],6,-198630844),g,v,n[e+7],10,1126891415),l,g,n[e+14],15,-1416354905),m,l,n[e+5],21,-57434055),v=f(v,m=f(m,l=f(l,g,v,m,n[e+12],6,1700485571),g,v,n[e+3],10,-1894986606),l,g,n[e+10],15,-1051523),m,l,n[e+1],21,-2054922799),v=f(v,m=f(m,l=f(l,g,v,m,n[e+8],6,1873313359),g,v,n[e+15],10,-30611744),l,g,n[e+6],15,-1560198380),m,l,n[e+13],21,1309151649),v=f(v,m=f(m,l=f(l,g,v,m,n[e+4],6,-145523070),g,v,n[e+11],10,-1120210379),l,g,n[e+2],15,718787259),m,l,n[e+9],21,-343485551),l=t(l,i),g=t(g,a),v=t(v,d),m=t(m,h);return[l,g,v,m]}function a(n){var t,r="",e=32*n.length;for(t=0;t<e;t+=8)r+=String.fromCharCode(n[t>>5]>>>t%32&255);return r}function d(n){var t,r=[];for(r[(n.length>>2)-1]=void 0,t=0;t<r.length;t+=1)r[t]=0;var e=8*n.length;for(t=0;t<e;t+=8)r[t>>5]|=(255&n.charCodeAt(t/8))<<t%32;return r}function h(n){return a(i(d(n),8*n.length))}function l(n,t){var r,e,o=d(n),u=[],c=[];for(u[15]=c[15]=void 0,o.length>16&&(o=i(o,8*n.length)),r=0;r<16;r+=1)u[r]=909522486^o[r],c[r]=1549556828^o[r];return e=i(u.concat(d(t)),512+8*t.length),a(i(c.concat(e),640))}function g(n){var t,r,e="";for(r=0;r<n.length;r+=1)t=n.charCodeAt(r),e+="0123456789abcdef".charAt(t>>>4&15)+"0123456789abcdef".charAt(15&t);return e}function v(n){return unescape(encodeURIComponent(n))}function m(n){return h(v(n))}function p(n){return g(m(n))}function s(n,t){return l(v(n),v(t))}function C(n,t){return g(s(n,t))}function A(n,t,r){return t?r?s(t,n):C(t,n):r?m(n):p(n)}"function"==typeof define&&define.amd?define(function(){return A}):"object"==typeof module&&module.exports?module.exports=A:n.md5=A}(this);
|
||||
//# sourceMappingURL=md5.min.js.map
|
||||
3
web/js/socket.io.min.js
vendored
Normal file
3
web/js/socket.io.min.js
vendored
Normal file
File diff suppressed because one or more lines are too long
344
web/js/user.js
Normal file
344
web/js/user.js
Normal file
@@ -0,0 +1,344 @@
|
||||
$(function () {
|
||||
user.btnAvatar();
|
||||
});
|
||||
var user = {};
|
||||
user.form = function (e) {
|
||||
common.modalBlock(true);
|
||||
$.ajax({
|
||||
url: $(e).attr("data-href"),
|
||||
type: 'POST',
|
||||
success: function (data) {
|
||||
common.modalBlock(false);
|
||||
common.modalOpen(data.form, false, data.title);
|
||||
$('#role').select2({
|
||||
tags: true,
|
||||
tokenSeparators: [',']
|
||||
});
|
||||
},
|
||||
error: function (jqXHR, textStatus, errorThrown) {
|
||||
common.modalBlock(false);
|
||||
common.ajaxError();
|
||||
}
|
||||
});
|
||||
};
|
||||
user.save = function (e) {
|
||||
var error = 0;
|
||||
var Name = user.checkName();
|
||||
if (!Name) {
|
||||
error++;
|
||||
}
|
||||
var Username = user.checkUsername();
|
||||
if (!Username) {
|
||||
error++;
|
||||
}
|
||||
var Role = user.checkRole();
|
||||
if (!Role) {
|
||||
error++;
|
||||
}
|
||||
var PhoneNumber = user.checkPhone();
|
||||
if (!PhoneNumber && PhoneNumber !== "") {
|
||||
error++;
|
||||
}
|
||||
var Email = user.checkEmail();
|
||||
if (!Email && Email !== "") {
|
||||
error++;
|
||||
}
|
||||
var Quota = user.checkQuota();
|
||||
if (!Quota) {
|
||||
error++;
|
||||
}
|
||||
if (error == 0) {
|
||||
common.modalBlock(true);
|
||||
$.ajax({
|
||||
url: $(e).attr("data-href"),
|
||||
type: 'POST',
|
||||
data: {
|
||||
Name: Name,
|
||||
Username: Username,
|
||||
Role: Role,
|
||||
PhoneNumber: PhoneNumber,
|
||||
Email: Email,
|
||||
Quota: Quota,
|
||||
Password: $("input[name='Password']").val()
|
||||
},
|
||||
success: function (data) {
|
||||
common.modalBlock(false);
|
||||
if (data.stt) {
|
||||
window.location.reload(true);
|
||||
} else {
|
||||
if (data.reason === "username") {
|
||||
user.error("username", "Tên đăng nhập đã tồn tại!");
|
||||
}
|
||||
if (data.reason === "email") {
|
||||
user.error("email", "Email đã được sử dụng!");
|
||||
}
|
||||
return;
|
||||
}
|
||||
},
|
||||
error: function (jqXHR, textStatus, errorThrown) {
|
||||
common.modalBlock(false);
|
||||
common.ajaxError();
|
||||
}
|
||||
});
|
||||
} else {
|
||||
return;
|
||||
}
|
||||
};
|
||||
user.saveInfo = function (e) {
|
||||
var error = 0;
|
||||
var Name = user.checkName();
|
||||
if (!Name) {
|
||||
error++;
|
||||
}
|
||||
var PhoneNumber = user.checkPhone();
|
||||
if (!PhoneNumber && PhoneNumber !== "") {
|
||||
error++;
|
||||
}
|
||||
var Email = user.checkEmail();
|
||||
if (!Email && Email !== "") {
|
||||
error++;
|
||||
}
|
||||
if (error == 0) {
|
||||
common.modalBlock(true);
|
||||
$.ajax({
|
||||
url: $(e).attr("data-href"),
|
||||
type: 'POST',
|
||||
data: {
|
||||
Name: Name,
|
||||
PhoneNumber: PhoneNumber,
|
||||
Email: Email
|
||||
},
|
||||
success: function (data) {
|
||||
common.modalBlock(false);
|
||||
if (data) {
|
||||
$("#success").removeClass("hidden");
|
||||
setTimeout(function () {
|
||||
$("#success").addClass("hidden");
|
||||
window.location.reload(true);
|
||||
}, 2000);
|
||||
} else {
|
||||
alert("Email đã được sử dụng!");
|
||||
}
|
||||
},
|
||||
error: function (jqXHR, textStatus, errorThrown) {
|
||||
common.modalBlock(false);
|
||||
common.ajaxError();
|
||||
}
|
||||
});
|
||||
} else {
|
||||
return;
|
||||
}
|
||||
};
|
||||
user.error = function (id, text) {
|
||||
$("#" + id).addClass("has-error").removeClass("has-success");
|
||||
$("#" + id).find(".help-block").html(text).removeClass("hidden");
|
||||
};
|
||||
user.success = function (id) {
|
||||
$("#" + id).addClass("has-success").removeClass("has-error");
|
||||
$("#" + id).find(".help-block").addClass("hidden");
|
||||
};
|
||||
user.checkName = function () {
|
||||
var Name = $("input[name='Name']").val();
|
||||
Name = Name.trim();
|
||||
if (Name === "") {
|
||||
user.error("name", "Hãy nhập họ tên!");
|
||||
return false;
|
||||
}
|
||||
var name = Name.split(" ");
|
||||
var pattern = /^\D*$/;
|
||||
if (pattern.test(Name)) {
|
||||
for (var i = 0; i < name.length; i++) {
|
||||
name[i] = name[i].charAt(0).toUpperCase() + name[i].slice(1).toLowerCase();
|
||||
}
|
||||
name = name.join(" ");
|
||||
$("input[name='Name']").val(name);
|
||||
user.success("name");
|
||||
return name;
|
||||
} else {
|
||||
user.error("name", "Họ tên không hợp lệ!");
|
||||
return false;
|
||||
}
|
||||
};
|
||||
user.checkUsername = function () {
|
||||
var Username = $("input[name='Username']").val();
|
||||
Username = Username.trim();
|
||||
if (Username === "") {
|
||||
user.error("username", "Hãy chọn tên đăng nhập!");
|
||||
return false;
|
||||
}
|
||||
Username = user.change_alias(Username);
|
||||
Username = Username.split(" ");
|
||||
Username = Username.join("");
|
||||
$("input[name='Username']").val(Username);
|
||||
user.success("username");
|
||||
return Username;
|
||||
};
|
||||
user.checkRole = function () {
|
||||
var Role = $("select[name='Role']").val();
|
||||
if (Role.length == 0) {
|
||||
user.error("roles", "Chưa phân quyền người dùng!");
|
||||
return false;
|
||||
}
|
||||
user.success("roles");
|
||||
return Role;
|
||||
};
|
||||
user.checkPhone = function () {
|
||||
var PhoneNumber = $("input[name='PhoneNumber']").val();
|
||||
if (PhoneNumber === "") {
|
||||
return PhoneNumber;
|
||||
}
|
||||
var pattern = /^[0-9]{10,11}$/;
|
||||
if (pattern.test(PhoneNumber)) {
|
||||
user.success("phone");
|
||||
return PhoneNumber;
|
||||
} else {
|
||||
user.error("phone", "Số điện thoại không hợp lệ");
|
||||
return false;
|
||||
}
|
||||
};
|
||||
user.checkEmail = function () {
|
||||
var Email = $("input[name='Email']").val();
|
||||
if (Email === "") {
|
||||
return Email;
|
||||
}
|
||||
var pattern = /^[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,4}$/;
|
||||
if (pattern.test(Email)) {
|
||||
user.success("email");
|
||||
return Email;
|
||||
} else {
|
||||
user.error("email", "Địa chỉ email không hợp lệ");
|
||||
return false;
|
||||
}
|
||||
};
|
||||
user.checkQuota = function () {
|
||||
var Quota = $("input[name='Quota']").val();
|
||||
if (Quota === "") {
|
||||
return Quota;
|
||||
}
|
||||
if (parseInt(Quota) > 0) {
|
||||
user.success("quota");
|
||||
return Quota;
|
||||
} else {
|
||||
user.error("quota", "Giới hạn dự án phải là số dương");
|
||||
return false;
|
||||
}
|
||||
};
|
||||
user.change_alias = function (alias) {
|
||||
var str = alias;
|
||||
str = str.toLowerCase();
|
||||
str = str.replace(/à|á|ạ|ả|ã|â|ầ|ấ|ậ|ẩ|ẫ|ă|ằ|ắ|ặ|ẳ|ẵ/g, "a");
|
||||
str = str.replace(/è|é|ẹ|ẻ|ẽ|ê|ề|ế|ệ|ể|ễ/g, "e");
|
||||
str = str.replace(/ì|í|ị|ỉ|ĩ/g, "i");
|
||||
str = str.replace(/ò|ó|ọ|ỏ|õ|ô|ồ|ố|ộ|ổ|ỗ|ơ|ờ|ớ|ợ|ở|ỡ/g, "o");
|
||||
str = str.replace(/ù|ú|ụ|ủ|ũ|ư|ừ|ứ|ự|ử|ữ/g, "u");
|
||||
str = str.replace(/ỳ|ý|ỵ|ỷ|ỹ/g, "y");
|
||||
str = str.replace(/đ/g, "d");
|
||||
str = str.replace(/!|@|%|\^|\*|\(|\)|\+|\=|\<|\>|\?|\/|,|\.|\:|\;|\'|\"|\&|\#|\[|\]|~|\$|_|`|-|{|}|\||\\/g, " ");
|
||||
str = str.replace(/ + /g, " ");
|
||||
str = str.trim();
|
||||
return str;
|
||||
};
|
||||
user.password = function (e) {
|
||||
var error = 0;
|
||||
var OldPassword = user.checkOldPassword();
|
||||
if (!OldPassword) {
|
||||
error++;
|
||||
}
|
||||
var NewPassword = user.checkNewPassword();
|
||||
if (!NewPassword) {
|
||||
error++;
|
||||
}
|
||||
var ReNewPassword = user.checkReNewPassword();
|
||||
if (!ReNewPassword) {
|
||||
error++;
|
||||
}
|
||||
if (error == 0) {
|
||||
common.modalBlock(true);
|
||||
$.ajax({
|
||||
url: $(e).attr("data-href"),
|
||||
type: 'POST',
|
||||
data: {
|
||||
NewPassword: NewPassword
|
||||
},
|
||||
success: function (data) {
|
||||
common.modalBlock(false);
|
||||
$("#success").removeClass("hidden");
|
||||
setTimeout(function () {
|
||||
$("#success").addClass("hidden");
|
||||
window.location.reload(true);
|
||||
}, 2000);
|
||||
},
|
||||
error: function (jqXHR, textStatus, errorThrown) {
|
||||
common.modalBlock(false);
|
||||
common.ajaxError();
|
||||
}
|
||||
});
|
||||
} else {
|
||||
return;
|
||||
}
|
||||
};
|
||||
user.checkOldPassword = function () {
|
||||
var OldPassword = $("input[name='OldPassword']").val();
|
||||
if (OldPassword === "") {
|
||||
user.error("old-password", "Hãy nhập mật khẩu cũ!");
|
||||
return false;
|
||||
} else {
|
||||
OldPassword = md5(OldPassword);
|
||||
var pass = $("input[name='password']").val();
|
||||
if (OldPassword === pass) {
|
||||
user.success("old-password");
|
||||
return true;
|
||||
} else {
|
||||
user.error("old-password", "Mật khẩu cũ không chính xác!");
|
||||
return false;
|
||||
}
|
||||
}
|
||||
};
|
||||
user.checkNewPassword = function () {
|
||||
var NewPassword = $("input[name='NewPassword']").val();
|
||||
if (NewPassword === "") {
|
||||
user.error("new-password", "Hãy nhập mật khẩu mới!");
|
||||
return false;
|
||||
} else {
|
||||
user.success("new-password");
|
||||
return NewPassword;
|
||||
}
|
||||
};
|
||||
user.checkReNewPassword = function () {
|
||||
var ReNewPassword = $("input[name='ReNewPassword']").val();
|
||||
if (ReNewPassword === "") {
|
||||
user.error("re-new-password", "Hãy nhắc lại mật khẩu mới!");
|
||||
return false;
|
||||
} else {
|
||||
var NewPassword = $("input[name='NewPassword']").val();
|
||||
if (NewPassword === ReNewPassword) {
|
||||
user.success("re-new-password");
|
||||
return true;
|
||||
} else {
|
||||
user.error("re-new-password", "Nhắc lại mật khẩu mới không đúng!");
|
||||
return false;
|
||||
}
|
||||
}
|
||||
};
|
||||
user.btnAvatar = function () {
|
||||
var fData = {
|
||||
UploadImage: true
|
||||
};
|
||||
fData[common.csrfParam] = common.csrf;
|
||||
new afuButton({
|
||||
uploadURI: $("input[name='url_upload_avatar']").val(),
|
||||
formData: fData,
|
||||
wrap: {
|
||||
tagName: 'div',
|
||||
classes: ''
|
||||
},
|
||||
fileExtension: '.png,.jpg,.jpeg,.gif',
|
||||
fileSizeLimit: 1,
|
||||
classes: 'btn btn-default',
|
||||
fakeInputContent: '<span class=\'fa fa-file-image-o\'></span> Chọn hình ảnh',
|
||||
onUploaded: function (data) {
|
||||
common.modalBlock(false);
|
||||
window.location.reload(true);
|
||||
}
|
||||
}).addInstance('image');
|
||||
};
|
||||
62
web/js/vehicle.js
Normal file
62
web/js/vehicle.js
Normal file
@@ -0,0 +1,62 @@
|
||||
$(function () {
|
||||
|
||||
});
|
||||
|
||||
function _form(e) {
|
||||
common.modalBlock(true);
|
||||
$.ajax({
|
||||
url: $(e).attr("data-href"),
|
||||
type: 'POST',
|
||||
success: function (data) {
|
||||
common.modalBlock(false);
|
||||
common.modalOpen(data.form, false, data.title);
|
||||
},
|
||||
error: function (jqXHR, textStatus, errorThrown) {
|
||||
common.modalBlock(false);
|
||||
common.ajaxError();
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
function _save(e) {
|
||||
var error = 0;
|
||||
var plate = $("input[name='Plate']").val();
|
||||
if (plate === "") {
|
||||
common.error("plate", "Hãy nhập biển số xe!");
|
||||
error++;
|
||||
} else {
|
||||
common.success("plate");
|
||||
}
|
||||
var type = $("input[name='Type']").val();
|
||||
if (type === "") {
|
||||
common.error("type", "Hãy nhập loại xe!");
|
||||
error++;
|
||||
} else {
|
||||
common.success("type");
|
||||
}
|
||||
if (error == 0) {
|
||||
common.modalBlock(true);
|
||||
$.ajax({
|
||||
url: $(e).attr("data-href"),
|
||||
type: 'POST',
|
||||
data: {
|
||||
plate: plate,
|
||||
type: type,
|
||||
company: $("input[name='Company']").val(),
|
||||
vehicleType: $("input[name='VehicleType']").val(),
|
||||
driver: $("input[name='Driver']").val(),
|
||||
telephone: $("input[name='Telephone']").val(),
|
||||
cmt: $("input[name='CMT']").val()
|
||||
},
|
||||
success: function (data) {
|
||||
common.modalBlock(false);
|
||||
alert("Đã lưu thông tin thành công!");
|
||||
window.location.reload(true);
|
||||
},
|
||||
error: function (jqXHR, textStatus, errorThrown) {
|
||||
common.modalBlock(false);
|
||||
common.ajaxError();
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user