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();