[extensions-web] js: Use extension status to display the "Out of Date" indicator on local/
- From: Jasper St. Pierre <jstpierre src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [extensions-web] js: Use extension status to display the "Out of Date" indicator on local/
- Date: Wed, 8 Feb 2012 15:43:19 +0000 (UTC)
commit 50c7d07c7e695ec4bbef21cd490d58ac9b368511
Author: Jasper St. Pierre <jstpierre mecheye net>
Date: Mon Jan 30 19:43:48 2012 -0500
js: Use extension status to display the "Out of Date" indicator on local/
On the local extensions page, don't grab an svm from the server -- we clearly
have more accurate data about the system's local extension state from the
Shell. The user may have an 'up-to-date' extension on his machine, but it
may not be on EGO for whatever reason.
sweettooth/static/js/extensions.js | 37 ++++++++++++++++++++++-------------
1 files changed, 23 insertions(+), 14 deletions(-)
---
diff --git a/sweettooth/static/js/extensions.js b/sweettooth/static/js/extensions.js
index 3edf18f..6253e00 100644
--- a/sweettooth/static/js/extensions.js
+++ b/sweettooth/static/js/extensions.js
@@ -241,6 +241,9 @@ function($, messages, dbusProxy, extensionUtils) {
if (extension.hasPrefs && extension.state !== ExtensionState.OUT_OF_DATE)
$elem.addLaunchExtensionPrefsButton(true);
+ if (extension.state === ExtensionState.OUT_OF_DATE)
+ $elem.addOutOfDateIndicator(true);
+
$.ajax({
url: "/ajax/detail/",
dataType: "json",
@@ -258,9 +261,7 @@ function($, messages, dbusProxy, extensionUtils) {
if (result.pk !== undefined) {
$elem.
data('pk', result.pk).
- data('svm', $.parseJSON(result.shell_version_map)).
- append($('<button>', {'class': 'uninstall', 'title': "Uninstall"}).text("Uninstall").bind('click', uninstall)).
- addOutOfDateIndicator();
+ append($('<button>', {'class': 'uninstall', 'title': "Uninstall"}).text("Uninstall").bind('click', uninstall));
}
addExtensionSwitch(uuid, extension, $elem);
@@ -340,18 +341,26 @@ function($, messages, dbusProxy, extensionUtils) {
});
};
- $.fn.addOutOfDateIndicator = function() {
+ $.fn.addOutOfDateIndicator = function(force) {
+ function indicator($elem) {
+ $elem.
+ addClass('out-of-date').
+ attr('title', "This extension is incompatible with your version of GNOME").
+ tipsy({ gravity: 'c', fade: true });
+ }
+
return this.each(function() {
- var svm = $(this).data('svm');
- if (!svm)
- return;
+ var $elem = $(this);
+ if (force) {
+ indicator($elem);
+ } else {
+ var svm = $elem.data('svm');
+ if (!svm)
+ return;
- var vpk = extensionUtils.grabProperExtensionVersion(svm, dbusProxy.ShellVersion);
- if (vpk === null) {
- $(this).
- addClass('out-of-date').
- attr('title', "This extension is incompatible with your version of GNOME").
- tipsy({ gravity: 'c', fade: true });
+ var vpk = extensionUtils.grabProperExtensionVersion(svm, dbusProxy.ShellVersion);
+ if (vpk === null)
+ indicator($elem);
}
});
};
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]