From 28cd07d1a75c4e9dcaecac49efee0091f2fc62fa Mon Sep 17 00:00:00 2001
From: A. Täffner <darkalex@firesplash.de>
Date: Thu, 07 Apr 2016 05:30:49 -0400
Subject: [PATCH] Implemented a checkbox "enable DNSSEC" in DNS-Wizard. This Checkbox can be enabled or disabled by template.
---
interface/web/themes/default/assets/javascripts/ispconfig.js | 132 ++++++++++++++++++++++++++++++++++++++------
1 files changed, 114 insertions(+), 18 deletions(-)
diff --git a/interface/web/themes/default/assets/javascripts/ispconfig.js b/interface/web/themes/default/assets/javascripts/ispconfig.js
index bc5c988..7d7dd3f 100644
--- a/interface/web/themes/default/assets/javascripts/ispconfig.js
+++ b/interface/web/themes/default/assets/javascripts/ispconfig.js
@@ -11,7 +11,7 @@
options: {
useLoadIndicator: false,
- useComboBox: false,
+ useComboBox: false
},
setOption: function(key, value) {
@@ -91,7 +91,7 @@
placeholder: '',
width: 'element',
selectOnBlur: true,
- allowClear: true,
+ allowClear: true
});
}
},
@@ -121,11 +121,29 @@
});
}
+ $('input[data-input-element="date"]').datetimepicker({
+ 'language': 'en', // TODO
+ 'todayHighlight': true,
+ 'todayBtn': 'linked',
+ 'bootcssVer': 3,
+ 'fontAwesome': true,
+ 'autoclose': true,
+ 'minView': 'month'
+ });
+ $('input[data-input-element="datetime"]').datetimepicker({
+ 'language': 'en', // TODO
+ 'todayHighlight': true,
+ 'todayBtn': 'linked',
+ 'bootcssVer': 3,
+ 'fontAwesome': true,
+ 'autoclose': true
+ });
+
ISPConfig.callHook('onAfterContentLoad', {'url': url, 'data': data });
},
/* THIS ONE SHOULD BE REMOVED AFTER CREATING THE STATIC LOGIN PAGE!!! */
- submitLoginForm: function(formname) {
+ /*submitLoginForm: function(formname) {
//* Validate form. TODO: username and password with strip();
var frm = document.getElementById(formname);
var userNameObj = frm.username;
@@ -171,7 +189,7 @@
ISPConfig.reportError('Ajax Request was not successful.110');
}
});
- },
+ },*/
submitForm: function(formname, target, confirmation) {
var successMessage = arguments[3];
@@ -191,6 +209,9 @@
if(jqXHR.responseText.indexOf('HEADER_REDIRECT:') > -1) {
var parts = jqXHR.responseText.split(':');
ISPConfig.loadContent(parts[1]);
+ } else if (jqXHR.responseText.indexOf('LOGIN_REDIRECT:') > -1) {
+ // Go to the login page
+ document.location.href = '/index.php';
} else {
$('#pageContent').html(jqXHR.responseText);
ISPConfig.onAfterContentLoad(target, $('#'+formname).serialize());
@@ -216,29 +237,38 @@
} catch(e) {
response = responseStr;
}
+ var $response = $('<div></div>').html(response);
var msg = '';
- var okmsg = $('#OKMsg',response).html();
+ var okmsg = $response.find('#OKMsg').html();
if(okmsg){
msg = '<div id="OKMsg">'+okmsg+'</div>';
}
- var errormsg = $('#errorMsg',response).html();
+ var errormsg = $response.find('#errorMsg').html();
if(errormsg){
msg = msg+'<div id="errorMsg">'+errormsg+'</div>';
}
+
+ var csrf_key = $response.find('input[name="_csrf_key"]').val();
+ var csrf_id = $response.find('input[name="_csrf_id"]').val();
+
+ msg = msg + '<input type="hidden" name="_csrf_id" value="' + csrf_id + '" /><input type="hidden" name="_csrf_key" value="' + csrf_key + '" />';
+
return msg;
};
var frame_id = 'ajaxUploader-iframe-' + Math.round(new Date().getTime() / 1000);
- $('body').after('<iframe width="0" height="0" style="display:none;" name="'+frame_id+'" id="'+frame_id+'"/>');
- $('input[type="file"]').closest("form").attr({target: frame_id, action: target}).submit();
+ $('body').append('<iframe width="0" height="0" style="display:none;" name="'+frame_id+'" id="'+frame_id+'"/>');
$('#'+frame_id).load(function() {
var msg = handleResponse(this);
$('#errorMsg').remove();
$('#OKMsg').remove();
+ $('input[name="_csrf_key"]').remove();
+ $('input[name="_csrf_id"]').remove();
$('input[name="id"]').before(msg);
$(this).remove();
});
+ $('input[type="file"]').closest("form").attr({target: frame_id, action: target}).submit();
},
capp: function(module, redirect) {
@@ -336,8 +366,8 @@
loadInitContent: function() {
var pageContentObject = $.ajax({
type: "GET",
- url: "content.php",
- data: "s_mod=login&s_pg=index",
+ url: "dashboard/dashboard.php",
+ data: "",
dataType: "html",
beforeSend: function() {
ISPConfig.showLoadIndicator();
@@ -348,7 +378,7 @@
ISPConfig.loadContent(parts[1]);
} else {
$('#pageContent').html(jqXHR.responseText);
- ISPConfig.onAfterContentLoad('content.php', "s_mod=login&s_pg=index");
+ ISPConfig.onAfterContentLoad('dashboard/dashboard.php', "");
ISPConfig.pageFormChanged = false;
}
ISPConfig.hideLoadIndicator();
@@ -464,7 +494,7 @@
});
},
- loadOptionInto: function(elementid,pagename) {
+ loadOptionInto: function(elementid,pagename,callback) {
var pageContentObject2 = $.ajax({
type: "GET",
url: pagename,
@@ -481,6 +511,9 @@
foo2.appendChild(document.createTextNode(elemente[i]));
foo2.value=elemente[i];
el.appendChild(foo2);
+ }
+ if (typeof(callback) != 'undefined') {
+ callback(elementid,pagename);
}
},
error: function() {
@@ -584,7 +617,9 @@
});
$(document).on('click', 'a[data-load-content],button[data-load-content]', function(e) {
- //e.preventDefault();
+ e.preventDefault();
+ $('html, body').animate({scrollTop: 0}, 1000);
+
var content_to_load = $(this).attr('data-load-content');
if(!content_to_load) return this;
@@ -592,7 +627,9 @@
});
$(document).on('click', 'a[data-capp],button[data-capp]', function(e) {
- //e.preventDefault();
+ e.preventDefault();
+ $('html, body').animate({scrollTop: 0}, 1000);
+
var content_to_load = $(this).attr('data-capp');
if(!content_to_load) return this;
@@ -600,7 +637,8 @@
});
$(document).on('click', 'a[data-submit-form],button[data-submit-form]', function(e) {
- //e.preventDefault();
+ e.preventDefault();
+ $('html, body').animate({scrollTop: 0}, 1000);
var $el = $(this);
var act = $el.attr('data-form-action');
@@ -617,9 +655,9 @@
$("#pageForm .table #Filter").trigger('click');
}
//Use $ submit with keypress Enter in forms
- if (event.which == '13' && $(".pnl_formsarea button.positive").length > 0 && event.target.localName != 'textarea' && $(event.target).is(':input')) {
+ if (event.which == '13' && $(".tab-content button.formbutton-success").length > 0 && event.target.localName != 'textarea' && $(event.target).is(':input')) {
event.preventDefault();
- $(".pnl_formsarea button.positive:first").not("[disabled='disabled']").trigger('click');
+ $(".tab-content button.formbutton-success").not("[disabled='disabled']").trigger('click');
}
});
@@ -635,7 +673,11 @@
var dir = $self.attr('data-ordered');
- act = act + '?orderby=' + column;
+ var separator = '?';
+ if(act.indexOf("?") >= 0){
+ separator = '&';
+ }
+ act = act + separator + 'orderby=' + column;
ISPConfig.submitForm(form, act);
$(document).ajaxComplete(function() {
@@ -659,6 +701,29 @@
var template2 = $(this).siblings(':input');
template2.insertAtCaret(placeholderContentText);
});
+
+$(document).on("click", "[data-check-fields] > input[type='checkbox']", function() {
+ if($(this).is(':checked')) {
+ var flds = $(this).parent().attr('data-check-fields');
+ var tmp = flds.split(/,/);
+ for(var i = 0; i < tmp.length; i++) {
+ var fname = tmp[i];
+ $('input[type="checkbox"][name="' + fname + '"]').prop('checked', true);
+ }
+ }
+});
+
+$(document).on("click", "[data-uncheck-fields] > input[type='checkbox']", function() {
+ if($(this).is(':checked') == false) {
+ var flds = $(this).parent().attr('data-uncheck-fields');
+ var tmp = flds.split(/,/);
+ for(var i = 0; i < tmp.length; i++) {
+ var fname = tmp[i];
+ $('input[type="checkbox"][name="' + fname + '"]').prop('checked', false);
+ }
+ }
+});
+
$(document).on('ready', function () {
$.fn.extend({
@@ -705,4 +770,35 @@
e.preventDefault();
}
});
+
+ $.fn.setCursorPosition = function(pos) {
+ var self = $(this).get(0);
+ if(self.setSelectionRange) {
+ self.setSelectionRange(pos, pos);
+ } else if(self.createTextRange) {
+ var range = self.createTextRange();
+ range.collapse(true);
+ if(pos < 0) {
+ pos = $(this).val().length + pos;
+ }
+ range.moveEnd('character', pos);
+ range.moveStart('character', pos);
+ range.select();
+ }
+ };
+
+ $.fn.getCursorPosition = function() {
+ var iCaretPos = 0;
+ var self = $(this).get(0);
+
+ if(typeof self.selectionStart === 'number') {
+ iCaretPos = self.selectionDirection == 'backward' ? self.selectionStart : self.selectionEnd;
+ } else if(document.selection) {
+ this.focus();
+ var oSel = document.selection.createRange();
+ oSel.moveStart('character', -self.value.length);
+ iCaretPos = oSel.text.length;
+ }
+ return iCaretPos;
+ };
});
--
Gitblit v1.9.1