summaryrefslogtreecommitdiff
path: root/addons/web/static/lib/jquery.contextmenu
diff options
context:
space:
mode:
Diffstat (limited to 'addons/web/static/lib/jquery.contextmenu')
-rw-r--r--addons/web/static/lib/jquery.contextmenu/jquery.contextmenu.r2.packed.js126
1 files changed, 126 insertions, 0 deletions
diff --git a/addons/web/static/lib/jquery.contextmenu/jquery.contextmenu.r2.packed.js b/addons/web/static/lib/jquery.contextmenu/jquery.contextmenu.r2.packed.js
new file mode 100644
index 00000000000..2356f3b606b
--- /dev/null
+++ b/addons/web/static/lib/jquery.contextmenu/jquery.contextmenu.r2.packed.js
@@ -0,0 +1,126 @@
+(function($) {
+ var menu,shadow,trigger,content,hash,currentTarget;
+ var defaults= {
+ menuStyle: {
+ listStyle:'none',
+ padding:'1px',
+ margin:'0px',
+ backgroundColor:'#fff',
+ border:'1px solid #999',
+ width:'100px'
+ },
+ itemStyle: {
+ margin:'0px',
+ color:'#000',
+ display:'block',
+ cursor:'default',
+ padding:'3px',
+ border:'1px solid #fff',
+ backgroundColor:'transparent'
+ },
+ itemHoverStyle: {
+ border:'1px solid #0a246a',
+ backgroundColor:'#b6bdd2'
+ },
+ eventPosX:'pageX',
+ eventPosY:'pageY',
+ shadow:true,
+ onContextMenu:null,
+ onShowMenu:null
+ };
+ $.fn.contextMenu= function(id,options) {
+ if(!menu) {
+ menu=$('<div id="jqContextMenu"></div>').hide().css({
+ position:'absolute',
+ zIndex:'2000'
+ }).appendTo('body').bind('click', function(e) {
+ e.stopPropagation()
+ })
+ }
+ if(!shadow) {
+ shadow=$('<div></div>').css({
+ backgroundColor:'#000',
+ position:'absolute',
+ opacity:0.2,
+ zIndex:499
+ }).appendTo('body').hide()
+ }
+ hash=hash||[];
+ hash.push({
+ id:id,
+ menuStyle:$.extend({},defaults.menuStyle,options.menuStyle|| {}),
+ itemStyle:$.extend({},defaults.itemStyle,options.itemStyle|| {}),
+ itemHoverStyle:$.extend({},defaults.itemHoverStyle,options.itemHoverStyle|| {}),
+ bindings:options.bindings|| {},
+ shadow:options.shadow||options.shadow===false?options.shadow:defaults.shadow,
+ onContextMenu:options.onContextMenu||defaults.onContextMenu,
+ onShowMenu:options.onShowMenu||defaults.onShowMenu,
+ eventPosX:options.eventPosX||defaults.eventPosX,
+ eventPosY:options.eventPosY||defaults.eventPosY
+ });
+ var index=hash.length-1;
+ var callback = function(e) {
+ var bShowContext=(!!hash[index].onContextMenu)?hash[index].onContextMenu(e):true;
+ if(bShowContext)
+ display(index,this,e,options);
+ return false;
+ };
+ $(this).bind('contextmenu', callback);
+ if(options.leftClickToo) {
+ $(this).click(callback);
+ }
+ return this
+ };
+ function display(index,trigger,e,options) {
+ var cur=hash[index];
+ content=$('#'+cur.id).find('ul:first').clone(true);
+ content.css(cur.menuStyle).find('li').css(cur.itemStyle).hover( function() {
+ $(this).css(cur.itemHoverStyle)
+ }, function() {
+ $(this).css(cur.itemStyle)
+ }).find('img').css({
+ verticalAlign:'middle',
+ paddingRight:'2px'
+ });
+ menu.html(content);
+ if(!!cur.onShowMenu)
+ menu=cur.onShowMenu(e,menu);
+ $.each(cur.bindings, function(id,func) {
+ $('#'+id,menu).bind('click', function(e) {
+ hide();
+ func(trigger,currentTarget)
+ })
+ });
+ menu.css({
+ 'left':e[cur.eventPosX],
+ 'top':e[cur.eventPosY]
+ }).show();
+ if(cur.shadow)
+ shadow.css({
+ width:menu.width(),
+ height:menu.height(),
+ left:e.pageX+2,
+ top:e.pageY+2
+ }).show();
+ $(document).one('click',hide)
+ }
+
+ function hide() {
+ menu.hide();
+ shadow.hide()
+ }
+
+ $.contextMenu= {
+ defaults: function(userDefaults) {
+ $.each(userDefaults, function(i,val) {
+ if(typeof val=='object'&&defaults[i]) {
+ $.extend(defaults[i],val)
+ } else
+ defaults[i]=val
+ })
+ }
+ }
+})(jQuery);
+$( function() {
+ $('div.contextMenu').hide()
+}); \ No newline at end of file