aboutsummaryrefslogtreecommitdiff
path: root/MediaBrowser.WebDashboard/Html/scripts/PluginUpdatesPage.js
blob: 4edb08602b36b48b7e736bb17ea66fe765a9bf5d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
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);