Updated module settings for v1.7.7, improved selects work

This commit is contained in:
opheugene 2021-01-27 18:08:49 +03:00 committed by GitHub
parent 438cd8d077
commit 1b1fa46707
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 60 additions and 16 deletions

View File

@ -38,10 +38,10 @@
$(function(){
var Main = {
init: function() {
this.selects.init();
this.player.init();
this.tabs.init();
this.uploadForm.init(this.settingsTabs.init());
this.selects.init();
this.popup.init();
this.toggleBox();
this.trimConsultant();
@ -75,7 +75,8 @@ $(function(){
var selected = {};
let selects = $('.retail-tab__enabled').find('select');
let selects = $('.retail-tab__enabled')
.find('select:not(#RETAILCRM_API_DELIVERY_DEFAULT, #RETAILCRM_API_PAYMENT_DEFAULT)');
selects.each((i, select) => {
var value = $(select).val();
@ -130,6 +131,11 @@ $(function(){
'.rcrm-form-submit-trigger'
);
let selectsUpdate = {
afterActivate: function () {
Main.selects.update();
}
};
let mainSubmitHide = {
beforeActivate: function () {
$('#main-submit').hide();
@ -140,9 +146,12 @@ $(function(){
};
tabs.tabsCallbacks({
'rcrm_tab_delivery_types': selectsUpdate,
'rcrm_tab_order_statuses': selectsUpdate,
'rcrm_tab_payment_types': selectsUpdate,
'rcrm_tab_consultant': mainSubmitHide,
'rcrm_tab_orders_upload': mainSubmitHide
})
});
tabs.initializeTabs();
return tabs;

View File

@ -1 +1,36 @@
$(function(){var Main={init:function(){this.player.init();this.tabs.init();this.uploadForm.init(this.settingsTabs.init());this.selects.init();this.popup.init();this.toggleBox();this.trimConsultant();this.showSettings()},selects:{init:function(){var _this=this;try{$(".jq-select").SumoSelect();$("li.opt").each((_,el)=>{if($(el).find("label").html().length===0){let select=$(el).closest("ul").closest("div").parent().find("select");$(el).find("label").html(select.attr("placeholder"));$(el).addClass("disabled")}});_this.update();$(document).on("change",".jq-select",function(){_this.update()})}catch(e){console.warn("Cannot initialize select: "+e.message)}},update:function(){var selected={};let selects=$(".retail-tab__enabled").find("select");selects.each((i,select)=>{var value=$(select).val();if(value&&value.length){selected[i]=$('option[value="'+$(select).val()+'"]',$(select)).index()}});let values=Object.values(selected);selects.each((i,select)=>{$("option",select).each((o,option)=>{if($.inArray(o,values)===-1||typeof selected[i]!=="undefined"&&selected[i]==o){select.sumo.enableItem(o)}else{select.sumo.disableItem(o)}})})}},player:{init:function(){window.player={};window.onYouTubeIframeAPIReady=function(){window.player=new YT.Player("player",{height:"100%",width:"100%",videoId:window.RCRMPROMO})};var ytAPI=document.createElement("script");ytAPI.src="https://www.youtube.com/iframe_api";document.body.appendChild(ytAPI)}},settingsTabs:{init:function(){if(typeof RCRMTabs==="undefined"){return}let tabs=new RCRMTabs('div[id^="rcrm_tab_"]',".retail-menu__btn","retail-tab__enabled","retail-tab__disabled","retail-menu__btn_active","retail-menu__btn_inactive","tab-trigger",".rcrm-form-submit-trigger");let mainSubmitHide={beforeActivate:function(){$("#main-submit").hide()},afterDeactivate:function(){$("#main-submit").show()}};tabs.tabsCallbacks({rcrm_tab_consultant:mainSubmitHide,rcrm_tab_orders_upload:mainSubmitHide});tabs.initializeTabs();return tabs}},uploadForm:{init:function(tabController){if(!(typeof RetailcrmUploadForm==="undefined")){new RetailcrmUploadForm(tabController)}}},tabs:{init:function(){$(".retail-tabs__btn").on("click",this.swithTab)},swithTab:function(e){e.preventDefault();var id=$(this).attr("href");$(".retail-tabs__btn_active").removeClass("retail-tabs__btn_active");$(".retail-tabs__item_active").removeClass("retail-tabs__item_active").fadeOut(150,function(){$(id).addClass("retail-tabs__item_active").fadeIn(150)});$(this).addClass("retail-tabs__btn_active")}},popup:{init:function(){var _this=this;$("[data-popup]").on("click",function(e){var id=$(this).data("popup");_this.open($(id))});$(".retail-popup-wrap").on("click",function(e){if(!$(e.target).hasClass("js-popup-close")){return}var $popup=$(this).find(".retail-popup");_this.close($popup)})},open:function(popup){if(!popup){return}var $wrap=popup.closest(".retail-popup-wrap");$wrap.fadeIn(200);popup.addClass("open");player.playVideo()},close:function(popup){var $wrap=popup.closest(".retail-popup-wrap");popup.removeClass("open");$wrap.fadeOut(200);player.stopVideo()}},toggleBox:function(){$(".toggle-btn").on("click",function(e){e.preventDefault();var id=$(this).attr("href");var $box=$(id);var $hideBox=$(this).closest(".retail-btns");$hideBox.addClass("retail-btns_hide").slideUp(100);$box.slideDown(100)})},trimConsultant:function(){let $consultantTextarea=$("#rcrm_tab_consultant textarea");$consultantTextarea.text($consultantTextarea.text().trim())},showSettings:function(){$(".retail.retail-wrap.hidden").removeClass("hidden")}};Main.init()});
/**
* MIT License
*
* Copyright (c) 2020 DIGITAL RETAIL TECHNOLOGIES SL
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
* in the Software without restriction, including without limitation the rights
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
* copies of the Software, and to permit persons to whom the Software is
* furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in
* all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
* SOFTWARE.
*
* DISCLAIMER
*
* Do not edit or add to this file if you wish to upgrade PrestaShop to newer
* versions in the future. If you wish to customize PrestaShop for your
* needs please refer to http://www.prestashop.com for more information.
*
* @author DIGITAL RETAIL TECHNOLOGIES SL <mail@simlachat.com>
* @copyright 2020 DIGITAL RETAIL TECHNOLOGIES SL
* @license https://opensource.org/licenses/MIT The MIT License
*
* Don't forget to prefix your containers with your own identifier
* to avoid any conflicts with others containers.
*/$(function(){var t={init:function(){this.selects.init(),this.player.init(),this.tabs.init(),this.uploadForm.init(this.settingsTabs.init()),this.popup.init(),this.toggleBox(),this.trimConsultant(),this.showSettings()},selects:{init:function(){var t=this;try{$(".jq-select").SumoSelect(),$("li.opt").each((t,e)=>{if(0===$(e).find("label").html().length){let t=$(e).closest("ul").closest("div").parent().find("select");$(e).find("label").html(t.attr("placeholder")),$(e).addClass("disabled")}}),t.update(),$(document).on("change",".jq-select",function(){t.update()})}catch(t){console.warn("Cannot initialize select: "+t.message)}},update:function(){var t={};let e=$(".retail-tab__enabled").find("select:not(#RETAILCRM_API_DELIVERY_DEFAULT, #RETAILCRM_API_PAYMENT_DEFAULT)");e.each((e,i)=>{var a=$(i).val();a&&a.length&&(t[e]=$('option[value="'+$(i).val()+'"]',$(i)).index())});let i=Object.values(t);e.each((e,a)=>{$("option",a).each((n,s)=>{-1===$.inArray(n,i)||void 0!==t[e]&&t[e]==n?a.sumo.enableItem(n):a.sumo.disableItem(n)})})}},player:{init:function(){window.player={},window.onYouTubeIframeAPIReady=function(){window.player=new YT.Player("player",{height:"100%",width:"100%",videoId:window.RCRMPROMO})};var t=document.createElement("script");t.src="https://www.youtube.com/iframe_api",document.body.appendChild(t)}},settingsTabs:{init:function(){if("undefined"==typeof RCRMTabs)return;let e=new RCRMTabs('div[id^="rcrm_tab_"]',".retail-menu__btn","retail-tab__enabled","retail-tab__disabled","retail-menu__btn_active","retail-menu__btn_inactive","tab-trigger",".rcrm-form-submit-trigger"),i={afterActivate:function(){t.selects.update()}},a={beforeActivate:function(){$("#main-submit").hide()},afterDeactivate:function(){$("#main-submit").show()}};return e.tabsCallbacks({rcrm_tab_delivery_types:i,rcrm_tab_order_statuses:i,rcrm_tab_payment_types:i,rcrm_tab_consultant:a,rcrm_tab_orders_upload:a}),e.initializeTabs(),e}},uploadForm:{init:function(t){"undefined"!=typeof RetailcrmUploadForm&&new RetailcrmUploadForm(t)}},tabs:{init:function(){$(".retail-tabs__btn").on("click",this.swithTab)},swithTab:function(t){t.preventDefault();var e=$(this).attr("href");$(".retail-tabs__btn_active").removeClass("retail-tabs__btn_active"),$(".retail-tabs__item_active").removeClass("retail-tabs__item_active").fadeOut(150,function(){$(e).addClass("retail-tabs__item_active").fadeIn(150)}),$(this).addClass("retail-tabs__btn_active")}},popup:{init:function(){var t=this;$("[data-popup]").on("click",function(e){var i=$(this).data("popup");t.open($(i))}),$(".retail-popup-wrap").on("click",function(e){if($(e.target).hasClass("js-popup-close")){var i=$(this).find(".retail-popup");t.close(i)}})},open:function(t){t&&(t.closest(".retail-popup-wrap").fadeIn(200),t.addClass("open"),player.playVideo())},close:function(t){var e=t.closest(".retail-popup-wrap");t.removeClass("open"),e.fadeOut(200),player.stopVideo()}},toggleBox:function(){$(".toggle-btn").on("click",function(t){t.preventDefault();var e=$(this).attr("href"),i=$(e);$(this).closest(".retail-btns").addClass("retail-btns_hide").slideUp(100),i.slideDown(100)})},trimConsultant:function(){let t=$("#rcrm_tab_consultant textarea");t.text(t.text().trim())},showSettings:function(){$(".retail.retail-wrap.hidden").removeClass("hidden")}};t.init()});

View File

@ -60,7 +60,7 @@
<a href="{$registerUrl|escape:'htmlall':'UTF-8'}" target="_black" class="btn btn_max btn_invert">{l s='Get a free demo' mod='retailcrm'}</a>
</div>
<div class="retail-form toggle-box" id="toggle-form">
<form action="{$current|escape:'htmlall':'UTF-8'}&amp;token={$token|escape:'htmlall':'UTF-8'}&amp;configure=retailcrm" method="post">
<form action="{$url_post|escape:'htmlall':'UTF-8'}&amp;configure=retailcrm" method="post">
<input type="hidden" name="submitretailcrm" value="1" />
<div class="retail-form__title">{l s='Connection Settings' mod='retailcrm'}</div>
<div class="retail-form__row">

View File

@ -47,21 +47,21 @@
<div class="retail-container retail-column">
<aside class="retail-column__aside">
<div class="retail-menu">
<a href="{$current|escape:'htmlall':'UTF-8'}&amp;token={$token|escape:'htmlall':'UTF-8'}&amp;configure=retailcrm" data-tab-trigger="rcrm_tab_connection" class="retail-menu__btn retail-menu__btn_big retail-menu__btn_active"><span>{l s='Connection' mod='retailcrm'}<span/></a>
<a href="{$current|escape:'htmlall':'UTF-8'}&amp;token={$token|escape:'htmlall':'UTF-8'}&amp;configure=retailcrm" data-tab-trigger="rcrm_tab_delivery_types" class="retail-menu__btn retail-menu__btn_big retail-menu__btn_inactive"><span>{l s='Delivery' mod='retailcrm'}<span/></a>
<a href="{$current|escape:'htmlall':'UTF-8'}&amp;token={$token|escape:'htmlall':'UTF-8'}&amp;configure=retailcrm" data-tab-trigger="rcrm_tab_order_statuses" class="retail-menu__btn retail-menu__btn_big retail-menu__btn_inactive"><span>{l s='Order statuses' mod='retailcrm'}<span/></a>
<a href="{$current|escape:'htmlall':'UTF-8'}&amp;token={$token|escape:'htmlall':'UTF-8'}&amp;configure=retailcrm" data-tab-trigger="rcrm_tab_payment_types" class="retail-menu__btn retail-menu__btn_big retail-menu__btn_inactive"><span>{l s='Payment types' mod='retailcrm'}<span/></a>
<a href="{$current|escape:'htmlall':'UTF-8'}&amp;token={$token|escape:'htmlall':'UTF-8'}&amp;configure=retailcrm" data-tab-trigger="rcrm_tab_default_types" class="retail-menu__btn retail-menu__btn_big retail-menu__btn_inactive"><span>{l s='Default' mod='retailcrm'}<span/></a>
<a href="{$current|escape:'htmlall':'UTF-8'}&amp;token={$token|escape:'htmlall':'UTF-8'}&amp;configure=retailcrm" data-tab-trigger="rcrm_tab_orders_upload" class="retail-menu__btn retail-menu__btn_big retail-menu__btn_inactive"><span>{l s='Upload orders' mod='retailcrm'}<span/></a>
<a href="{$current|escape:'htmlall':'UTF-8'}&amp;token={$token|escape:'htmlall':'UTF-8'}&amp;configure=retailcrm" data-tab-trigger="rcrm_tab_carts_sync" class="retail-menu__btn retail-menu__btn_big retail-menu__btn_inactive"><span>{l s='Abandoned carts' mod='retailcrm'}<span/></a>
<a href="{$current|escape:'htmlall':'UTF-8'}&amp;token={$token|escape:'htmlall':'UTF-8'}&amp;configure=retailcrm" data-tab-trigger="rcrm_tab_daemon_collector" class="retail-menu__btn retail-menu__btn_big retail-menu__btn_inactive"><span>{l s='Daemon Collector' mod='retailcrm'}<span/></a>
<a href="{$current|escape:'htmlall':'UTF-8'}&amp;token={$token|escape:'htmlall':'UTF-8'}&amp;configure=retailcrm&item=consultant" data-tab-trigger="rcrm_tab_consultant" class="retail-menu__btn retail-menu__btn_big retail-menu__btn_inactive"><span>{l s='Online consultant' mod='retailcrm'}<span/></a>
<a href="{$url_post|escape:'htmlall':'UTF-8'}&amp;configure=retailcrm" data-tab-trigger="rcrm_tab_connection" class="retail-menu__btn retail-menu__btn_big retail-menu__btn_active"><span>{l s='Connection' mod='retailcrm'}<span/></a>
<a href="{$url_post|escape:'htmlall':'UTF-8'}&amp;configure=retailcrm" data-tab-trigger="rcrm_tab_delivery_types" class="retail-menu__btn retail-menu__btn_big retail-menu__btn_inactive"><span>{l s='Delivery' mod='retailcrm'}<span/></a>
<a href="{$url_post|escape:'htmlall':'UTF-8'}&amp;configure=retailcrm" data-tab-trigger="rcrm_tab_order_statuses" class="retail-menu__btn retail-menu__btn_big retail-menu__btn_inactive"><span>{l s='Order statuses' mod='retailcrm'}<span/></a>
<a href="{$url_post|escape:'htmlall':'UTF-8'}&amp;configure=retailcrm" data-tab-trigger="rcrm_tab_payment_types" class="retail-menu__btn retail-menu__btn_big retail-menu__btn_inactive"><span>{l s='Payment types' mod='retailcrm'}<span/></a>
<a href="{$url_post|escape:'htmlall':'UTF-8'}&amp;configure=retailcrm" data-tab-trigger="rcrm_tab_default_types" class="retail-menu__btn retail-menu__btn_big retail-menu__btn_inactive"><span>{l s='Default' mod='retailcrm'}<span/></a>
<a href="{$url_post|escape:'htmlall':'UTF-8'}&amp;configure=retailcrm" data-tab-trigger="rcrm_tab_orders_upload" class="retail-menu__btn retail-menu__btn_big retail-menu__btn_inactive"><span>{l s='Upload orders' mod='retailcrm'}<span/></a>
<a href="{$url_post|escape:'htmlall':'UTF-8'}&amp;configure=retailcrm" data-tab-trigger="rcrm_tab_carts_sync" class="retail-menu__btn retail-menu__btn_big retail-menu__btn_inactive"><span>{l s='Abandoned carts' mod='retailcrm'}<span/></a>
<a href="{$url_post|escape:'htmlall':'UTF-8'}&amp;configure=retailcrm" data-tab-trigger="rcrm_tab_daemon_collector" class="retail-menu__btn retail-menu__btn_big retail-menu__btn_inactive"><span>{l s='Daemon Collector' mod='retailcrm'}<span/></a>
<a href="{$url_post|escape:'htmlall':'UTF-8'}&amp;configure=retailcrm&item=consultant" data-tab-trigger="rcrm_tab_consultant" class="retail-menu__btn retail-menu__btn_big retail-menu__btn_inactive"><span>{l s='Online consultant' mod='retailcrm'}<span/></a>
</div>
</aside>
<article class="retail-column__content">
<h1 class="retail-title retail-title_content">RetailCRM</h1>
<div class="retail-form retail-form_main">
<form class="rcrm-form-submit-trigger" action="{$current|escape:'htmlall':'UTF-8'}&amp;token={$token|escape:'htmlall':'UTF-8'}&amp;configure=retailcrm" method="post">
<form class="rcrm-form-submit-trigger" action="{$url_post|escape:'htmlall':'UTF-8'}&amp;configure=retailcrm" method="post">
<input type="hidden" name="submitretailcrm" value="1" />
<div id="rcrm_tab_connection">
<div class="retail-form__title">{l s='Connection Settings' mod='retailcrm'}</div>
@ -203,7 +203,7 @@
</div>
</form>
<div id="rcrm_tab_consultant">
<form class="rcrm-form-submit-trigger" action="{$current|escape:'htmlall':'UTF-8'}&amp;token={$token|escape:'htmlall':'UTF-8'}&amp;configure=retailcrm&item=consultant" method="post">
<form class="rcrm-form-submit-trigger" action="{$url_post|escape:'htmlall':'UTF-8'}&amp;configure=retailcrm&item=consultant" method="post">
<input type="hidden" name="submitretailcrm" value="1" />
<div class="retail-form__title">{l s='Online consultant' mod='retailcrm'}</div>
<div class="retail-form__row">