Your IP : 18.219.40.177


Current Path : /usr/local/mgr5/skins/orion/src/
Upload File :
Current File : //usr/local/mgr5/skins/orion/src/App.LightBoxProvider.js

/**
 * Module provide image view
 *  @param {object} window  global object
 *  @param {function} $ jQuery library
 *  @param {object} EventMgr EventMgr library
 *  @param {object} App Application
 *  @return {object} api
 */
App.LightBoxProvider = function(window, $, EventMgr, App) {
  'use strict';
  var $mainWrapper = $('#main-wrapper'),
      loaded = false;

  function appendFakeItem(e, data) {
    $('body').append('<a id="b-lightbox-fake-link" data-lightbox="1" style="visibility: hidden;"></a>');
  }

  function checkForImage(e, data) {
    var tabId = data.tabId,
        imageForView = $('#cont-' + tabId + ' .b-image-for-view');
    if (imageForView.length > 0) {
      loadLib();
      imageForView.attr('data-lightbox', tabId + 'img');
    }
  }

  function checkForPreviewBtn(e, data) {
    var tabId = data.tabId;
    if (!loaded && $('.action-preview').length) {
      loadLib();
    }
  }

  function loadLib() {
    if (!loaded) {
      App.u.injectCss('/manimg/orion/lib/lightbox/css/lightbox.css');
      App.u.required('/manimg/orion/lib/lightbox/js/lightbox.min.js');
      loaded = true;
    }
  }

  function init() {
    EventMgr.bind('appendForm', checkForImage);
    EventMgr.bind('formSetValues', checkForImage);
    EventMgr.bind('appendList', checkForPreviewBtn);
    EventMgr.bind('loadPage', appendFakeItem);
  }

  var api = {
    init: init
  };

  return api;

} (window, $, EventMgr, App);