aboutsummaryrefslogtreecommitdiff
path: root/MediaBrowser.WebDashboard/Html/scripts/PluginUpdatesPage.js
diff options
context:
space:
mode:
authorLukePulverenti <luke.pulverenti@gmail.com>2013-02-20 20:33:05 -0500
committerLukePulverenti <luke.pulverenti@gmail.com>2013-02-20 20:33:05 -0500
commit767cdc1f6f6a63ce997fc9476911e2c361f9d402 (patch)
tree49add55976f895441167c66cfa95e5c7688d18ce /MediaBrowser.WebDashboard/Html/scripts/PluginUpdatesPage.js
parent845554722efaed872948a9e0f7202e3ef52f1b6e (diff)
Pushing missing changes
Diffstat (limited to 'MediaBrowser.WebDashboard/Html/scripts/PluginUpdatesPage.js')
-rw-r--r--MediaBrowser.WebDashboard/Html/scripts/PluginUpdatesPage.js109
1 files changed, 109 insertions, 0 deletions
diff --git a/MediaBrowser.WebDashboard/Html/scripts/PluginUpdatesPage.js b/MediaBrowser.WebDashboard/Html/scripts/PluginUpdatesPage.js
new file mode 100644
index 000000000..4edb08602
--- /dev/null
+++ b/MediaBrowser.WebDashboard/Html/scripts/PluginUpdatesPage.js
@@ -0,0 +1,109 @@
+var PluginUpdatesPage = {
+
+ onPageShow: function () {
+
+ Dashboard.showLoadingMsg();
+
+ $('.liPluginUpdate', this).remove();
+
+ ApiClient.getInstalledPlugins().done(PluginUpdatesPage.loadPlugins);
+
+ },
+
+ loadPlugins: function (plugins) {
+
+ plugins = plugins.filter(function (p) {
+
+ return !p.IsCorePlugin;
+ });
+
+ var elem = $('#tbodyPluginUpdates', $.mobile.activePage).html('');
+
+ for (var i = 0, length = plugins.length; i < length; i++) {
+
+ PluginUpdatesPage.addPlugin(plugins[i], i, elem);
+
+ }
+
+ Dashboard.hideLoadingMsg();
+ },
+
+ addPlugin: function (plugin, fieldIndex, elem) {
+
+ var html = "";
+
+ html += "<tr>";
+
+ html += "<td><h3>" + plugin.Name + "</h3></td>";
+
+ var fieldId = "liPluginUpdateFielda" + fieldIndex;
+
+ var options = PluginUpdatesPage.getHtmlOptions(["Off", "On"], (plugin.EnableAutoUpdate ? "On" : "Off"));
+
+ html += "<td>";
+ html += "<select data-uniqueid='" + plugin.UniqueId + "' onchange='PluginUpdatesPage.setAutoUpdate(this);' data-role='slider' id='" + fieldId + "' name='" + fieldId + "'>" + options + "</select>";
+ html += "</td>";
+
+ fieldId = "liPluginUpdateFieldb" + fieldIndex;
+
+ options = PluginUpdatesPage.getHtmlOptions(["Release", "Beta", "Dev"], plugin.UpdateClass);
+
+ html += "<td>";
+ html += "<select data-uniqueid='" + plugin.UniqueId + "' onchange='PluginUpdatesPage.setUpdateClass(this);' data-inline='true' id='" + fieldId + "' name='" + fieldId + "'>" + options + "</select>";
+ html += "</td>";
+
+ html += "</tr>";
+
+ elem.append(html).trigger('create');
+ },
+
+ getHtmlOptions: function (names, selectedValue) {
+
+ var html = "";
+
+ for (var i = 0, length = names.length; i < length; i++) {
+
+ var name = names[i];
+
+ if (name == selectedValue) {
+ html += '<option value="' + name + '" selected="selected">' + name + '</option>';
+ } else {
+ html += '<option value="' + name + '">' + name + '</option>';
+ }
+ }
+
+
+ return html;
+
+ },
+
+ setAutoUpdate: function (select) {
+
+ var id = $(select).attr('data-uniqueid');
+
+ Dashboard.showLoadingMsg();
+
+ ApiClient.getPluginConfiguration(id).done(function (config) {
+
+ config.EnableAutoUpdate = select.selectedIndex === 1;
+
+ ApiClient.updatePluginConfiguration(id, config).done(Dashboard.hideLoadingMsg);
+ });
+ },
+
+ setUpdateClass: function (select) {
+
+ var id = $(select).attr('data-uniqueid');
+
+ Dashboard.showLoadingMsg();
+
+ ApiClient.getPluginConfiguration(id).done(function (config) {
+
+ config.UpdateClass = select.value;
+
+ ApiClient.updatePluginConfiguration(id, config).done(Dashboard.hideLoadingMsg);
+ });
+ }
+};
+
+$(document).on('pageshow', "#pluginUpdatesPage", PluginUpdatesPage.onPageShow); \ No newline at end of file