@ -219,10 +219,10 @@ OC.Settings.Apps = OC.Settings.Apps || {
element . val ( t ( 'settings' , 'Disable' ) ) ;
appItem . addClass ( 'appwarning' ) ;
} else {
OC . Settings . Apps . rebuildNavigation ( ) ;
appItem . data ( 'active' , false ) ;
appItem . data ( 'groups' , '' ) ;
element . data ( 'active' , false ) ;
OC . Settings . Apps . removeNavigation ( appId ) ;
appItem . removeClass ( 'active' ) ;
element . val ( t ( 'settings' , 'Enable' ) ) ;
element . parent ( ) . find ( ".groups-enable" ) . hide ( ) ;
@ -245,7 +245,7 @@ OC.Settings.Apps = OC.Settings.Apps || {
element . val ( t ( 'settings' , 'Enable' ) ) ;
appItem . addClass ( 'appwarning' ) ;
} else {
OC . Settings . Apps . addNavigation( appId ) ;
OC . Settings . Apps . rebuildNavigation( ) ;
appItem . data ( 'active' , true ) ;
element . data ( 'active' , true ) ;
appItem . addClass ( 'active' ) ;
@ -278,7 +278,6 @@ OC.Settings.Apps = OC.Settings.Apps || {
appItem . data ( 'errormsg' , t ( 'settings' , 'Error while enabling app' ) ) ;
appItem . data ( 'active' , false ) ;
appItem . addClass ( 'appwarning' ) ;
OC . Settings . Apps . removeNavigation ( appId ) ;
element . val ( t ( 'settings' , 'Enable' ) ) ;
} ) ;
}
@ -312,7 +311,7 @@ OC.Settings.Apps = OC.Settings.Apps || {
OC . Settings . Apps . showErrorMessage ( appId , t ( 'settings' , 'Error while uninstalling app' ) ) ;
element . val ( t ( 'settings' , 'Uninstall' ) ) ;
} else {
OC . Settings . Apps . re moveNavigation( appId ) ;
OC . Settings . Apps . re buildNavigation( ) ;
element . parent ( ) . fadeOut ( function ( ) {
element . remove ( ) ;
} ) ;
@ -320,23 +319,15 @@ OC.Settings.Apps = OC.Settings.Apps || {
} , 'json' ) ;
} ,
removeNavigation : function ( appId ) {
$ . getJSON ( OC . filePath ( 'settings' , 'ajax' , 'navigationdetect.php' ) , { app : appId } ) . done ( function ( response ) {
if ( response . status === 'success' ) {
var navIds = response . nav _ids ;
for ( var i = 0 ; i < navIds . length ; i ++ ) {
$ ( '#apps ul' ) . children ( 'li[data-id="' + navIds [ i ] + '"]' ) . remove ( ) ;
}
}
} ) ;
} ,
addNavigation : function ( appid ) {
$ . getJSON ( OC . filePath ( 'settings' , 'ajax' , 'navigationdetect.php' ) , { app : appid } ) . done ( function ( response ) {
rebuildNavigation : function ( ) {
$ . getJSON ( OC . filePath ( 'settings' , 'ajax' , 'navigationdetect.php' ) ) . done ( function ( response ) {
if ( response . status === 'success' ) {
var idsToKeep = { } ;
var navEntries = response . nav _entries ;
var container = $ ( '#apps ul' ) ;
for ( var i = 0 ; i < navEntries . length ; i ++ ) {
var entry = navEntries [ i ] ;
var container = $ ( '#apps ul' ) ;
idsToKeep [ entry . id ] = true ;
if ( container . children ( 'li[data-id="' + entry . id + '"]' ) . length === 0 ) {
var li = $ ( '<li></li>' ) ;
@ -377,6 +368,12 @@ OC.Settings.Apps = OC.Settings.Apps || {
}
}
}
container . children ( 'li[data-id]' ) . each ( function ( index , el ) {
if ( ! idsToKeep [ $ ( el ) . data ( 'id' ) ] ) {
$ ( el ) . remove ( ) ;
}
} ) ;
}
} ) ;
} ,