Updated hints to handle native browser's paste events

Hint is update in case page is reloaded and value is set (in case of form errors)
Hints are now using secure inserting into DOM avoiding xss
Dns record hint added
This commit is contained in:
very-twi@github.com 2014-02-12 12:08:23 +02:00
commit c50c7b2675
6 changed files with 211 additions and 84 deletions

View file

@ -1,44 +1,70 @@
//
//
// Updates database username dynamically, showing its prefix
App.Actions.DB.update_db_username_hint = function(elm, hint) {
if (hint.trim() == '') {
$(elm).parent().find('.hint').html('');
}
if (hint.indexOf(GLOBAL.DB_USER_PREFIX) == 0) {
hint = hint.slice(GLOBAL.DB_USER_PREFIX.length, hint.length);
}
$(elm).parent().find('.hint').html(GLOBAL.DB_USER_PREFIX + hint);
if (hint.trim() == '') {
$(elm).parent().find('.hint').html('');
}
// remove prefix from value in order to eliminate duplicates
if (hint.indexOf(GLOBAL.DB_USER_PREFIX) == 0) {
hint = hint.slice(GLOBAL.DB_USER_PREFIX.length, hint.length);
}
$(elm).parent().find('.hint').text(GLOBAL.DB_USER_PREFIX + hint);
}
//
//
// Updates database name dynamically, showing its prefix
App.Actions.DB.update_db_databasename_hint = function(elm, hint) {
if (hint.trim() == '') {
$(elm).parent().find('.hint').html('');
}
if (hint.indexOf(GLOBAL.DB_DBNAME_PREFIX) == 0) {
hint = hint.slice(GLOBAL.DB_DBNAME_PREFIX.length, hint.length);
}
$(elm).parent().find('.hint').html(GLOBAL.DB_DBNAME_PREFIX + hint);
if (hint.trim() == '') {
$(elm).parent().find('.hint').html('');
}
// remove prefix from value in order to eliminate duplicates
if (hint.indexOf(GLOBAL.DB_DBNAME_PREFIX) == 0) {
hint = hint.slice(GLOBAL.DB_DBNAME_PREFIX.length, hint.length);
}
$(elm).parent().find('.hint').text(GLOBAL.DB_DBNAME_PREFIX + hint);
}
//
// listener that triggers database user hint updating
App.Listeners.DB.keypress_db_username = function() {
$('input[name="v_dbuser"]').bind('keypress', function(evt) {
clearTimeout(window.frp_usr_tmt);
window.frp_usr_tmt = setTimeout(function() {
var elm = $(evt.target);
App.Actions.DB.update_db_username_hint(elm, $(elm).val());
}, 100);
});
var ref = $('input[name="v_dbuser"]');
var current_val = ref.val();
if (current_val.trim() != '') {
App.Actions.DB.update_db_username_hint(ref, current_val);
}
ref.bind('keypress input', function(evt) {
clearTimeout(window.frp_usr_tmt);
window.frp_usr_tmt = setTimeout(function() {
var elm = $(evt.target);
App.Actions.DB.update_db_username_hint(elm, $(elm).val());
}, 100);
});
}
//
// listener that triggers database name hint updating
App.Listeners.DB.keypress_db_databasename = function() {
$('input[name="v_database"]').bind('keypress', function(evt) {
clearTimeout(window.frp_dbn_tmt);
window.frp_dbn_tmt = setTimeout(function() {
var elm = $(evt.target);
App.Actions.DB.update_db_databasename_hint(elm, $(elm).val());
}, 100);
});
var ref = $('input[name="v_database"]');
var current_val = ref.val();
if (current_val.trim() != '') {
App.Actions.DB.update_db_databasename_hint(ref, current_val);
}
ref.bind('keypress input', function(evt) {
clearTimeout(window.frp_dbn_tmt);
window.frp_dbn_tmt = setTimeout(function() {
var elm = $(evt.target);
App.Actions.DB.update_db_databasename_hint(elm, $(elm).val());
}, 100);
});
}
//
// Page entry point
// Trigger listeners
App.Listeners.DB.keypress_db_username();
App.Listeners.DB.keypress_db_databasename();

View file

