You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@isis.apache.org by da...@apache.org on 2018/12/20 18:48:16 UTC

[isis] 05/06: ISIS-1997: fine-tuning sidebar prompt

This is an automated email from the ASF dual-hosted git repository.

danhaywood pushed a commit to branch ISIS-1997
in repository https://gitbox.apache.org/repos/asf/isis.git

commit effc68817649d73d0728431ecfc64686cfa9ca6a
Author: danhaywood <da...@haywood-associates.co.uk>
AuthorDate: Thu Dec 20 12:19:35 2018 +0000

    ISIS-1997: fine-tuning sidebar prompt
    
    - don't add the icon to the action name at the top of the panel (also for modal dialog, too)
    - escape key should cancel
    - removes toggle button from every page
    - specify width of panel as 20% rather than hardcoded number of pixels
---
 .../actionpromptsb/ActionPromptSidebar.java        |  2 +-
 .../linkandlabel/ActionLinkFactoryAbstract.java    | 36 ++++++++++++++--------
 .../isis/viewer/wicket/ui/pages/PageAbstract.html  |  1 -
 .../wicket/ui/pages/jquery.isis.wicket.viewer.js   |  6 ++++
 .../isis/viewer/wicket/ui/pages/simple-sidebar.css | 26 ++++++++--------
 5 files changed, 45 insertions(+), 26 deletions(-)

diff --git a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/actionpromptsb/ActionPromptSidebar.java b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/actionpromptsb/ActionPromptSidebar.java
index ab0ba10..7dd619c 100644
--- a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/actionpromptsb/ActionPromptSidebar.java
+++ b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/actionpromptsb/ActionPromptSidebar.java
@@ -78,10 +78,10 @@ public class ActionPromptSidebar extends GenericPanel<Void> implements ActionPro
     @Override
     public void closePrompt(final AjaxRequestTarget target) {
 
+        setVisible(false);
         if (target != null) {
             hide(target);
         }
-        setVisible(false);
         if(closeHandlerIfAny != null) {
             closeHandlerIfAny.close(target);
         }
diff --git a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/linkandlabel/ActionLinkFactoryAbstract.java b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/linkandlabel/ActionLinkFactoryAbstract.java
index e90474b..1db195c 100644
--- a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/linkandlabel/ActionLinkFactoryAbstract.java
+++ b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/linkandlabel/ActionLinkFactoryAbstract.java
@@ -31,7 +31,9 @@ import org.apache.wicket.Application;
 import org.apache.wicket.MarkupContainer;
 import org.apache.wicket.Page;
 import org.apache.wicket.ajax.AjaxRequestTarget;
+import org.apache.wicket.markup.html.basic.Label;
 import org.apache.wicket.markup.html.link.AbstractLink;
+import org.apache.wicket.model.AbstractReadOnlyModel;
 import org.apache.wicket.request.cycle.RequestCycle;
 
 import org.apache.isis.applib.annotation.PromptStyle;
@@ -58,7 +60,6 @@ import org.apache.isis.viewer.wicket.model.models.ToggledMementosProvider;
 import org.apache.isis.viewer.wicket.ui.ComponentType;
 import org.apache.isis.viewer.wicket.ui.app.registry.ComponentFactoryRegistry;
 import org.apache.isis.viewer.wicket.ui.app.registry.ComponentFactoryRegistryAccessor;
-import org.apache.isis.viewer.wicket.ui.components.actionprompt.ActionPromptHeaderPanel;
 import org.apache.isis.viewer.wicket.ui.components.actions.ActionFormExecutorStrategy;
 import org.apache.isis.viewer.wicket.ui.components.actions.ActionParametersPanel;
 import org.apache.isis.viewer.wicket.ui.components.scalars.ScalarPanelAbstract2;
@@ -169,16 +170,16 @@ public abstract class ActionLinkFactoryAbstract implements ActionLinkFactory {
             final ActionPromptProvider promptProvider = ActionPromptProvider.Util.getFrom(actionLink.getPage());
             final ActionPrompt prompt = promptProvider.getActionPrompt();
 
-            // REVIEW: I wonder if this is still needed after the ISIS-1613 rework?
-            final ActionPromptHeaderPanel titlePanel =
-                    PersistenceSession.ConcurrencyChecking.executeWithConcurrencyCheckingDisabled(
-                            new Callable<ActionPromptHeaderPanel>() {
-                                @Override
-                                public ActionPromptHeaderPanel call() throws Exception {
-                                    final String titleId = prompt.getTitleId();
-                                    return new ActionPromptHeaderPanel(titleId, actionModel);
-                                }
-                            });
+//            // REVIEW: I wonder if this is still needed after the ISIS-1613 rework?
+//            final ActionPromptHeaderPanel titlePanel =
+//                    PersistenceSession.ConcurrencyChecking.executeWithConcurrencyCheckingDisabled(
+//                            new Callable<ActionPromptHeaderPanel>() {
+//                                @Override
+//                                public ActionPromptHeaderPanel call() throws Exception {
+//                                    final String titleId = prompt.getTitleId();
+//                                    return new ActionPromptHeaderPanel(titleId, actionModel);
+//                                }
+//                            });
 
 
             //
@@ -194,7 +195,14 @@ public abstract class ActionLinkFactoryAbstract implements ActionLinkFactory {
 
                 actionParametersPanel.setShowHeader(false);
 
-                prompt.setTitle(titlePanel, target);
+                final Label label = new Label(prompt.getTitleId(), new AbstractReadOnlyModel<String>() {
+                    @Override
+                    public String getObject() {
+                        final ObjectAction action = actionModel.getActionMemento().getAction(getSpecificationLoader());
+                        return action.getName();
+                    }
+                });
+                prompt.setTitle(label, target);
                 prompt.setPanel(actionParametersPanel, target);
                 actionParametersPanel.setActionPrompt(prompt);
                 prompt.showPrompt(target);
@@ -309,6 +317,10 @@ public abstract class ActionLinkFactoryAbstract implements ActionLinkFactory {
         return IsisContext.getSessionFactory();
     }
 
+    private SpecificationLoader getSpecificationLoader() {
+        return getIsisSessionFactory().getSpecificationLoader();
+    }
+
     //endregion
 
 }
diff --git a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/PageAbstract.html b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/PageAbstract.html
index aaa4753..f73406d 100644
--- a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/PageAbstract.html
+++ b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/PageAbstract.html
@@ -58,7 +58,6 @@
 
                                         <wicket:child/>
 
-                                        <a href="#menu-toggle" class="btn btn-default" id="menu-toggle">Toggle Menu</a>
                                     </div>
                                 </div>
                             </div>
diff --git a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/jquery.isis.wicket.viewer.js b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/jquery.isis.wicket.viewer.js
index 273272c..5899557 100644
--- a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/jquery.isis.wicket.viewer.js
+++ b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/jquery.isis.wicket.viewer.js
@@ -179,6 +179,12 @@ $(function() {
         $('#wrapper').toggleClass('toggled');
     });
 
+    $('#sidebar-wrapper').keyup(function(e) {
+        if (e.keyCode == 27) {
+           $('#wrapper').addClass('toggled');
+        }
+    });
+
 /*
     $('.editing .editable').parent().hover(function () {
         var inputEl = $(this).find("> .editable")
diff --git a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/simple-sidebar.css b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/simple-sidebar.css
index e67c026..32ee2c8 100644
--- a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/simple-sidebar.css
+++ b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/simple-sidebar.css
@@ -4,9 +4,10 @@
  * Licensed under MIT (https://github.com/BlackrockDigital/startbootstrap/blob/gh-pages/LICENSE)
  */
 
- body {
-    overflow-x: hidden;
- }
+body {
+   overflow-x: hidden;
+}
+
 
 /* Toggle Styles */
 
@@ -19,16 +20,16 @@
 }
 
 #wrapper.toggled {
-    padding-left: 350px;
+    padding-left: 20%;
 }
 
 #sidebar-wrapper {
     z-index: 1000;
     position: fixed;
-    left: 350px;
+    left: 20%;
     width: 0;
     height: 100%;
-    margin-left: -350px;
+    margin-left: -20%;
     overflow-y: auto;
     border: 1px dotted;
     -webkit-transition: all 0.5s ease;
@@ -38,7 +39,7 @@
 }
 
 #wrapper.toggled #sidebar-wrapper {
-    width: 350px;
+    width: 20%;
 }
 
 #page-content-wrapper {
@@ -49,7 +50,7 @@
 
 #wrapper.toggled #page-content-wrapper {
     position: absolute;
-    margin-right: -350px;
+    margin-right: -20%;
 }
 
 /* Sidebar Styles */
@@ -57,7 +58,7 @@
 .sidebar-nav {
     position: absolute;
     top: 0;
-    width: 350px;
+    width: 100%;
     margin: 0;
     padding: 0;
     list-style: none;
@@ -111,7 +112,7 @@
 
 @media(min-width:768px) {
     #wrapper {
-        padding-left: 350px;
+        padding-left: 20%;
     }
 
     #wrapper.toggled {
@@ -119,7 +120,7 @@
     }
 
     #sidebar-wrapper {
-        width: 350px;
+        width: 20%;
     }
 
     #wrapper.toggled #sidebar-wrapper {
@@ -135,4 +136,5 @@
         position: relative;
         margin-right: 0;
     }
-}
\ No newline at end of file
+}
+