fmsystem-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Fmsystem-commits] [12255] Load the menu-source from local server


From: Sigurd Nes
Subject: [Fmsystem-commits] [12255] Load the menu-source from local server
Date: Thu, 30 Oct 2014 19:17:06 +0000

Revision: 12255
          http://svn.sv.gnu.org/viewvc/?view=rev&root=fmsystem&revision=12255
Author:   sigurdne
Date:     2014-10-30 19:17:05 +0000 (Thu, 30 Oct 2014)
Log Message:
-----------
Load the menu-source from local server

Modified Paths:
--------------
    branches/dev-syncromind/phpgwapi/templates/pure/head.inc.php
    branches/dev-syncromind/phpgwapi/templates/pure/js/mmenu.js
    branches/dev-syncromind/phpgwapi/templates/pure/navbar.inc.php
    branches/dev-syncromind/preferences/templates/base/preferences.tpl

Added Paths:
-----------
    branches/dev-syncromind/phpgwapi/js/yui3-gallery/gallery-sm-menu-base/
    
branches/dev-syncromind/phpgwapi/js/yui3-gallery/gallery-sm-menu-base/gallery-sm-menu-base-coverage.js
    
branches/dev-syncromind/phpgwapi/js/yui3-gallery/gallery-sm-menu-base/gallery-sm-menu-base-debug.js
    
branches/dev-syncromind/phpgwapi/js/yui3-gallery/gallery-sm-menu-base/gallery-sm-menu-base-min.js
    
branches/dev-syncromind/phpgwapi/js/yui3-gallery/gallery-sm-menu-base/gallery-sm-menu-base.js
    branches/dev-syncromind/phpgwapi/js/yui3-gallery/gallery-sm-menu-item/
    
branches/dev-syncromind/phpgwapi/js/yui3-gallery/gallery-sm-menu-item/gallery-sm-menu-item-coverage.js
    
branches/dev-syncromind/phpgwapi/js/yui3-gallery/gallery-sm-menu-item/gallery-sm-menu-item-debug.js
    
branches/dev-syncromind/phpgwapi/js/yui3-gallery/gallery-sm-menu-item/gallery-sm-menu-item-min.js
    
branches/dev-syncromind/phpgwapi/js/yui3-gallery/gallery-sm-menu-item/gallery-sm-menu-item.js
    branches/dev-syncromind/phpgwapi/js/yui3-gallery/gallery-sm-menu-plugin/
    
branches/dev-syncromind/phpgwapi/js/yui3-gallery/gallery-sm-menu-plugin/gallery-sm-menu-plugin-coverage.js
    
branches/dev-syncromind/phpgwapi/js/yui3-gallery/gallery-sm-menu-plugin/gallery-sm-menu-plugin-debug.js
    
branches/dev-syncromind/phpgwapi/js/yui3-gallery/gallery-sm-menu-plugin/gallery-sm-menu-plugin-min.js
    
branches/dev-syncromind/phpgwapi/js/yui3-gallery/gallery-sm-menu-plugin/gallery-sm-menu-plugin.js
    branches/dev-syncromind/phpgwapi/js/yui3-gallery/gallery-sm-menu-templates/
    
branches/dev-syncromind/phpgwapi/js/yui3-gallery/gallery-sm-menu-templates/gallery-sm-menu-templates-coverage.js
    
branches/dev-syncromind/phpgwapi/js/yui3-gallery/gallery-sm-menu-templates/gallery-sm-menu-templates-debug.js
    
branches/dev-syncromind/phpgwapi/js/yui3-gallery/gallery-sm-menu-templates/gallery-sm-menu-templates-min.js
    
branches/dev-syncromind/phpgwapi/js/yui3-gallery/gallery-sm-menu-templates/gallery-sm-menu-templates.js

Added: 
branches/dev-syncromind/phpgwapi/js/yui3-gallery/gallery-sm-menu-base/gallery-sm-menu-base-coverage.js
===================================================================
--- 
branches/dev-syncromind/phpgwapi/js/yui3-gallery/gallery-sm-menu-base/gallery-sm-menu-base-coverage.js
                              (rev 0)
+++ 
branches/dev-syncromind/phpgwapi/js/yui3-gallery/gallery-sm-menu-base/gallery-sm-menu-base-coverage.js
      2014-10-30 19:17:05 UTC (rev 12255)
