Merge pull request #1858 from shackbarth/1854
[xtuple] / lib / enyo-x / source / views / transaction_list_container.js
index 7a2482a..7e3518e 100644 (file)
@@ -14,7 +14,8 @@ trailing:true, white:true, strict:false*/
    */
   var transactionListContainer =  /** @lends XV.TransactionListContainer# */ {
     name: "XV.TransactionListContainer",
-    kind: "XV.GridPanels",
+    kind: "XV.SearchPanels",
+    classes: 'xv-search',
     published: {
       prerequisite: "",
       notifyMessage: "",
@@ -32,41 +33,46 @@ trailing:true, white:true, strict:false*/
       onListItemMenuTap: "showListItemMenu",
       onParameterChange: "requery",
       onProcessingChanged: "processingChanged",
-      onSelectionChanged: "selectionChanged"
+      onSelectionChanged: "selectionChanged",
+      onUpdateHeader: "updateHeader"
     },
     init: false,
     components: [
       {name: "parameterPanel", kind: "FittableRows", classes: "left",
         components: [
         {kind: "onyx.Toolbar", classes: "onyx-menu-toolbar", components: [
-          {kind: "onyx.Button", name: "backButton", content: "_back".loc(), ontap: "close"},
-          {kind: "onyx.MenuDecorator", style: "margin: 0;",
-            onSelect: "actionSelected", components: [
-            {kind: "XV.IconButton", src: "/assets/menu-icon-gear.png",
+          {kind: "font.TextIcon", name: "backButton",
+            content: "_back".loc(), ontap: "close", icon: "chevron-left"},
+          {kind: "onyx.MenuDecorator", onSelect: "actionSelected", components: [
+            {kind: "font.TextIcon", icon: "cog",
               content: "_actions".loc(), name: "actionButton"},
             {kind: "onyx.Menu", name: "actionMenu"}
           ]}
         ]},
-        {kind: "Scroller", name: "parameterScroller"}
+        {classes: "xv-header", name: "transactionListHeader", content: "_search".loc()},
+        {kind: "XV.ScrollableGroupbox", name: "parameterScroller", classes: "xv-search-container", fit: true}
       ]},
       {name: "listPanel", kind: "FittableRows", components: [
         // the onyx-menu-toolbar class keeps the popups from being hidden
         {kind: "onyx.MoreToolbar", name: "contentToolbar",
           classes: "onyx-menu-toolbar", movedClass: "xv-toolbar-moved", components: [
           {name: "rightLabel", content: "_search".loc(), classes: "xv-toolbar-label"},
-          {name: "spacer", content: "", fit: true},
-          {kind: "onyx.Button", name: "printButton", showing: false,
-            content: "_print".loc(), onclick: "print"},
-          {kind: "onyx.Button", name: "refreshButton", disabled: false,
-            content: "_refresh".loc(), onclick: "requery"},
-          {kind: "onyx.Button", name: "postButton",
-            disabled: true, classes: "save", showing: false,
-            content: "_post".loc(), onclick: "post"},
+          {name: "spacer", classes: "spacer", fit: true},
+          {kind: "font.TextIcon", name: "printButton", showing: false,
+            content: "_print".loc(), ontap: "print", icon: "print"},
+          {kind: "font.TextIcon", name: "refreshButton",
+            content: "_refresh".loc(), onclick: "requery", icon: "rotate-right"},
+          {kind: "font.TextIcon", name: "postButton",
+            disabled: true, icon: "save", classes: "save",
+            content: "_post".loc(), ontap: "post"},
           {name: "listItemMenu", kind: "onyx.Menu", floating: true,
             onSelect: "listActionSelected", maxHeight: 500}
         ]},
-        {name: "contentPanels", kind: "Panels", margin: 0, fit: true, draggable: false,
-          panelCount: 0},
+        {name: "messageHeader", content: "", classes: ""},
+        {name: "header", classes: "xv-header", showing: false},
+        {name: "contentHeader"},
+        {name: "contentPanels", kind: "Panels", margin: 0, fit: true,
+          draggable: false, panelCount: 0, classes: "scroll-ios xv-content-panel"},
         {kind: "onyx.Popup", name: "spinnerPopup", centered: true,
             modal: true, floating: true, scrim: true,
             onHide: "popupHidden", components: [
@@ -82,7 +88,7 @@ trailing:true, white:true, strict:false*/
     },
     close: function () {
       var callback = this.getCallback();
-      
+
       this.doPrevious();
       if (callback) { callback(); }
     },
@@ -221,7 +227,8 @@ trailing:true, white:true, strict:false*/
     */
     setList: function (options) {
       var component,
-      list = options.list;
+        contentHeader = this.$.contentHeader,
+        list = options.list;
 
       component = this.createComponent({
         name: "list",
@@ -233,7 +240,7 @@ trailing:true, white:true, strict:false*/
       if (component) {
         this.createComponent({
           name: "parameterWidget",
-          classes: "xv-groupbox xv-parameter",
+          classes: "xv-parameter",
           showSaveFilter: false,
           showLayout: false,
           defaultParameters: null,
@@ -242,6 +249,12 @@ trailing:true, white:true, strict:false*/
           memoizeEnabled: false,
           fit: true
         });
+
+        contentHeader.destroyClientControls();
+        if (component.headerComponents) {
+          contentHeader.createComponents(component.headerComponents);
+          contentHeader.render();
+        }
       }
 
       this.init = true;
@@ -265,6 +278,14 @@ trailing:true, white:true, strict:false*/
       for (i = 0; i < collection.length; i++) {
         collection.at(i).transactionDate = transDate;
       }
+    },
+    updateHeader: function (inSender, inEvent) {
+      if (inEvent.noItemFound) {
+        this.$.transactionListHeader.setContent("_noItemFound".loc() + ": " + inEvent.data);
+
+      } else if (this.$.transactionListHeader.getContent() !== "_search".loc()) {
+        this.$.transactionListHeader.setContent("");
+      }
     }
   };