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

/**
 * Module provide store in site
 *  @param {object} window  global object
 *  @param {function} $ jQuery library
 *  @param {object} EventMgr EventMgr library
 *  @param {object} App Application
 *  @return {object} api
 */
App.StoreUserMenu = function(window, $, EventMgr, App) {
  'use strict';

  var project = pageInfo.project;

  var menuItemsForUser = '.dropdown-menu__list-item_for_user',
      menuItemsForGuest = '.dropdown-menu__list-item_for_guest';

  var userMenuTempl = '<div class="b-store__usermenu i-store__usermenu">' +
    '<div class="b-store__usermenu-value">{{=it.username}}<span class="caret"></span></div>' +
  '</div>';

  var tempFunc = window.doT.template(userMenuTempl);

  function $userMenuWrapper() {
    return App.Dom.byId(pageInfo.usermenu.blockId);
  }

  function renderUserMenu(e, data) {
    if (data.doc &&
        data.doc.user &&
        data.doc.user.user &&
        data.doc.user.user.$level !== '8') {
      var html = tempFunc({ username: data.doc.user.user.$name }),
          $userMenuNode = $userMenuWrapper();
      if ($userMenuNode) {
        //$userMenuNode.removeAttribute('data-toggle');
        $userMenuNode.innerHTML = html;
      }
      //hide guest menu items
      $(menuItemsForGuest).hide();
      //show user menu items
      $(menuItemsForUser).show();
    } else if (data.doc &&
               data.doc.error &&
               data.doc.error.$type === 'access') {
       $userMenuNode = $userMenuWrapper();
       if ($userMenuNode) {
         $userMenuNode.innerHTML = 'Личный кабинет <span class="caret"></span>';
       }
      //show guest menu items
      $(menuItemsForGuest).show();
      //hide user menu items
      $(menuItemsForUser).hide();
    }
  }

  function init() {
    if (pageInfo.usermenu && pageInfo.usermenu.blockId) {
      EventMgr.bind('storeUserMenuResp', renderUserMenu);
    }
  }

  var api = {
    init: init
  };

  return api;

} (window, $, EventMgr, App);