diff options
Diffstat (limited to 'MediaBrowser.WebDashboard/Html/scripts/PluginUpdatesPage.js')
| -rw-r--r-- | MediaBrowser.WebDashboard/Html/scripts/PluginUpdatesPage.js | 109 |
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 |