@ -0,0 +1,49 @@
//
//
// Updates database dns record dynamically, showing its full domain path
App.Actions.DB.update_dns_record_hint = function(elm, hint) {
// clean hint
if (hint.trim() == '') {
$(elm).parent().find('.hint').html('');
}
// set domain name without rec in case of @ entries
if (hint == '@') {
hint = '';
}
// dont show pregix if domain name = rec value
if (hint == GLOBAL.DNS_REC_PREFIX || hint + '.' == GLOBAL.DNS_REC_PREFIX) {
hint = '';
}
// add dot at the end if needed
if (hint != '' && hint.slice(-1) != '.') {
hint += '.';
}
$(elm).parent().find('.hint').text(hint + GLOBAL.DNS_REC_PREFIX);
}
//
// listener that triggers dns record name hint updating
App.Listeners.DB.keypress_dns_rec_entry = function() {
var ref = $('input[name="v_rec"]');
var current_rec = ref.val();
if (current_rec.trim() != '') {
App.Actions.DB.update_dns_record_hint(ref, current_rec);
}
ref.bind('keypress input', function(evt) {
clearTimeout(window.frp_usr_tmt);
window.frp_usr_tmt = setTimeout(function() {
var elm = $(evt.target);
App.Actions.DB.update_dns_record_hint(elm, $(elm).val());
}, 100);
});
}
//
// Page entry point
// Trigger listeners
App.Listeners.DB.keypress_dns_rec_entry();

View file

@ -1,23 +1,37 @@
//
//
// Updates ftp username dynamically, showing its prefix
App.Actions.WEB.update_ftp_username_hint = function(elm, hint) {
if (hint.trim() == '') {
$(elm).parent().find('.hint').html('');
}
if (hint.indexOf(GLOBAL.FTP_USER_PREFIX) == 0) {
hint = hint.slice(GLOBAL.FTP_USER_PREFIX.length, hint.length);
}
$(elm).parent().find('.hint').html(GLOBAL.FTP_USER_PREFIX + hint);
if (hint.trim() == '') {
$(elm).parent().find('.hint').html('');
}
// remove prefix from value in order to eliminate duplicates
if (hint.indexOf(GLOBAL.FTP_USER_PREFIX) == 0) {
hint = hint.slice(GLOBAL.FTP_USER_PREFIX.length, hint.length);
}
$(elm).parent().find('.hint').text(GLOBAL.FTP_USER_PREFIX + hint);
}
//
// listener that triggers ftp user hint updating
App.Listeners.WEB.keypress_ftp_username = function() {
$('input[name="v_ftp_user"]').bind('keypress', function(evt) {
clearTimeout(window.frp_usr_tmt);
window.frp_usr_tmt = setTimeout(function() {
var elm = $(evt.target);
App.Actions.WEB.update_ftp_username_hint(elm, $(elm).val());
}, 100);
});
var ref = $('input[name="v_ftp_user"]');
var current_val = ref.val();
if (current_val.trim() != '') {
App.Actions.DB.update_ftp_username_hint(ref, current_val);
}
ref.bind('keypress input', function(evt) {
clearTimeout(window.frp_usr_tmt);
window.frp_usr_tmt = setTimeout(function() {
var elm = $(evt.target);
App.Actions.WEB.update_ftp_username_hint(elm, $(elm).val());
}, 100);
});
}
//
// Page entry point
// Trigger listeners
App.Listeners.WEB.keypress_ftp_username();

View file

