|
|
|
@ -27,7 +27,9 @@ OC.Settings.Apps = OC.Settings.Apps || { |
|
|
|
|
|
|
|
State: { |
|
|
|
currentCategory: null, |
|
|
|
apps: null |
|
|
|
apps: null, |
|
|
|
$updateNotification: null, |
|
|
|
availableUpdates: 0 |
|
|
|
}, |
|
|
|
|
|
|
|
loadCategories: function() { |
|
|
|
@ -77,8 +79,9 @@ OC.Settings.Apps = OC.Settings.Apps || { |
|
|
|
$('#app-category-' + OC.Settings.Apps.State.currentCategory).removeClass('active'); |
|
|
|
$('#app-category-' + categoryId).addClass('active'); |
|
|
|
OC.Settings.Apps.State.currentCategory = categoryId; |
|
|
|
OC.Settings.Apps.State.availableUpdates = 0; |
|
|
|
|
|
|
|
this._loadCategoryCall = $.ajax(OC.generateUrl('settings/apps/list?category={categoryId}&includeUpdateInfo=0', { |
|
|
|
this._loadCategoryCall = $.ajax(OC.generateUrl('settings/apps/list?category={categoryId}', { |
|
|
|
categoryId: categoryId |
|
|
|
}), { |
|
|
|
type:'GET', |
|
|
|
@ -109,7 +112,18 @@ OC.Settings.Apps = OC.Settings.Apps || { |
|
|
|
} else { |
|
|
|
OC.Settings.Apps.renderApp(app, template, null, false); |
|
|
|
} |
|
|
|
|
|
|
|
if (app.update) { |
|
|
|
var $update = $('#app-' + app.id + ' .update'); |
|
|
|
$update.removeClass('hidden'); |
|
|
|
$update.val(t('settings', 'Update to %s').replace(/%s/g, app.update)); |
|
|
|
OC.Settings.Apps.State.availableUpdates++; |
|
|
|
} |
|
|
|
}); |
|
|
|
|
|
|
|
if (OC.Settings.Apps.State.availableUpdates > 0) { |
|
|
|
OC.Settings.Apps.State.$updateNotification = OC.Notification.show(n('settings', 'You have %n app update pending', 'You have %n app updates pending', OC.Settings.Apps.State.availableUpdates)); |
|
|
|
} |
|
|
|
} else { |
|
|
|
$('#apps-list').addClass('hidden'); |
|
|
|
$('#apps-list-empty').removeClass('hidden').find('h2').text(t('settings', 'No apps found for your version')); |
|
|
|
@ -138,28 +152,7 @@ OC.Settings.Apps = OC.Settings.Apps || { |
|
|
|
}); |
|
|
|
}, |
|
|
|
complete: function() { |
|
|
|
var availableUpdates = 0; |
|
|
|
$('#apps-list').removeClass('icon-loading'); |
|
|
|
$.ajax(OC.generateUrl('settings/apps/list?category={categoryId}&includeUpdateInfo=1', { |
|
|
|
categoryId: categoryId |
|
|
|
}), { |
|
|
|
type: 'GET', |
|
|
|
success: function (apps) { |
|
|
|
_.each(apps.apps, function(app) { |
|
|
|
if (app.update) { |
|
|
|
var $update = $('#app-' + app.id + ' .update'); |
|
|
|
$update.removeClass('hidden'); |
|
|
|
$update.val(t('settings', 'Update to %s').replace(/%s/g, app.update)); |
|
|
|
availableUpdates++; |
|
|
|
OC.Settings.Apps.State.apps[app.id].update = true; |
|
|
|
} |
|
|
|
}); |
|
|
|
|
|
|
|
if (availableUpdates > 0) { |
|
|
|
OC.Notification.show(n('settings', 'You have %n app update pending', 'You have %n app updates pending', availableUpdates)); |
|
|
|
} |
|
|
|
} |
|
|
|
}); |
|
|
|
} |
|
|
|
}); |
|
|
|
}, |
|
|
|
@ -390,6 +383,20 @@ OC.Settings.Apps = OC.Settings.Apps || { |
|
|
|
else { |
|
|
|
element.val(t('settings','Updated')); |
|
|
|
element.hide(); |
|
|
|
|
|
|
|
var $update = $('#app-' + appId + ' .update'); |
|
|
|
$update.addClass('hidden'); |
|
|
|
var $version = $('#app-' + appId + ' .app-version'); |
|
|
|
$version.text(OC.Settings.Apps.State.apps[appId]['update']); |
|
|
|
|
|
|
|
if (OC.Settings.Apps.State.$updateNotification) { |
|
|
|
OC.Notification.hide(OC.Settings.Apps.State.$updateNotification); |
|
|
|
} |
|
|
|
|
|
|
|
OC.Settings.Apps.State.availableUpdates--; |
|
|
|
if (OC.Settings.Apps.State.availableUpdates > 0) { |
|
|
|
OC.Settings.Apps.State.$updateNotification = OC.Notification.show(n('settings', 'You have %n app update pending', 'You have %n app updates pending', OC.Settings.Apps.State.availableUpdates)); |
|
|
|
} |
|
|
|
} |
|
|
|
},'json'); |
|
|
|
}, |
|
|
|
|