From 503fe6d993013082586ccd5783770617c6a945b9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lorenzo=20Tilve=20=C3=81lvaro?= Date: Thu, 20 Oct 2011 22:54:40 +0200 Subject: [PATCH] Added a 'Cancel' button to common area with modal window to ask for confirmation FEA: ItEr75S04BugFixing --- .../web/orders/OrderCRUDController.java | 30 +++++++++++++ .../web/planner/order/OrderPlanningModel.java | 42 ++++++++++++++++++ .../src/main/webapp/common/img/ico_back.png | Bin 0 -> 629 bytes .../src/main/webapp/orders/_ordersTab.zul | 3 ++ 4 files changed, 75 insertions(+) create mode 100644 navalplanner-webapp/src/main/webapp/common/img/ico_back.png diff --git a/navalplanner-webapp/src/main/java/org/navalplanner/web/orders/OrderCRUDController.java b/navalplanner-webapp/src/main/java/org/navalplanner/web/orders/OrderCRUDController.java index 20e40d26f..b04a6b281 100644 --- a/navalplanner-webapp/src/main/java/org/navalplanner/web/orders/OrderCRUDController.java +++ b/navalplanner-webapp/src/main/java/org/navalplanner/web/orders/OrderCRUDController.java @@ -209,6 +209,7 @@ public class OrderCRUDController extends GenericForwardComposer { private Button createOrderButton; private Button createOrderFromTemplateButton; private Button saveOrderAndContinueButton; + private Button cancelEditionButton; private Datebox filterStartDate; @@ -293,6 +294,34 @@ public class OrderCRUDController extends GenericForwardComposer { saveAndContinue(); } }); + + cancelEditionButton.setParent(perspectiveButtonsInsertionPoint); + cancelEditionButton.addEventListener(Events.ON_CLICK, + new EventListener() { + @Override + public void onEvent(Event event) throws Exception { + try { + Messagebox + .show(_("Unsaved changes will be lost. Are you sure?"), + _("Confirm exit dialog"), + Messagebox.OK | Messagebox.CANCEL, + Messagebox.QUESTION, + new org.zkoss.zk.ui.event.EventListener() { + public void onEvent(Event evt) + throws InterruptedException { + if (evt.getName().equals( + "onOK")) { + Executions + .sendRedirect("/planner/index.zul;company_scheduling"); + } + } + }); + } catch (InterruptedException e) { + e.printStackTrace(); + } + } + }); + } private void initEditOrderElementWindow() { @@ -1445,6 +1474,7 @@ public class OrderCRUDController extends GenericForwardComposer { createOrderButton.setVisible(showCreate); createOrderFromTemplateButton.setVisible(showCreate); saveOrderAndContinueButton.setVisible(!showCreate); + cancelEditionButton.setVisible(!showCreate); } public void highLight(final OrderElement orderElement) { diff --git a/navalplanner-webapp/src/main/java/org/navalplanner/web/planner/order/OrderPlanningModel.java b/navalplanner-webapp/src/main/java/org/navalplanner/web/planner/order/OrderPlanningModel.java index 4d06d4b95..e21e80b52 100644 --- a/navalplanner-webapp/src/main/java/org/navalplanner/web/planner/order/OrderPlanningModel.java +++ b/navalplanner-webapp/src/main/java/org/navalplanner/web/planner/order/OrderPlanningModel.java @@ -115,6 +115,7 @@ import org.zkoss.ganttz.adapters.PlannerConfiguration.IReloadChartListener; import org.zkoss.ganttz.data.GanttDiagramGraph.IGraphChangeListener; import org.zkoss.ganttz.extensions.ICommand; import org.zkoss.ganttz.extensions.ICommandOnTask; +import org.zkoss.ganttz.extensions.IContext; import org.zkoss.ganttz.extensions.IContextWithPlannerTask; import org.zkoss.ganttz.timetracker.TimeTracker; import org.zkoss.ganttz.timetracker.zoom.DetailItem; @@ -135,6 +136,7 @@ import org.zkoss.zul.Datebox; import org.zkoss.zul.Div; import org.zkoss.zul.Hbox; import org.zkoss.zul.Label; +import org.zkoss.zul.Messagebox; import org.zkoss.zul.Progressmeter; import org.zkoss.zul.Tab; import org.zkoss.zul.Tabbox; @@ -327,6 +329,7 @@ public class OrderPlanningModel implements IOrderPlanningModel { setupEditingCapabilities(configuration, writingAllowed); configuration.addGlobalCommand(buildReassigningCommand()); + configuration.addGlobalCommand(buildCancelEditionCommand()); NullSeparatorCommandOnTask separator = new NullSeparatorCommandOnTask(); @@ -1002,6 +1005,45 @@ public class OrderPlanningModel implements IOrderPlanningModel { return reassignCommand; } + private ICommand buildCancelEditionCommand() { + return new ICommand() { + + @Override + public String getName() { + return _("Cancel"); + } + + @Override + public void doAction(IContext context) { + + try { + Messagebox + .show("Are you sure to want to leave? Unsaved changes will be lost.", + "Confirm exit dialog", Messagebox.OK + | Messagebox.CANCEL, + Messagebox.QUESTION, + new org.zkoss.zk.ui.event.EventListener() { + public void onEvent(Event evt) + throws InterruptedException { + if (evt.getName().equals("onOK")) { + Executions + .sendRedirect("/planner/index.zul;company_scheduling"); + } + } + }); + } catch (InterruptedException e) { + e.printStackTrace(); + } + } + + @Override + public String getImage() { + return "/common/img/ico_back.png"; + } + + }; + } + private Chart setupChart(Order orderReloaded, IChartFiller loadChartFiller, Timeplot chartComponent, Planner planner) { diff --git a/navalplanner-webapp/src/main/webapp/common/img/ico_back.png b/navalplanner-webapp/src/main/webapp/common/img/ico_back.png new file mode 100644 index 0000000000000000000000000000000000000000..5cd4342878ca4e23d5c48e41659df110b315caf7 GIT binary patch literal 629 zcmV-*0*d{KP)Px#24YJ`L;(K){{a7>y{D4^000SaNLh0L01FcU01FcV0GgZ_00007bV*G`2ipo1 z6#+SY6-M^}00H$$L_t(I%VS^|?0^xQm_t4TyMQ4l+pq6`6&SuUsS0z+3o-oU+OoLt z{Bv>)!~nq^N?u%SJdFzCn(~+LpHA6Ob8iz>yklL$=Fzt+`F}*8+FGiGkx3py;nEw$ z|6S_&XJC_OCS-tB5rdSB6?5s6&IBdce^ z8Mw?0tb$SkOp;P^XMg?r`xhoID9WJE&C9{SFU!clC&Unft`Dby|Nk=lHca|;+QQUI z;`bkjn3y{Qn~s*^djYAv+Pf)eD@S zbt?D2P6k6gv3gkWN$zU=U@FYN>j4`p@s403q~Ol|n+EJ`%pVy>0WJUlqiUi8)gQ}@ P00000NkvXXu0mjfIpiEp literal 0 HcmV?d00001 diff --git a/navalplanner-webapp/src/main/webapp/orders/_ordersTab.zul b/navalplanner-webapp/src/main/webapp/orders/_ordersTab.zul index 0ed53f206..236b6f648 100644 --- a/navalplanner-webapp/src/main/webapp/orders/_ordersTab.zul +++ b/navalplanner-webapp/src/main/webapp/orders/_ordersTab.zul @@ -40,6 +40,9 @@