vesta/web/js/pages/edit.db.js
very-twi@github.com c50c7b2675 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
2014-02-12 12:08:23 +02:00

71 lines
2.2 KiB
JavaScript

//
//
// 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('');
}
// 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('');
}
// 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() {
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() {
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();