diff options
author | Robin Appelman <icewind1991@gmail.com> | 2011-08-12 22:18:38 +0200 |
---|---|---|
committer | Robin Appelman <icewind1991@gmail.com> | 2011-08-13 00:23:15 +0200 |
commit | 686be824b520e4f04e634846b415e82ed9fb1c4d (patch) | |
tree | b1463dcc1aa39c5960ddded6cc2d9dd1055ca3e3 | |
parent | 42c5a24dc3f67bde57c8d4180e71abb1b1aefe70 (diff) | |
download | nextcloud-server-686be824b520e4f04e634846b415e82ed9fb1c4d.tar.gz nextcloud-server-686be824b520e4f04e634846b415e82ed9fb1c4d.zip |
hide settings menu when clicking outside it
-rw-r--r-- | core/js/js.js | 11 | ||||
-rw-r--r-- | core/js/listview.js | 71 |
2 files changed, 81 insertions, 1 deletions
diff --git a/core/js/js.js b/core/js/js.js index 8ac999a104d..677cd5fbb7f 100644 --- a/core/js/js.js +++ b/core/js/js.js @@ -283,12 +283,21 @@ $(document).ready(function(){ }); if($('body').attr("id")=="body-user") { $('#settings #expanddiv').hide(); } - $('#settings #expand').click(function() { + $('#settings #expand').click(function(event) { $('#settings #expanddiv').slideToggle(); + event.stopPropagation(); }); + $('#settings #expanddiv').click(function(event){ + event.stopPropagation(); + }) $('#settings #expand').hover(function(){ $('#settings #expand+span').fadeToggle(); }); + $(window).click(function(){//hide the settings menu when clicking oustide it + if($('body').attr("id")=="body-user"){ + $('#settings #expanddiv').slideUp(); + } + }); $('.file_action').tipsy({gravity:'s', live:true}); $('.selectedActions a').tipsy({gravity:'n', live:true}); diff --git a/core/js/listview.js b/core/js/listview.js new file mode 100644 index 00000000000..e3e5ebdab8f --- /dev/null +++ b/core/js/listview.js @@ -0,0 +1,71 @@ +function ListView(element){ + this.element=element; +} + +ListView.generateTable=function(collumns){ + var html='<table>'; + html+='<thead>'; + $.each(collumns,function(index,collumn){ + html+='<th>'+collumn+'</th>'; + }); + html+='<thead>'; + html+='</head>'; + html+='<tbody>'; + html+'<tr class="template">' + $.each(collumns,function(index,collumn){ + html+='<th class="'+collumn.toLower()+'"</th>'; + }); + html+'</tr>' + html+='</tbody>'; + html='</table>'; + return $(html); +} + +ListView.prototype={ + rows:{}, + hoverElements:{}, + addRow:function(id,data,extraData){ + var tr=this.element.find('tr.template').clone(); + tr.removeClass('template'); + $.each(data,function(name,value){ + tr.children('td.'+name).text(value); + tr.attr('data-'+name,value); + }); + $.each(extraData,function(name,value){ + tr.attr('data-'+name,value); + }); + this.rows[id]=data; + tr.data('id',id); + this.element.children('tbody').append(tr); + }, + removeRow:function(id){ + this.rows[id].remove(); + delete this.rows[id]; + }, + hoverHandeler:function(tr){ + $.each(this.hoverElement,function(index,collumn){ + $.each(collumn,function(index,element){ + var html='<a href="#" title="'+element.title+'" class="hoverElement"/>'; + var element=$(html); + element.append($('<img src="'+element.icon+'"/>')); + element.click(element.callback); + tr.children('td.'+collumn).append(element) + }); + }); + if(this.deleteCallback){ + + } + }, + hoverHandelerOut:function(tr){ + tr.find('*.hoverElement').remove(); + }, + addHoverElement:function(collumn,icon,title,callback){ + if(!this.hoverElements[collumn]){ + this.hoverElements[collumn]=[]; + } + this.hoverElements[row].push({icon:icon,callback:callback,title:title}); + }, + empty:function(){ + this.element.children('tr:not(.template)').remove(); + } +}
\ No newline at end of file |