Home Reference Source Repository

js/Views/Master/Main/Resource/Collection/ViewResourceCollectionModalItem.js

import BaseViewCollectionItem from 'js/Views/Master/Main/BaseViewCollectionItem';
import RODAN_EVENTS from 'js/Shared/RODAN_EVENTS';
import Radio from 'backbone.radio';

/**
 * Resource item View for Collection in modal.
 */
export default class ViewResourceCollectionModalItem extends BaseViewCollectionItem
{
///////////////////////////////////////////////////////////////////////////////////////
// PUBLIC METHODS
///////////////////////////////////////////////////////////////////////////////////////
    /**
     * Initializes the instance.
     *
     * @param {object} options Marionette.View options object; 'options.assigned' (boolean; true iff this item belongs to the "assigned" Collection), options.requestdata (object; data sent with requests), options.assignrequest (object; when item becomes assigned, this request is sent), options.unassignrequest (object; when item becomes unassigned, this request is sent)
     */
    initialize(options)
    {
        this._assigned = options.assigned;
        this._requestData = options.requestdata;
        this._assignRequest = options.assignrequest;
        this._unassignRequest = options.unassignrequest;
    }

///////////////////////////////////////////////////////////////////////////////////////
// PRIVATE METHODS
///////////////////////////////////////////////////////////////////////////////////////
    /**
     * Handles double click.
     */
    _handleDoubleClick()
    {
        this._requestData.resource = this.model;
        if (this._assigned)
        {
            Radio.channel('rodan').request(this._unassignRequest, this._requestData); 
        }
        else
        {
            Radio.channel('rodan').request(this._assignRequest, this._requestData); 
        }
    }
}
ViewResourceCollectionModalItem.prototype.template = '#template-modal_resource_collection_item';
ViewResourceCollectionModalItem.prototype.tagName = 'tr';
ViewResourceCollectionModalItem.prototype.events = {'dblclick': '_handleDoubleClick'};