aboutsummaryrefslogtreecommitdiffstats
path: root/settings
diff options
context:
space:
mode:
authorJulius Haertl <jus@bitgrid.net>2017-03-03 13:00:37 +0100
committerJulius Härtl <jus@bitgrid.net>2017-03-16 11:55:10 +0100
commit1d6fba03f4788dd562308df5a63582816c33a5a5 (patch)
tree59bd7449fa968a9f8c6b297561e97b47a1a842aa /settings
parentefc681dcfe330b09123b05a6a61d8dedaf76696e (diff)
downloadnextcloud-server-1d6fba03f4788dd562308df5a63582816c33a5a5.tar.gz
nextcloud-server-1d6fba03f4788dd562308df5a63582816c33a5a5.zip
Make enabling/disabling apps work with the new menu
Signed-off-by: Julius Haertl <jus@bitgrid.net>
Diffstat (limited to 'settings')
-rw-r--r--settings/js/apps.js76
1 files changed, 57 insertions, 19 deletions
diff --git a/settings/js/apps.js b/settings/js/apps.js
index b73b4a35b3f..3a00152aab2 100644
--- a/settings/js/apps.js
+++ b/settings/js/apps.js
@@ -451,22 +451,38 @@ OC.Settings.Apps = OC.Settings.Apps || {
rebuildNavigation: function() {
$.getJSON(OC.filePath('settings', 'ajax', 'navigationdetect.php')).done(function(response){
- if(response.status === 'success'){
+ if(response.status === 'success') {
var idsToKeep = {};
- var navEntries=response.nav_entries;
+ var navEntries = response.nav_entries;
var container = $('#apps ul');
- for(var i=0; i< navEntries.length; i++){
+
+ // remove disabled apps
+ for (var i = 0; i < navEntries.length; i++) {
var entry = navEntries[i];
idsToKeep[entry.id] = true;
+ }
+ container.children('li[data-id]').each(function (index, el) {
+ if (!idsToKeep[$(el).data('id')]) {
+ $(el).remove();
+ }
+ });
+ $('#appmenu ul').children('li[data-id]').each(function (index, el) {
+ if (!idsToKeep[$(el).data('id')]) {
+ $(el).remove();
+ }
+ });
- if(container.children('li[data-id="'+entry.id+'"]').length === 0){
- var li=$('<li></li>');
+ // add enabled apps to #navigation and #appmenu
+ for (var i = 0; i < navEntries.length; i++) {
+ var entry = navEntries[i];
+ if (container.children('li[data-id="' + entry.id + '"]').length === 0) {
+ var li = $('<li></li>');
li.attr('data-id', entry.id);
var img = '<svg width="32" height="32" viewBox="0 0 32 32">';
img += '<defs><filter id="invert"><feColorMatrix in="SourceGraphic" type="matrix" values="-1 0 0 0 1 0 -1 0 0 1 0 0 -1 0 1 0 0 0 1 0" /></filter></defs>';
img += '<image x="0" y="0" width="32" height="32" preserveAspectRatio="xMinYMin meet" filter="url(#invert)" xlink:href="' + entry.icon + '" class="app-icon" /></svg>';
- var a=$('<a></a>').attr('href', entry.href);
- var filename=$('<span></span>');
+ var a = $('<a></a>').attr('href', entry.href);
+ var filename = $('<span></span>');
var loading = $('<div class="icon-loading-dark"></div>').css('display', 'none');
filename.text(entry.name);
a.prepend(filename);
@@ -477,13 +493,7 @@ OC.Settings.Apps = OC.Settings.Apps || {
// append the new app as last item in the list
// which is the "add apps" entry with the id
// #apps-management
- $('#apps-management').before(li);
-
- // scroll the app navigation down
- // so the newly added app is seen
- $('#navigation').animate({
- scrollTop: $('#navigation').height()
- }, 'slow');
+ $('#navigation #apps-management').before(li);
// draw attention to the newly added app entry
// by flashing it twice
@@ -493,14 +503,42 @@ OC.Settings.Apps = OC.Settings.Apps || {
.animate({opacity: 0.5})
.animate({opacity: 1})
.animate({opacity: 0.75});
+
+ // do not show apps from #appmenu in #navigation
+ if(i < 7) {
+ $('#navigation li').eq(i).addClass('in-header');
+ }
+
+ // add apps to #appmenu until it is full
+ if ($('#appmenu li').not('.hidden').length < 8) {
+ var li = $('<li></li>');
+ li.attr('data-id', entry.id);
+ var img = '<img src="' + entry.icon + '" class="app-icon">';
+ var a = $('<a></a>').attr('href', entry.href);
+ var filename = $('<span></span>');
+ var loading = $('<div class="icon-loading-dark"></div>').css('display', 'none');
+ filename.text(entry.name);
+ a.prepend(filename);
+ a.prepend(loading);
+ a.prepend(img);
+ li.append(a);
+ $('#appmenu li#more-apps').before(li);
+ li.animate({opacity: 0.5})
+ .animate({opacity: 1})
+ .animate({opacity: 0.5})
+ .animate({opacity: 1})
+ .animate({opacity: 0.75});
+ }
}
}
- container.children('li[data-id]').each(function(index, el) {
- if (!idsToKeep[$(el).data('id')]) {
- $(el).remove();
- }
- });
+ if (navEntries.length > 7) {
+ $('#more-apps').show();
+ $('#apps-management').hide();
+ } else {
+ $('#more-apps').hide();
+ $('#apps-management').show();
+ }
}
});
},