adminview-channel.js 2.44 KB
/*
 *
 * ADOBE CONFIDENTIAL
 * __________________
 *
 *  Copyright 2014 Adobe Systems Incorporated
 *  All Rights Reserved.
 *
 * NOTICE:  All information contained herein is, and remains
 * the property of Adobe Systems Incorporated and its suppliers,
 * if any.  The intellectual and technical concepts contained
 * herein are proprietary to Adobe Systems Incorporated and its
 * suppliers and are protected by trade secret or copyright law.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe Systems Incorporated.
 */

define('screens/player/ui/adminview-channel', [
    'underscore',
    'jquery',
    './baseview'
], function(_, $, BaseView) {
    'use strict';

    var DEFAULT_OPTIONS = {
    };

    var ChannelView = BaseView.extend(/** @lends ChannelView.prototype */{

        template: function(channel) {
            var offline = channel.offline;
            var isOnline = !offline || !offline.enabled;
            var isCached = offline && !!offline.zipPath;
            var clsOnline = isOnline ? '' : 'is-loadedFromServer';
            var clsCached = isCached ? 'is-loadedFromCache' : 'is-cacheUnavailable';


            return '<td data-channel-name="' + channel.name + '" class="aem-ScreensPlayer-channelView-title">' + channel.title + '</td>' +
                '<td data-channel-name="' + channel.name + '" class="aem-ScreensPlayer-channelView-role">' + channel.role + '</td>' +
                '<td class="aem-ScreensPlayer-admin-channel-icon ' + clsOnline + '" data-channel-name="' + channel.name + '"></td>' +
                '<td class="aem-ScreensPlayer-admin-channel-icon ' + clsCached + '" data-channel-name="' + channel.name + '"></td>';
        },

        tagName: 'tr',

        className: 'aem-ScreensPlayer-admin-channelsview-channel',

        events: {
        },

        /**
         * @classdesc View that renders 1 channel row
         * @class ChannelView
         * @extends BaseView
         *
         * @param {Object} [options] An object of configurable options.
         */
        constructor: function(options) {
            this._initOptions(options, DEFAULT_OPTIONS);
            ChannelView.__super__.constructor.apply(this, arguments);
        },


        render: function(channel) {
            this.$el.html(this.template(channel));
            return this;
        }

    });

    // return module exports
    return ChannelView;
});