@ -1,44 +1,70 @@
//
//
// Updates database username dynamically, showing its prefix
App.Actions.DB.update_db_username_hint = function(elm, hint) {
if (hint.trim() == '') {
$(elm).parent().find('.hint').html('');
}
if (hint.indexOf(GLOBAL.DB_USER_PREFIX) == 0) {
hint = hint.slice(GLOBAL.DB_USER_PREFIX.length, hint.length);
}
$(elm).parent().find('.hint').html(GLOBAL.DB_USER_PREFIX + hint);
if (hint.trim() == '') {
$(elm).parent().find('.hint').html('');
}
// remove prefix from value in order to eliminate duplicates
if (hint.indexOf(GLOBAL.DB_USER_PREFIX) == 0) {
hint = hint.slice(GLOBAL.DB_USER_PREFIX.length, hint.length);
}
$(elm).parent().find('.hint').text(GLOBAL.DB_USER_PREFIX + hint);
}
//
//
// Updates database name dynamically, showing its prefix
App.Actions.DB.update_db_databasename_hint = function(elm, hint) {
if (hint.trim() == '') {
$(elm).parent().find('.hint').html('');
}
if (hint.indexOf(GLOBAL.DB_DBNAME_PREFIX) == 0) {
hint = hint.slice(GLOBAL.DB_DBNAME_PREFIX.length, hint.length);
}
$(elm).parent().find('.hint').html(GLOBAL.DB_DBNAME_PREFIX + hint);
if (hint.trim() == '') {
$(elm).parent().find('.hint').html('');
}
// remove prefix from value in order to eliminate duplicates
if (hint.indexOf(GLOBAL.DB_DBNAME_PREFIX) == 0) {
hint = hint.slice(GLOBAL.DB_DBNAME_PREFIX.length, hint.length);
}
$(elm).parent().find('.hint').text(GLOBAL.DB_DBNAME_PREFIX + hint);
}
//
// listener that triggers database user hint updating
App.Listeners.DB.keypress_db_username = function() {
$('input[name="v_dbuser"]').bind('keypress', function(evt) {
clearTimeout(window.frp_usr_tmt);
window.frp_usr_tmt = setTimeout(function() {
var elm = $(evt.target);
App.Actions.DB.update_db_username_hint(elm, $(elm).val());
}, 100);
});
var ref = $('input[name="v_dbuser"]');
var current_val = ref.val();
if (current_val.trim() != '') {
App.Actions.DB.update_db_username_hint(ref, current_val);
}
ref.bind('keypress input', function(evt) {
clearTimeout(window.frp_usr_tmt);
window.frp_usr_tmt = setTimeout(function() {
var elm = $(evt.target);
App.Actions.DB.update_db_username_hint(elm, $(elm).val());
}, 100);
});
}
//
// listener that triggers database name hint updating
App.Listeners.DB.keypress_db_databasename = function() {
$('input[name="v_database"]').bind('keypress', function(evt) {
clearTimeout(window.frp_dbn_tmt);
window.frp_dbn_tmt = setTimeout(function() {
var elm = $(evt.target);
App.Actions.DB.update_db_databasename_hint(elm, $(elm).val());
}, 100);
});
var ref = $('input[name="v_database"]');
var current_val = ref.val();
if (current_val.trim() != '') {
App.Actions.DB.update_db_databasename_hint(ref, current_val);
}
ref.bind('keypress input', function(evt) {
clearTimeout(window.frp_dbn_tmt);
window.frp_dbn_tmt = setTimeout(function() {
var elm = $(evt.target);
App.Actions.DB.update_db_databasename_hint(elm, $(elm).val());
}, 100);
});
}
//
// Page entry point
// Trigger listeners
App.Listeners.DB.keypress_db_username();
App.Listeners.DB.keypress_db_databasename();

View file

@ -1,21 +1,27 @@
App.Actions.WEB.update_ftp_username_hint = function(elm, hint) {
if (hint.trim() == '') {
$(elm).parent().find('.hint').html('');
}
if (hint.indexOf(GLOBAL.FTP_USER_PREFIX) == 0) {
hint = hint.slice(GLOBAL.FTP_USER_PREFIX.length, hint.length);
}
$(elm).parent().find('.hint').html(GLOBAL.FTP_USER_PREFIX + hint);
if (hint.trim() == '') {
$(elm).parent().find('.hint').html('');
}
if (hint.indexOf(GLOBAL.FTP_USER_PREFIX) == 0) {
hint = hint.slice(GLOBAL.FTP_USER_PREFIX.length, hint.length);
}
$(elm).parent().find('.hint').text(GLOBAL.FTP_USER_PREFIX + hint);
}
App.Listeners.WEB.keypress_ftp_username = function() {
$('input[name="v_ftp_user"]').bind('keypress', function(evt) {
clearTimeout(window.frp_usr_tmt);
window.frp_usr_tmt = setTimeout(function() {
var elm = $(evt.target);
App.Actions.WEB.update_ftp_username_hint(elm, $(elm).val());
}, 100);
});
var ref = $('input[name="v_ftp_user"]');
var current_val = ref.val();
if (current_val.trim() != '') {
App.Actions.DB.update_ftp_username_hint(ref, current_val);
}
ref.bind('keypress', function(evt) {
clearTimeout(window.frp_usr_tmt);
window.frp_usr_tmt = setTimeout(function() {
var elm = $(evt.target);
App.Actions.WEB.update_ftp_username_hint(elm, $(elm).val());
}, 100);
});
}
//