|
@@ -35,92 +35,77 @@
|
|
|
}, 1000);
|
|
|
};
|
|
|
|
|
|
- function FormToAjax() {
|
|
|
- $('form').each(function() {
|
|
|
- $(this).submit(function(e) {
|
|
|
- var form = $(this);
|
|
|
- if(form.hasClass('loading')) {
|
|
|
- e.preventDefault();
|
|
|
- return;
|
|
|
- }
|
|
|
-
|
|
|
- // Block send button
|
|
|
- form.addClass('loading').addClass('alert-here');
|
|
|
- var button = $(this).find('button[type=submit]');
|
|
|
- button.addClass('progress-bar-striped')
|
|
|
- .addClass('progress-bar-animated');
|
|
|
-
|
|
|
- // Another button
|
|
|
- if(button.attr('data-target') != '') {
|
|
|
- $('#' + button.attr('data-target')).addClass('progress-bar-striped')
|
|
|
- .addClass('progress-bar-animated');
|
|
|
- }
|
|
|
-
|
|
|
- // Clear form messages
|
|
|
- form.find('.sys-messages').html('');
|
|
|
-
|
|
|
- $.ajax({
|
|
|
- type: "POST",
|
|
|
- url: form.attr('action'),
|
|
|
- data: form.serialize()
|
|
|
- }).done(function(data) {
|
|
|
- FormDataWasChanged = false;
|
|
|
- AjaxDone(data)
|
|
|
- }).fail(function(xhr, status, error) {
|
|
|
- AjaxFail(xhr.responseText, status, error);
|
|
|
- }).always(function() {
|
|
|
- // Add delay for one second
|
|
|
- setTimeout(function() {
|
|
|
- form.removeClass('loading').removeClass('alert-here');
|
|
|
- button.removeClass('progress-bar-striped').removeClass('progress-bar-animated');
|
|
|
- // Another button
|
|
|
- if(button.attr('data-target') != '') {
|
|
|
- $('#' + button.attr('data-target')).removeClass('progress-bar-striped').removeClass('progress-bar-animated');
|
|
|
- }
|
|
|
- }, 100);
|
|
|
- });
|
|
|
-
|
|
|
- // Prevent submit action
|
|
|
+ function FormToAjax(form) {
|
|
|
+ form.submit(function(e) {
|
|
|
+ if(form.hasClass('loading')) {
|
|
|
e.preventDefault();
|
|
|
- });
|
|
|
+ return;
|
|
|
+ }
|
|
|
|
|
|
- // Bind to another button
|
|
|
- var button = $(this).find('button[type=submit]');
|
|
|
+ // Block send button
|
|
|
+ form.addClass('loading').addClass('alert-here');
|
|
|
+ var button = form.find('button[type=submit]');
|
|
|
+ button.addClass('progress-bar-striped')
|
|
|
+ .addClass('progress-bar-animated');
|
|
|
+
|
|
|
+ // Another button
|
|
|
if(button.attr('data-target') != '') {
|
|
|
- $('#' + button.attr('data-target')).click(function() {
|
|
|
- button.click();
|
|
|
- });
|
|
|
+ $('#' + button.attr('data-target')).addClass('progress-bar-striped')
|
|
|
+ .addClass('progress-bar-animated');
|
|
|
}
|
|
|
|
|
|
- // Mark body if any data in form was changed
|
|
|
- if($(this).hasClass('prev-data-lost')) {
|
|
|
- $(this).find('input, textarea, select').on('input', function() {
|
|
|
- if(!FormDataWasChanged) {
|
|
|
- FormDataWasChanged = true;
|
|
|
+ // Clear form messages
|
|
|
+ form.find('.sys-messages').html('');
|
|
|
+
|
|
|
+ $.ajax({
|
|
|
+ type: "POST",
|
|
|
+ url: form.attr('action'),
|
|
|
+ data: form.serialize()
|
|
|
+ }).done(function(data) {
|
|
|
+ FormDataWasChanged = false;
|
|
|
+ AjaxDone(data)
|
|
|
+ }).fail(function(xhr, status, error) {
|
|
|
+ AjaxFail(xhr.responseText, status, error);
|
|
|
+ }).always(function() {
|
|
|
+ // Add delay for one second
|
|
|
+ setTimeout(function() {
|
|
|
+ form.removeClass('loading').removeClass('alert-here');
|
|
|
+ button.removeClass('progress-bar-striped')
|
|
|
+ .removeClass('progress-bar-animated');
|
|
|
+ // Another button
|
|
|
+ if(button.attr('data-target') != '') {
|
|
|
+ $('#' + button.attr('data-target'))
|
|
|
+ .removeClass('progress-bar-striped')
|
|
|
+ .removeClass('progress-bar-animated');
|
|
|
}
|
|
|
- });
|
|
|
- }
|
|
|
+ }, 100);
|
|
|
+ });
|
|
|
+
|
|
|
+ // Prevent submit action
|
|
|
+ e.preventDefault();
|
|
|
});
|
|
|
+
|
|
|
+ // Bind to another button
|
|
|
+ var button = form.find('button[type=submit]');
|
|
|
+ if(button.attr('data-target') != '') {
|
|
|
+ $('#' + button.attr('data-target')).click(function() {
|
|
|
+ button.click();
|
|
|
+ });
|
|
|
+ }
|
|
|
+
|
|
|
+ // Mark body if any data in form was changed
|
|
|
+ if(form.hasClass('prev-data-lost')) {
|
|
|
+ form.find('input, textarea, select').on('input', function() {
|
|
|
+ if(!FormDataWasChanged) {
|
|
|
+ FormDataWasChanged = true;
|
|
|
+ }
|
|
|
+ });
|
|
|
+ }
|
|
|
};
|
|
|
|
|
|
- function FixFormInModal() {
|
|
|
- // Remove alert from modal on close
|
|
|
- $('.modal.fade').on('hidden.bs.modal', function() {
|
|
|
- modal_alert_place = $(this).find('.sys-messages');
|
|
|
- if(modal_alert_place.length) {
|
|
|
- modal_alert_place.html('');
|
|
|
- }
|
|
|
- // Reset form at modal close
|
|
|
- form = $(this).find('form');
|
|
|
- if(form.length) {
|
|
|
- form[0].reset();
|
|
|
- }
|
|
|
- }).on('show.bs.modal', function() {
|
|
|
- // Reset form at modal open
|
|
|
- form = $(this).find('form');
|
|
|
- if(form.length) {
|
|
|
- form[0].reset();
|
|
|
- }
|
|
|
+ function AllFormsToAjax() {
|
|
|
+ $('form').each(function() {
|
|
|
+ FormToAjax($(this));
|
|
|
});
|
|
|
};
|
|
|
|
|
@@ -136,8 +121,7 @@
|
|
|
function Initialize() {
|
|
|
// Check if jQuery was loaded
|
|
|
if(typeof $ == 'function') {
|
|
|
- FormToAjax();
|
|
|
- FixFormInModal();
|
|
|
+ AllFormsToAjax();
|
|
|
BindWindowBeforeUnload();
|
|
|
} else {
|
|
|
console.log('Error: jQuery is not loaded!');
|
|
@@ -163,6 +147,59 @@
|
|
|
ShowSystemMsg(title, message, true);
|
|
|
},
|
|
|
|
|
|
+ ModalUserProfile: function() {
|
|
|
+ var html = '<div class="modal fade" id="sys-modal-user-settings" tabindex="-1" role="dialog" aria-labelledby="sysModalUserSettingsLabel" aria-hidden="true"> \
|
|
|
+ <div class="modal-dialog modal-dialog-centered" role="document"> \
|
|
|
+ <div class="modal-content"> \
|
|
|
+ <form class="form-user-settings" action="/cp/" method="post" autocomplete="off"> \
|
|
|
+ <input type="hidden" name="action" value="index-user-update-profile"> \
|
|
|
+ <div class="modal-header"> \
|
|
|
+ <h5 class="modal-title" id="sysModalUserSettingsLabel">My profile</h5> \
|
|
|
+ <button type="button" class="close" data-dismiss="modal" aria-label="Close"> \
|
|
|
+ <span aria-hidden="true">×</span> \
|
|
|
+ </button> \
|
|
|
+ </div> \
|
|
|
+ <div class="modal-body text-left"> \
|
|
|
+ <div class="form-group"> \
|
|
|
+ <label for="first_name">First name</label> \
|
|
|
+ <input type="text" class="form-control" id="first_name" name="first_name" value="' + window.CurrentUserProfileData.first_name + '" placeholder="User first name" autocomplete="off"> \
|
|
|
+ </div> \
|
|
|
+ <div class="form-group"> \
|
|
|
+ <label for="last_name">Last name</label> \
|
|
|
+ <input type="text" class="form-control" id="last_name" name="last_name" value="' + window.CurrentUserProfileData.last_name + '" placeholder="User last name" autocomplete="off"> \
|
|
|
+ </div> \
|
|
|
+ <div class="form-group"> \
|
|
|
+ <label for="email">Email</label> \
|
|
|
+ <input type="email" class="form-control" id="email" name="email" value="' + window.CurrentUserProfileData.email + '" placeholder="User email" autocomplete="off" required> \
|
|
|
+ </div> \
|
|
|
+ <div class="form-group"> \
|
|
|
+ <label for="password">New password</label> \
|
|
|
+ <input type="password" class="form-control" id="password" aria-describedby="passwordHelp" name="password" value="" placeholder="User new password" autocomplete="off"> \
|
|
|
+ <small id="passwordHelp" class="form-text text-muted">Leave this field empty if you don\'t want change your password</small> \
|
|
|
+ </div> \
|
|
|
+ <div class="sys-messages"></div> \
|
|
|
+ </div> \
|
|
|
+ <div class="modal-footer"> \
|
|
|
+ <button type="submit" class="btn btn-primary">Save</button> \
|
|
|
+ <button type="button" class="btn btn-secondary" data-dismiss="modal">Cancel</button> \
|
|
|
+ </div> \
|
|
|
+ </form> \
|
|
|
+ </div> \
|
|
|
+ </div> \
|
|
|
+ </div>';
|
|
|
+ $('#sys-modal-user-settings-placeholder').html(html);
|
|
|
+ $("#sys-modal-user-settings").modal({
|
|
|
+ backdrop: 'static',
|
|
|
+ keyboard: false,
|
|
|
+ show: false,
|
|
|
+ });
|
|
|
+ $('#sys-modal-user-settings').on('hidden.bs.modal', function(e) {
|
|
|
+ $('#sys-modal-user-settings-placeholder').html('');
|
|
|
+ });
|
|
|
+ FormToAjax($('#sys-modal-user-settings form'));
|
|
|
+ $("#sys-modal-user-settings").modal('show');
|
|
|
+ },
|
|
|
+
|
|
|
ActionLogout: function(message) {
|
|
|
if(confirm(message)) {
|
|
|
$.ajax({
|