From 076ff7c7baadb03aceeff7170fb87ca00386dceb Mon Sep 17 00:00:00 2001 From: James Cole Date: Wed, 10 Feb 2016 15:04:06 +0100 Subject: [PATCH] Fixes #173 --- public/js/rules/create-edit.js | 50 ++++++++++++++++++++++++++-- public/js/rules/create.js | 2 +- public/js/rules/edit.js | 45 +++++++++++++++++++++++++ resources/views/rules/rule/edit.twig | 2 +- 4 files changed, 94 insertions(+), 5 deletions(-) create mode 100644 public/js/rules/edit.js diff --git a/public/js/rules/create-edit.js b/public/js/rules/create-edit.js index 3434bcd851..9310d6d8de 100644 --- a/public/js/rules/create-edit.js +++ b/public/js/rules/create-edit.js @@ -11,8 +11,7 @@ var actionCount = 0; $(function () { "use strict"; - console.log("create-edit"); - + console.log('edit-create'); }); @@ -21,11 +20,18 @@ function addNewTrigger() { triggerCount++; $.getJSON('json/trigger', {count: triggerCount}).done(function (data) { - //console.log(data.html); $('tbody.rule-trigger-tbody').append(data.html); + + $('.remove-trigger').unbind('click').click(function (e) { + removeTrigger(e); + + return false; + }); + }).fail(function () { alert('Cannot get a new trigger.'); }); + } function addNewAction() { @@ -35,7 +41,45 @@ function addNewAction() { $.getJSON('json/action', {count: actionCount}).done(function (data) { //console.log(data.html); $('tbody.rule-action-tbody').append(data.html); + + // add action things. + $('.remove-action').unbind('click').click(function (e) { + removeAction(e); + + return false; + }); + }).fail(function () { alert('Cannot get a new action.'); }); +} + +function removeTrigger(e) { + "use strict"; + var target = $(e.target); + if(target.prop("tagName") == "I") { + target = target.parent(); + } + // remove grand parent: + target.parent().parent().remove(); + + // if now at zero, immediatly add one again: + if($('.rule-trigger-tbody tr').length == 0) { + addNewTrigger(); + } +} + +function removeAction(e) { + "use strict"; + var target = $(e.target); + if(target.prop("tagName") == "I") { + target = target.parent(); + } + // remove grand parent: + target.parent().parent().remove(); + + // if now at zero, immediatly add one again: + if($('.rule-action-tbody tr').length == 0) { + addNewAction(); + } } \ No newline at end of file diff --git a/public/js/rules/create.js b/public/js/rules/create.js index e9bf3776bc..617cc284ee 100644 --- a/public/js/rules/create.js +++ b/public/js/rules/create.js @@ -11,7 +11,7 @@ $(function () { "use strict"; - console.log("edit"); + console.log("create"); if (triggerCount === 0) { addNewTrigger(); } diff --git a/public/js/rules/edit.js b/public/js/rules/edit.js new file mode 100644 index 0000000000..dc4ab331a5 --- /dev/null +++ b/public/js/rules/edit.js @@ -0,0 +1,45 @@ +/* + * edit.js + * Copyright (C) 2016 Sander Dorigo + * + * This software may be modified and distributed under the terms + * of the MIT license. See the LICENSE file for details. + */ + +$(function () { + "use strict"; + console.log("edit"); + + if (triggerCount === 0) { + addNewTrigger(); + } + if (actionCount === 0) { + addNewAction(); + } + + + $('.add_rule_trigger').click(function () { + addNewTrigger(); + + return false; + }); + + $('.add_rule_action').click(function () { + addNewAction(); + + return false; + }); + + $('.remove-trigger').unbind('click').click(function (e) { + removeTrigger(e); + + return false; + }); + + // add action things. + $('.remove-action').unbind('click').click(function (e) { + removeAction(e); + + return false; + }); +}); \ No newline at end of file diff --git a/resources/views/rules/rule/edit.twig b/resources/views/rules/rule/edit.twig index 548df5306f..bda2c3eae9 100644 --- a/resources/views/rules/rule/edit.twig +++ b/resources/views/rules/rule/edit.twig @@ -128,5 +128,5 @@ var triggerCount = {{ triggerCount }}; var actionCount = {{ actionCount }}; - + {% endblock %}