From fbfdc438eaf2a70d5fefda74c919edc76e82d0fd Mon Sep 17 00:00:00 2001
From: Pascal Dreissen <pascal@dreissen.nl>
Date: Tue, 05 Jul 2016 04:00:30 -0400
Subject: [PATCH] Fixed IPV6 regex https://git.ispconfig.org/ispconfig/ispconfig3/issues/4002
---
interface/web/themes/default/assets/javascripts/ispconfig.js | 215 ++++++++++++++++++++++++++++++++++-------------------
1 files changed, 139 insertions(+), 76 deletions(-)
diff --git a/interface/web/themes/default/assets/javascripts/ispconfig.js b/interface/web/themes/default/assets/javascripts/ispconfig.js
index bc5c988..a726d0a 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) {
@@ -23,11 +23,7 @@
},
reportError: function(request) {
- /* Error reporting is disabled by default as some browsers like safari
- sometimes throw errors when a ajax request is delayed even if the
- ajax request worked. */
-
- /*alert(request);*/
+
},
registerHook: function(name, callback) {
@@ -91,7 +87,7 @@
placeholder: '',
width: 'element',
selectOnBlur: true,
- allowClear: true,
+ allowClear: true
});
}
},
@@ -121,56 +117,25 @@
});
}
- ISPConfig.callHook('onAfterContentLoad', {'url': url, 'data': data });
- },
-
- /* THIS ONE SHOULD BE REMOVED AFTER CREATING THE STATIC LOGIN PAGE!!! */
- submitLoginForm: function(formname) {
- //* Validate form. TODO: username and password with strip();
- var frm = document.getElementById(formname);
- var userNameObj = frm.username;
- if(userNameObj.value == ''){
- userNameObj.focus();
- return;
- }
- var passwordObj = frm.passwort;
- if(passwordObj.value == ''){
- passwordObj.focus();
- return;
- }
-
- $('#dummy_username').val(userNameObj.value);
- $('#dummy_passwort').val(passwordObj.value);
- $('#dummy_login_form').submit();
-
- var submitFormObj = $.ajax({
- type: "POST",
- url: "content.php",
- data: $('#'+formname).serialize(),
- dataType: "html",
- beforeSend: function() {
- ISPConfig.showLoadIndicator();
- },
- success: function(data, textStatus, jqXHR) {
- 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('content.php', $('#'+formname).serialize());
- ISPConfig.pageFormChanged = false;
- }
- ISPConfig.loadMenus();
- ISPConfig.hideLoadIndicator();
- },
- error: function() {
- ISPConfig.hideLoadIndicator();
- ISPConfig.reportError('Ajax Request was not successful.110');
- }
+ $('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 });
},
submitForm: function(formname, target, confirmation) {
@@ -191,6 +156,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 +184,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) {
@@ -290,11 +267,6 @@
var newUrl= jqXHR.responseText.substr(jqXHR.responseText.indexOf('URL_REDIRECT:') + "URL_REDIRECT:".length);
document.location.href = newUrl;
} else {
- //document.getElementById('pageContent').innerHTML = jqXHR.responseText;
- //var reponse = $(jqXHR.responseText);
- //var reponseScript = reponse.filter("script");
- //$.each(reponseScript, function(idx, val) { eval(val.text); } );
-
$('#pageContent').html(jqXHR.responseText);
ISPConfig.onAfterContentLoad(pagename, (params ? params : null));
ISPConfig.pageFormChanged = false;
@@ -334,10 +306,12 @@
},
loadInitContent: function() {
+ var startpage = $('#pageContent').attr('data-startpage');
+ if(!startpage) startpage = 'dashboard/dashboard.php';
var pageContentObject = $.ajax({
type: "GET",
- url: "content.php",
- data: "s_mod=login&s_pg=index",
+ url: startpage,
+ data: "",
dataType: "html",
beforeSend: function() {
ISPConfig.showLoadIndicator();
@@ -348,7 +322,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();
@@ -412,7 +386,10 @@
},
changeTab: function(tab, target, force) {
- if(ISPConfig.requestsRunning > 0) return false;
+ if(ISPConfig.requestsRunning > 0) {
+ console.log('tab change interrupted, request still running.');
+ return false;
+ }
document.pageForm.next_tab.value = tab;
@@ -464,7 +441,7 @@
});
},
- loadOptionInto: function(elementid,pagename) {
+ loadOptionInto: function(elementid,pagename,callback) {
var pageContentObject2 = $.ajax({
type: "GET",
url: pagename,
@@ -481,6 +458,9 @@
foo2.appendChild(document.createTextNode(elemente[i]));
foo2.value=elemente[i];
el.appendChild(foo2);
+ }
+ if (typeof(callback) != 'undefined') {
+ callback(elementid,pagename);
}
},
error: function() {
@@ -583,8 +563,18 @@
}
});
+var $page = $('html, body');
+
$(document).on('click', 'a[data-load-content],button[data-load-content]', function(e) {
- //e.preventDefault();
+ e.preventDefault();
+ if(ISPConfig.requestsRunning > 0) {
+ console.log('preventing click because there is still a request running.');
+ return;
+ }
+
+ $page.on('scroll mousedown wheel DOMMouseScroll mousewheel keyup touchmove', function() { $page.stop(); });
+ $page.animate({scrollTop: 0}, 1000, function() { $page.off('scroll mousedown wheel DOMMouseScroll mousewheel keyup touchmove', function() { $page.stop(); }); });
+
var content_to_load = $(this).attr('data-load-content');
if(!content_to_load) return this;
@@ -592,7 +582,15 @@
});
$(document).on('click', 'a[data-capp],button[data-capp]', function(e) {
- //e.preventDefault();
+ e.preventDefault();
+ if(ISPConfig.requestsRunning > 0) {
+ console.log('preventing click because there is still a request running.');
+ return;
+ }
+
+ $page.on('scroll mousedown wheel DOMMouseScroll mousewheel keyup touchmove', function() { $page.stop(); });
+ $page.animate({scrollTop: 0}, 1000, function() { $page.off('scroll mousedown wheel DOMMouseScroll mousewheel keyup touchmove', function() { $page.stop(); }); });
+
var content_to_load = $(this).attr('data-capp');
if(!content_to_load) return this;
@@ -600,7 +598,14 @@
});
$(document).on('click', 'a[data-submit-form],button[data-submit-form]', function(e) {
- //e.preventDefault();
+ e.preventDefault();
+ if(ISPConfig.requestsRunning > 0) {
+ console.log('preventing click because there is still a request running.');
+ return;
+ }
+
+ $page.on('scroll mousedown wheel DOMMouseScroll mousewheel keyup touchmove', function() { $page.stop(); });
+ $page.animate({scrollTop: 0}, 1000, function() { $page.off('scroll mousedown wheel DOMMouseScroll mousewheel keyup touchmove', function() { $page.stop(); }); });
var $el = $(this);
var act = $el.attr('data-form-action');
@@ -617,9 +622,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 +640,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 +668,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 +737,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