mirror of
https://github.com/serghey-rodin/vesta.git
synced 2025-08-20 21:34:11 -07:00
Javascript cleanup; new functionality; added jquery-ui
This commit is contained in:
parent
3bf357bde3
commit
53a0268227
6 changed files with 68 additions and 43 deletions
|
@ -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/jquery-1.4.4.min.js"></script -->
|
||||||
<script type="text/javascript" src="js/lib/cookie.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/date_format.js"></script>
|
||||||
<script type="text/javascript" src="js/lib/custom-form-elements.js"></script>
|
<script type="text/javascript" src="js/lib/custom-form-elements.js"></script>
|
||||||
<script type="text/javascript" src="js/lib/browser.js"></script>
|
<script type="text/javascript" src="js/lib/browser.js"></script>
|
||||||
|
|
|
@ -40,6 +40,7 @@ App.Messages.get = function(key, plural) {
|
||||||
// Empty
|
// Empty
|
||||||
App.Empty = {};
|
App.Empty = {};
|
||||||
App.Empty.USER = {'CONTACT':'', 'PASSWORD':'','LOGIN_NAME':'','LNAME':'', 'FNAME':'','NS1':'','NS2':'','NS3':'','NS4':'','NS5':'','NS6':'','NS7':'','NS8':''};
|
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)
|
App.Settings.getMethodName = function(action)
|
||||||
{
|
{
|
||||||
|
|
|
@ -24,17 +24,6 @@ App.Actions.show_subform = function(evt)
|
||||||
// TODO: probably general way to embed subforms
|
// 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)
|
App.Actions.view_template_settings = function(evt)
|
||||||
{
|
{
|
||||||
alert('TODO');
|
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
|
* Embeds new item form
|
||||||
* if exits custom method (App.Pages[ENVIRONMENT_NAME].newForm)
|
* if exits custom method (App.Pages[ENVIRONMENT_NAME].newForm)
|
||||||
|
@ -213,17 +191,56 @@ App.Actions.close_popup = function()
|
||||||
App.View.closePopup();
|
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)
|
App.Actions.save_dns_subrecords = function(evt)
|
||||||
{
|
{
|
||||||
var elm = $(evt.target);
|
var elm = $(evt.target);
|
||||||
var ref = elm.hasClass('subform') ? elm : elm.parents('.subform');
|
var ref = elm.hasClass('subform') ? elm : elm.parents('.subform');
|
||||||
|
|
||||||
var records = [];
|
var data = [];
|
||||||
ref.find('.subrow').each(function(i, o){
|
$('.subform').find('.subrow').each(function(i, o)
|
||||||
records[records.length++] = App.Helpers.getFormValuesFromElement(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()
|
App.Actions.generate_pass = function()
|
||||||
|
|
|
@ -309,7 +309,7 @@ App.HTML.Build.web_domain_form = function(options, id)
|
||||||
tpl.set(':save_button', 'SAVE');
|
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.setTplKeys(tpl, options, true);
|
||||||
tpl = App.HTML.Build.user_selects(tpl, options);
|
tpl = App.HTML.Build.user_selects(tpl, options);
|
||||||
|
@ -374,10 +374,11 @@ App.HTML.Build.db_form = function(options, id)
|
||||||
}
|
}
|
||||||
|
|
||||||
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.setTplKeys(tpl, options, true);
|
||||||
tpl = App.HTML.Build.db_selects(tpl, options);
|
tpl = App.HTML.Build.db_selects(tpl, options);
|
||||||
|
|
||||||
|
tpl.set(':PASSWORD', '');
|
||||||
|
|
||||||
return tpl.finalize();
|
return tpl.finalize();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -75,7 +75,7 @@ App.Templates.html = {
|
||||||
</div>\
|
</div>\
|
||||||
<div class="form-row cc">\
|
<div class="form-row cc">\
|
||||||
<label for="#" class="field-label">soa:</label>\
|
<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>\
|
||||||
<div class="form-row buttons-row cc">\
|
<div class="form-row buttons-row cc">\
|
||||||
<input type="submit" value="~!:save_button~!" class="add-entry-btn do_action_save_form" name="save">\
|
<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">\
|
<div class="form-row buttons-row cc">\
|
||||||
<input type="submit" value="save" class="add-entry-btn do_action_save_dns_subrecords">\
|
<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="cancel-btn do_action_close_subform">Cancel</span>\
|
||||||
<span class="help-btn">Help</span>\
|
<!-- span class="help-btn">Help</span -->\
|
||||||
</div>\
|
</div>\
|
||||||
</div>'],
|
</div>'],
|
||||||
SUBENTRY: ['<div class="subrow form-row form-row-line cc">\
|
SUBENTRY: ['<div class="subrow form-row form-row-line cc">\
|
||||||
|
@ -160,7 +160,7 @@ App.Templates.html = {
|
||||||
</div>\
|
</div>\
|
||||||
<div class="field-box dns-value-box">\
|
<div class="field-box dns-value-box">\
|
||||||
<label for="#" class="field-label">value:</label>\
|
<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>\
|
||||||
<div class="delete-record do_action_delete_subentry"></div>\
|
<div class="delete-record do_action_delete_subentry"></div>\
|
||||||
</div>']
|
</div>']
|
||||||
|
@ -497,11 +497,11 @@ App.Templates.html = {
|
||||||
<input type="hidden" class="source" name="source" value=\'~!:source~!\' />\
|
<input type="hidden" class="source" name="source" value=\'~!:source~!\' />\
|
||||||
<input type="hidden" class="target" name="target" value="" />\
|
<input type="hidden" class="target" name="target" value="" />\
|
||||||
<div class="entry-header">~!:title~!</div>\
|
<div class="entry-header">~!:title~!</div>\
|
||||||
<div class="form-error">\
|
<div class="form-error hidden">\
|
||||||
</div>\
|
</div>\
|
||||||
<div class="form-row cc">\
|
<div class="form-row cc">\
|
||||||
<label for="#" class="field-label">domain:</label>\
|
<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>\
|
||||||
<div class="form-row cc">\
|
<div class="form-row cc">\
|
||||||
<label for="#" class="field-label">ip:</label>\
|
<label for="#" class="field-label">ip:</label>\
|
||||||
|
@ -529,7 +529,6 @@ App.Templates.html = {
|
||||||
<label for="#" class="field-label">alias list:</label>\
|
<label for="#" class="field-label">alias list:</label>\
|
||||||
<textarea name="ALIAS" class="textarea">~!:ALIAS~!</textarea>\
|
<textarea name="ALIAS" class="textarea">~!:ALIAS~!</textarea>\
|
||||||
</div>\
|
</div>\
|
||||||
\
|
|
||||||
<div class="form-row cc">\
|
<div class="form-row cc">\
|
||||||
<label for="#" class="field-label">statistics:</label>\
|
<label for="#" class="field-label">statistics:</label>\
|
||||||
<input type="checkbox" name="STATS" ~!:stats_checked~!="" value="~!:STATS~!" class="styled">\
|
<input type="checkbox" name="STATS" ~!:stats_checked~!="" value="~!:STATS~!" class="styled">\
|
||||||
|
@ -541,11 +540,11 @@ App.Templates.html = {
|
||||||
</div>\
|
</div>\
|
||||||
<div class="form-row cc">\
|
<div class="form-row cc">\
|
||||||
<label for="#" class="field-label">login:</label>\
|
<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>\
|
||||||
<div class="form-row pwd-box cc">\
|
<div class="form-row pwd-box cc">\
|
||||||
<label for="#" class="field-label">password:</label>\
|
<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>\
|
<span class="generate-pwd do_action_generate_pass">Generate</span>\
|
||||||
</div>\
|
</div>\
|
||||||
</div><!-- // stats settings -->\
|
</div><!-- // stats settings -->\
|
||||||
|
@ -591,7 +590,7 @@ App.Templates.html = {
|
||||||
</div>\
|
</div>\
|
||||||
</div><!-- Mail options -->\
|
</div><!-- Mail options -->\
|
||||||
<div class="form-row buttons-row cc">\
|
<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>\
|
<span class="cancel-btn do_action_cancel_form">Cancel</span>\
|
||||||
<a target="_blank" href="http://vestacp.com/docs/web/" class="help-btn">Help</a>\
|
<a target="_blank" href="http://vestacp.com/docs/web/" class="help-btn">Help</a>\
|
||||||
</div>\
|
</div>\
|
||||||
|
@ -725,7 +724,7 @@ App.Templates.html = {
|
||||||
<span class="generate-pwd do_action_generate_pass">Generate</span>\
|
<span class="generate-pwd do_action_generate_pass">Generate</span>\
|
||||||
</div>\
|
</div>\
|
||||||
</div>\
|
</div>\
|
||||||
<div class="form-row cc">\
|
<div class="form-row hidden cc">\
|
||||||
<label for="#" class="field-label">db host:</label>\
|
<label for="#" class="field-label">db host:</label>\
|
||||||
<select name="HOST">~!:HOST_OPTIONS~!</select>\
|
<select name="HOST">~!:HOST_OPTIONS~!</select>\
|
||||||
</div>\
|
</div>\
|
||||||
|
@ -741,7 +740,7 @@ App.Templates.html = {
|
||||||
<div class="row-actions-box cc">\
|
<div class="row-actions-box cc">\
|
||||||
<div class="check-this check-control"></div>\
|
<div class="check-this check-control"></div>\
|
||||||
<div class="row-operations">\
|
<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>\
|
</div>\
|
||||||
<div class="row-meta">\
|
<div class="row-meta">\
|
||||||
|
@ -758,7 +757,7 @@ App.Templates.html = {
|
||||||
<span class="db-name do_action_edit">~!:DB~!</span>\
|
<span class="db-name do_action_edit">~!:DB~!</span>\
|
||||||
</div>\
|
</div>\
|
||||||
</div>\
|
</div>\
|
||||||
<div class="props-additional">\
|
<div class="props-additional hidden">\
|
||||||
<div class="db-user-box cc">\
|
<div class="db-user-box cc">\
|
||||||
<span class="db-user-wrap backup-db do_action_open_inner_popup">\
|
<span class="db-user-wrap backup-db do_action_open_inner_popup">\
|
||||||
Users: ~!:USERS~!\
|
Users: ~!:USERS~!\
|
||||||
|
|
|
@ -25,6 +25,12 @@ App.Validate.getFieldName = function(elm)
|
||||||
}
|
}
|
||||||
|
|
||||||
App.Validate.Rule = {
|
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) {
|
'required' : function(elm) {
|
||||||
if ($(elm).val().trim() == '') {
|
if ($(elm).val().trim() == '') {
|
||||||
return {VALID: false, ERROR: App.Validate.getFieldName(elm) + ' is required'};
|
return {VALID: false, ERROR: App.Validate.getFieldName(elm) + ' is required'};
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue