Javascript cleanup; new functionality; added jquery-ui

This commit is contained in:
Malishev Dmitry 2011-09-05 18:55:29 +03:00
commit 53a0268227
6 changed files with 68 additions and 43 deletions

View file

@ -205,7 +205,8 @@
<!-- script type="text/javascript" src="js/lib/jquery-1.4.4.min.js"></script -->
<script type="text/javascript" src="js/lib/cookie.js"></script>
<script type="text/javascript" src="http://code.jquery.com/jquery-1.6.1.js"></script>
<script type="text/javascript" src="js/lib/jquery-1.6.1.js"></script>
<script type="text/javascript" src="js/lib/jquery-ui-1.8.13.custom.min.js"></script>
<script type="text/javascript" src="js/date_format.js"></script>
<script type="text/javascript" src="js/lib/custom-form-elements.js"></script>
<script type="text/javascript" src="js/lib/browser.js"></script>

View file

@ -40,6 +40,7 @@ App.Messages.get = function(key, plural) {
// Empty
App.Empty = {};
App.Empty.USER = {'CONTACT':'', 'PASSWORD':'','LOGIN_NAME':'','LNAME':'', 'FNAME':'','NS1':'','NS2':'','NS3':'','NS4':'','NS5':'','NS6':'','NS7':'','NS8':''};
App.Empty.WEB_DOMAIN = {'CONTACT':'', 'PASSWORD':'','LOGIN_NAME':'','NS':'', 'DOMAIN':'','SSL_CERT':'','SSL_HOME':'','STATS_PASSWORD':'','STATS_LOGIN':'','ALIAS':''};
App.Settings.getMethodName = function(action)
{

View file

@ -24,17 +24,6 @@ App.Actions.show_subform = function(evt)
// TODO: probably general way to embed subforms
}
App.Actions.close_subform = function(evt)
{
var elm = $(evt.target);
var ref = elm.hasClass('subform') ? elm : elm.parents('.subform');
var parent_ref = ref.prev('.row');
if (parent_ref.length > 0) {
parent_ref.find('.show-records').removeClass('hidden');
}
ref.remove();
}
App.Actions.view_template_settings = function(evt)
{
alert('TODO');
@ -51,17 +40,6 @@ App.Actions.add_subrecord_dns = function(evt)
}
}
App.Actions.delete_subentry = function(evt)
{
var sure = confirm(App.i18n.getMessage('confirm'));
if (!sure) {
return;
}
var elm = $(evt.target);
var ref = elm.hasClass('subrow') ? elm : elm.parents('.subrow');
ref.effect('puff', {}, 300, function(){ref.remove();})
}
/**
* Embeds new item form
* if exits custom method (App.Pages[ENVIRONMENT_NAME].newForm)
@ -213,17 +191,56 @@ App.Actions.close_popup = function()
App.View.closePopup();
}
App.Actions.close_subform = function(evt, elm)
{
var elm = elm || $(evt.target);
var ref = elm.hasClass('subform') ? elm : elm.parents('.subform');
var parent_ref = ref.prev('.row');
if (parent_ref.length > 0) {
parent_ref.find('.show-records').removeClass('hidden');
}
ref.remove();
}
App.Actions.save_dns_subrecords = function(evt)
{
var elm = $(evt.target);
var ref = elm.hasClass('subform') ? elm : elm.parents('.subform');
var records = [];
ref.find('.subrow').each(function(i, o){
records[records.length++] = App.Helpers.getFormValuesFromElement(o);
var data = [];
$('.subform').find('.subrow').each(function(i, o)
{
data[data.length++] = App.Helpers.getFormValues(o);
});
fb.warn($.toJSON(records));
var parent_row = $(elm).parents('.subform').prev('.dns-details-row');
var dns_json = $(parent_row).find('.source').val();
App.Ajax.request('DNS.changeRecords', {spell: App.Helpers.toJSON(data), dns: dns_json}, function(reply)
{
if (reply.result) {
var emphasize = $('.show-records', parent_row);
App.Actions.close_subform(null, elm);
$(emphasize).effect("highlight", {'color':'#B0D635'}, 3000);
}
else {
App.Helpers.alert('Changes were not applied');
}
});
}
App.Actions.delete_subentry = function(evt)
{
var sure = confirm(App.i18n.getMessage('confirm'));
if (!sure) {
return;
}
var elm = $(evt.target);
var ref = elm.hasClass('subrow') ? elm : elm.parents('.subrow');
$(ref).remove();
}
App.Actions.generate_pass = function()

View file

@ -83,7 +83,7 @@ App.HTML.Build.dns_form = function(options, id)
}
tpl.set(':id', id || '');
tpl.set(':DNS_DOMAIN', options.DNS_DOMAIN || '');
tpl.set(':DNS_DOMAIN', options.DNS_DOMAIN || '');
tpl.set(':IP', options.IP || '');
tpl.set(':TTL', options.TTL || '');
tpl.set(':SOA', options.SOA || '');
@ -309,7 +309,7 @@ App.HTML.Build.web_domain_form = function(options, id)
tpl.set(':save_button', 'SAVE');
}
options = !App.Helpers.isEmpty(options) ? options : {'CONTACT':'', 'PASSWORD':'','LOGIN_NAME':'','NS':''};
options = !App.Helpers.isEmpty(options) ? options : App.Empty.WEB_DOMAIN;
tpl = App.HTML.setTplKeys(tpl, options, true);
tpl = App.HTML.Build.user_selects(tpl, options);
@ -373,11 +373,12 @@ App.HTML.Build.db_form = function(options, id)
tpl.set(':save_button', 'SAVE');
}
options = !App.Helpers.isEmpty(options) ? options : {'DB':'', 'USER':'','FORM':'', 'PASSWORD': ''};
options = !App.Helpers.isEmpty(options) ? options : {'DB':'', 'USER':'','FORM':'', 'PASSWORD': ''};
tpl = App.HTML.setTplKeys(tpl, options, true);
tpl = App.HTML.Build.db_selects(tpl, options);
tpl.set(':PASSWORD', '');
return tpl.finalize();
}

View file

@ -75,7 +75,7 @@ App.Templates.html = {
</div>\
<div class="form-row cc">\
<label for="#" class="field-label">soa:</label>\
<input type="text" value="~!:SOA~!" name="SOA" class="text-field rule-required rule-numeric">\
<input type="text" value="~!:SOA~!" name="SOA" class="text-field rule-required rule-ns">\
</div>\
<div class="form-row buttons-row cc">\
<input type="submit" value="~!:save_button~!" class="add-entry-btn do_action_save_form" name="save">\
@ -139,7 +139,7 @@ App.Templates.html = {
<div class="form-row buttons-row cc">\
<input type="submit" value="save" class="add-entry-btn do_action_save_dns_subrecords">\
<span class="cancel-btn do_action_close_subform">Cancel</span>\
<span class="help-btn">Help</span>\
<!-- span class="help-btn">Help</span -->\
</div>\
</div>'],
SUBENTRY: ['<div class="subrow form-row form-row-line cc">\
@ -160,7 +160,7 @@ App.Templates.html = {
</div>\
<div class="field-box dns-value-box">\
<label for="#" class="field-label">value:</label>\
<input type="text" value="~!:RECORD_VALUE~!" class="text-field RECORD_VALUE">\
<input type="text" value="~!:RECORD_VALUE~!" name="RECORD_VALUE" class="text-field">\
</div>\
<div class="delete-record do_action_delete_subentry"></div>\
</div>']
@ -497,11 +497,11 @@ App.Templates.html = {
<input type="hidden" class="source" name="source" value=\'~!:source~!\' />\
<input type="hidden" class="target" name="target" value="" />\
<div class="entry-header">~!:title~!</div>\
<div class="form-error">\
<div class="form-error hidden">\
</div>\
<div class="form-row cc">\
<label for="#" class="field-label">domain:</label>\
<input type="text" name="DOMAIN" class="text-field" value="~!:DOMAIN~!">\
<input type="text" name="DOMAIN" class="text-field rule-required rule-ns" value="~!:DOMAIN~!">\
</div>\
<div class="form-row cc">\
<label for="#" class="field-label">ip:</label>\
@ -529,7 +529,6 @@ App.Templates.html = {
<label for="#" class="field-label">alias list:</label>\
<textarea name="ALIAS" class="textarea">~!:ALIAS~!</textarea>\
</div>\
\
<div class="form-row cc">\
<label for="#" class="field-label">statistics:</label>\
<input type="checkbox" name="STATS" ~!:stats_checked~!="" value="~!:STATS~!" class="styled">\
@ -541,11 +540,11 @@ App.Templates.html = {
</div>\
<div class="form-row cc">\
<label for="#" class="field-label">login:</label>\
<input type="text" class="text-field" name="STATS_LOGIN" value="~!:STATS_LOGIN~!">\
<input type="text" class="text-field rule-username" name="STATS_LOGIN" value="~!:STATS_LOGIN~!">\
</div>\
<div class="form-row pwd-box cc">\
<label for="#" class="field-label">password:</label>\
<input type="text" value="~!:STATS_PASSWORD~!" name="STATS_PASSWORD" class="text-field password">\
<input type="text" value="~!:STATS_PASSWORD~!" name="STATS_PASSWORD" class="text-field rule-password">\
<span class="generate-pwd do_action_generate_pass">Generate</span>\
</div>\
</div><!-- // stats settings -->\
@ -591,7 +590,7 @@ App.Templates.html = {
</div>\
</div><!-- Mail options -->\
<div class="form-row buttons-row cc">\
<input type="submit" value="~!:save_button~!" class="add-entry-btn">\
<input type="submit" value="~!:save_button~!" class="add-entry-btn do_action_save_form">\
<span class="cancel-btn do_action_cancel_form">Cancel</span>\
<a target="_blank" href="http://vestacp.com/docs/web/" class="help-btn">Help</a>\
</div>\
@ -725,7 +724,7 @@ App.Templates.html = {
<span class="generate-pwd do_action_generate_pass">Generate</span>\
</div>\
</div>\
<div class="form-row cc">\
<div class="form-row hidden cc">\
<label for="#" class="field-label">db host:</label>\
<select name="HOST">~!:HOST_OPTIONS~!</select>\
</div>\
@ -741,7 +740,7 @@ App.Templates.html = {
<div class="row-actions-box cc">\
<div class="check-this check-control"></div>\
<div class="row-operations">\
<span class="delete-entry"><span class="delete-entry-text">delete</span></span>\
<span class="delete-entry do_action_delete_entry"><span class="delete-entry-text do_action_delete_entry">delete</span></span>\
</div>\
</div>\
<div class="row-meta">\
@ -758,7 +757,7 @@ App.Templates.html = {
<span class="db-name do_action_edit">~!:DB~!</span>\
</div>\
</div>\
<div class="props-additional">\
<div class="props-additional hidden">\
<div class="db-user-box cc">\
<span class="db-user-wrap backup-db do_action_open_inner_popup">\
Users: ~!:USERS~!\

View file

@ -25,6 +25,12 @@ App.Validate.getFieldName = function(elm)
}
App.Validate.Rule = {
'username' : function(elm) {
if ($(elm).val().trim() != '' && $(elm).val().search(/[^a-zA-Z_]+/) != -1) {
return {VALID: false, ERROR: App.Validate.getFieldName(elm) + ' is required'};
}
return {VALID: true};
},
'required' : function(elm) {
if ($(elm).val().trim() == '') {
return {VALID: false, ERROR: App.Validate.getFieldName(elm) + ' is required'};