Special XML conversion code for Firefox >= 20.0
[infodrom/rico3] / minsrc / ricoLiveGridMenu.js
index bb85181..406e7ce 100644 (file)
@@ -1,6 +1,6 @@
 /*
- *  (c) 2005-2009 Richard Cowin (http://openrico.org)
- *  (c) 2005-2009 Matt Brown (http://dowdybrown.com)
+ *  (c) 2005-2011 Richard Cowin (http://openrico.org)
+ *  (c) 2005-2011 Matt Brown (http://dowdybrown.com)
  *
  *  Licensed under the Apache License, Version 2.0 (the "License"); you may not use this
  *  file except in compliance with the License. You may obtain a copy of the License at
@@ -13,9 +13,6 @@
  *  and limitations under the License.
  */
 
- if(typeof Rico=='undefined')
-  throw("GridMenu requires the Rico JavaScript framework");
-
 /**
  * Standard menu for LiveGrid
  */
@@ -67,51 +64,46 @@ buildGridMenu: function(r,c) {
 
   // menu items for filtering
   this.filtermenu.clearMenu();
-  if (column.canFilter() && !column.format.filterUI && (!onBlankRow || column.filterType == Rico.ColumnConst.USERFILTER)) {
+  if (column.canFilter()) {
     this.addSubMenuItem(Rico.getPhraseById("gridmenuFilterBy",column.displayName), this.filtermenu, false);
-    column.userFilter=column.getValue(r);
-    if (column.filterType == Rico.ColumnConst.USERFILTER) {
-      this.filtermenu.addMenuItemId("gridmenuRemoveFilter", function() { column.setUnfiltered(false); }, true);
-      if (column.filterOp=='LIKE')
-        this.filtermenu.addMenuItemId("gridmenuChgKeyword", function() { livegrid.openKeyword(c); }, true);
-      if (column.filterOp=='NE' && !onBlankRow)
-        this.filtermenu.addMenuItemId("gridmenuExcludeAlso", function() { column.addFilterNE(); }, true);
-    } else if (!onBlankRow) {
-      this.filtermenu.addMenuItemId("gridmenuInclude", function() { column.setFilterEQ(); }, true);
-      this.filtermenu.addMenuItemId("gridmenuGreaterThan", function() { column.setFilterGE(); }, column.userFilter!='');
-      this.filtermenu.addMenuItemId("gridmenuLessThan", function() { column.setFilterLE(); }, column.userFilter!='');
-      if (column.isText)
-        this.filtermenu.addMenuItemId("gridmenuContains", function() { livegrid.openKeyword(c); }, true);
-      this.filtermenu.addMenuItemId("gridmenuExclude", function() { column.setFilterNE(); }, true);
+    if (!column.format.filterUI && (!onBlankRow || column.filterType == Rico.ColumnConst.USERFILTER)) {
+      column.userFilter=column.getValue(r);
+      if (column.filterType == Rico.ColumnConst.USERFILTER) {
+        this.filtermenu.addMenuItemId("gridmenuRemoveFilter", function() { column.setUnfiltered(false); }, true);
+        if (column.filterOp=='LIKE')
+          this.filtermenu.addMenuItemId("gridmenuChgKeyword", function() { livegrid.openKeyword(c); }, true);
+        if (column.filterOp=='NE' && !onBlankRow)
+          this.filtermenu.addMenuItemId("gridmenuExcludeAlso", function() { column.addFilterNE(); }, true);
+      } else if (!onBlankRow) {
+        this.filtermenu.addMenuItemId("gridmenuInclude", function() { column.setFilterEQ(); }, true);
+        this.filtermenu.addMenuItemId("gridmenuGreaterThan", function() { column.setFilterGE(); }, column.userFilter!='');
+        this.filtermenu.addMenuItemId("gridmenuLessThan", function() { column.setFilterLE(); }, column.userFilter!='');
+        if (column.isText)
+          this.filtermenu.addMenuItemId("gridmenuContains", function() { livegrid.openKeyword(c); }, true);
+        this.filtermenu.addMenuItemId("gridmenuExclude", function() { column.setFilterNE(); }, true);
+      }
     }
     if (livegrid.filterCount() > 0) {
-      this.filtermenu.addMenuItemId("gridmenuRefresh", function() { livegrid.filterHandler(); }, true);
       this.filtermenu.addMenuItemId("gridmenuRemoveAll", function() { livegrid.clearFilters(); }, true);
     }
-  } else if (livegrid.filterCount() > 0) {
-    this.addSubMenuItem(Rico.getPhraseById("gridmenuFilterBy",column.displayName), this.filtermenu, false);
-    this.filtermenu.addMenuItemId("gridmenuRemoveAll", function() { livegrid.clearFilters(); }, true);
+    if (buffer.options.canRefresh) this.filtermenu.addMenuItemId("gridmenuRefresh", function() { livegrid.filterHandler(); }, true);
   }
 
   // menu items for Print/Export
   this.exportmenu.clearMenu();
-  if (buffer.printVisibleSQL && typeof(buffer.dataSource)=='string') {
-    // SQL buffer
-    this.addSubMenuItem(Rico.getPhraseById('gridmenuExport'),this.exportmenu,false);
-    this.exportmenu.addMenuItemId("gridmenuExportVis2Web", function() { buffer.printVisibleSQL('html'); });
-    this.exportmenu.addMenuItemId("gridmenuExportAll2Web", function() { buffer.printAllSQL('html'); }, buffer.totalRows <= maxprint);
-    this.exportmenu.addMenuBreak();
-    this.exportmenu.addMenuItemId("gridmenuExportVis2SS", function() { buffer.printVisibleSQL('xl'); });
-    this.exportmenu.addMenuItemId("gridmenuExportAll2SS", function() { buffer.printAllSQL('xl'); }, buffer.totalRows <= maxprint);
-  } else if (maxprint > 0 && totrows>0) {
-    // any other buffer
+  if (maxprint > 0) {
     this.addSubMenuItem(Rico.getPhraseById('gridmenuExport'),this.exportmenu,false);
-    this.exportmenu.addMenuItemId("gridmenuExportVis2Web", function() { buffer.printVisible('plain'); });
-    this.exportmenu.addMenuItemId("gridmenuExportAll2Web", function() { buffer.printAll('plain'); }, buffer.totalRows <= maxprint);
-    if (Rico.isIE) {
+    if (buffer.printVisibleSQL && typeof(buffer.dataSource)=='string') {
+      // SQL buffer
+      this.exportmenu.addMenuItemId("gridmenuExportVis2Web", function() { buffer.printVisibleSQL('html'); });
+      this.exportmenu.addMenuItemId("gridmenuExportAll2Web", function() { buffer.printAllSQL('html'); }, buffer.totalRows <= maxprint);
       this.exportmenu.addMenuBreak();
-      this.exportmenu.addMenuItemId("gridmenuExportVis2SS", function() { buffer.printVisible('owc'); });
-      this.exportmenu.addMenuItemId("gridmenuExportAll2SS", function() { buffer.printAll('owc'); }, buffer.totalRows <= maxprint);
+      this.exportmenu.addMenuItemId("gridmenuExportVis2SS", function() { buffer.printVisibleSQL('xl'); });
+      this.exportmenu.addMenuItemId("gridmenuExportAll2SS", function() { buffer.printAllSQL('xl'); }, buffer.totalRows <= maxprint);
+    } else {
+      // any other buffer
+      this.exportmenu.addMenuItemId("gridmenuExportVis2Web", function() { buffer.printVisible(); });
+      this.exportmenu.addMenuItemId("gridmenuExportAll2Web", function() { buffer.printAll(); }, buffer.totalRows <= maxprint);
     }
   }