aboutsummaryrefslogtreecommitdiff
path: root/MediaBrowser.WebDashboard/Html/scripts/PluginCatalogPage.js
blob: 5b6dc982e415ab793ab8922aaef7eb51aa15ea96 (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
var PluginCatalogPage = {

    onPageShow: function () {
        PluginCatalogPage.reloadList();
    },

    reloadList: function () {

        Dashboard.showLoadingMsg();

        var promise1 = ApiClient.getAvailablePlugins();

        var promise2 = ApiClient.getInstalledPlugins();

        $.when(promise1, promise2).done(function (response1, response2) {

            PluginCatalogPage.populateList(response1[0], response2[0]);
        });
    },

    populateList: function (availablePlugins, installedPlugins) {

        var page = $($.mobile.activePage);

        availablePlugins = availablePlugins.filter(function (p) {

            return p.type == "UserInstalled";

        }).sort(function (a, b) {

            return a.name > b.name ? 1 : -1;

        });

        var html = "";

        for (var i = 0, length = availablePlugins.length; i < length; i++) {

            var plugin = availablePlugins[i];

            html += "<div class='posterViewItem'><a href='addPlugin.html?name=" + encodeURIComponent(plugin.name) + "'>";

            if (plugin.thumbImage) {
                html += "<img src='" + plugin.thumbImage + "' />";
            } else {
                html += "<img style='background:#444444;' src='css/images/defaultCollectionImage.png' />";
            }

            if (plugin.isPremium) {
                html += "<div class='premiumBanner'><img src='css/images/premiumflag.png' /></div>";
            }

            var color = plugin.tileColor || Dashboard.getRandomMetroColor();

            html += "<div class='posterViewItemText' style='background:" + color + "'>";

            var installedPlugin = installedPlugins.filter(function (ip) {
                return ip.Name == plugin.name;
            })[0];

            html += "<div>";
            if (installedPlugin) {

                html += plugin.name + " (Installed)";
            } else {
                html += plugin.name;
            }
            html += "</div>";

            html += "</div>";

            html += "</a></div>";

        }

        $('#pluginTiles', page).html(html);

        Dashboard.hideLoadingMsg();
    }
};

$(document).on('pageshow', "#pluginCatalogPage", PluginCatalogPage.onPageShow);