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.CopyToBuffer.js

/**
 *  Module provide coping link to buffer for current form
 *  @param {object} window  global object
 *  @param {function} $ jQuery library
 *  @param {object} EventMgr EventMgr library
 *  @param {object} App Application
 *  @return {object} api
 */
App.CopyToBuffer = function(window, $, EventMgr, App) {
  'use strict';

  function addLinkHandler(e, data) {
    var tabId = data.tabId,
        elem = App.Dom.byId('permalink-' + tabId),
        client;
    if (!elem) { return; }
    client = new ZeroClipboard(elem);

    client.on('aftercopy', function(e) {
      EventMgr.trigger('showAlert', {
        msg: window.pageInfo.linkCopied,
        closeTimeout: 1500
      });
    });
  }

  function checkFlash() {
    var hasFlash = false;
    try {
      var fo = new ActiveXObject('ShockwaveFlash.ShockwaveFlash');
      if (fo) {
        hasFlash = true;
      }
    } catch (e) {
      if (navigator.mimeTypes &&
          navigator.mimeTypes['application/x-shockwave-flash'] !== undefined &&
          navigator.mimeTypes['application/x-shockwave-flash'].enabledPlugin) {
        hasFlash = true;
      }
    }
    return hasFlash;
  }

  function preventClick(e) {
    e.preventDefault();
    if (!checkFlash()) {
      EventMgr.trigger('showAlert', {
        msg: '<div>' + window.pageInfo.linkToCopy + '</div>' +
            '<textarea class="b-textarea b-modal-mistake__textarea" readonly>' +
            this.getAttribute('data-clipboard-text').replace(/&/g, '&amp;') + '</textarea>'
      });

    }
  }

  function init() {
    if (window.ZeroClipboard && checkFlash()) {
      EventMgr.bind('appendForm,appendList,appendReport,appendMap', addLinkHandler);
    }
    EventMgr.on($('#main-wrapper'), '.b-permalink', 'click', preventClick);
  }

  var api = {
    init: init
  };

  return api;

} (window, $, EventMgr, App);