From 9cd4b53a51c6b1ed4835df5976f7310b6fb3f75f Mon Sep 17 00:00:00 2001 From: fnuesse Date: Mon, 18 Jun 2018 11:13:52 +0200 Subject: [PATCH] Added responsive folderadding Signed-off-by: fnuesse Added collapsible to quickaccesslist Signed-off-by: fnuesse Refactored Code Signed-off-by: fnuesse --- apps/files/js/navigation.js | 16 ++++- apps/files/js/tagsplugin.js | 65 ++++++++++++++++++++ apps/files/lib/Controller/ViewController.php | 1 + apps/files/templates/appnavigation.php | 20 +++--- 4 files changed, 91 insertions(+), 11 deletions(-) diff --git a/apps/files/js/navigation.js b/apps/files/js/navigation.js index cf4de7d61e..04c9143581 100644 --- a/apps/files/js/navigation.js +++ b/apps/files/js/navigation.js @@ -143,6 +143,16 @@ _onClickMenuButton: function(ev) { var $target = $(ev.target); var itemId = $target.closest('button').attr('id'); + var qaSelector= '#quickaccess-list'; + + if(itemId==='button-collapseQuickAccess'){ + $.get(OC.generateUrl("/apps/files/api/v1/showquickaccess"), {show: document.getElementById('enableQuickAccess').checked}, function(data, status){ + }); + $("#quickaccess-list" ).toggle('open'); + var dotmenu = document.getElementById("quickaccess-list"); + dotmenu.style.display=''; + } + if(itemId==='button-favorites'){ document.getElementById('menu-favorites').classList.toggle('open'); } @@ -160,10 +170,10 @@ var itemId = $(ev.target).closest('input').attr('id'); var list = document.getElementById(qaKey).getElementsByTagName('li'); - if(itemId==='enableQuickAccess'){ + if(itemId==='enableQuickAccess' ){ $.get(OC.generateUrl("/apps/files/api/v1/showquickaccess"), {show: document.getElementById('enableQuickAccess').checked}, function(data, status){ }); - $(qaSelector ).toggle(); + $(qaSelector).toggle('open'); document.getElementById('menu-favorites').classList.toggle('open'); } @@ -290,7 +300,7 @@ */ getCompareValue: function(nodes, int){ if(this.sortingStrategy==='alphabet'){ - ; return nodes[int].getElementsByTagName('a')[0].innerHTML.toLowerCase() + return nodes[int].getElementsByTagName('a')[0].innerHTML.toLowerCase(); }else if(this.sortingStrategy==='date'){ return nodes[int].getAttribute('folderPos').toLowerCase(); } diff --git a/apps/files/js/tagsplugin.js b/apps/files/js/tagsplugin.js index b174aa7d76..8cdc26ab3b 100644 --- a/apps/files/js/tagsplugin.js +++ b/apps/files/js/tagsplugin.js @@ -62,6 +62,68 @@ $favoriteMarkEl.toggleClass('permanent', state); } + /** + * Remove Item from Quickaccesslist + * + * @param {String} $appfolder folder to be removed + */ + function removeFavoriteFromList(appfolder) { + + var qaKey= 'quickaccess-list'; + var listUL = document.getElementById(qaKey); + var list = listUL.getElementsByTagName('li'); + var appname=appfolder.substring(appfolder.lastIndexOf("/")+1, appfolder.length); + + for(var i = 0; i <= list.length-1; i++) { + if(appname === list[i].getElementsByTagName('a')[0].innerHTML){ + list[i].remove(); + } + } + + if(listUL.childElementCount==0){ + var dotmenu = document.getElementById("quickaccessbutton"); + dotmenu.style.display='none'; + } + } + + /** + * Add Item to Quickaccesslist + * + * @param {String} $appfolder folder to be added + */ + function addFavoriteToList(appfolder) { + var qaKey= 'quickaccess-list'; + var listUL = document.getElementById(qaKey); + var list = listUL.getElementsByTagName('li'); + + var appname=appfolder.substring(appfolder.lastIndexOf("/")+1, appfolder.length); + + var a = document.createElement('A'); + a.setAttribute("href","/cloud/index.php/apps/files/?dir="+appfolder); + a.setAttribute("class","nav-icon-files svg"); + a.innerHTML=appname; + + var len=list.length+1; + var li = document.createElement('li'); + li.setAttribute("data-id", "/cloud/index.php/apps/files/?dir="+appfolder); + li.setAttribute("class", "nav-"+appname); + li.setAttribute("folderpos", len.toString()); + li.appendChild(a); + + + if(listUL.childElementCount<=0){ + listUL.appendChild(li); + var dotmenu = document.getElementById("quickaccessbutton"); + dotmenu.style.display=''; + }else{ + list[list.length-1].after(li); + } + + //list[list.length-1].after(li); + //document.getElementById('menu-favorites').classList.toggle('open'); + //this.QuickSort(list, 0, list.length - 1); + } + OCA.Files = OCA.Files || {}; /** @@ -121,6 +183,7 @@ var fileInfo = context.fileList.files[$file.index()]; var dir = context.dir || context.fileList.getCurrentDirectory(); var tags = $file.attr('data-tags'); + if (_.isUndefined(tags)) { tags = ''; } @@ -130,8 +193,10 @@ if (isFavorite) { // remove tag from list tags = _.without(tags, OC.TAG_FAVORITE); + removeFavoriteFromList(dir + '/' + fileName); } else { tags.push(OC.TAG_FAVORITE); + addFavoriteToList(dir + '/' + fileName); } // pre-toggle the star diff --git a/apps/files/lib/Controller/ViewController.php b/apps/files/lib/Controller/ViewController.php index 936f09154d..c218063f97 100644 --- a/apps/files/lib/Controller/ViewController.php +++ b/apps/files/lib/Controller/ViewController.php @@ -189,6 +189,7 @@ class ViewController extends Controller { 'id' => 'favorites', 'appname' => 'files', 'script' => 'simplelist.php', + 'classes' => 'collapsible', 'enableQuickaccess' => $expanded, 'quickaccessSortingStrategy' => $sorting, 'quickaccessSortingReverse' => $reverseListSetting, diff --git a/apps/files/templates/appnavigation.php b/apps/files/templates/appnavigation.php index 1488bee40d..5f1baafaf8 100644 --- a/apps/files/templates/appnavigation.php +++ b/apps/files/templates/appnavigation.php @@ -7,18 +7,22 @@ ?>