+++ /dev/null
-$.ajaxSetup({headers: {'X-CSRF-Token': document.querySelector('#csrf').getAttribute('value')}});
-
-$.extend({
- ajaxJSON: function(method, url, data) {
- return $.ajax({
- type: method.toUpperCase(),
- url: url,
- data: JSON.stringify(data),
- contentType: 'application/json; charset=utf-8',
- dataType: 'json'
- });
- }
-});
-
-new Vue({
- el: '#rules',
-
- data: {
- showModal: false,
- errorMessage: '',
- editedIndex: null,
- rule: {id: '', name: '', expression: '', created: ''},
- rules: existingRules || [],
- itemUrl: '',
- itemJson: ''
- },
-
- watch: {
- showModal: function () {
- if (this.showModal) {
- $(this.$refs.vuemodal).modal('show');
- } else {
- $(this.$refs.vuemodal).modal('hide');
- }
- }
- },
-
- methods: {
- resetForm: function() {
- this.rule = {id: '', name: '', expression: '', created: ''};
- this.showModal = false;
- this.editedIndex = null;
- },
-
- addRule: function () {
- if (this.rule.name.trim()) {
- this.errorMessage = '';
-
- var self = this;
- $.ajaxJSON('post', '/advancedcontentfilter/api/rules', this.rule)
- .then(function (responseJSON) {
- self.rules.push(responseJSON.rule);
- self.resetForm();
- }, function (response) {
- self.errorMessage = response.responseJSON.message;
- });
- }
- },
-
- editRule: function (rule) {
- this.editedIndex = this.rules.indexOf(rule);
- this.rule = Object.assign({}, rule);
- this.showModal = true;
- },
-
- saveRule: function (rule) {
- this.errorMessage = '';
-
- var self = this;
- $.ajaxJSON('put', '/advancedcontentfilter/api/rules/' + rule.id, rule)
- .then(function () {
- self.rules[self.editedIndex] = rule;
- self.resetForm();
- }, function (response) {
- self.errorMessage = response.responseJSON.message;
- });
- },
-
- toggleActive: function (rule) {
- var previousValue = this.rules[this.rules.indexOf(rule)].active;
- var newValue = Math.abs(parseInt(rule.active) - 1);
-
- this.rules[this.rules.indexOf(rule)].active = newValue;
-
- var self = this;
- $.ajaxJSON('put', '/advancedcontentfilter/api/rules/' + rule.id, {'active': newValue})
- .fail(function (response) {
- self.rules[self.rules.indexOf(rule)].active = previousValue;
- console.log(response.responseJSON.message);
- });
- },
-
- deleteRule: function (rule) {
- if (confirm('Are you sure you want to delete this rule?')) {
- var self = this;
- $.ajaxJSON('delete', '/advancedcontentfilter/api/rules/' + rule.id)
- .then(function () {
- self.rules.splice(self.rules.indexOf(rule), 1);
- }, function (response) {
- console.log(response.responseJSON.message);
- });
- }
- },
-
- showVariables: function () {
- var urlParts = this.itemUrl.split('/');
- var guid = urlParts[urlParts.length - 1];
-
- this.itemJson = '';
-
- var self = this;
- $.ajaxJSON('get', '/advancedcontentfilter/api/variables/' + guid)
- .then(function (responseJSON) {
- self.itemJson = responseJSON.variables;
- }, function (response) {
- self.itemJson = response.responseJSON.message;
- });
-
- return false;
- }
- }
-});
\ No newline at end of file