@@ -0,0 +1,6 @@
+if (typeof __coverage__ === 'undefined') { __coverage__ = {}; }
+if (!__coverage__['build/gallery-sm-menu-base/gallery-sm-menu-base.js']) {
+   __coverage__['build/gallery-sm-menu-base/gallery-sm-menu-base.js'] = 
{"path":"build/gallery-sm-menu-base/gallery-sm-menu-base.js","s":{"1":0,"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0},"b":{"1":[0,0],"2":[0,0],"3":[0,0],"4":[0,0],"5":[0,0],"6":[0,0],"7":[0,0],"8":[0,0],"9":[0,0]},"f":{"1":0,"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0},"fnMap":{"1":{"name":"(anonymous_1)","line":1,"loc":{"start":{"line":1,"column":32},"end":{"line":1,"column":51}}},"2":{"name":"(anonymous_2)","line":63,"loc":{"start":{"line":63,"column":17},"end":{"line":63,"column":35}}},"3":{"name":"(anonymous_3)","line":77,"loc":{"start":{"line":77,"column":19},"end":{"line":77,"column":31}}},"4":{"name":"(anonymous_4)","line":79,"loc":{"start":{"line":79,"column":39},"end":{"line":79,"column":55}}},"5":{"name":"(anonymous_5)","line":96,"loc":{"start":{"line":96,"column":17},"end":{"line":96,"column":42}}},"6":{"name":"(anonymous_6)","line":117,"loc":{"start":{"line":117,"column":16},"end":{"line":117,"column":41}}},"7":{"name":"(anonymous_7)","line":138,"loc":{"start":{"line":138,"column":14},"end":{"line":138,"column":39}}},"8":{"name":"(anonymous_8)","line":159,"loc":{"start":{"line":159,"column":14},"end":{"line":159,"column":39}}},"9":{"name":"(anonymous_9)","line":179,"loc":{"start":{"line":179,"column":19},"end":{"line":179,"column":32}}},"10":{"name":"(anonymous_10)","line":190,"loc":{"start":{"line":190,"column":18},"end":{"line":190,"column":31}}},"11":{"name":"(anonymous_11)","line":201,"loc":{"start":{"line":201,"column":16},"end":{"line":201,"column":29}}},"12":{"name":"(anonymous_12)","line":212,"loc":{"start":{"line":212,"column":16},"end":{"line":212,"column":29}}}},"statementMap":{"1":{"start":{"line":1,"column":0},"end":{"line":220,"column":91}},"2":{"start":{"line":30,"column":0},"end":{"line":30,"column":28}},"3":{"start":{"line":39,"column":0},"end":{"line":39,"column":26}},"4":{"start":{"line":48,"column":0},"end":{"line":48,"column":22}},"5":{"start":{"line":57,"column":0},"end":{"line":57,"column":22}},"6":{"start":{"line":59,"column":0},"end":{"line":215,"column":3}},"7":{"start":{"line":64,"column":8},"end":{"line":66,"column":9}},"8":{"start":{"line":65,"column":12},"end":{"line":65,"column":40}},"9":{"start":{"line":79,"column":8},"end":{"line":81,"column":17}},"10":{"start":{"line":80,"column":12},"end":{"line":80,"column":25}},"11":{"start":{"line":83,"column":8},"end":{"line":83,"column":20}},"12":{"start":{"line":97,"column":8},"end":{"line":102,"column":9}},"13":{"start":{"line":98,"column":12},"end":{"line":101,"column":15}},"14":{"start":{"line":104,"column":8},"end":{"line":104,"column":20}},"15":{"start":{"line":118,"column":8},"end":{"line":123,"column":9}},"16":{"start":{"line":119,"column":12},"end":{"line":122,"column":15}},"17":{"start":{"line":125,"column":8},"end":{"line":125,"column":20}},"18":{"start":{"line":139,"column":8},"end":{"line":144,"column":9}},"19":{"start":{"line":140,"column":12},"end":{"line":143,"column":15}},"20":{"start":{"line":146,"column":8},"end":{"line":146,"column":20}},"21":{"start":{"line":160,"column":8},"end":{"line":165,"column":9}},"22":{"start":{"line":161,"column":12},"end":{"line":164,"column":15}},"23":{"start":{"line":167,"column":8},"end":{"line":167,"column":20}},"24":{"start":{"line":180,"column":8},"end":{"line":180,"column":37}},"25":{"start":{"line":191,"column":8},"end":{"line":191,"column":37}},"26":{"start":{"line":202,"column":8},"end":{"line":202,"column":35}},"27":{"start":{"line":213,"column":8},"end":{"line":213,"column":35}},"28":{"start":{"line":217,"column":0},"end":{"line":217,"column":36}}},"branchMap":{"1":{"line":64,"type":"if","locations":[{"start":{"line":64,"column":8},"end":{"line":64,"column":8}},{"start":{"line":64,"column":8},"end":{"line":64,"column":8}}]},"2":{"line":97,"type":"if","locations":[{"start":{"line":97,"column":8},"end":{"line":97,"column":8}},{"start":{"line":97,"column":8},"end":{"line":97,"column":8}}]},"3":{"line":100,"type":"binary-expr","locations":[{"start":{"line":100,"column":27},"end":{"line":100,"column":34}},{"start":{"line":100,"column":38},"end":{"line":100,"column":52}}]},"4":{"line":118,"type":"if","locations":[{"start":{"line":118,"column":8},"end":{"line":118,"column":8}},{"start":{"line":118,"column":8},"end":{"line":118,"column":8}}]},"5":{"line":121,"type":"binary-expr","locations":[{"start":{"line":121,"column":27},"end":{"line":121,"column":34}},{"start":{"line":121,"column":38},"end":{"line":121,"column":52}}]},"6":{"line":139,"type":"if","locations":[{"start":{"line":139,"column":8},"end":{"line":139,"column":8}},{"start":{"line":139,"column":8},"end":{"line":139,"column":8}}]},"7":{"line":142,"type":"binary-expr","locations":[{"start":{"line":142,"column":27},"end":{"line":142,"column":34}},{"start":{"line":142,"column":38},"end":{"line":142,"column":52}}]},"8":{"line":160,"type":"if","locations":[{"start":{"line":160,"column":8},"end":{"line":160,"column":8}},{"start":{"line":160,"column":8},"end":{"line":160,"column":8}}]},"9":{"line":163,"type":"binary-expr","locations":[{"start":{"line":163,"column":27},"end":{"line":163,"column":34}},{"start":{"line":163,"column":38},"end":{"line":163,"column":52}}]}},"code":["(function
 () { YUI.add('gallery-sm-menu-base', function (Y, NAME) {","","/*jshint 
expr:true, onevar:false */","","/**","Provides `Menu.Base`.","","@module 
gallery-sm-menu","@submodule gallery-sm-menu-base","**/","","/**","Base menu 
functionality.","","@class Menu.Base","@constructor","@param {Object} [config] 
Config options.","    @param {Menu.Item[]|Object[]} [config.items] Array of 
`Menu.Item` instances","        or menu item config objects to add to this 
menu.","@extends Tree","**/","","/**","Fired when a menu item is 
disabled.","","@event disable","@param {Menu.Item} item Menu item that was 
disabled.","@preventable _defDisableFn","**/","var EVT_DISABLE = 
'disable';","","/**","Fired when a menu item is enabled.","","@event 
enable","@param {Menu.Item} item Menu item that was enabled.","@preventable 
_defEnableFn","**/","var EVT_ENABLE = 'enable';","","/**","Fired when a menu 
item is hidden.","","@event hide","@param {Menu.Item} item Menu item that was 
hidden.","@preventable _defHideFn","**/","var EVT_HIDE = 
'hide';","","/**","Fired when a menu item is shown.","","@event show","@param 
{Menu.Item} item Menu item that was shown.","@preventable 
_defShowFn","**/","var EVT_SHOW = 'show';","","var MenuBase = 
Y.Base.create('menuBase', Y.Tree, [Y.Tree.Labelable, Y.Tree.Openable], {","    
nodeClass: Y.Menu.Item,","","    // -- Lifecycle 
------------------------------------------------------------","    initializer: 
function (config) {","        if (config) {","            config.nodes = 
config.items;","        }","    },","","    // -- Public Methods 
-------------------------------------------------------","","    /**","    
Closes all open submenus of this menu.","","    @method closeSubMenus","    
@chainable","    **/","    closeSubMenus: function () {","        // Close all 
open submenus.","        Y.Object.each(this._openMenus, function (item) {","    
        item.close();","        }, this);","","        return this;","    
},","","    /**","    Disables the specified menu item.","","    @method 
disableItem","    @param {Menu.Item} item Menu item to disable.","    @param 
{Object} [options] Options.","        @param {Boolean} [options.silent=false] 
If `true`, the `disable` event","            will be suppressed.","    
@chainable","    **/","    disableItem: function (item, options) {","        if 
(!item.isDisabled()) {","            this._fireTreeEvent(EVT_DISABLE, {item: 
item}, {","                defaultFn: this._defDisableFn,","                
silent   : options && options.silent","            });","        }","","        
return this;","    },","","    /**","    Enables the specified menu item.",""," 
   @method enableItem","    @param {Menu.Item} item Menu item to enable.","    
@param {Object} [options] Options.","        @param {Boolean} 
[options.silent=false] If `true`, the `enable` event","            will be 
suppressed.","    @chainable","    **/","    enableItem: function (item, 
options) {","        if (item.isDisabled()) {","            
this._fireTreeEvent(EVT_ENABLE, {item: item}, {","                defaultFn: 
this._defEnableFn,","                silent   : options && options.silent","    
        });","        }","","        return this;","    },","","    /**","    
Hides the specified menu item.","","    @method hideItem","    @param 
{Menu.Item} item Menu item to hide.","    @param {Object} [options] Options."," 
       @param {Boolean} [options.silent=false] If `true`, the `hide` event","   
         will be suppressed.","    @chainable","    **/","    hideItem: 
function (item, options) {","        if (!item.isHidden()) {","            
this._fireTreeEvent(EVT_HIDE, {item: item}, {","                defaultFn: 
this._defHideFn,","                silent   : options && options.silent","      
      });","        }","","        return this;","    },","","    /**","    
Shows the specified menu item.","","    @method showItem","    @param 
{Menu.Item} item Menu item to show.","    @param {Object} [options] Options."," 
       @param {Boolean} [options.silent=false] If `true`, the `show` event","   
         will be suppressed.","    @chainable","    **/","    showItem: 
function (item, options) {","        if (item.isHidden()) {","            
this._fireTreeEvent(EVT_SHOW, {item: item}, {","                defaultFn: 
this._defShowFn,","                silent   : options && options.silent","      
      });","        }","","        return this;","    },","","    // -- Default 
Event Handlers -----------------------------------------------","","    /**","  
  Default handler for the `disable` event.","","    @method _defDisableFn","    
@param {EventFacade} e","    @protected","    **/","    _defDisableFn: function 
(e) {","        e.item.state.disabled = true;","    },","","    /**","    
Default handler for the `enable` event.","","    @method _defEnableFn","    
@param {EventFacade} e","    @protected","    **/","    _defEnableFn: function 
(e) {","        delete e.item.state.disabled;","    },","","    /**","    
Default handler for the `hide` event.","","    @method _defHideFn","    @param 
{EventFacade} e","    @protected","    **/","    _defHideFn: function (e) {","  
      e.item.state.hidden = true;","    },","","    /**","    Default handler 
for the `show` event.","","    @method _defShowFn","    @param {EventFacade} 
e","    @protected","    **/","    _defShowFn: function (e) {","        delete 
e.item.state.hidden;","    }","});","","Y.namespace('Menu').Base = 
MenuBase;","","","}, '@VERSION@', {\"requires\": [\"gallery-sm-menu-item\", 
\"tree-labelable\", \"tree-openable\"]});","","}());"]};
+}
+var __cov_xds42LWOj2kKiFHTyUoXtw = 
__coverage__['build/gallery-sm-menu-base/gallery-sm-menu-base.js'];
+__cov_xds42LWOj2kKiFHTyUoXtw.s['1']++;YUI.add('gallery-sm-menu-base',function(Y,NAME){__cov_xds42LWOj2kKiFHTyUoXtw.f['1']++;__cov_xds42LWOj2kKiFHTyUoXtw.s['2']++;var
 EVT_DISABLE='disable';__cov_xds42LWOj2kKiFHTyUoXtw.s['3']++;var 
EVT_ENABLE='enable';__cov_xds42LWOj2kKiFHTyUoXtw.s['4']++;var 
EVT_HIDE='hide';__cov_xds42LWOj2kKiFHTyUoXtw.s['5']++;var 
EVT_SHOW='show';__cov_xds42LWOj2kKiFHTyUoXtw.s['6']++;var 
MenuBase=Y.Base.create('menuBase',Y.Tree,[Y.Tree.Labelable,Y.Tree.Openable],{nodeClass:Y.Menu.Item,initializer:function(config){__cov_xds42LWOj2kKiFHTyUoXtw.f['2']++;__cov_xds42LWOj2kKiFHTyUoXtw.s['7']++;if(config){__cov_xds42LWOj2kKiFHTyUoXtw.b['1'][0]++;__cov_xds42LWOj2kKiFHTyUoXtw.s['8']++;config.nodes=config.items;}else{__cov_xds42LWOj2kKiFHTyUoXtw.b['1'][1]++;}},closeSubMenus:function(){__cov_xds42LWOj2kKiFHTyUoXtw.f['3']++;__cov_xds42LWOj2kKiFHTyUoXtw.s['9']++;Y.Object.each(this._openMenus,function(item){__cov_xds42LWOj2kKiFHTyUoXtw.f['4']++;__cov_xds42LWOj2kKiFHTyUoXtw.s['10']++;item.close();},this);__cov_xds42LWOj2kKiFHTyUoXtw.s['11']++;return
 
this;},disableItem:function(item,options){__cov_xds42LWOj2kKiFHTyUoXtw.f['5']++;__cov_xds42LWOj2kKiFHTyUoXtw.s['12']++;if(!item.isDisabled()){__cov_xds42LWOj2kKiFHTyUoXtw.b['2'][0]++;__cov_xds42LWOj2kKiFHTyUoXtw.s['13']++;this._fireTreeEvent(EVT_DISABLE,{item:item},{defaultFn:this._defDisableFn,silent:(__cov_xds42LWOj2kKiFHTyUoXtw.b['3'][0]++,options)&&(__cov_xds42LWOj2kKiFHTyUoXtw.b['3'][1]++,options.silent)});}else{__cov_xds42LWOj2kKiFHTyUoXtw.b['2'][1]++;}__cov_xds42LWOj2kKiFHTyUoXtw.s['14']++;return
 
this;},enableItem:function(item,options){__cov_xds42LWOj2kKiFHTyUoXtw.f['6']++;__cov_xds42LWOj2kKiFHTyUoXtw.s['15']++;if(item.isDisabled()){__cov_xds42LWOj2kKiFHTyUoXtw.b['4'][0]++;__cov_xds42LWOj2kKiFHTyUoXtw.s['16']++;this._fireTreeEvent(EVT_ENABLE,{item:item},{defaultFn:this._defEnableFn,silent:(__cov_xds42LWOj2kKiFHTyUoXtw.b['5'][0]++,options)&&(__cov_xds42LWOj2kKiFHTyUoXtw.b['5'][1]++,options.silent)});}else{__cov_xds42LWOj2kKiFHTyUoXtw.b['4'][1]++;}__cov_xds42LWOj2kKiFHTyUoXtw.s['17']++;return
 
this;},hideItem:function(item,options){__cov_xds42LWOj2kKiFHTyUoXtw.f['7']++;__cov_xds42LWOj2kKiFHTyUoXtw.s['18']++;if(!item.isHidden()){__cov_xds42LWOj2kKiFHTyUoXtw.b['6'][0]++;__cov_xds42LWOj2kKiFHTyUoXtw.s['19']++;this._fireTreeEvent(EVT_HIDE,{item:item},{defaultFn:this._defHideFn,silent:(__cov_xds42LWOj2kKiFHTyUoXtw.b['7'][0]++,options)&&(__cov_xds42LWOj2kKiFHTyUoXtw.b['7'][1]++,options.silent)});}else{__cov_xds42LWOj2kKiFHTyUoXtw.b['6'][1]++;}__cov_xds42LWOj2kKiFHTyUoXtw.s['20']++;return
 
this;},showItem:function(item,options){__cov_xds42LWOj2kKiFHTyUoXtw.f['8']++;__cov_xds42LWOj2kKiFHTyUoXtw.s['21']++;if(item.isHidden()){__cov_xds42LWOj2kKiFHTyUoXtw.b['8'][0]++;__cov_xds42LWOj2kKiFHTyUoXtw.s['22']++;this._fireTreeEvent(EVT_SHOW,{item:item},{defaultFn:this._defShowFn,silent:(__cov_xds42LWOj2kKiFHTyUoXtw.b['9'][0]++,options)&&(__cov_xds42LWOj2kKiFHTyUoXtw.b['9'][1]++,options.silent)});}else{__cov_xds42LWOj2kKiFHTyUoXtw.b['8'][1]++;}__cov_xds42LWOj2kKiFHTyUoXtw.s['23']++;return
 
this;},_defDisableFn:function(e){__cov_xds42LWOj2kKiFHTyUoXtw.f['9']++;__cov_xds42LWOj2kKiFHTyUoXtw.s['24']++;e.item.state.disabled=true;},_defEnableFn:function(e){__cov_xds42LWOj2kKiFHTyUoXtw.f['10']++;__cov_xds42LWOj2kKiFHTyUoXtw.s['25']++;delete
 
e.item.state.disabled;},_defHideFn:function(e){__cov_xds42LWOj2kKiFHTyUoXtw.f['11']++;__cov_xds42LWOj2kKiFHTyUoXtw.s['26']++;e.item.state.hidden=true;},_defShowFn:function(e){__cov_xds42LWOj2kKiFHTyUoXtw.f['12']++;__cov_xds42LWOj2kKiFHTyUoXtw.s['27']++;delete
 
e.item.state.hidden;}});__cov_xds42LWOj2kKiFHTyUoXtw.s['28']++;Y.namespace('Menu').Base=MenuBase;},'@VERSION@',{'requires':['gallery-sm-menu-item','tree-labelable','tree-openable']});

Added: 
branches/dev-syncromind/phpgwapi/js/yui3-gallery/gallery-sm-menu-base/gallery-sm-menu-base-debug.js
===================================================================
--- 
branches/dev-syncromind/phpgwapi/js/yui3-gallery/gallery-sm-menu-base/gallery-sm-menu-base-debug.js
                         (rev 0)
+++ 
branches/dev-syncromind/phpgwapi/js/yui3-gallery/gallery-sm-menu-base/gallery-sm-menu-base-debug.js
 2014-10-30 19:17:05 UTC (rev 12255)
@@ -0,0 +1,220 @@
+YUI.add('gallery-sm-menu-base', function (Y, NAME) {
+
+/*jshint expr:true, onevar:false */
+
+/**
+Provides `Menu.Base`.
+
address@hidden gallery-sm-menu
address@hidden gallery-sm-menu-base
+**/
+
+/**
+Base menu functionality.
+
address@hidden Menu.Base
address@hidden
address@hidden {Object} [config] Config options.
+    @param {Menu.Item[]|Object[]} [config.items] Array of `Menu.Item` instances
+        or menu item config objects to add to this menu.
address@hidden Tree
+**/
+
+/**
+Fired when a menu item is disabled.
+
address@hidden disable
address@hidden {Menu.Item} item Menu item that was disabled.
address@hidden _defDisableFn
+**/
+var EVT_DISABLE = 'disable';
+
+/**
+Fired when a menu item is enabled.
+
address@hidden enable
address@hidden {Menu.Item} item Menu item that was enabled.
address@hidden _defEnableFn
+**/
+var EVT_ENABLE = 'enable';
+
+/**
+Fired when a menu item is hidden.
+
address@hidden hide
address@hidden {Menu.Item} item Menu item that was hidden.
address@hidden _defHideFn
+**/
+var EVT_HIDE = 'hide';
+
+/**
+Fired when a menu item is shown.
+
address@hidden show
address@hidden {Menu.Item} item Menu item that was shown.
address@hidden _defShowFn
+**/
+var EVT_SHOW = 'show';
+
+var MenuBase = Y.Base.create('menuBase', Y.Tree, [Y.Tree.Labelable, 
Y.Tree.Openable], {
+    nodeClass: Y.Menu.Item,
+
+    // -- Lifecycle 
------------------------------------------------------------
+    initializer: function (config) {
+        if (config) {
+            config.nodes = config.items;
+        }
+    },
+
+    // -- Public Methods 
-------------------------------------------------------
+
+    /**
+    Closes all open submenus of this menu.
+
+    @method closeSubMenus
+    @chainable
+    **/
+    closeSubMenus: function () {
+        // Close all open submenus.
+        Y.Object.each(this._openMenus, function (item) {
+            item.close();
+        }, this);
+
+        return this;
+    },
+
+    /**
+    Disables the specified menu item.
+
+    @method disableItem
+    @param {Menu.Item} item Menu item to disable.
+    @param {Object} [options] Options.
+        @param {Boolean} [options.silent=false] If `true`, the `disable` event
+            will be suppressed.
+    @chainable
+    **/
+    disableItem: function (item, options) {
+        if (!item.isDisabled()) {
+            this._fireTreeEvent(EVT_DISABLE, {item: item}, {
+                defaultFn: this._defDisableFn,
+                silent   : options && options.silent
+            });
+        }
+
+        return this;
+    },
+
+    /**
+    Enables the specified menu item.
+
+    @method enableItem
+    @param {Menu.Item} item Menu item to enable.
+    @param {Object} [options] Options.
+        @param {Boolean} [options.silent=false] If `true`, the `enable` event
+            will be suppressed.
+    @chainable
+    **/
+    enableItem: function (item, options) {
+        if (item.isDisabled()) {
+            this._fireTreeEvent(EVT_ENABLE, {item: item}, {
+                defaultFn: this._defEnableFn,
+                silent   : options && options.silent
+            });
+        }
+
+        return this;
+    },
+
+    /**
+    Hides the specified menu item.
+
+    @method hideItem
+    @param {Menu.Item} item Menu item to hide.
+    @param {Object} [options] Options.
+        @param {Boolean} [options.silent=false] If `true`, the `hide` event
+            will be suppressed.
+    @chainable
+    **/
+    hideItem: function (item, options) {
+        if (!item.isHidden()) {
+            this._fireTreeEvent(EVT_HIDE, {item: item}, {
+                defaultFn: this._defHideFn,
+                silent   : options && options.silent
+            });
+        }
+
+        return this;
+    },
+
+    /**
+    Shows the specified menu item.
+
+    @method showItem
+    @param {Menu.Item} item Menu item to show.
+    @param {Object} [options] Options.
+        @param {Boolean} [options.silent=false] If `true`, the `show` event
+            will be suppressed.
+    @chainable
+    **/
+    showItem: function (item, options) {
+        if (item.isHidden()) {
+            this._fireTreeEvent(EVT_SHOW, {item: item}, {
+                defaultFn: this._defShowFn,
+                silent   : options && options.silent
+            });
+        }
+
+        return this;
+    },
+
+    // -- Default Event Handlers 
-----------------------------------------------
+
+    /**
+    Default handler for the `disable` event.
+
+    @method _defDisableFn
+    @param {EventFacade} e
+    @protected
+    **/
+    _defDisableFn: function (e) {
+        e.item.state.disabled = true;
+    },
+
+    /**
+    Default handler for the `enable` event.
+
+    @method _defEnableFn
+    @param {EventFacade} e
+    @protected
+    **/
+    _defEnableFn: function (e) {
+        delete e.item.state.disabled;
+    },
+
+    /**
+    Default handler for the `hide` event.
+
+    @method _defHideFn
+    @param {EventFacade} e
+    @protected
+    **/
+    _defHideFn: function (e) {
+        e.item.state.hidden = true;
+    },
+
+    /**
+    Default handler for the `show` event.
+
+    @method _defShowFn
+    @param {EventFacade} e
+    @protected
+    **/
+    _defShowFn: function (e) {
+        delete e.item.state.hidden;
+    }
+});
+
+Y.namespace('Menu').Base = MenuBase;
+
+
+}, '@VERSION@', {"requires": ["gallery-sm-menu-item", "tree-labelable", 
"tree-openable"]});

Added: 
branches/dev-syncromind/phpgwapi/js/yui3-gallery/gallery-sm-menu-base/gallery-sm-menu-base-min.js
===================================================================
--- 
branches/dev-syncromind/phpgwapi/js/yui3-gallery/gallery-sm-menu-base/gallery-sm-menu-base-min.js
                           (rev 0)
+++ 
branches/dev-syncromind/phpgwapi/js/yui3-gallery/gallery-sm-menu-base/gallery-sm-menu-base-min.js
   2014-10-30 19:17:05 UTC (rev 12255)
@@ -0,0 +1 @@
+YUI.add("gallery-sm-menu-base",function(e,t){var 
n="disable",r="enable",i="hide",s="show",o=e.Base.create("menuBase",e.Tree,[e.Tree.Labelable,e.Tree.Openable],{nodeClass:e.Menu.Item,initializer:function(e){e&&(e.nodes=e.items)},closeSubMenus:function(){return
 
e.Object.each(this._openMenus,function(e){e.close()},this),this},disableItem:function(e,t){return
 
e.isDisabled()||this._fireTreeEvent(n,{item:e},{defaultFn:this._defDisableFn,silent:t&&t.silent}),this},enableItem:function(e,t){return
 
e.isDisabled()&&this._fireTreeEvent(r,{item:e},{defaultFn:this._defEnableFn,silent:t&&t.silent}),this},hideItem:function(e,t){return
 
e.isHidden()||this._fireTreeEvent(i,{item:e},{defaultFn:this._defHideFn,silent:t&&t.silent}),this},showItem:function(e,t){return
 
e.isHidden()&&this._fireTreeEvent(s,{item:e},{defaultFn:this._defShowFn,silent:t&&t.silent}),this},_defDisableFn:function(e){e.item.state.disabled=!0},_defEnableFn:function(e){delete
 
e.item.state.disabled},_defHideFn:function(e){e.item.state.hidden=!0},_defShowFn:function(e){delete
 
e.item.state.hidden}});e.namespace("Menu").Base=o},"@VERSION@",{requires:["gallery-sm-menu-item","tree-labelable","tree-openable"]});

Added: 
branches/dev-syncromind/phpgwapi/js/yui3-gallery/gallery-sm-menu-base/gallery-sm-menu-base.js
===================================================================
--- 
branches/dev-syncromind/phpgwapi/js/yui3-gallery/gallery-sm-menu-base/gallery-sm-menu-base.js
                               (rev 0)
+++ 
branches/dev-syncromind/phpgwapi/js/yui3-gallery/gallery-sm-menu-base/gallery-sm-menu-base.js
       2014-10-30 19:17:05 UTC (rev 12255)
@@ -0,0 +1,220 @@
+YUI.add('gallery-sm-menu-base', function (Y, NAME) {
+
+/*jshint expr:true, onevar:false */
+
+/**
+Provides `Menu.Base`.
+
address@hidden gallery-sm-menu
address@hidden gallery-sm-menu-base
+**/
+
+/**
+Base menu functionality.
+
address@hidden Menu.Base
address@hidden
address@hidden {Object} [config] Config options.
+    @param {Menu.Item[]|Object[]} [config.items] Array of `Menu.Item` instances
+        or menu item config objects to add to this menu.
address@hidden Tree
+**/
+
+/**
+Fired when a menu item is disabled.
+
address@hidden disable
address@hidden {Menu.Item} item Menu item that was disabled.
address@hidden _defDisableFn
+**/
+var EVT_DISABLE = 'disable';
+
+/**
+Fired when a menu item is enabled.
+
address@hidden enable
address@hidden {Menu.Item} item Menu item that was enabled.
address@hidden _defEnableFn
+**/
+var EVT_ENABLE = 'enable';
+
+/**
+Fired when a menu item is hidden.
+
address@hidden hide
address@hidden {Menu.Item} item Menu item that was hidden.
address@hidden _defHideFn
+**/
+var EVT_HIDE = 'hide';
+
+/**
+Fired when a menu item is shown.
+
address@hidden show
address@hidden {Menu.Item} item Menu item that was shown.
address@hidden _defShowFn
+**/
+var EVT_SHOW = 'show';
+
+var MenuBase = Y.Base.create('menuBase', Y.Tree, [Y.Tree.Labelable, 
Y.Tree.Openable], {
+    nodeClass: Y.Menu.Item,
+
+    // -- Lifecycle 
------------------------------------------------------------
+    initializer: function (config) {
+        if (config) {
+            config.nodes = config.items;
+        }
+    },
+
+    // -- Public Methods 
-------------------------------------------------------
+
+    /**
+    Closes all open submenus of this menu.
+
+    @method closeSubMenus
+    @chainable
+    **/
+    closeSubMenus: function () {
+        // Close all open submenus.
+        Y.Object.each(this._openMenus, function (item) {
+            item.close();
+        }, this);
+
+        return this;
+    },
+
+    /**
+    Disables the specified menu item.
+
+    @method disableItem
+    @param {Menu.Item} item Menu item to disable.
+    @param {Object} [options] Options.
+        @param {Boolean} [options.silent=false] If `true`, the `disable` event
+            will be suppressed.
+    @chainable
+    **/
+    disableItem: function (item, options) {
+        if (!item.isDisabled()) {
+            this._fireTreeEvent(EVT_DISABLE, {item: item}, {
+                defaultFn: this._defDisableFn,
+                silent   : options && options.silent
+            });
+        }
+
+        return this;
+    },
+
+    /**
+    Enables the specified menu item.
+
+    @method enableItem
+    @param {Menu.Item} item Menu item to enable.
+    @param {Object} [options] Options.
+        @param {Boolean} [options.silent=false] If `true`, the `enable` event
+            will be suppressed.
+    @chainable
+    **/
+    enableItem: function (item, options) {
+        if (item.isDisabled()) {
+            this._fireTreeEvent(EVT_ENABLE, {item: item}, {
+                defaultFn: this._defEnableFn,
+                silent   : options && options.silent
+            });
+        }
+
+        return this;
+    },
+
+    /**
+    Hides the specified menu item.
+
+    @method hideItem
+    @param {Menu.Item} item Menu item to hide.
+    @param {Object} [options] Options.
+        @param {Boolean} [options.silent=false] If `true`, the `hide` event
+            will be suppressed.
+    @chainable
+    **/
+    hideItem: function (item, options) {
+        if (!item.isHidden()) {
+            this._fireTreeEvent(EVT_HIDE, {item: item}, {
+                defaultFn: this._defHideFn,
+                silent   : options && options.silent
+            });
+        }
+
+        return this;
+    },
+
+    /**
+    Shows the specified menu item.
+
+    @method showItem
+    @param {Menu.Item} item Menu item to show.
+    @param {Object} [options] Options.
+        @param {Boolean} [options.silent=false] If `true`, the `show` event
+            will be suppressed.
+    @chainable
+    **/
+    showItem: function (item, options) {
+        if (item.isHidden()) {
+            this._fireTreeEvent(EVT_SHOW, {item: item}, {
+                defaultFn: this._defShowFn,
+                silent   : options && options.silent
+            });
+        }
+
+        return this;
+    },
+
+    // -- Default Event Handlers 
-----------------------------------------------
+
+    /**
+    Default handler for the `disable` event.
+
+    @method _defDisableFn
+    @param {EventFacade} e
+    @protected
+    **/
+    _defDisableFn: function (e) {
+        e.item.state.disabled = true;
+    },
+
+    /**
+    Default handler for the `enable` event.
+
+    @method _defEnableFn
+    @param {EventFacade} e
+    @protected
+    **/
+    _defEnableFn: function (e) {
+        delete e.item.state.disabled;
+    },
+
+    /**
+    Default handler for the `hide` event.
+
+    @method _defHideFn
+    @param {EventFacade} e
+    @protected
+    **/
+    _defHideFn: function (e) {
+        e.item.state.hidden = true;
+    },
+
+    /**
+    Default handler for the `show` event.
+
+    @method _defShowFn
+    @param {EventFacade} e
+    @protected
+    **/
+    _defShowFn: function (e) {
+        delete e.item.state.hidden;
+    }
+});
+
+Y.namespace('Menu').Base = MenuBase;
+
+
+}, '@VERSION@', {"requires": ["gallery-sm-menu-item", "tree-labelable", 
"tree-openable"]});

Added: 
branches/dev-syncromind/phpgwapi/js/yui3-gallery/gallery-sm-menu-item/gallery-sm-menu-item-coverage.js
===================================================================
--- 
branches/dev-syncromind/phpgwapi/js/yui3-gallery/gallery-sm-menu-item/gallery-sm-menu-item-coverage.js
                              (rev 0)
+++ 
branches/dev-syncromind/phpgwapi/js/yui3-gallery/gallery-sm-menu-item/gallery-sm-menu-item-coverage.js
      2014-10-30 19:17:05 UTC (rev 12255)
@@ -0,0 +1,6 @@
+if (typeof __coverage__ === 'undefined') { __coverage__ = {}; }
+if (!__coverage__['build/gallery-sm-menu-item/gallery-sm-menu-item.js']) {
+   __coverage__['build/gallery-sm-menu-item/gallery-sm-menu-item.js'] = 
{"path":"build/gallery-sm-menu-item/gallery-sm-menu-item.js","s":{"1":0,"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0},"b":{"1":[0,0],"2":[0,0],"3":[0,0],"4":[0,0],"5":[0,0],"6":[0,0],"7":[0,0],"8":[0,0]},"f":{"1":0,"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0},"fnMap":{"1":{"name":"(anonymous_1)","line":1,"loc":{"start":{"line":1,"column":32},"end":{"line":1,"column":51}}},"2":{"name":"MenuItem","line":38,"loc":{"start":{"line":38,"column":0},"end":{"line":38,"column":32}}},"3":{"name":"(anonymous_3)","line":60,"loc":{"start":{"line":60,"column":13},"end":{"line":60,"column":32}}},"4":{"name":"(anonymous_4)","line":74,"loc":{"start":{"line":74,"column":12},"end":{"line":74,"column":31}}},"5":{"name":"(anonymous_5)","line":88,"loc":{"start":{"line":88,"column":10},"end":{"line":88,"column":29}}},"6":{"name":"(anonymous_6)","line":101,"loc":{"start":{"line":101,"column":16},"end":{"line":101,"column":28}}},"7":{"name":"(anonymous_7)","line":114,"loc":{"start":{"line":114,"column":14},"end":{"line":114,"column":26}}},"8":{"name":"(anonymous_8)","line":128,"loc":{"start":{"line":128,"column":10},"end":{"line":128,"column":29}}}},"statementMap":{"1":{"start":{"line":1,"column":0},"end":{"line":137,"column":52}},"2":{"start":{"line":38,"column":0},"end":{"line":46,"column":1}},"3":{"start":{"line":39,"column":4},"end":{"line":39,"column":28}},"4":{"start":{"line":41,"column":4},"end":{"line":41,"column":62}},"5":{"start":{"line":42,"column":4},"end":{"line":42,"column":38}},"6":{"start":{"line":43,"column":4},"end":{"line":43,"column":34}},"7":{"start":{"line":45,"column":4},"end":{"line":45,"column":61}},"8":{"start":{"line":48,"column":0},"end":{"line":132,"column":3}},"9":{"start":{"line":61,"column":8},"end":{"line":61,"column":45}},"10":{"start":{"line":62,"column":8},"end":{"line":62,"column":20}},"11":{"start":{"line":75,"column":8},"end":{"line":75,"column":44}},"12":{"start":{"line":76,"column":8},"end":{"line":76,"column":20}},"13":{"start":{"line":89,"column":8},"end":{"line":89,"column":42}},"14":{"start":{"line":90,"column":8},"end":{"line":90,"column":20}},"15":{"start":{"line":102,"column":8},"end":{"line":103,"column":61}},"16":{"start":{"line":115,"column":8},"end":{"line":116,"column":59}},"17":{"start":{"line":129,"column":8},"end":{"line":129,"column":42}},"18":{"start":{"line":130,"column":8},"end":{"line":130,"column":20}},"19":{"start":{"line":134,"column":0},"end":{"line":134,"column":36}}},"branchMap":{"1":{"line":39,"type":"binary-expr","locations":[{"start":{"line":39,"column":4},"end":{"line":39,"column":10}},{"start":{"line":39,"column":15},"end":{"line":39,"column":26}}]},"2":{"line":41,"type":"binary-expr","locations":[{"start":{"line":41,"column":29},"end":{"line":41,"column":38}},{"start":{"line":41,"column":42},"end":{"line":41,"column":61}}]},"3":{"line":42,"type":"binary-expr","locations":[{"start":{"line":42,"column":16},"end":{"line":42,"column":27}},{"start":{"line":42,"column":31},"end":{"line":42,"column":37}}]},"4":{"line":43,"type":"binary-expr","locations":[{"start":{"line":43,"column":16},"end":{"line":43,"column":26}},{"start":{"line":43,"column":30},"end":{"line":43,"column":33}}]},"5":{"line":102,"type":"binary-expr","locations":[{"start":{"line":102,"column":15},"end":{"line":102,"column":36}},{"start":{"line":103,"column":13},"end":{"line":103,"column":59}}]},"6":{"line":103,"type":"cond-expr","locations":[{"start":{"line":103,"column":27},"end":{"line":103,"column":51}},{"start":{"line":103,"column":54},"end":{"line":103,"column":59}}]},"7":{"line":115,"type":"binary-expr","locations":[{"start":{"line":115,"column":15},"end":{"line":115,"column":34}},{"start":{"line":116,"column":13},"end":{"line":116,"column":57}}]},"8":{"line":116,"type":"cond-expr","locations":[{"start":{"line":116,"column":27},"end":{"line":116,"column":49}},{"start":{"line":116,"column":52},"end":{"line":116,"column":57}}]}},"code":["(function
 () { YUI.add('gallery-sm-menu-item', function (Y, NAME) {","","/*jshint 
expr:true, onevar:false */","","/**","Provides the `Menu.Item` 
class.","","@module gallery-sm-menu","@submodule 
gallery-sm-menu-item","**/","","/**","Represents a single menu item in a 
`Menu`.","","@class Menu.Item","@constructor","@param {Menu} menu `Menu` 
instance with which this node should be associated.","@param {Object} [config] 
Configuration hash for this menu item. Supports all the","    config properties 
of `Tree.Node` in addition to the following.","","    @param {Object} 
[config.state] State hash for this menu item.","","        @param {Boolean} 
[config.state.disabled=false] If `true`, this menu item","            will be 
disabled, and will not be clickable or selectable.","","        @param 
{Boolean} [config.state.hidden=false] If `true`, this menu item","            
will be hidden.","","    @param {String} [config.type='item'] Type of this menu 
item. May be 'item',","        'heading', or 'separator'.","","    @param 
{String} [config.url='#'] URL associated with this item. If this item","        
is of type 'item', clicking on the item will navigate to this 
URL.","","@extends Tree.Node","**/","","function MenuItem(menu, config) {","    
config || (config = {});","","    this.id   = this._yuid = config.id || 
Y.guid('menuItem-');","    this.type = config.type || 'item';","    this.url  = 
config.url || '#';","","    MenuItem.superclass.constructor.call(this, menu, 
config);","}","","Y.extend(MenuItem, Y.Tree.Node, {","    _serializable: 
Y.Tree.Node.prototype._serializable.concat('type', 'url'),","","    /**","    
Disables this menu item. Disabled items are not clickable or selectable.","","  
  @method disable","    @param {Object} [options] Options.","        @param 
{Boolean} [options.silent=false] If `true`, the `disable` event","            
will be suppressed.","    @chainable","    **/","    disable: function 
(options) {","        this.tree.disableItem(this, options);","        return 
this;","    },","","    /**","    Enables this menu item.","","    @method 
enable","    @param {Object} [options] Options.","        @param {Boolean} 
[options.silent=false] If `true`, the `enable` event","            will be 
suppressed.","    @chainable","    **/","    enable: function (options) {","    
    this.tree.enableItem(this, options);","        return this;","    },","","  
  /**","    Hides this menu item.","","    @method hide","    @param {Object} 
[options] Options.","        @param {Boolean} [options.silent=false] If `true`, 
the `hide` event","            will be suppressed.","    @chainable","    
**/","    hide: function (options) {","        this.tree.hideItem(this, 
options);","        return this;","    },","","    /**","    Returns `true` if 
this menu item or one of its ancestors is currently","    disabled.","","    
@method isDisabled","    @return {Boolean} `true` if this menu item or one of 
its ancestors is","        currently disabled, `false` otherwise.","    **/","  
  isDisabled: function () {","        return !!this.state.disabled ||","        
    (this.parent ? this.parent.isDisabled() : false);","    },","","    /**","  
  Returns `true` if this menu item or one of its ancestors is currently","    
hidden.","","    @method isHidden","    @return {Boolean} `true` if this menu 
item or one of its ancestors is","        currently hidden, `false` 
otherwise.","    **/","    isHidden: function () {","        return 
!!this.state.hidden ||","            (this.parent ? this.parent.isHidden() : 
false);","    },","","    /**","    Shows this menu item.","","    @method 
show","    @param {Object} [options] Options.","        @param {Boolean} 
[options.silent=false] If `true`, the `show` event","            will be 
suppressed.","    @chainable","    **/","    show: function (options) {","      
  this.tree.showItem(this, options);","        return this;","    
}","});","","Y.namespace('Menu').Item = MenuItem;","","","}, '@VERSION@', 
{\"requires\": [\"tree-node\", \"oop\"]});","","}());"]};
+}
+var __cov_nnfyFp4BOcLPScgxn4HLcw = 
__coverage__['build/gallery-sm-menu-item/gallery-sm-menu-item.js'];
+__cov_nnfyFp4BOcLPScgxn4HLcw.s['1']++;YUI.add('gallery-sm-menu-item',function(Y,NAME){__cov_nnfyFp4BOcLPScgxn4HLcw.f['1']++;__cov_nnfyFp4BOcLPScgxn4HLcw.s['2']++;function
 
MenuItem(menu,config){__cov_nnfyFp4BOcLPScgxn4HLcw.f['2']++;__cov_nnfyFp4BOcLPScgxn4HLcw.s['3']++;(__cov_nnfyFp4BOcLPScgxn4HLcw.b['1'][0]++,config)||(__cov_nnfyFp4BOcLPScgxn4HLcw.b['1'][1]++,config={});__cov_nnfyFp4BOcLPScgxn4HLcw.s['4']++;this.id=this._yuid=(__cov_nnfyFp4BOcLPScgxn4HLcw.b['2'][0]++,config.id)||(__cov_nnfyFp4BOcLPScgxn4HLcw.b['2'][1]++,Y.guid('menuItem-'));__cov_nnfyFp4BOcLPScgxn4HLcw.s['5']++;this.type=(__cov_nnfyFp4BOcLPScgxn4HLcw.b['3'][0]++,config.type)||(__cov_nnfyFp4BOcLPScgxn4HLcw.b['3'][1]++,'item');__cov_nnfyFp4BOcLPScgxn4HLcw.s['6']++;this.url=(__cov_nnfyFp4BOcLPScgxn4HLcw.b['4'][0]++,config.url)||(__cov_nnfyFp4BOcLPScgxn4HLcw.b['4'][1]++,'#');__cov_nnfyFp4BOcLPScgxn4HLcw.s['7']++;MenuItem.superclass.constructor.call(this,menu,config);}__cov_nnfyFp4BOcLPScgxn4HLcw.s['8']++;Y.extend(MenuItem,Y.Tree.Node,{_serializable:Y.Tree.Node.prototype._serializable.concat('type','url'),disable:function(options){__cov_nnfyFp4BOcLPScgxn4HLcw.f['3']++;__cov_nnfyFp4BOcLPScgxn4HLcw.s['9']++;this.tree.disableItem(this,options);__cov_nnfyFp4BOcLPScgxn4HLcw.s['10']++;return
 
this;},enable:function(options){__cov_nnfyFp4BOcLPScgxn4HLcw.f['4']++;__cov_nnfyFp4BOcLPScgxn4HLcw.s['11']++;this.tree.enableItem(this,options);__cov_nnfyFp4BOcLPScgxn4HLcw.s['12']++;return
 
this;},hide:function(options){__cov_nnfyFp4BOcLPScgxn4HLcw.f['5']++;__cov_nnfyFp4BOcLPScgxn4HLcw.s['13']++;this.tree.hideItem(this,options);__cov_nnfyFp4BOcLPScgxn4HLcw.s['14']++;return
 
this;},isDisabled:function(){__cov_nnfyFp4BOcLPScgxn4HLcw.f['6']++;__cov_nnfyFp4BOcLPScgxn4HLcw.s['15']++;return(__cov_nnfyFp4BOcLPScgxn4HLcw.b['5'][0]++,!!this.state.disabled)||(__cov_nnfyFp4BOcLPScgxn4HLcw.b['5'][1]++,this.parent?(__cov_nnfyFp4BOcLPScgxn4HLcw.b['6'][0]++,this.parent.isDisabled()):(__cov_nnfyFp4BOcLPScgxn4HLcw.b['6'][1]++,false));},isHidden:function(){__cov_nnfyFp4BOcLPScgxn4HLcw.f['7']++;__cov_nnfyFp4BOcLPScgxn4HLcw.s['16']++;return(__cov_nnfyFp4BOcLPScgxn4HLcw.b['7'][0]++,!!this.state.hidden)||(__cov_nnfyFp4BOcLPScgxn4HLcw.b['7'][1]++,this.parent?(__cov_nnfyFp4BOcLPScgxn4HLcw.b['8'][0]++,this.parent.isHidden()):(__cov_nnfyFp4BOcLPScgxn4HLcw.b['8'][1]++,false));},show:function(options){__cov_nnfyFp4BOcLPScgxn4HLcw.f['8']++;__cov_nnfyFp4BOcLPScgxn4HLcw.s['17']++;this.tree.showItem(this,options);__cov_nnfyFp4BOcLPScgxn4HLcw.s['18']++;return
 
this;}});__cov_nnfyFp4BOcLPScgxn4HLcw.s['19']++;Y.namespace('Menu').Item=MenuItem;},'@VERSION@',{'requires':['tree-node','oop']});

Added: 
branches/dev-syncromind/phpgwapi/js/yui3-gallery/gallery-sm-menu-item/gallery-sm-menu-item-debug.js
===================================================================
--- 
branches/dev-syncromind/phpgwapi/js/yui3-gallery/gallery-sm-menu-item/gallery-sm-menu-item-debug.js
                         (rev 0)
+++ 
branches/dev-syncromind/phpgwapi/js/yui3-gallery/gallery-sm-menu-item/gallery-sm-menu-item-debug.js
 2014-10-30 19:17:05 UTC (rev 12255)
@@ -0,0 +1,137 @@
+YUI.add('gallery-sm-menu-item', function (Y, NAME) {
+
+/*jshint expr:true, onevar:false */
+
+/**
+Provides the `Menu.Item` class.
+
address@hidden gallery-sm-menu
address@hidden gallery-sm-menu-item
+**/
+
+/**
+Represents a single menu item in a `Menu`.
+
address@hidden Menu.Item
address@hidden
address@hidden {Menu} menu `Menu` instance with which this node should be 
associated.
address@hidden {Object} [config] Configuration hash for this menu item. 
Supports all the
+    config properties of `Tree.Node` in addition to the following.
+
+    @param {Object} [config.state] State hash for this menu item.
+
+        @param {Boolean} [config.state.disabled=false] If `true`, this menu 
item
+            will be disabled, and will not be clickable or selectable.
+
+        @param {Boolean} [config.state.hidden=false] If `true`, this menu item
+            will be hidden.
+
+    @param {String} [config.type='item'] Type of this menu item. May be 'item',
+        'heading', or 'separator'.
+
+    @param {String} [config.url='#'] URL associated with this item. If this 
item
+        is of type 'item', clicking on the item will navigate to this URL.
+
address@hidden Tree.Node
+**/
+
+function MenuItem(menu, config) {
+    config || (config = {});
+
+    this.id   = this._yuid = config.id || Y.guid('menuItem-');
+    this.type = config.type || 'item';
+    this.url  = config.url || '#';
+
+    MenuItem.superclass.constructor.call(this, menu, config);
+}
+
+Y.extend(MenuItem, Y.Tree.Node, {
+    _serializable: Y.Tree.Node.prototype._serializable.concat('type', 'url'),
+
+    /**
+    Disables this menu item. Disabled items are not clickable or selectable.
+
+    @method disable
+    @param {Object} [options] Options.
+        @param {Boolean} [options.silent=false] If `true`, the `disable` event
+            will be suppressed.
+    @chainable
+    **/
+    disable: function (options) {
+        this.tree.disableItem(this, options);
+        return this;
+    },
+
+    /**
+    Enables this menu item.
+
+    @method enable
+    @param {Object} [options] Options.
+        @param {Boolean} [options.silent=false] If `true`, the `enable` event
+            will be suppressed.
+    @chainable
+    **/
+    enable: function (options) {
+        this.tree.enableItem(this, options);
+        return this;
+    },
+
+    /**
+    Hides this menu item.
+
+    @method hide
+    @param {Object} [options] Options.
+        @param {Boolean} [options.silent=false] If `true`, the `hide` event
+            will be suppressed.
+    @chainable
+    **/
+    hide: function (options) {
+        this.tree.hideItem(this, options);
+        return this;
+    },
+
+    /**
+    Returns `true` if this menu item or one of its ancestors is currently
+    disabled.
+
+    @method isDisabled
+    @return {Boolean} `true` if this menu item or one of its ancestors is
+        currently disabled, `false` otherwise.
+    **/
+    isDisabled: function () {
+        return !!this.state.disabled ||
+            (this.parent ? this.parent.isDisabled() : false);
+    },
+
+    /**
+    Returns `true` if this menu item or one of its ancestors is currently
+    hidden.
+
+    @method isHidden
+    @return {Boolean} `true` if this menu item or one of its ancestors is
+        currently hidden, `false` otherwise.
+    **/
+    isHidden: function () {
+        return !!this.state.hidden ||
+            (this.parent ? this.parent.isHidden() : false);
+    },
+
+    /**
+    Shows this menu item.
+
+    @method show
+    @param {Object} [options] Options.
+        @param {Boolean} [options.silent=false] If `true`, the `show` event
+            will be suppressed.
+    @chainable
+    **/
+    show: function (options) {
+        this.tree.showItem(this, options);
+        return this;
+    }
+});
+
+Y.namespace('Menu').Item = MenuItem;
+
+
+}, '@VERSION@', {"requires": ["tree-node", "oop"]});

Added: 
branches/dev-syncromind/phpgwapi/js/yui3-gallery/gallery-sm-menu-item/gallery-sm-menu-item-min.js
===================================================================
--- 
branches/dev-syncromind/phpgwapi/js/yui3-gallery/gallery-sm-menu-item/gallery-sm-menu-item-min.js
                           (rev 0)
+++ 
branches/dev-syncromind/phpgwapi/js/yui3-gallery/gallery-sm-menu-item/gallery-sm-menu-item-min.js
   2014-10-30 19:17:05 UTC (rev 12255)
@@ -0,0 +1 @@
+YUI.add("gallery-sm-menu-item",function(e,t){function 
n(t,r){r||(r={}),this.id=this._yuid=r.id||e.guid("menuItem-"),this.type=r.type||"item",this.url=r.url||"#",n.superclass.constructor.call(this,t,r)}e.extend(n,e.Tree.Node,{_serializable:e.Tree.Node.prototype._serializable.concat("type","url"),disable:function(e){return
 this.tree.disableItem(this,e),this},enable:function(e){return 
this.tree.enableItem(this,e),this},hide:function(e){return 
this.tree.hideItem(this,e),this},isDisabled:function(){return!!this.state.disabled||(this.parent?this.parent.isDisabled():!1)},isHidden:function(){return!!this.state.hidden||(this.parent?this.parent.isHidden():!1)},show:function(e){return
 
this.tree.showItem(this,e),this}}),e.namespace("Menu").Item=n},"@VERSION@",{requires:["tree-node","oop"]});

Added: 
branches/dev-syncromind/phpgwapi/js/yui3-gallery/gallery-sm-menu-item/gallery-sm-menu-item.js
===================================================================
--- 
branches/dev-syncromind/phpgwapi/js/yui3-gallery/gallery-sm-menu-item/gallery-sm-menu-item.js
                               (rev 0)
+++ 
branches/dev-syncromind/phpgwapi/js/yui3-gallery/gallery-sm-menu-item/gallery-sm-menu-item.js
       2014-10-30 19:17:05 UTC (rev 12255)
@@ -0,0 +1,137 @@
+YUI.add('gallery-sm-menu-item', function (Y, NAME) {
+
+/*jshint expr:true, onevar:false */
+
+/**
+Provides the `Menu.Item` class.
+
address@hidden gallery-sm-menu
address@hidden gallery-sm-menu-item
+**/
+
+/**
+Represents a single menu item in a `Menu`.
+
address@hidden Menu.Item
address@hidden
address@hidden {Menu} menu `Menu` instance with which this node should be 
associated.
address@hidden {Object} [config] Configuration hash for this menu item. 
Supports all the
+    config properties of `Tree.Node` in addition to the following.
+
+    @param {Object} [config.state] State hash for this menu item.
+
+        @param {Boolean} [config.state.disabled=false] If `true`, this menu 
item
+            will be disabled, and will not be clickable or selectable.
+
+        @param {Boolean} [config.state.hidden=false] If `true`, this menu item
+            will be hidden.
+
+    @param {String} [config.type='item'] Type of this menu item. May be 'item',
+        'heading', or 'separator'.
+
+    @param {String} [config.url='#'] URL associated with this item. If this 
item
+        is of type 'item', clicking on the item will navigate to this URL.
+
address@hidden Tree.Node
+**/
+
+function MenuItem(menu, config) {
+    config || (config = {});
+
+    this.id   = this._yuid = config.id || Y.guid('menuItem-');
+    this.type = config.type || 'item';
+    this.url  = config.url || '#';
+
+    MenuItem.superclass.constructor.call(this, menu, config);
+}
+
+Y.extend(MenuItem, Y.Tree.Node, {
+    _serializable: Y.Tree.Node.prototype._serializable.concat('type', 'url'),
+
+    /**
+    Disables this menu item. Disabled items are not clickable or selectable.
+
+    @method disable
+    @param {Object} [options] Options.
+        @param {Boolean} [options.silent=false] If `true`, the `disable` event
+            will be suppressed.
+    @chainable
+    **/
+    disable: function (options) {
+        this.tree.disableItem(this, options);
+        return this;
+    },
+
+    /**
+    Enables this menu item.
+
+    @method enable
+    @param {Object} [options] Options.
+        @param {Boolean} [options.silent=false] If `true`, the `enable` event
+            will be suppressed.
+    @chainable
+    **/
+    enable: function (options) {
+        this.tree.enableItem(this, options);
+        return this;
+    },
+
+    /**
+    Hides this menu item.
+
+    @method hide
+    @param {Object} [options] Options.
+        @param {Boolean} [options.silent=false] If `true`, the `hide` event
+            will be suppressed.
+    @chainable
+    **/
+    hide: function (options) {
+        this.tree.hideItem(this, options);
+        return this;
+    },
+
+    /**
+    Returns `true` if this menu item or one of its ancestors is currently
+    disabled.
+
+    @method isDisabled
+    @return {Boolean} `true` if this menu item or one of its ancestors is
+        currently disabled, `false` otherwise.
+    **/
+    isDisabled: function () {
+        return !!this.state.disabled ||
+            (this.parent ? this.parent.isDisabled() : false);
+    },
+
+    /**
+    Returns `true` if this menu item or one of its ancestors is currently
+    hidden.
+
+    @method isHidden
+    @return {Boolean} `true` if this menu item or one of its ancestors is
+        currently hidden, `false` otherwise.
+    **/
+    isHidden: function () {
+        return !!this.state.hidden ||
+            (this.parent ? this.parent.isHidden() : false);
+    },
+
+    /**
+    Shows this menu item.
+
+    @method show
+    @param {Object} [options] Options.
+        @param {Boolean} [options.silent=false] If `true`, the `show` event
+            will be suppressed.
+    @chainable
+    **/
+    show: function (options) {
+        this.tree.showItem(this, options);
+        return this;
+    }
+});
+
+Y.namespace('Menu').Item = MenuItem;
+
+
+}, '@VERSION@', {"requires": ["tree-node", "oop"]});

Added: 
branches/dev-syncromind/phpgwapi/js/yui3-gallery/gallery-sm-menu-plugin/gallery-sm-menu-plugin-coverage.js
===================================================================
--- 
branches/dev-syncromind/phpgwapi/js/yui3-gallery/gallery-sm-menu-plugin/gallery-sm-menu-plugin-coverage.js
                          (rev 0)
+++ 
branches/dev-syncromind/phpgwapi/js/yui3-gallery/gallery-sm-menu-plugin/gallery-sm-menu-plugin-coverage.js
  2014-10-30 19:17:05 UTC (rev 12255)
@@ -0,0 +1,6 @@
+if (typeof __coverage__ === 'undefined') { __coverage__ = {}; }
+if (!__coverage__['build/gallery-sm-menu-plugin/gallery-sm-menu-plugin.js']) {
+   __coverage__['build/gallery-sm-menu-plugin/gallery-sm-menu-plugin.js'] = 
{"path":"build/gallery-sm-menu-plugin/gallery-sm-menu-plugin.js","s":{"1":0,"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0},"b":{"1":[0,0],"2":[0,0],"3":[0,0],"4":[0,0],"5":[0,0],"6":[0,0],"7":[0,0],"8":[0,0],"9":[0,0],"10":[0,0]},"f":{"1":0,"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0},"fnMap":{"1":{"name":"(anonymous_1)","line":1,"loc":{"start":{"line":1,"column":34},"end":{"line":1,"column":53}}},"2":{"name":"(anonymous_2)","line":40,"loc":{"start":{"line":40,"column":17},"end":{"line":40,"column":35}}},"3":{"name":"(anonymous_3)","line":47,"loc":{"start":{"line":47,"column":16},"end":{"line":47,"column":28}}},"4":{"name":"(anonymous_4)","line":70,"loc":{"start":{"line":70,"column":16},"end":{"line":70,"column":39}}},"5":{"name":"(anonymous_5)","line":75,"loc":{"start":{"line":75,"column":29},"end":{"line":75,"column":41}}},"6":{"name":"(anonymous_6)","line":112,"loc":{"start":{"line":112,"column":24},"end":{"line":112,"column":36}}},"7":{"name":"(anonymous_7)","line":116,"loc":{"start":{"line":116,"column":15},"end":{"line":116,"column":31}}},"8":{"name":"(anonymous_8)","line":122,"loc":{"start":{"line":122,"column":20},"end":{"line":122,"column":32}}},"9":{"name":"(anonymous_9)","line":126,"loc":{"start":{"line":126,"column":21},"end":{"line":126,"column":33}}},"10":{"name":"(anonymous_10)","line":134,"loc":{"start":{"line":134,"column":21},"end":{"line":134,"column":33}}},"11":{"name":"(anonymous_11)","line":144,"loc":{"start":{"line":144,"column":26},"end":{"line":144,"column":38}}},"12":{"name":"(anonymous_12)","line":154,"loc":{"start":{"line":154,"column":26},"end":{"line":154,"column":38}}},"13":{"name":"(anonymous_13)","line":157,"loc":{"start":{"line":157,"column":41},"end":{"line":157,"column":53}}},"14":{"name":"(anonymous_14)","line":162,"loc":{"start":{"line":162,"column":20},"end":{"line":162,"column":33}}}},"statementMap":{"1":{"start":{"line":1,"column":0},"end":{"line":222,"column":95}},"2":{"start":{"line":38,"column":0},"end":{"line":219,"column":3}},"3":{"start":{"line":41,"column":8},"end":{"line":41,"column":39}},"4":{"start":{"line":42,"column":8},"end":{"line":42,"column":56}},"5":{"start":{"line":44,"column":8},"end":{"line":44,"column":39}},"6":{"start":{"line":48,"column":8},"end":{"line":48,"column":46}},"7":{"start":{"line":71,"column":8},"end":{"line":71,"column":81}},"8":{"start":{"line":78,"column":8},"end":{"line":80,"column":9}},"9":{"start":{"line":79,"column":12},"end":{"line":79,"column":63}},"10":{"start":{"line":82,"column":8},"end":{"line":90,"column":9}},"11":{"start":{"line":85,"column":12},"end":{"line":89,"column":13}},"12":{"start":{"line":86,"column":16},"end":{"line":86,"column":97}},"13":{"start":{"line":88,"column":16},"end":{"line":88,"column":69}},"14":{"start":{"line":92,"column":8},"end":{"line":99,"column":9}},"15":{"start":{"line":93,"column":12},"end":{"line":98,"column":15}},"16":{"start":{"line":113,"column":8},"end":{"line":114,"column":35}},"17":{"start":{"line":116,"column":8},"end":{"line":118,"column":10}},"18":{"start":{"line":117,"column":12},"end":{"line":117,"column":55}},"19":{"start":{"line":123,"column":8},"end":{"line":123,"column":20}},"20":{"start":{"line":127,"column":8},"end":{"line":129,"column":9}},"21":{"start":{"line":128,"column":12},"end":{"line":128,"column":26}},"22":{"start":{"line":131,"column":8},"end":{"line":131,"column":54}},"23":{"start":{"line":135,"column":8},"end":{"line":135,"column":42}},"24":{"start":{"line":137,"column":8},"end":{"line":139,"column":9}},"25":{"start":{"line":138,"column":12},"end":{"line":138,"column":26}},"26":{"start":{"line":141,"column":8},"end":{"line":141,"column":45}},"27":{"start":{"line":145,"column":8},"end":{"line":145,"column":42}},"28":{"start":{"line":147,"column":8},"end":{"line":149,"column":9}},"29":{"start":{"line":148,"column":12},"end":{"line":148,"column":26}},"30":{"start":{"line":151,"column":8},"end":{"line":151,"column":45}},"31":{"start":{"line":155,"column":8},"end":{"line":155,"column":24}},"32":{"start":{"line":157,"column":8},"end":{"line":159,"column":16}},"33":{"start":{"line":158,"column":12},"end":{"line":158,"column":24}},"34":{"start":{"line":163,"column":8},"end":{"line":163,"column":27}},"35":{"start":{"line":165,"column":8},"end":{"line":167,"column":9}},"36":{"start":{"line":166,"column":12},"end":{"line":166,"column":26}},"37":{"start":{"line":169,"column":8},"end":{"line":169,"column":57}}},"branchMap":{"1":{"line":71,"type":"binary-expr","locations":[{"start":{"line":71,"column":54},"end":{"line":71,"column":65}},{"start":{"line":71,"column":69},"end":{"line":71,"column":79}}]},"2":{"line":78,"type":"if","locations":[{"start":{"line":78,"column":8},"end":{"line":78,"column":8}},{"start":{"line":78,"column":8},"end":{"line":78,"column":8}}]},"3":{"line":82,"type":"if","locations":[{"start":{"line":82,"column":8},"end":{"line":82,"column":8}},{"start":{"line":82,"column":8},"end":{"line":82,"column":8}}]},"4":{"line":85,"type":"if","locations":[{"start":{"line":85,"column":12},"end":{"line":85,"column":12}},{"start":{"line":85,"column":12},"end":{"line":85,"column":12}}]},"5":{"line":92,"type":"if","locations":[{"start":{"line":92,"column":8},"end":{"line":92,"column":8}},{"start":{"line":92,"column":8},"end":{"line":92,"column":8}}]},"6":{"line":117,"type":"binary-expr","locations":[{"start":{"line":117,"column":19},"end":{"line":117,"column":37}},{"start":{"line":117,"column":41},"end":{"line":117,"column":54}}]},"7":{"line":127,"type":"if","locations":[{"start":{"line":127,"column":8},"end":{"line":127,"column":8}},{"start":{"line":127,"column":8},"end":{"line":127,"column":8}}]},"8":{"line":137,"type":"if","locations":[{"start":{"line":137,"column":8},"end":{"line":137,"column":8}},{"start":{"line":137,"column":8},"end":{"line":137,"column":8}}]},"9":{"line":147,"type":"if","locations":[{"start":{"line":147,"column":8},"end":{"line":147,"column":8}},{"start":{"line":147,"column":8},"end":{"line":147,"column":8}}]},"10":{"line":165,"type":"if","locations":[{"start":{"line":165,"column":8},"end":{"line":165,"column":8}},{"start":{"line":165,"column":8},"end":{"line":165,"column":8}}]}},"code":["(function
 () { YUI.add('gallery-sm-menu-plugin', function (Y, NAME) 
{","","/**","Provides the `Y.Plugin.Menu` Node plugin.","","@module 
gallery-sm-menu","@submodule gallery-sm-menu-plugin","**/","","/**","Node 
plugin that toggles a dropdown menu when the host node is clicked.","","### 
Example","","    YUI().use('menu-plugin', function (Y) {","        var button = 
Y.one('#button');","","        // Plug a dropdown menu into the button.","      
  button.plug(Y.Plugin.Menu, {","            items: [","                {label: 
'Item One'},","                {label: 'Item Two'},","                {label: 
'Item Three'}","            ]","        });","","        // The menu will 
automatically be displayed whenever the button is","        // clicked, but you 
can also toggle it manually.","        button.menu.toggleVisible();","    
});","","@class Plugin.Menu","@constructor","@extends Menu","@uses 
Plugin.Base","**/","","Y.namespace('Plugin').Menu = Y.Base.create('menuPlugin', 
Y.Menu, [Y.Plugin.Base], {","    // -- Lifecycle Methods 
----------------------------------------------------","    initializer: 
function (config) {","        this._host       = config.host;","        
this._hostIsBody = this._host === Y.one('body');","","        
this._attachMenuPluginEvents();","    },","","    destructor: function () {","  
      clearTimeout(this._pluginHideTimeout);","    },","","    // -- Public 
Methods -------------------------------------------------------","","    /**"," 
   Repositions this menu so that it is anchored to a specified node, region, 
or","    set of pixel coordinates.","","    The menu will be displayed at the 
most advantageous position relative to the","    anchor point to ensure that as 
much of the menu as possible is visible","    within the viewport.","","    If 
no anchor point is specified, the menu will be positioned relative to its","    
host node.","","    @method reposition","    @param {Node|Number[]|Object} 
[anchorPoint] Anchor point at which this menu","        should be positioned. 
The point may be specified as a `Y.Node`","        reference, a region object, 
or an array of X and Y pixel coordinates.","    @chainable","    **/","    
reposition: function (anchorPoint) {","        return 
Y.Menu.prototype.reposition.call(this, anchorPoint || this._host);","    
},","","    // -- Protected Methods 
----------------------------------------------------","    
_attachMenuPluginEvents: function () {","        // Events added to 
this._menuEvents will be cleaned up by Y.Menu.","","        if 
(this.get('showOnClick')) {","            this.afterHostEvent('click', 
this._afterHostClick);","        }","","        if (this.get('showOnContext')) 
{","            // If the host node is the <body> element, we need to listen on 
the","            // document.","            if (this._hostIsBody) {","         
       this._menuEvents.push(Y.one('doc').on('contextmenu', 
this._onHostContext, this));","            } else {","                
this.onHostEvent('contextmenu', this._onHostContext);","            }","        
}","","        if (this.get('showOnHover')) {","            
this.afterHostEvent({","                blur      : this._afterHostBlur,","     
           focus     : this._afterHostFocus,","                mouseenter: 
this._afterHostMouseEnter,","                mouseleave: 
this._afterHostMouseLeave","            });","        }","    },","","    
/**","    Returns an efficient test function that can be passed to 
`Y.Node#ancestor()`","    to test whether a node is this menu's container or 
its plugin host.","","    This is broken out to make overriding easier in 
subclasses.","","    @method _getAncestorTestFn","    @return {Function} Test 
function.","    @protected","    **/","    _getAncestorTestFn: function () {"," 
       var container = this.get('container'),","            host      = 
this._host;","","        return function (node) {","            return node === 
container || node === host;","        };","    },","","    // -- Protected 
Event Handlers ---------------------------------------------","    
_afterHostBlur: function () {","        this.hide();","    },","","    
_afterHostClick: function () {","        if (!this.rendered) {","            
this.render();","        }","","        this.toggleVisible({anchorPoint: 
this._host});","    },","","    _afterHostFocus: function () {","        
clearTimeout(this._timeouts.menu);","","        if (!this.rendered) {","        
    this.render();","        }","","        this.show({anchorPoint: 
this._host});","    },","","    _afterHostMouseEnter: function () {","        
clearTimeout(this._timeouts.menu);","","        if (!this.rendered) {","        
    this.render();","        }","","        this.show({anchorPoint: 
this._host});","    },","","    _afterHostMouseLeave: function () {","        
var self = this;","","        this._timeouts.menu = setTimeout(function () {"," 
           self.hide();","        }, 300);","    },","","    _onHostContext: 
function (e) {","        e.preventDefault();","","        if (!this.rendered) 
{","            this.render();","        }","","        this.show({anchorPoint: 
[e.clientX, e.clientY]});","    }","}, {","    NS: 'menu',","","    ATTRS: {"," 
       /**","        If `true`, this menu will be shown when the host node is 
clicked with","        the left mouse button or (in the case of `<button>`, 
`<input>`, and","        `<a>` elements) activated with the Return key.","","   
     @attribute {Boolean} showOnClick","        @default true","        
@initOnly","        **/","        showOnClick: {","            value: true,","  
          writeOnce: 'initOnly'","        },","","        /**","        If 
`true`, this menu will be shown when the host node's `contextmenu`","        
event occurs, which happens when the user takes an action that would","        
normally display the browser's context menu (such as right-clicking).","","     
   When `true`, the browser's default context menu will be prevented from","    
    appearing.","","        @attribute {Boolean} showOnContext","        
@default false","        @initOnly","        **/","        showOnContext: {","  
          value: false,","            writeOnce: 'initOnly'","        },","","  
      /**","        If `true`, this menu will be shown when the host node is 
hovered or","        receives focus instead of only being shown when it's 
clicked.","","        @attribute {Boolean} showOnHover","        @default 
false","        @initOnly","        **/","        showOnHover: {","            
value: false,","            writeOnce: 'initOnly'","        }","    
}","});","","","}, '@VERSION@', {\"requires\": [\"event-focus\", 
\"gallery-sm-menu\", \"node-pluginhost\", \"plugin\"]});","","}());"]};
+}
+var __cov_rMLwgKS20Sfmu8xXeZjsqA = 
__coverage__['build/gallery-sm-menu-plugin/gallery-sm-menu-plugin.js'];
+__cov_rMLwgKS20Sfmu8xXeZjsqA.s['1']++;YUI.add('gallery-sm-menu-plugin',function(Y,NAME){__cov_rMLwgKS20Sfmu8xXeZjsqA.f['1']++;__cov_rMLwgKS20Sfmu8xXeZjsqA.s['2']++;Y.namespace('Plugin').Menu=Y.Base.create('menuPlugin',Y.Menu,[Y.Plugin.Base],{initializer:function(config){__cov_rMLwgKS20Sfmu8xXeZjsqA.f['2']++;__cov_rMLwgKS20Sfmu8xXeZjsqA.s['3']++;this._host=config.host;__cov_rMLwgKS20Sfmu8xXeZjsqA.s['4']++;this._hostIsBody=this._host===Y.one('body');__cov_rMLwgKS20Sfmu8xXeZjsqA.s['5']++;this._attachMenuPluginEvents();},destructor:function(){__cov_rMLwgKS20Sfmu8xXeZjsqA.f['3']++;__cov_rMLwgKS20Sfmu8xXeZjsqA.s['6']++;clearTimeout(this._pluginHideTimeout);},reposition:function(anchorPoint){__cov_rMLwgKS20Sfmu8xXeZjsqA.f['4']++;__cov_rMLwgKS20Sfmu8xXeZjsqA.s['7']++;return
 
Y.Menu.prototype.reposition.call(this,(__cov_rMLwgKS20Sfmu8xXeZjsqA.b['1'][0]++,anchorPoint)||(__cov_rMLwgKS20Sfmu8xXeZjsqA.b['1'][1]++,this._host));},_attachMenuPluginEvents:function(){__cov_rMLwgKS20Sfmu8xXeZjsqA.f['5']++;__cov_rMLwgKS20Sfmu8xXeZjsqA.s['8']++;if(this.get('showOnClick')){__cov_rMLwgKS20Sfmu8xXeZjsqA.b['2'][0]++;__cov_rMLwgKS20Sfmu8xXeZjsqA.s['9']++;this.afterHostEvent('click',this._afterHostClick);}else{__cov_rMLwgKS20Sfmu8xXeZjsqA.b['2'][1]++;}__cov_rMLwgKS20Sfmu8xXeZjsqA.s['10']++;if(this.get('showOnContext')){__cov_rMLwgKS20Sfmu8xXeZjsqA.b['3'][0]++;__cov_rMLwgKS20Sfmu8xXeZjsqA.s['11']++;if(this._hostIsBody){__cov_rMLwgKS20Sfmu8xXeZjsqA.b['4'][0]++;__cov_rMLwgKS20Sfmu8xXeZjsqA.s['12']++;this._menuEvents.push(Y.one('doc').on('contextmenu',this._onHostContext,this));}else{__cov_rMLwgKS20Sfmu8xXeZjsqA.b['4'][1]++;__cov_rMLwgKS20Sfmu8xXeZjsqA.s['13']++;this.onHostEvent('contextmenu',this._onHostContext);}}else{__cov_rMLwgKS20Sfmu8xXeZjsqA.b['3'][1]++;}__cov_rMLwgKS20Sfmu8xXeZjsqA.s['14']++;if(this.get('showOnHover')){__cov_rMLwgKS20Sfmu8xXeZjsqA.b['5'][0]++;__cov_rMLwgKS20Sfmu8xXeZjsqA.s['15']++;this.afterHostEvent({blur:this._afterHostBlur,focus:this._afterHostFocus,mouseenter:this._afterHostMouseEnter,mouseleave:this._afterHostMouseLeave});}else{__cov_rMLwgKS20Sfmu8xXeZjsqA.b['5'][1]++;}},_getAncestorTestFn:function(){__cov_rMLwgKS20Sfmu8xXeZjsqA.f['6']++;__cov_rMLwgKS20Sfmu8xXeZjsqA.s['16']++;var
 
container=this.get('container'),host=this._host;__cov_rMLwgKS20Sfmu8xXeZjsqA.s['17']++;return
 
function(node){__cov_rMLwgKS20Sfmu8xXeZjsqA.f['7']++;__cov_rMLwgKS20Sfmu8xXeZjsqA.s['18']++;return(__cov_rMLwgKS20Sfmu8xXeZjsqA.b['6'][0]++,node===container)||(__cov_rMLwgKS20Sfmu8xXeZjsqA.b['6'][1]++,node===host);};},_afterHostBlur:function(){__cov_rMLwgKS20Sfmu8xXeZjsqA.f['8']++;__cov_rMLwgKS20Sfmu8xXeZjsqA.s['19']++;this.hide();},_afterHostClick:function(){__cov_rMLwgKS20Sfmu8xXeZjsqA.f['9']++;__cov_rMLwgKS20Sfmu8xXeZjsqA.s['20']++;if(!this.rendered){__cov_rMLwgKS20Sfmu8xXeZjsqA.b['7'][0]++;__cov_rMLwgKS20Sfmu8xXeZjsqA.s['21']++;this.render();}else{__cov_rMLwgKS20Sfmu8xXeZjsqA.b['7'][1]++;}__cov_rMLwgKS20Sfmu8xXeZjsqA.s['22']++;this.toggleVisible({anchorPoint:this._host});},_afterHostFocus:function(){__cov_rMLwgKS20Sfmu8xXeZjsqA.f['10']++;__cov_rMLwgKS20Sfmu8xXeZjsqA.s['23']++;clearTimeout(this._timeouts.menu);__cov_rMLwgKS20Sfmu8xXeZjsqA.s['24']++;if(!this.rendered){__cov_rMLwgKS20Sfmu8xXeZjsqA.b['8'][0]++;__cov_rMLwgKS20Sfmu8xXeZjsqA.s['25']++;this.render();}else{__cov_rMLwgKS20Sfmu8xXeZjsqA.b['8'][1]++;}__cov_rMLwgKS20Sfmu8xXeZjsqA.s['26']++;this.show({anchorPoint:this._host});},_afterHostMouseEnter:function(){__cov_rMLwgKS20Sfmu8xXeZjsqA.f['11']++;__cov_rMLwgKS20Sfmu8xXeZjsqA.s['27']++;clearTimeout(this._timeouts.menu);__cov_rMLwgKS20Sfmu8xXeZjsqA.s['28']++;if(!this.rendered){__cov_rMLwgKS20Sfmu8xXeZjsqA.b['9'][0]++;__cov_rMLwgKS20Sfmu8xXeZjsqA.s['29']++;this.render();}else{__cov_rMLwgKS20Sfmu8xXeZjsqA.b['9'][1]++;}__cov_rMLwgKS20Sfmu8xXeZjsqA.s['30']++;this.show({anchorPoint:this._host});},_afterHostMouseLeave:function(){__cov_rMLwgKS20Sfmu8xXeZjsqA.f['12']++;__cov_rMLwgKS20Sfmu8xXeZjsqA.s['31']++;var
 
self=this;__cov_rMLwgKS20Sfmu8xXeZjsqA.s['32']++;this._timeouts.menu=setTimeout(function(){__cov_rMLwgKS20Sfmu8xXeZjsqA.f['13']++;__cov_rMLwgKS20Sfmu8xXeZjsqA.s['33']++;self.hide();},300);},_onHostContext:function(e){__cov_rMLwgKS20Sfmu8xXeZjsqA.f['14']++;__cov_rMLwgKS20Sfmu8xXeZjsqA.s['34']++;e.preventDefault();__cov_rMLwgKS20Sfmu8xXeZjsqA.s['35']++;if(!this.rendered){__cov_rMLwgKS20Sfmu8xXeZjsqA.b['10'][0]++;__cov_rMLwgKS20Sfmu8xXeZjsqA.s['36']++;this.render();}else{__cov_rMLwgKS20Sfmu8xXeZjsqA.b['10'][1]++;}__cov_rMLwgKS20Sfmu8xXeZjsqA.s['37']++;this.show({anchorPoint:[e.clientX,e.clientY]});}},{NS:'menu',ATTRS:{showOnClick:{value:true,writeOnce:'initOnly'},showOnContext:{value:false,writeOnce:'initOnly'},showOnHover:{value:false,writeOnce:'initOnly'}}});},'@VERSION@',{'requires':['event-focus','gallery-sm-menu','node-pluginhost','plugin']});

Added: 
branches/dev-syncromind/phpgwapi/js/yui3-gallery/gallery-sm-menu-plugin/gallery-sm-menu-plugin-debug.js
===================================================================
--- 
branches/dev-syncromind/phpgwapi/js/yui3-gallery/gallery-sm-menu-plugin/gallery-sm-menu-plugin-debug.js
                             (rev 0)
+++ 
branches/dev-syncromind/phpgwapi/js/yui3-gallery/gallery-sm-menu-plugin/gallery-sm-menu-plugin-debug.js
     2014-10-30 19:17:05 UTC (rev 12255)
@@ -0,0 +1,222 @@
+YUI.add('gallery-sm-menu-plugin', function (Y, NAME) {
+
+/**
+Provides the `Y.Plugin.Menu` Node plugin.
+
address@hidden gallery-sm-menu
address@hidden gallery-sm-menu-plugin
+**/
+
+/**
+Node plugin that toggles a dropdown menu when the host node is clicked.
+
+### Example
+
+    YUI().use('menu-plugin', function (Y) {
+        var button = Y.one('#button');
+
+        // Plug a dropdown menu into the button.
+        button.plug(Y.Plugin.Menu, {
+            items: [
+                {label: 'Item One'},
+                {label: 'Item Two'},
+                {label: 'Item Three'}
+            ]
+        });
+
+        // The menu will automatically be displayed whenever the button is
+        // clicked, but you can also toggle it manually.
+        button.menu.toggleVisible();
+    });
+
address@hidden Plugin.Menu
address@hidden
address@hidden Menu
address@hidden Plugin.Base
+**/
+
+Y.namespace('Plugin').Menu = Y.Base.create('menuPlugin', Y.Menu, 
[Y.Plugin.Base], {
+    // -- Lifecycle Methods 
----------------------------------------------------
+    initializer: function (config) {
+        this._host       = config.host;
+        this._hostIsBody = this._host === Y.one('body');
+
+        this._attachMenuPluginEvents();
+    },
+
+    destructor: function () {
+        clearTimeout(this._pluginHideTimeout);
+    },
+
+    // -- Public Methods 
-------------------------------------------------------
+
+    /**
+    Repositions this menu so that it is anchored to a specified node, region, 
or
+    set of pixel coordinates.
+
+    The menu will be displayed at the most advantageous position relative to 
the
+    anchor point to ensure that as much of the menu as possible is visible
+    within the viewport.
+
+    If no anchor point is specified, the menu will be positioned relative to 
its
+    host node.
+
+    @method reposition
+    @param {Node|Number[]|Object} [anchorPoint] Anchor point at which this menu
+        should be positioned. The point may be specified as a `Y.Node`
+        reference, a region object, or an array of X and Y pixel coordinates.
+    @chainable
+    **/
+    reposition: function (anchorPoint) {
+        return Y.Menu.prototype.reposition.call(this, anchorPoint || 
this._host);
+    },
+
+    // -- Protected Methods 
----------------------------------------------------
+    _attachMenuPluginEvents: function () {
+        // Events added to this._menuEvents will be cleaned up by Y.Menu.
+
+        if (this.get('showOnClick')) {
+            this.afterHostEvent('click', this._afterHostClick);
+        }
+
+        if (this.get('showOnContext')) {
+            // If the host node is the <body> element, we need to listen on the
+            // document.
+            if (this._hostIsBody) {
+                this._menuEvents.push(Y.one('doc').on('contextmenu', 
this._onHostContext, this));
+            } else {
+                this.onHostEvent('contextmenu', this._onHostContext);
+            }
+        }
+
+        if (this.get('showOnHover')) {
+            this.afterHostEvent({
+                blur      : this._afterHostBlur,
+                focus     : this._afterHostFocus,
+                mouseenter: this._afterHostMouseEnter,
+                mouseleave: this._afterHostMouseLeave
+            });
+        }
+    },
+
+    /**
+    Returns an efficient test function that can be passed to 
`Y.Node#ancestor()`
+    to test whether a node is this menu's container or its plugin host.
+
+    This is broken out to make overriding easier in subclasses.
+
+    @method _getAncestorTestFn
+    @return {Function} Test function.
+    @protected
+    **/
+    _getAncestorTestFn: function () {
+        var container = this.get('container'),
+            host      = this._host;
+
+        return function (node) {
+            return node === container || node === host;
+        };
+    },
+
+    // -- Protected Event Handlers 
---------------------------------------------
+    _afterHostBlur: function () {
+        this.hide();
+    },
+
+    _afterHostClick: function () {
+        if (!this.rendered) {
+            this.render();
+        }
+
+        this.toggleVisible({anchorPoint: this._host});
+    },
+
+    _afterHostFocus: function () {
+        clearTimeout(this._timeouts.menu);
+
+        if (!this.rendered) {
+            this.render();
+        }
+
+        this.show({anchorPoint: this._host});
+    },
+
+    _afterHostMouseEnter: function () {
+        clearTimeout(this._timeouts.menu);
+
+        if (!this.rendered) {
+            this.render();
+        }
+
+        this.show({anchorPoint: this._host});
+    },
+
+    _afterHostMouseLeave: function () {
+        var self = this;
+
+        this._timeouts.menu = setTimeout(function () {
+            self.hide();
+        }, 300);
+    },
+
+    _onHostContext: function (e) {
+        e.preventDefault();
+
+        if (!this.rendered) {
+            this.render();
+        }
+
+        this.show({anchorPoint: [e.clientX, e.clientY]});
+    }
+}, {
+    NS: 'menu',
+
+    ATTRS: {
+        /**
+        If `true`, this menu will be shown when the host node is clicked with
+        the left mouse button or (in the case of `<button>`, `<input>`, and
+        `<a>` elements) activated with the Return key.
+
+        @attribute {Boolean} showOnClick
+        @default true
+        @initOnly
+        **/
+        showOnClick: {
+            value: true,
+            writeOnce: 'initOnly'
+        },
+
+        /**
+        If `true`, this menu will be shown when the host node's `contextmenu`
+        event occurs, which happens when the user takes an action that would
+        normally display the browser's context menu (such as right-clicking).
+
+        When `true`, the browser's default context menu will be prevented from
+        appearing.
+
+        @attribute {Boolean} showOnContext
+        @default false
+        @initOnly
+        **/
+        showOnContext: {
+            value: false,
+            writeOnce: 'initOnly'
+        },
+
+        /**
+        If `true`, this menu will be shown when the host node is hovered or
+        receives focus instead of only being shown when it's clicked.
+
+        @attribute {Boolean} showOnHover
+        @default false
+        @initOnly
+        **/
+        showOnHover: {
+            value: false,
+            writeOnce: 'initOnly'
+        }
+    }
+});
+
+
+}, '@VERSION@', {"requires": ["event-focus", "gallery-sm-menu", 
"node-pluginhost", "plugin"]});

Added: 
branches/dev-syncromind/phpgwapi/js/yui3-gallery/gallery-sm-menu-plugin/gallery-sm-menu-plugin-min.js
===================================================================
--- 
branches/dev-syncromind/phpgwapi/js/yui3-gallery/gallery-sm-menu-plugin/gallery-sm-menu-plugin-min.js
                               (rev 0)
+++ 
branches/dev-syncromind/phpgwapi/js/yui3-gallery/gallery-sm-menu-plugin/gallery-sm-menu-plugin-min.js
       2014-10-30 19:17:05 UTC (rev 12255)
@@ -0,0 +1 @@
+YUI.add("gallery-sm-menu-plugin",function(e,t){e.namespace("Plugin").Menu=e.Base.create("menuPlugin",e.Menu,[e.Plugin.Base],{initializer:function(t){this._host=t.host,this._hostIsBody=this._host===e.one("body"),this._attachMenuPluginEvents()},destructor:function(){clearTimeout(this._pluginHideTimeout)},reposition:function(t){return
 
e.Menu.prototype.reposition.call(this,t||this._host)},_attachMenuPluginEvents:function(){this.get("showOnClick")&&this.afterHostEvent("click",this._afterHostClick),this.get("showOnContext")&&(this._hostIsBody?this._menuEvents.push(e.one("doc").on("contextmenu",this._onHostContext,this)):this.onHostEvent("contextmenu",this._onHostContext)),this.get("showOnHover")&&this.afterHostEvent({blur:this._afterHostBlur,focus:this._afterHostFocus,mouseenter:this._afterHostMouseEnter,mouseleave:this._afterHostMouseLeave})},_getAncestorTestFn:function(){var
 e=this.get("container"),t=this._host;return function(n){return 
n===e||n===t}},_afterHostBlur:function(){this.hide()},_afterHostClick:function(){this.rendered||this.render(),this.toggleVisible({anchorPoint:this._host})},_afterHostFocus:function(){clearTimeout(this._timeouts.menu),this.rendered||this.render(),this.show({anchorPoint:this._host})},_afterHostMouseEnter:function(){clearTimeout(this._timeouts.menu),this.rendered||this.render(),this.show({anchorPoint:this._host})},_afterHostMouseLeave:function(){var
 
e=this;this._timeouts.menu=setTimeout(function(){e.hide()},300)},_onHostContext:function(e){e.preventDefault(),this.rendered||this.render(),this.show({anchorPoint:[e.clientX,e.clientY]})}},{NS:"menu",ATTRS:{showOnClick:{value:!0,writeOnce:"initOnly"},showOnContext:{value:!1,writeOnce:"initOnly"},showOnHover:{value:!1,writeOnce:"initOnly"}}})},"@VERSION@",{requires:["event-focus","gallery-sm-menu","node-pluginhost","plugin"]});

Added: 
branches/dev-syncromind/phpgwapi/js/yui3-gallery/gallery-sm-menu-plugin/gallery-sm-menu-plugin.js
===================================================================
--- 
branches/dev-syncromind/phpgwapi/js/yui3-gallery/gallery-sm-menu-plugin/gallery-sm-menu-plugin.js
                           (rev 0)
+++ 
branches/dev-syncromind/phpgwapi/js/yui3-gallery/gallery-sm-menu-plugin/gallery-sm-menu-plugin.js
   2014-10-30 19:17:05 UTC (rev 12255)
@@ -0,0 +1,222 @@
+YUI.add('gallery-sm-menu-plugin', function (Y, NAME) {
+
+/**
+Provides the `Y.Plugin.Menu` Node plugin.
+
address@hidden gallery-sm-menu
address@hidden gallery-sm-menu-plugin
+**/
+
+/**
+Node plugin that toggles a dropdown menu when the host node is clicked.
+
+### Example
+
+    YUI().use('menu-plugin', function (Y) {
+        var button = Y.one('#button');
+
+        // Plug a dropdown menu into the button.
+        button.plug(Y.Plugin.Menu, {
+            items: [
+                {label: 'Item One'},
+                {label: 'Item Two'},
+                {label: 'Item Three'}
+            ]
+        });
+
+        // The menu will automatically be displayed whenever the button is
+        // clicked, but you can also toggle it manually.
+        button.menu.toggleVisible();
+    });
+
address@hidden Plugin.Menu
address@hidden
address@hidden Menu
address@hidden Plugin.Base
+**/
+
+Y.namespace('Plugin').Menu = Y.Base.create('menuPlugin', Y.Menu, 
[Y.Plugin.Base], {
+    // -- Lifecycle Methods 
----------------------------------------------------
+    initializer: function (config) {
+        this._host       = config.host;
+        this._hostIsBody = this._host === Y.one('body');
+
+        this._attachMenuPluginEvents();
+    },
+
+    destructor: function () {
+        clearTimeout(this._pluginHideTimeout);
+    },
+
+    // -- Public Methods 
-------------------------------------------------------
+
+    /**
+    Repositions this menu so that it is anchored to a specified node, region, 
or
+    set of pixel coordinates.
+
+    The menu will be displayed at the most advantageous position relative to 
the
+    anchor point to ensure that as much of the menu as possible is visible
+    within the viewport.
+
+    If no anchor point is specified, the menu will be positioned relative to 
its
+    host node.
+
+    @method reposition
+    @param {Node|Number[]|Object} [anchorPoint] Anchor point at which this menu
+        should be positioned. The point may be specified as a `Y.Node`
+        reference, a region object, or an array of X and Y pixel coordinates.
+    @chainable
+    **/
+    reposition: function (anchorPoint) {
+        return Y.Menu.prototype.reposition.call(this, anchorPoint || 
this._host);
+    },
+
+    // -- Protected Methods 
----------------------------------------------------
+    _attachMenuPluginEvents: function () {
+        // Events added to this._menuEvents will be cleaned up by Y.Menu.
+
+        if (this.get('showOnClick')) {
+            this.afterHostEvent('click', this._afterHostClick);
+        }
+
+        if (this.get('showOnContext')) {
+            // If the host node is the <body> element, we need to listen on the
+            // document.
+            if (this._hostIsBody) {
+                this._menuEvents.push(Y.one('doc').on('contextmenu', 
this._onHostContext, this));
+            } else {
+                this.onHostEvent('contextmenu', this._onHostContext);
+            }
+        }
+
+        if (this.get('showOnHover')) {
+            this.afterHostEvent({
+                blur      : this._afterHostBlur,
+                focus     : this._afterHostFocus,
+                mouseenter: this._afterHostMouseEnter,
+                mouseleave: this._afterHostMouseLeave
+            });
+        }
+    },
+
+    /**
+    Returns an efficient test function that can be passed to 
`Y.Node#ancestor()`
+    to test whether a node is this menu's container or its plugin host.
+
+    This is broken out to make overriding easier in subclasses.
+
+    @method _getAncestorTestFn
+    @return {Function} Test function.
+    @protected
+    **/
+    _getAncestorTestFn: function () {
+        var container = this.get('container'),
+            host      = this._host;
+
+        return function (node) {
+            return node === container || node === host;
+        };
+    },
+
+    // -- Protected Event Handlers 
---------------------------------------------
+    _afterHostBlur: function () {
+        this.hide();
+    },
+
+    _afterHostClick: function () {
+        if (!this.rendered) {
+            this.render();
+        }
+
+        this.toggleVisible({anchorPoint: this._host});
+    },
+
+    _afterHostFocus: function () {
+        clearTimeout(this._timeouts.menu);
+
+        if (!this.rendered) {
+            this.render();
+        }
+
+        this.show({anchorPoint: this._host});
+    },
+
+    _afterHostMouseEnter: function () {
+        clearTimeout(this._timeouts.menu);
+
+        if (!this.rendered) {
+            this.render();
+        }
+
+        this.show({anchorPoint: this._host});
+    },
+
+    _afterHostMouseLeave: function () {
+        var self = this;
+
+        this._timeouts.menu = setTimeout(function () {
+            self.hide();
+        }, 300);
+    },
+
+    _onHostContext: function (e) {
+        e.preventDefault();
+
+        if (!this.rendered) {
+            this.render();
+        }
+
+        this.show({anchorPoint: [e.clientX, e.clientY]});
+    }
+}, {
+    NS: 'menu',
+
+    ATTRS: {
+        /**
+        If `true`, this menu will be shown when the host node is clicked with
+        the left mouse button or (in the case of `<button>`, `<input>`, and
+        `<a>` elements) activated with the Return key.
+
+        @attribute {Boolean} showOnClick
+        @default true
+        @initOnly
+        **/
+        showOnClick: {
+            value: true,
+            writeOnce: 'initOnly'
+        },
+
+        /**
+        If `true`, this menu will be shown when the host node's `contextmenu`
+        event occurs, which happens when the user takes an action that would
+        normally display the browser's context menu (such as right-clicking).
+
+        When `true`, the browser's default context menu will be prevented from
+        appearing.
+
+        @attribute {Boolean} showOnContext
+        @default false
+        @initOnly
+        **/
+        showOnContext: {
+            value: false,
+            writeOnce: 'initOnly'
+        },
+
+        /**
+        If `true`, this menu will be shown when the host node is hovered or
+        receives focus instead of only being shown when it's clicked.
+
+        @attribute {Boolean} showOnHover
+        @default false
+        @initOnly
+        **/
+        showOnHover: {
+            value: false,
+            writeOnce: 'initOnly'
+        }
+    }
+});
+
+
+}, '@VERSION@', {"requires": ["event-focus", "gallery-sm-menu", 
"node-pluginhost", "plugin"]});

Added: 
branches/dev-syncromind/phpgwapi/js/yui3-gallery/gallery-sm-menu-templates/gallery-sm-menu-templates-coverage.js
===================================================================
--- 
branches/dev-syncromind/phpgwapi/js/yui3-gallery/gallery-sm-menu-templates/gallery-sm-menu-templates-coverage.js
                            (rev 0)
+++ 
branches/dev-syncromind/phpgwapi/js/yui3-gallery/gallery-sm-menu-templates/gallery-sm-menu-templates-coverage.js
    2014-10-30 19:17:05 UTC (rev 12255)
@@ -0,0 +1,6 @@
+if (typeof __coverage__ === 'undefined') { __coverage__ = {}; }
+if 
(!__coverage__['build/gallery-sm-menu-templates/gallery-sm-menu-templates.js']) 
{
+   
__coverage__['build/gallery-sm-menu-templates/gallery-sm-menu-templates.js'] = 
{"path":"build/gallery-sm-menu-templates/gallery-sm-menu-templates.js","s":{"1":0,"2":0,"3":0},"b":{},"f":{"1":0},"fnMap":{"1":{"name":"(anonymous_1)","line":1,"loc":{"start":{"line":1,"column":37},"end":{"line":1,"column":56}}}},"statementMap":{"1":{"start":{"line":1,"column":0},"end":{"line":49,"column":50}},"2":{"start":{"line":16,"column":0},"end":{"line":16,"column":29}},"3":{"start":{"line":18,"column":0},"end":{"line":46,"column":2}}},"branchMap":{},"code":["(function
 () { YUI.add('gallery-sm-menu-templates', function (Y, NAME) 
{","","/**","Provides templates for `Menu`.","","@module 
gallery-sm-menu","@submodule 
gallery-sm-menu-templates","**/","","/**","Templates for `Menu`.","","@class 
Menu.Templates","**/","","var Micro = 
Y.Template.Micro;","","Y.namespace('Menu').Templates = {","    children: 
Micro.compile(","        '<ul class=\"<%= data.classNames.children 
%>\"></ul>'","    ),","","    item: Micro.compile(","        '<% switch 
(data.item.type) { %>' +","            '<% case \"item\": %>' +","              
  '<li id=\"<%= data.item.id %>\" class=\"<%= data.classNames.item %>\">' +","  
                  '<a href=\"<%= data.item.url %>\" class=\"<%= 
data.classNames.label %>\" data-item-id=\"<%= data.item.id %>\"' +","           
             '<% if (data.item.title) { %>' +","                            ' 
title=\"<%= data.item.title %>\"' +","                        '<% } %>' +","    
                '></a>' +","                '</li>' +","                '<% 
break; %>' +","","            '<% case \"heading\": %>' +","                
'<li class=\"<%= data.classNames.heading %>\">' +","                    '<span 
class=\"<%= data.classNames.label %>\"></span>' +","                '</li>' 
+","                '<% break; %>' +","","            '<% case \"separator\": 
%>' +","                '<li class=\"<%= data.classNames.separator %>\"></li>' 
+","                '<% break; %>' +","        '<% } %>'","    
)","};","","","}, '@VERSION@', {\"requires\": 
[\"template-micro\"]});","","}());"]};
+}
+var __cov_zMVwQbZLeuMd5DYt4n_RyA = 
__coverage__['build/gallery-sm-menu-templates/gallery-sm-menu-templates.js'];
+__cov_zMVwQbZLeuMd5DYt4n_RyA.s['1']++;YUI.add('gallery-sm-menu-templates',function(Y,NAME){__cov_zMVwQbZLeuMd5DYt4n_RyA.f['1']++;__cov_zMVwQbZLeuMd5DYt4n_RyA.s['2']++;var
 
Micro=Y.Template.Micro;__cov_zMVwQbZLeuMd5DYt4n_RyA.s['3']++;Y.namespace('Menu').Templates={children:Micro.compile('<ul
 class="<%= data.classNames.children %>"></ul>'),item:Micro.compile('<% switch 
(data.item.type) { %>'+'<% case "item": %>'+'<li id="<%= data.item.id %>" 
class="<%= data.classNames.item %>">'+'<a href="<%= data.item.url %>" 
class="<%= data.classNames.label %>" data-item-id="<%= data.item.id %>"'+'<% if 
(data.item.title) { %>'+' title="<%= data.item.title %>"'+'<% } 
%>'+'></a>'+'</li>'+'<% break; %>'+'<% case "heading": %>'+'<li class="<%= 
data.classNames.heading %>">'+'<span class="<%= data.classNames.label 
%>"></span>'+'</li>'+'<% break; %>'+'<% case "separator": %>'+'<li class="<%= 
data.classNames.separator %>"></li>'+'<% break; %>'+'<% } 
%>')};},'@VERSION@',{'requires':['template-micro']});

Added: 
branches/dev-syncromind/phpgwapi/js/yui3-gallery/gallery-sm-menu-templates/gallery-sm-menu-templates-debug.js
===================================================================
--- 
branches/dev-syncromind/phpgwapi/js/yui3-gallery/gallery-sm-menu-templates/gallery-sm-menu-templates-debug.js
                               (rev 0)
+++ 
branches/dev-syncromind/phpgwapi/js/yui3-gallery/gallery-sm-menu-templates/gallery-sm-menu-templates-debug.js
       2014-10-30 19:17:05 UTC (rev 12255)
@@ -0,0 +1,49 @@
+YUI.add('gallery-sm-menu-templates', function (Y, NAME) {
+
+/**
+Provides templates for `Menu`.
+
address@hidden gallery-sm-menu
address@hidden gallery-sm-menu-templates
+**/
+
+/**
+Templates for `Menu`.
+
address@hidden Menu.Templates
+**/
+
+var Micro = Y.Template.Micro;
+
+Y.namespace('Menu').Templates = {
+    children: Micro.compile(
+        '<ul class="<%= data.classNames.children %>"></ul>'
+    ),
+
+    item: Micro.compile(
+        '<% switch (data.item.type) { %>' +
+            '<% case "item": %>' +
+                '<li id="<%= data.item.id %>" class="<%= data.classNames.item 
%>">' +
+                    '<a href="<%= data.item.url %>" class="<%= 
data.classNames.label %>" data-item-id="<%= data.item.id %>"' +
+                        '<% if (data.item.title) { %>' +
+                            ' title="<%= data.item.title %>"' +
+                        '<% } %>' +
+                    '></a>' +
+                '</li>' +
+                '<% break; %>' +
+
+            '<% case "heading": %>' +
+                '<li class="<%= data.classNames.heading %>">' +
+                    '<span class="<%= data.classNames.label %>"></span>' +
+                '</li>' +
+                '<% break; %>' +
+
+            '<% case "separator": %>' +
+                '<li class="<%= data.classNames.separator %>"></li>' +
+                '<% break; %>' +
+        '<% } %>'
+    )
+};
+
+
+}, '@VERSION@', {"requires": ["template-micro"]});

Added: 
branches/dev-syncromind/phpgwapi/js/yui3-gallery/gallery-sm-menu-templates/gallery-sm-menu-templates-min.js
===================================================================
--- 
branches/dev-syncromind/phpgwapi/js/yui3-gallery/gallery-sm-menu-templates/gallery-sm-menu-templates-min.js
                         (rev 0)
+++ 
branches/dev-syncromind/phpgwapi/js/yui3-gallery/gallery-sm-menu-templates/gallery-sm-menu-templates-min.js
 2014-10-30 19:17:05 UTC (rev 12255)
@@ -0,0 +1 @@
+YUI.add("gallery-sm-menu-templates",function(e,t){var 
n=e.Template.Micro;e.namespace("Menu").Templates={children:n.compile('<ul 
class="<%= data.classNames.children %>"></ul>'),item:n.compile('<% switch 
(data.item.type) { %><% case "item": %><li id="<%= data.item.id %>" class="<%= 
data.classNames.item %>"><a href="<%= data.item.url %>" class="<%= 
data.classNames.label %>" data-item-id="<%= data.item.id %>"<% if 
(data.item.title) { %> title="<%= data.item.title %>"<% } %>></a></li><% break; 
%><% case "heading": %><li class="<%= data.classNames.heading %>"><span 
class="<%= data.classNames.label %>"></span></li><% break; %><% case 
"separator": %><li class="<%= data.classNames.separator %>"></li><% break; %><% 
} %>')}},"@VERSION@",{requires:["template-micro"]});

Added: 
branches/dev-syncromind/phpgwapi/js/yui3-gallery/gallery-sm-menu-templates/gallery-sm-menu-templates.js
===================================================================
--- 
branches/dev-syncromind/phpgwapi/js/yui3-gallery/gallery-sm-menu-templates/gallery-sm-menu-templates.js
                             (rev 0)
+++ 
branches/dev-syncromind/phpgwapi/js/yui3-gallery/gallery-sm-menu-templates/gallery-sm-menu-templates.js
     2014-10-30 19:17:05 UTC (rev 12255)
@@ -0,0 +1,49 @@
+YUI.add('gallery-sm-menu-templates', function (Y, NAME) {
+
+/**
+Provides templates for `Menu`.
+
address@hidden gallery-sm-menu
address@hidden gallery-sm-menu-templates
+**/
+
+/**
+Templates for `Menu`.
+
address@hidden Menu.Templates
+**/
+
+var Micro = Y.Template.Micro;
+
+Y.namespace('Menu').Templates = {
+    children: Micro.compile(
+        '<ul class="<%= data.classNames.children %>"></ul>'
+    ),
+
+    item: Micro.compile(
+        '<% switch (data.item.type) { %>' +
+            '<% case "item": %>' +
+                '<li id="<%= data.item.id %>" class="<%= data.classNames.item 
%>">' +
+                    '<a href="<%= data.item.url %>" class="<%= 
data.classNames.label %>" data-item-id="<%= data.item.id %>"' +
+                        '<% if (data.item.title) { %>' +
+                            ' title="<%= data.item.title %>"' +
+                        '<% } %>' +
+                    '></a>' +
+                '</li>' +
+                '<% break; %>' +
+
+            '<% case "heading": %>' +
+                '<li class="<%= data.classNames.heading %>">' +
+                    '<span class="<%= data.classNames.label %>"></span>' +
+                '</li>' +
+                '<% break; %>' +
+
+            '<% case "separator": %>' +
+                '<li class="<%= data.classNames.separator %>"></li>' +
+                '<% break; %>' +
+        '<% } %>'
+    )
+};
+
+
+}, '@VERSION@', {"requires": ["template-micro"]});

Modified: branches/dev-syncromind/phpgwapi/templates/pure/head.inc.php
===================================================================
--- branches/dev-syncromind/phpgwapi/templates/pure/head.inc.php        
2014-10-29 23:14:21 UTC (rev 12254)
+++ branches/dev-syncromind/phpgwapi/templates/pure/head.inc.php        
2014-10-30 19:17:05 UTC (rev 12255)
@@ -12,6 +12,10 @@
        phpgwapi_yui::load_widget('container');
        $GLOBALS['phpgw_info']['server']['no_jscombine']=true;
        $javascripts[] = "/phpgwapi/js/yui3/yui/yui-min.js";
+       $javascripts[] = 
"/phpgwapi/js/yui3-gallery/gallery-sm-menu/gallery-sm-menu-min.js";
+       $javascripts[] = 
"/phpgwapi/js/yui3-gallery/gallery-sm-menu-base/gallery-sm-menu-base-min.js";
+       $javascripts[] = 
"/phpgwapi/js/yui3-gallery/gallery-sm-menu-item/gallery-sm-menu-item-min.js";
+       $javascripts[] = 
"/phpgwapi/js/yui3-gallery/gallery-sm-menu-templates/gallery-sm-menu-templates-min.js";
        $javascripts[] = 
"/phpgwapi/js/jquery/mmenu/src/js/jquery.mmenu.min.all.js";
        $javascripts[] = "/phpgwapi/templates/pure/js/mmenu.js";
 
@@ -35,7 +39,6 @@
        $stylesheets[] = "/phpgwapi/templates/pure/css/pure-min.css";
        $stylesheets[] = 
"/phpgwapi/templates/pure/css/grids-responsive-min.css";
        $stylesheets[] = 
"/phpgwapi/js/jquery/mmenu/src/css/jquery.mmenu.all.css";
-//     $stylesheets[] = 
"/phpgwapi/js/jquery/mmenu/src/css/extensions/jquery.mmenu.widescreen.css"  
media="all and (min-width: 900px)" />
 
 //     $stylesheets[] = "/phpgwapi/templates/pure/css/side-menu.css";
 //     $stylesheets[] = "/phpgwapi/templates/pure/css/baby-blue.css";
@@ -75,26 +78,6 @@
                }
        }
 
-       $base_url       = $GLOBALS['phpgw']->link('/', array(), true);
-       if(substr($base_url, 0, 4) != 'http')
-       {
-               $base_url = 
"http://{$GLOBALS['phpgw_info']['server']['hostname']}{$base_url}";
-       }
-
-       if ( isset($GLOBALS['phpgw_info']['server']['enforce_ssl'])
-               && $GLOBALS['phpgw_info']['server']['enforce_ssl'])
-       {
-               if(substr($base_url, 0, 4) != 'http')
-               {
-                       $base_url = 
"https://{$GLOBALS['phpgw_info']['server']['hostname']}{$base_url}";
-               }
-               else
-               {
-                       $base_url = preg_replace('/http:/', 'https:', 
$base_url);
-               }
-       }
-
-
        $tpl_vars = array
        (
                'noheader'                              => 
isset($GLOBALS['phpgw_info']['flags']['noheader_xsl']) && 
$GLOBALS['phpgw_info']['flags']['noheader_xsl'] ? 'true' : 'false',
@@ -104,7 +87,7 @@
                'img_icon'                              => 
$GLOBALS['phpgw']->common->find_image('phpgwapi', 'favicon.ico'),
                'site_title'                    => 
"{$GLOBALS['phpgw_info']['server']['site_title']}",
                'browser_not_supported' => lang('browser not supported'),
-               'str_base_url'                  => $base_url,
+               'str_base_url'                  => $GLOBALS['phpgw']->link('/', 
array(), true),
                'webserver_url'                 => 
$GLOBALS['phpgw_info']['server']['webserver_url'],
                'win_on_events'                 => 
$GLOBALS['phpgw']->common->get_on_events(),
        );

Modified: branches/dev-syncromind/phpgwapi/templates/pure/js/mmenu.js
===================================================================
--- branches/dev-syncromind/phpgwapi/templates/pure/js/mmenu.js 2014-10-29 
23:14:21 UTC (rev 12254)
+++ branches/dev-syncromind/phpgwapi/templates/pure/js/mmenu.js 2014-10-30 
19:17:05 UTC (rev 12255)
@@ -110,19 +110,23 @@
     require: [ ]
 };
 
+
 YUI({
-    classNamePrefix: 'pure'
-}).use('gallery-sm-menu', function (Y) {
-
-    var horizontalMenu = new Y.Menu({
-        container         : '#horizontal-menu',
-        sourceNode        : '#std-menu-items',
-        orientation       : 'horizontal',
-        hideOnOutsideClick: false,
-        hideOnClick       : false
-    });
-
-    horizontalMenu.render();
-    horizontalMenu.show();
-
-});
\ No newline at end of file
+  classNamePrefix: 'pure'
+}).use(
+       'gallery-sm-menu',
+               function(Y) {
+                Y.on("domready", function () {
+                   var horizontalMenu = new Y.Menu(
+                        {
+                                                       container         : 
'#horizontal-menu',
+                                                       sourceNode        : 
'#std-menu-items',
+                                                       orientation       : 
'horizontal',
+                                                       hideOnOutsideClick: 
false,
+                                                       hideOnClick       : 
false
+                        }
+                    );
+                                       horizontalMenu.render();
+                                       horizontalMenu.show();
+                });
+});

Modified: branches/dev-syncromind/phpgwapi/templates/pure/navbar.inc.php
===================================================================
--- branches/dev-syncromind/phpgwapi/templates/pure/navbar.inc.php      
2014-10-29 23:14:21 UTC (rev 12254)
+++ branches/dev-syncromind/phpgwapi/templates/pure/navbar.inc.php      
2014-10-30 19:17:05 UTC (rev 12255)
@@ -158,7 +158,6 @@
                if (!$nonavbar)
                {
                        $bookmarks = phpgwapi_cache::user_get('phpgwapi', 
"bookmark_menu", $GLOBALS['phpgw_info']['user']['id']);
-//             _debug_array($bookmarks);die();
 
                        $navigation = execMethod('phpgwapi.menu.get', 
'navigation');
                        $treemenu = '';
@@ -304,7 +303,7 @@
                        $item['text'] = "<b>[ {$item['text']} ]</b>";
                }
 
-               $link_class =" class=\"{$current_class}\"";
+               $link_class = $current_class ? "class=\"{$current_class}\"" : 
'';
 
                $out = <<<HTML
                                <li {$link_class}>

Modified: branches/dev-syncromind/preferences/templates/base/preferences.tpl
===================================================================
--- branches/dev-syncromind/preferences/templates/base/preferences.tpl  
2014-10-29 23:14:21 UTC (rev 12254)
+++ branches/dev-syncromind/preferences/templates/base/preferences.tpl  
2014-10-30 19:17:05 UTC (rev 12255)
@@ -3,19 +3,11 @@
 <!-- BEGIN form -->
 {tabs}
 {select_user}
-<form method="POST" action="{action_url}">
+<form method="POST" action="{action_url}" class="pure-form pure-form-aligned">
 {account_id}
        <!-- BEGIN list -->
-       <table id="prefs_list">
-               <thead>
-                       <tr>
-                               <th colspan="2"><b>{list_header}</b></th>
-                       </tr>
-               </thead>
-               <tbody>
+                       {list_header}
                        {rows}
-               </tbody>
-       </table>
        <!-- END list -->
 
        <div class="button_group">
@@ -27,18 +19,18 @@
 <!-- END form -->
 
 <!-- BEGIN row -->
-               <tr class="{tr_class}">
-                       <td>{row_name}</td>
-                       <td>{row_value}</td>
-               </tr>
+               <div class="pure-control-group">
+                       <label>{row_name}</label>
+                               {row_value}
+               </div>
 <!-- END row -->
 
 <!-- BEGIN help_row -->
-               <tr class="{tr_class}">
-                       <td>{row_name}</td>
-                       <td>{row_value}</td>
-               </tr>
-               <tr class="{tr_class}">
-                       <td colspan="2">{help_value}</td>
-               </tr>
+               <div class="pure-control-group">
+                       <label>{row_name}</label>
+                               {row_value}
+               </div>
+               <div class="pure-control-group">
+                       <label colspan="2">{help_value}</label>
+               </div>
 <!-- END help_row -->




reply via email to

[Prev in Thread] Current Thread [Next in Thread]