From 6e07bf3d298cd10dd032d5247a01d408ebdabf45 Mon Sep 17 00:00:00 2001 From: Hypolite Petovan Date: Sun, 5 Aug 2018 14:26:48 +0200 Subject: [PATCH] [advancedcontentfilter] Move Vue template from DOM to compiled render functions (redux) --- .../advancedcontentfilter.js | 18 +++- .../advancedcontentfilter.php | 46 ++++----- advancedcontentfilter/templates/settings.tpl | 98 +++---------------- 3 files changed, 48 insertions(+), 114 deletions(-) diff --git a/advancedcontentfilter/advancedcontentfilter.js b/advancedcontentfilter/advancedcontentfilter.js index 67a2b8d2..e3c2da54 100644 --- a/advancedcontentfilter/advancedcontentfilter.js +++ b/advancedcontentfilter/advancedcontentfilter.js @@ -1,4 +1,4 @@ -$.ajaxSetup({headers: {'X-CSRF-Token': document.querySelector('#csrf').getAttribute('value')}}); +$.ajaxSetup({headers: {'X-CSRF-Token': csrfToken}}); $.extend({ ajaxJSON: function(method, url, data) { @@ -22,7 +22,9 @@ new Vue({ rule: {id: '', name: '', expression: '', created: ''}, rules: existingRules || [], itemUrl: '', - itemJson: '' + itemJson: '', + currentTheme: currentTheme, + messages: messages, }, watch: { @@ -118,5 +120,13 @@ new Vue({ return false; } - } -}); \ No newline at end of file + }, + + // These render functions have been compiled from templates/advancedcontentfilter.vue, check this file out for instructions + render: function () { + with(this){return _c('div',{attrs:{"id":"rules"}},[_c('p',[_c('a',{attrs:{"href":"settings/addon"}},[_v("🔙 "+_s(messages.backtosettings))])]),_c('h1',[_v(_s(messages.title)+" "),_c('a',{staticClass:"btn btn-default btn-sm",attrs:{"href":"advancedcontentfilter/help","title":messages.help}},[_c('i',{staticClass:"fa fa-question fa-2x",attrs:{"aria-hidden":"true"}})])]),_c('div',[_v(_s(messages.intro))]),_c('h2',[_v(_s(messages.your_rules)+" "),_c('button',{staticClass:"btn btn-primary btn-sm",attrs:{"title":messages.add_a_rule},on:{"click":function($event){showModal = true}}},[_c('i',{staticClass:"fa fa-plus fa-2x",attrs:{"aria-hidden":"true"}})])]),(rules.length === 0)?_c('div',{},[_v(_s(messages.no_rules))]):_e(),_c('ul',{staticClass:"list-group"},_l((rules),function(rule){return _c('li',{staticClass:"list-group-item"},[_c('p',{staticClass:"pull-right"},[(parseInt(rule.active))?_c('button',{staticClass:"btn btn-xs btn-primary",attrs:{"type":"button","aria-label":messages.disable_this_rule,"title":messages.disable_this_rule},on:{"click":function($event){toggleActive(rule)}}},[_c('i',{staticClass:"fa fa-toggle-on",attrs:{"aria-hidden":"true"}}),_v(" "+_s(messages.enabled))]):_c('button',{staticClass:"btn btn-xs btn-default",attrs:{"type":"button","aria-label":messages.enable_this_rule,"title":messages.enable_this_rule},on:{"click":function($event){toggleActive(rule)}}},[_c('i',{staticClass:"fa fa-toggle-off",attrs:{"aria-hidden":"true"}}),_v(" "+_s(messages.disabled))]),_v(" "),_c('button',{staticClass:"btn btn-xs btn-primary",attrs:{"type":"button","aria-label":messages.edit_this_rule,"title":messages.edit_this_rule},on:{"click":function($event){editRule(rule)}}},[_c('i',{staticClass:"fa fa-pencil",attrs:{"aria-hidden":"true"}})]),_v(" "),_c('button',{staticClass:"btn btn-xs btn-default",attrs:{"type":"button","aria-label":messages.delete_this_rule,"title":messages.delete_this_rule},on:{"click":function($event){deleteRule(rule)}}},[_c('i',{staticClass:"fa fa-trash-o",attrs:{"aria-hidden":"true"}})])]),_c('h3',{staticClass:"list-group-item-heading"},[_v(_s(messages.rule)+" #"+_s(rule.id)+": "+_s(rule.name))]),(rule.expression)?_c('pre',{staticClass:"list-group-item-text"},[_v(_s(rule.expression))]):_e()])})),_c('div',{ref:"vuemodal",staticClass:"modal fade",attrs:{"tabindex":"-1","role":"dialog"}},[_c('div',{staticClass:"modal-dialog",attrs:{"role":"document"}},[_c('div',{staticClass:"modal-content"},[_c('div',{staticClass:"modal-header"},[(currentTheme === 'frio')?_c('button',{staticClass:"close",attrs:{"type":"button","data-dismiss":"modal","aria-label":messages.close},on:{"click":function($event){showModal = false}}},[_c('span',{attrs:{"aria-hidden":"true"}},[_v("×")])]):_e(),(rule.id)?_c('h3',[_v(_s(messages.edit_the_rule)+" \""+_s(rule.name)+"\"")]):_e(),(!rule.id)?_c('h3',[_v(_s(messages.add_a_rule))]):_e()]),_c('div',{staticClass:"modal-body"},[_c('form',[(errorMessage)?_c('div',{staticClass:"alert alert-danger",attrs:{"role":"alert"}},[_v(_s(errorMessage))]):_e(),_c('div',{staticClass:"form-group"},[_c('input',{directives:[{name:"model",rawName:"v-model",value:(rule.name),expression:"rule.name"}],staticClass:"form-control",attrs:{"placeholder":messages.rule_name},domProps:{"value":(rule.name)},on:{"input":function($event){if($event.target.composing)return;$set(rule, "name", $event.target.value)}}})]),_c('div',{staticClass:"form-group"},[_c('input',{directives:[{name:"model",rawName:"v-model",value:(rule.expression),expression:"rule.expression"}],staticClass:"form-control",attrs:{"placeholder":messages.rule_expression},domProps:{"value":(rule.expression)},on:{"input":function($event){if($event.target.composing)return;$set(rule, "expression", $event.target.value)}}})])])]),_c('div',{staticClass:"modal-footer"},[_c('button',{staticClass:"btn btn-default",attrs:{"type":"button","data-dismiss":"modal","aria-label":"Close"},on:{"click":function($event){resetForm()}}},[_v(_s(messages.cancel))]),(rule.id)?_c('button',{staticClass:"btn btn-primary",attrs:{"slot":"button","type":"button"},on:{"click":function($event){saveRule(rule)}},slot:"button"},[_v(_s(messages.save_this_rule))]):_e(),(!rule.id)?_c('button',{staticClass:"btn btn-primary",attrs:{"slot":"button","type":"button"},on:{"click":function($event){addRule()}},slot:"button"},[_v(_s(messages.add_a_rule))]):_e()])])])]),_c('form',{staticClass:"form-inline",on:{"submit":function($event){$event.preventDefault();showVariables()}}},[_c('fieldset',[_c('legend',[_v("Show post variables")]),_c('div',{staticClass:"form-group",staticStyle:{"width":"50%"}},[_c('label',{staticClass:"sr-only",attrs:{"for":"itemUrl"}},[_v("Post URL or item guid")]),_c('input',{directives:[{name:"model",rawName:"v-model",value:(itemUrl),expression:"itemUrl"}],staticClass:"form-control",staticStyle:{"width":"100%"},attrs:{"id":"itemUrl","placeholder":"Post URL or item guid"},domProps:{"value":(itemUrl)},on:{"input":function($event){if($event.target.composing)return;itemUrl=$event.target.value}}})]),_c('button',{staticClass:"btn btn-primary",attrs:{"type":"submit"}},[_v("Show Variables")])])]),_c('pre',{},[_v(_s(itemJson))])])} + }, + + staticRenderFns: [ + ], +}); diff --git a/advancedcontentfilter/advancedcontentfilter.php b/advancedcontentfilter/advancedcontentfilter.php index 3012b312..55a80a80 100644 --- a/advancedcontentfilter/advancedcontentfilter.php +++ b/advancedcontentfilter/advancedcontentfilter.php @@ -208,31 +208,31 @@ function advancedcontentfilter_content(App $a) } else { $t = get_markup_template('settings.tpl', 'addon/advancedcontentfilter/'); return replace_macros($t, [ + '$messages' => [ + 'backtosettings' => L10n::t('Back to Addon Settings'), + 'title' => L10n::t('Advanced Content Filter'), + 'add_a_rule' => L10n::t('Add a Rule'), + 'help' => L10n::t('Help'), + 'intro' => L10n::t('Add and manage your personal content filter rules in this screen. Rules have a name and an arbitrary expression that will be matched against post data. For a complete reference of the available operations and variables, check the help page.'), + 'your_rules' => L10n::t('Your rules'), + 'no_rules' => L10n::t('You have no rules yet! Start adding one by clicking on the button above next to the title.'), + 'disabled' => L10n::t('Disabled'), + 'enabled' => L10n::t('Enabled'), + 'disable_this_rule' => L10n::t('Disable this rule'), + 'enable_this_rule' => L10n::t('Enable this rule'), + 'edit_this_rule' => L10n::t('Edit this rule'), + 'edit_the_rule' => L10n::t('Edit the rule'), + 'save_this_rule' => L10n::t('Save this rule'), + 'delete_this_rule' => L10n::t('Delete this rule'), + 'rule' => L10n::t('Rule'), + 'close' => L10n::t('Close'), + 'addtitle' => L10n::t('Add new rule'), + 'rule_name' => L10n::t('Rule Name'), + 'rule_expression' => L10n::t('Rule Expression'), + 'cancel' => L10n::t('Cancel'), + ], '$current_theme' => $a->getCurrentTheme(), - '$backtosettings' => L10n::t('Back to Addon Settings'), - '$title' => L10n::t('Advanced Content Filter'), - '$add_a_rule' => L10n::t('Add a Rule'), - '$help' => L10n::t('Help'), - '$advanced_content_filter_intro' => L10n::t('Add and manage your personal content filter rules in this screen. Rules have a name and an arbitrary expression that will be matched against post data. For a complete reference of the available operations and variables, check the help page.'), - '$your_rules' => L10n::t('Your rules'), - '$no_rules' => L10n::t('You have no rules yet! Start adding one by clicking on the button above next to the title.'), - '$disabled' => L10n::t('Disabled'), - '$enabled' => L10n::t('Enabled'), - '$disable_this_rule' => L10n::t('Disable this rule'), - '$enable_this_rule' => L10n::t('Enable this rule'), - '$edit_this_rule' => L10n::t('Edit this rule'), - '$edit_the_rule' => L10n::t('Edit the rule'), - '$save_this_rule' => L10n::t('Save this rule'), - '$delete_this_rule' => L10n::t('Delete this rule'), - '$rule' => L10n::t('Rule'), - '$close' => L10n::t('Close'), - '$addtitle' => L10n::t('Add new rule'), - '$rule_name' => L10n::t('Rule Name'), - '$rule_expression' => L10n::t('Rule Expression'), - '$examples' => L10n::t('

Examples:

'), - '$cancel' => L10n::t('Cancel'), '$rules' => advancedcontentfilter_get_rules(), - '$baseurl' => System::baseUrl(true), '$form_security_token' => get_form_security_token() ]); } diff --git a/advancedcontentfilter/templates/settings.tpl b/advancedcontentfilter/templates/settings.tpl index 813dc919..a04baf7d 100644 --- a/advancedcontentfilter/templates/settings.tpl +++ b/advancedcontentfilter/templates/settings.tpl @@ -1,96 +1,20 @@
-
-

🔙 {{$backtosettings}}

-

- {{$title}} +
- - - -

-
{{$advanced_content_filter_intro}}
-

- {{$your_rules}} - -

-
- {{$no_rules}} -
+ + var currentTheme = "{{$current_theme}}"; +