index.js

Компонент отвечающий за отрисовку и работу формы подключения различных чатов к CRM системе

by Evgeniy Kvasyuk

JavaScript

define(function (require) {
  'use strict';

  var $ = require('jquery'),
      twig = require('twig'),
      _ = require('underscore'),

      fn = require('lib/common/fn'),

      View = require('lib/core/view'),
      Modal = require('lib/components/base/modal'),


      FacebookModal = require('lib/interface/settings/digital_pipeline/chats/facebook'),
      VkModal = require('lib/interface/settings/digital_pipeline/chats/vk'),
      TelegramModal = require('lib/interface/settings/digital_pipeline/chats/telegram'),
      ViberModal = require('lib/interface/settings/digital_pipeline/chats/viber'),

      JivositeModal = require('lib/interface/settings/digital_pipeline/chats/jivosite'),
      OlarkModal = require('lib/interface/settings/digital_pipeline/chats/olark'),

      ChatsModal;

  ChatsModal = View.extend({
    events: {
      'click .js-arrow-back': 'modalSlideBack',
      'click .js-chat-integrations-item': 'toggleSlideForItemsChats',
      'click .js-toggle-up' : 'slideUpContent'
    },

    _classes: function () {
      return {
        list_item: 'chats-integrations-list__item'
      };
    },

    render: twig._preload(
      ['/tmpl/digital_pipeline/chats/modal.twig'],
      '_render'
    ),
    //Новые чаты
    chats: {
      facebook:{
        component: FacebookModal
      },
      telegram:{
        component: TelegramModal
      },
      viber:{
        component: ViberModal
      },
      vk:{
        component: VkModal
      }
    },

    _render: function () {
      this.uploadAndLoadData({
        url: '/ajax/amochats/check'
      });

      return this;
    },

    initialize: function (options) {
      View.prototype.initialize.apply(this, arguments);
      this.options = options || {};
      this.render();
      this._$document.on('page:changed', _.bind(this.pageChangedDestroy, this));
    },

    uploadAndLoadData: function (options) {
      var self = this;

      $.ajax({
        url: options.url,
        data: {
          service:...