| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589 |
- App.Actions.toggle_suspend = function(evt)
- {
- var elm = $(evt.target);
- var ref = elm.parents('.form');
- ref.removeClass('form-suspended');
- fb.warn(ref);
- var ref_checkbox = ref.find('input[name="SUSPEND"]');
- ref_checkbox.val() == 'on' ? ref_checkbox.val('off') : ref_checkbox.val('on'); // switch state
- if (ref_checkbox.val() == 'on') { // set class on new state
- ref.addClass('form-suspended');
- fb.warn('SUSP');
- }
- else {
- ref.removeClass('form-suspended');
- fb.warn('UNSUSP');
- }
- }
- App.Actions.toggle_custom_select = function(evt)
- {
- var elm = $(evt.target);
- elm = elm.hasClass('complex-select') ? elm : elm.parents('.complex-select');
- var ref = elm.find('.complex-select-content');
- $('.s-c-highlighted').removeClass('s-c-highlighted');
- if (ref.hasClass('hidden')) {
- ref.removeClass('hidden');
- App.Tmp.focusedComplexSelect = elm;
- }
- else {
- ref.addClass('hidden');
- }
- }
- App.Actions.update_cs_value = function(evt)
- {
- var elm = $(evt.target);
- elm = elm.hasClass('cust-sel-option') ? elm : elm.parents('.cust-sel-option');
- var val = elm.find('.c-s-value').val();fb.log(val);
- elm.parents('.c-s-box').find('.c-s-title').text(val);
- elm.parents('.c-s-box').find('.c-s-value-ref').val(val);
- $('.complex-select-content').addClass('hidden');
- }
- App.Actions.do_change_password = function()
- {
-
- var params = {
- email: $('#change-email').val(),
- captcha: $('#captcha').val()
- }
-
- App.Ajax.request('MAIN.requestPassword', params, function(reply){
- $('#captcha-img').attr('src', App.Helpers.generateUrl('captcha.php?')+Math.floor(Math.random() * 9999));
- $('#captcha').val('');
- if (reply.result) {
- $('#change-psw-error').html('');
- $('#change-psw-error').addClass('hidden');
- $('#change-psw-success').html('Reset link was sent to email box provided by you.'
- + ' You will need to provide <strong>"'+reply.data.key_code+'"</strong> code to for resetting the password. Please copy it.');
- $('#change-psw-success').removeClass('hidden');
- $('.form-row').remove();
- }
- else {
- $('#change-psw-error').html(reply.message);
- $('#change-psw-error').removeClass('hidden');
- }
- });
- }
- App.Actions.back_to_login = function()
- {
- $('body').addClass('page-auth');
- var tpl = App.Templates.get('login', 'popup');
- tpl.set(':LOGO_URL', App.Helpers.generateUrl('images/vesta-logo-2011-12-14.png'));
- tpl.set(':YEAR', new Date().getFullYear());
- tpl.set(':EMAIL_REAL', App.Settings.VestaAbout.company_email);
- tpl.set(':EMAIL', App.Settings.VestaAbout.company_email);
- tpl.set(':PRODUCT_NAME', App.Settings.VestaAbout.company_name);
- tpl.set(':VERSION', App.Settings.VestaAbout.version_name + ' ' + App.Settings.VestaAbout.version);
- $('body').prepend(tpl.finalize());
- $('#change-psw-block').remove();
- $('.remember-me').checkBox();
- }
- App.Actions.change_password = function(evt)
- {
- evt.preventDefault();
-
- if ($('#change-psw-block').length > 0) {
- return $('#change-psw-block').show();
- }
-
- var tpl = App.Templates.get('change_psw', 'popup');
- tpl.set(':LOGO_URL', App.Helpers.generateUrl('images/vesta-logo-2011-12-14.png'));
- tpl.set(':YEAR', new Date().getFullYear());
- tpl.set(':CAPTCHA_URL', App.Helpers.generateUrl('captcha.php?')+Math.floor(Math.random() * 9999));
- tpl.set(':CAPTCHA_URL_2', App.Helpers.generateUrl('captcha.php'));
- tpl.set(':EMAIL_REAL', App.Settings.VestaAbout.company_email);
- tpl.set(':EMAIL', App.Settings.VestaAbout.company_email);
- tpl.set(':PRODUCT_NAME', App.Settings.VestaAbout.company_name);
- tpl.set(':VERSION', App.Settings.VestaAbout.version_name + ' ' + App.Settings.VestaAbout.version);
- $('#auth-block').remove();
- $('body').prepend(tpl.finalize());
- $('#change-psw-error').html('');
- $('#change-psw-error').addClass('hidden');
- }
- App.Actions.profile_exit = function(evt)
- {
- evt.preventDefault();
- App.Ajax.request('MAIN.logoff', {}, function(reply) {
- location.href = '';
- });
- }
- // show auth form
- App.Actions.authorize = function()
- {
- $('#change-psw-block').remove();
- if ($('#auth-block').length > 0) {
- return;
- }
- $('#page').addClass('hidden');
- $('body').addClass('page-auth');
- var tpl = App.Templates.get('login', 'popup');
- tpl.set(':LOGO_URL', App.Helpers.generateUrl('images/vesta-logo-2011-12-14.png'));
- tpl.set(':YEAR', new Date().getFullYear());
- tpl.set(':EMAIL_REAL', App.Settings.VestaAbout.company_email);
- tpl.set(':EMAIL', App.Settings.VestaAbout.company_email);
- tpl.set(':PRODUCT_NAME', App.Settings.VestaAbout.company_name);
- tpl.set(':VERSION', App.Settings.VestaAbout.version_name + ' ' + App.Settings.VestaAbout.version);
- $('body').prepend(tpl.finalize());
- $(document).ready(function(){
- $('.remember-me').checkBox();
- });
- }
- /**
- * Embeds new item form
- * if exits custom method (App.Pages[ENVIRONMENT_NAME].newForm)
- * custom method will be executes instead of default one
- */
- App.Actions.new_entry = function() {
- if ('undefined' != typeof App.Pages[App.Env.world].new_entry) {fb.log(1);
- App.Pages[App.Env.world].new_entry();
- } else {
- var form_id = App.Constants[App.Env.world + '_FORM_ID'];
- $('#'+form_id).remove();
- var build_method = App.Env.getWorldName() + '_form';
- var tpl = App.HTML.Build[build_method]({}, form_id);
- var box = $('<div>').html(tpl);
- $(box).find('.suspended').addClass('hidden');
- App.Ref.CONTENT.prepend($(box).html());
-
- App.Helpers.updateScreen();
- }
- }
- // execute authorisation
- App.Actions.do_authorize = function()
- {
- $('#auth-error').text('');
- $('#auth-form-content').hide();
- App.Ajax.request('MAIN.signin', {'login':$('#authorize-login').val(), 'password':$('#authorize-password').val()}, function(reply)
- {
- if (reply.result == true) {
- location.href = '';
- }
- else {
- $('#auth-error').text(reply.data.error_msg);
- $('#auth-form-content').show();
- $('#auth-error').removeClass('hidden');
- }
- });
- }
- App.Actions.delete_entry = function(evt)
- {
- var confirmed = confirm(App.i18n.getMessage('confirm'));
- if (!confirmed) {
- return;
- }
- var elm = $(evt.target);
- var elm = elm.hasClass('form') ? elm : elm.parents('.form');
- App.Model.remove(App.Env.world, elm);
- }
- App.Actions.show_subform = function(evt)
- {
- var elm = $(evt.target);
- var ref = elm.hasClass('row') ? elm : elm.parents('.row');
- var ref_subform = ref.next('.subform');
- if (ref_subform.length > 0) {
- ref_subform.remove();
- }
-
- if ('undefined' != typeof App.Pages[App.Env.world].showSubform) {
- App.Pages[App.Env.world].showSubform(ref);
- }
- // TODO: probably general way to embed subforms
- }
- App.Actions.view_template_settings = function(evt)
- {
- var elm = $(evt.target);
- var ref = elm.hasClass('tpl-item') ? elm : elm.prev('.tpl-item');
- var tpl_name = $(ref).val() || $(ref).text();
- App.Helpers.openInnerPopup(elm, App.Env.initialParams.WEB_DOMAIN.TPL[tpl_name].DESCR || tpl_name, 'Template Settings');
- }
- App.Actions.view_dns_template_settings = function(evt)
- {
- var elm = $(evt.target);
- var ref = elm.hasClass('tpl-item') ? elm : elm.prev('.tpl-item');
- var tpl_name = $(ref).val() || $(ref).text();
- App.Helpers.openInnerPopup(elm, App.Env.initialParams.DNS.TPL[tpl_name].DESCR || tpl_name, 'Template Settings');
- }
- /*App.Actions.view_dns_template_settings = function(evt)
- {
- var elm = $(evt.target);
- var ref = elm.prev('.tpl-item');
- var tpl_name = $(ref).val() || $(ref).text();
- App.Helpers.openInnerPopup(elm, App.Env.initialParams.DNS.TPL[tpl_name].DESCR || tpl_name, '');
- }*/
- App.Actions.add_subrecord_dns = function(evt)
- {
- var elm = $(evt.target);
- var ref = elm.hasClass('subform') ? elm : elm.parents('.subform');
- if (ref.length > 0) {
- var tpl = App.HTML.Build.dns_subrecord({});
- ref.find('.add-box').after(tpl.finalize());
- App.Helpers.updateScreen();
- }
- }
- // do_action_save
- App.Actions.save_form = function(evt) {
- var elm = $(evt.target);
- elm = elm.parents('.b-new-entry');
-
- var elm_id = App.Env.world + '_FORM_ID';
- var build_method = App.Env.getWorldName() + '_entry';
-
- if (!App.Validate.form(App.Env.world, elm)) {
- return App.Validate.displayFormErrors(App.Env.world, elm);
- }
-
- if (elm.attr('id') == App.Constants[elm_id]) { // NEW ITEM
- var values = App.Helpers.getFormValues(elm);
- if(App.Validate.form(values, $('#'+elm_id))) {
- App.Model.add(values, source);
- var form_id = App.Constants[App.Env.world + '_FORM_ID'];
- $('#'+form_id).remove();
- }
- }
- else { // OLD ITEM, UPDATING IT
- var source = $(elm).find('.source').val();
- var values = App.Helpers.getFormValues(elm);
- if(App.Validate.form(values, $('#'+elm_id))) {
- App.Model.update(values, source, elm);
- }
- }
- }
- // do_action_edit
- App.Actions.edit = function(evt)
- {
- if ('undefined' != typeof App.Pages[App.Env.world].edit) {
- App.Pages[App.Env.world].edit(evt);
- }
- else {
- var elm = $(evt.target);
- elm = elm.hasClass('row') ? elm : elm.parents('.row');
-
- var options = elm.find('.source').val();
- var build_method = App.Env.getWorldName() + '_form';
- var tpl = App.HTML.Build[build_method](options);
- elm.replaceWith(tpl);
-
- App.Helpers.disableNotEditable();
- App.Helpers.updateScreen();
- }
- }
- // do_cancel_form
- App.Actions.cancel_form = function(evt, params) {
- var elm = $(evt.target);
- elm = elm.parents('.b-new-entry');
- var form_id = App.Constants[App.Env.world + '_FORM_ID'];
- if (elm.attr('id') == form_id) {
- $('#' + form_id).remove();
- }
- else {
- fb.warn(elm.find('.source').val());
- var options = App.Helpers.evalJSON(elm.find('.source').val());
- var entry_name = App.Env.world.toLowerCase() + '_entry';
- var tpl = App.HTML.Build[entry_name](options);
- elm.replaceWith(tpl);
- }
- App.Helpers.updateScreen();
- }
- App.Actions.suspend = function(evt)
- {
- var confirmed = confirm('Suspend?');
- if (!confirmed) {
- return ;
- }
- var elm = $(evt.target);
- var row = elm.parents('.row');
-
- var options = row.find('.source').val();
- App.Ajax.request(App.Env.world+'.suspend', {spell: options}, function(reply) {
- if (reply.result) {
- App.Pages.prepareHTML();
- App.Helpers.updateScreen();
- }
- else {
- return App.Helpers.alert('Failed to suspend');
- }
- });
- }
- App.Actions.unsuspend = function(evt)
- {
- var confirmed = confirm('Unsuspend?');
- if (!confirmed) {
- return ;
- }
-
- var elm = $(evt.target);
- var row = elm.parents('.row');
-
- var options = row.find('.source').val();
- App.Ajax.request(App.Env.world+'.unsuspend', {spell: options}, function(reply) {
- if (reply.result) {
- App.Pages.prepareHTML();
- App.Helpers.updateScreen();
- }
- else {
- return App.Helpers.alert('Failed to suspend');
- }
- });
- }
- // do_action_form_help
- App.Actions.showFormHelp = function(evt) {
- var tpl_name = App.Env.world + '_form';
- var tpl = App.Templates.get(tpl_name, 'help');
- App.View.popup(tpl.finalize());
- }
- // do_action_entry_help
- App.Actions.showEntryHelp = function(evt) {
- var tpl_name = App.Env.world + '_entry';
- var tpl = App.Templates.get(tpl_name, 'help');
- App.View.popup(tpl.finalize());
- }
- App.Actions.embedSubform = function(evt) {
- var tpl = App.Templates.get('subform', App.Env.getWorldName());
- }
- 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 data = [];
- $('.subform').find('.subrow').each(function(i, o)
- {
- data[data.length++] = App.Helpers.getFormValues(o);
- });
-
- 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(evt)
- {
- var elm = $(evt.target);
- var ref = elm.parents('.form-row');
- $('.password', ref).val(App.Helpers.generatePassword());
- }
- App.Actions.toggle_section = function(evt)
- {
- var elm = $(evt.target);
- var ref = $(elm).parents('.form-options-group:first');
- fb.log(ref);
- if ($('.sub_section:first', ref).hasClass('hidden')) {
- $('.sub_section:first', ref).removeClass('hidden');
- $('.group-header:first', ref).removeClass('collapsed').addClass('expanded');
- }
- else {
- $('.sub_section:first', ref).addClass('hidden');
- $('.group-header:first', ref).removeClass('expanded').addClass('collapsed');
- }
- }
- App.Actions.close_inner_popup = function(evt)
- {
- App.Helpers.closeInnerPopup();
- }
- App.Actions.open_inner_popup = function(evt)
- {
- var elm = $(evt.target);
- App.Helpers.openInnerPopup(elm, $(elm).next('.inner-popup-html').val(), 'Details');
- }
- App.Actions.add_db_user = function(evt)
- {
- alert('TODO');
- }
- App.Actions.backup_db = function(evt)
- {
- alert('TODO');
- }
- App.Actions.add_form_ns = function(evt)
- {
- var elm = $(evt.target);
-
- form = elm.parents('.form:first');
- var total_nses = $(form).find('.ns-entry').length;
- if (total_nses == App.Settings.NS_MAX) {
- return App.Helpers.alert('Maximum number of NS cannot be more than ' + App.Settings.NS_MAX);
- }
-
- var tpl = App.Templates.get('NS_INPUT', 'user');
- tpl.set(':NAME', '');
- tpl.set(':NS_LABEL', 'NS');
- var ref = $(elm).hasClass('form-row') ? elm : $(elm).parents('.form-row');
- $(ref).before(tpl.finalize());
-
- if ((total_nses + 1) == App.Settings.NS_MAX ) { // added last NS
- $('.additional-ns-add', form).addClass('hidden');
- }
-
- $(form).find('.ns-entry').each(function(i, o)
- {
- $(o).find('label').text('NS #' + (i + 1));
- $(o).find('input').attr('name', 'NS' + (i + 1));
- });
- }
- App.Actions.delete_ns = function(evt)
- {
- var sure = confirm(App.i18n.getMessage('confirm'));
- if (!sure) {
- return;
- }
- var elm = $(evt.target);
-
- form = elm.parents('.form:first');
- var total_nses = $(form).find('.ns-entry').length;
- if (total_nses == App.Settings.NS_MIN) {
- return App.Helpers.alert('Minimum number of NS is ' + App.Settings.NS_MIN);
- }
-
- var form = elm.parents('.form:first');
- $(elm).parents('.form:first').find('.additional-ns-add').removeClass('hidden');
- $(elm).parents('.ns-entry').remove();
-
- $(form).find('.ns-entry').each(function(i, o)
- {
- $(o).find('label').text('NS #' + (i + 1));
- $(o).find('input').attr('name', 'NS' + (i + 1));
- });
- }
- App.Actions.view_full_ns_list = function(evt)
- {
- var elm = $(evt.target);
- App.Helpers.openInnerPopup(elm, $(elm).parents('.prop-box').find('.ns-full-list:first').html(), 'NS list');
- }
- App.Actions.view_template_info = function(evt)
- {
- var elm = $(evt.target);
- ref = elm.hasClass('row') ? elm : elm.parents('.row');
-
- var options = ref.find('.source').val();
- App.Ajax.request('DNS.getTemplateInfo', {spell: options}, function(reply) {
- if (reply.result) {
- var html = '';
- $.each(reply.data, function(key) {
- html += '<li><strong>'+key+':</strong> '+reply.data[key]+'</li>';
- });
- App.Helpers.openInnerPopup(elm, '<ul>'+html+'</ul>', 'Template Info');
- }
- });
- }
- App.Actions.toggle_stats_block = function(evt)
- {
- var elm = $(evt.target);
- if (!!elm.attr('checked')) {
- elm.parents('.stats-settings').find('.stats-block').removeClass('hidden');
- }
- else {
- elm.parents('.stats-settings').find('.stats-block').addClass('hidden');
- }
- }
- App.Actions.exec_v_console = function(evt)
- {
- evt.preventDefault();
- App.Helpers.openInnerPopup(evt.target, 'This functionality will be available in next releases', 'Details');
- }
- App.Actions.view_profile_settings = function(evt)
- {
- evt.preventDefault();
- App.Helpers.openInnerPopup(evt.target, 'This functionality will be available in next releases', 'Details');
- }
- App.Actions.select_all = function(evt)
- {
- $('.row').addClass('checked-row')
- }
- App.Actions.deselect_all = function(evt)
- {
- $('.row').removeClass('checked-row')
- }
- App.Actions.delete_selected = function(evt)
- {
- var selected = $('.checked-row');
- if (selected.length == 0) {
- return App.Helpers.alert('No entry selected. Please select at least one.');
- }
- var confirmed = confirm('You are about to delete ' + selected.length + ' entrie(s). Are you sure?');
- if (!confirmed) {
- return;
- }
-
-
- }
|