Przeglądaj źródła

Ticket #4847 - Studio: Layout changes. Stage 3.

AntonLV 1 rok temu
rodzic
commit
b1795ec98d
56 zmienionych plików z 360 dodań i 287 usunięć
  1. 18 0
      inc/classes/BxDolTemplate.php
  2. 1 1
      install/sql/system.sql
  3. 6 4
      modules/boonex/developer/classes/BxDevPolyglot.php
  4. 2 2
      modules/boonex/developer/template/css/main.css
  5. 1 1
      modules/boonex/developer/template/page_menu.html
  6. 9 9
      modules/boonex/english/data/langs/system/en.xml
  7. 9 9
      modules/boonex/russian/data/langs/system/ru.xml
  8. 0 8
      plugins_public/tailwind/css/tailwind.css
  9. 0 0
      plugins_public/tailwind/css/tailwind.min.css
  10. 6 7
      studio/classes/BxDolStudioModule.php
  11. 11 9
      studio/classes/BxDolStudioPolyglot.php
  12. 3 7
      studio/js/module.js
  13. 1 6
      studio/template/css/launcher.css
  14. 4 13
      studio/template/css/menu_top.css
  15. 1 12
      studio/template/css/page_columns.css
  16. 3 3
      studio/template/images/icons/ami-account.svg
  17. 7 7
      studio/template/images/icons/ami-edit.svg
  18. 11 11
      studio/template/images/icons/ami-language.svg
  19. 4 4
      studio/template/images/icons/ami-logout.svg
  20. 6 6
      studio/template/images/icons/ami-site.svg
  21. 6 0
      studio/template/images/icons/mi-bp-custom.svg
  22. 13 0
      studio/template/images/icons/mi-bp-system.svg
  23. 0 1
      studio/template/images/icons/mi-cog.svg
  24. 4 0
      studio/template/images/icons/mi-dsg-cover.svg
  25. 7 0
      studio/template/images/icons/mi-dsg-general.svg
  26. 4 0
      studio/template/images/icons/mi-dsg-icon.svg
  27. 1 0
      studio/template/images/icons/mi-dsg-injections.svg
  28. 1 0
      studio/template/images/icons/mi-dsg-logo.svg
  29. 1 0
      studio/template/images/icons/mi-dsg-pwa.svg
  30. 7 0
      studio/template/images/icons/mi-dsg-settings.svg
  31. 1 0
      studio/template/images/icons/mi-dsg-splash.svg
  32. 7 0
      studio/template/images/icons/mi-nav-items.svg
  33. 6 0
      studio/template/images/icons/mi-nav-menus.svg
  34. 8 0
      studio/template/images/icons/mi-nav-sets.svg
  35. 1 0
      studio/template/images/icons/mi-pgt-etemplates-html.svg
  36. 1 0
      studio/template/images/icons/mi-pgt-etemplates-text.svg
  37. 1 0
      studio/template/images/icons/mi-pgt-keys.svg
  38. 1 0
      studio/template/images/icons/mi-pgt-settings.svg
  39. 1 0
      studio/template/images/icons/mi-stg-files.svg
  40. 1 0
      studio/template/images/icons/mi-stg-images.svg
  41. 5 5
      studio/template/images/icons/wi-act-settings.svg
  42. 2 2
      studio/template/images/icons/wi-act-uninstall.svg
  43. 1 1
      studio/template/page_menu.html
  44. 20 20
      studio/template/scripts/BxBaseStudioBuilderPage.php
  45. 15 14
      studio/template/scripts/BxBaseStudioDesigner.php
  46. 21 14
      studio/template/scripts/BxBaseStudioFunctions.php
  47. 12 20
      studio/template/scripts/BxBaseStudioMenu.php
  48. 19 10
      studio/template/scripts/BxBaseStudioModule.php
  49. 15 14
      studio/template/scripts/BxBaseStudioNavigation.php
  50. 5 3
      studio/template/scripts/BxBaseStudioPage.php
  51. 26 25
      studio/template/scripts/BxBaseStudioPolyglot.php
  52. 6 5
      studio/template/scripts/BxBaseStudioSettings.php
  53. 9 8
      studio/template/scripts/BxBaseStudioStorages.php
  54. 14 12
      studio/template/scripts/BxBaseStudioStore.php
  55. 5 6
      studio/template/scripts/BxBaseStudioWidget.php
  56. 10 8
      studio/template/widget.html

+ 18 - 0
inc/classes/BxDolTemplate.php

@@ -1481,6 +1481,19 @@ class BxDolTemplate extends BxDolFactory implements iBxDolSingleton
         return $this->_getAbsoluteLocation('path', $this->_sFolderIcons, $sName, $sCheckIn);
     }
 
+    function getIconContent($sName)
+    {
+        if(strpos($sName, '.svg') === false)
+            return false;
+
+        $mixedResult = false;
+        if(($sIconPath = $this->getIconPath($sName)))
+            $mixedResult = file_get_contents($sIconPath);
+        else
+            $mixedResult = bx_file_get_contents($sName);
+
+        return $mixedResult;
+    }
     /**
      * Get image/icon by name automatically. Cache item description:
      * [
@@ -3239,6 +3252,7 @@ class BxDolTemplate extends BxDolFactory implements iBxDolSingleton
             "'<bx_image_auto:([^\s]+) \/>'s" => "get_image_auto",
             "'<bx_image_url:([^\s]+) \/>'s" => "get_image_url",
             "'<bx_icon_url:([^\s]+) \/>'s" => "get_icon_url",
+            "'<bx_icon_inline:([^\s]+) \/>'s" => "get_icon_inline",
             "'<bx_text:([_\{\}\w\d\s]+[^\s]{1}) \/>'s" => "get_text",
             "'<bx_text_js:([^\s]+) \/>'s" => "get_text_js",
             "'<bx_text_attribute:([^\s]+) \/>'s" => "get_text_attribute",
@@ -3259,6 +3273,10 @@ class BxDolTemplate extends BxDolFactory implements iBxDolSingleton
                 case 'get_icon_url':
                     $sResult = $oTemplate->getIconUrl($aMatches[1]);
                     break;
+                case 'get_icon_inline':
+                    if(($sResult = $this->getIconContent($aMatches[1])) === false)
+                        $sResult = '';
+                    break;
                 case 'get_text':
                     $sResult = _t($aMatches[1]);
                     break;

+ 1 - 1
install/sql/system.sql

@@ -314,7 +314,7 @@ CREATE TABLE `sys_options_types` (
 --
 -- Dumping data for tables `sys_options_types`
 --
-INSERT INTO `sys_options_types`(`group`, `name`, `caption`, `icon`, `order`) VALUES ('system', 'system', '_adm_stg_cpt_type_system', 'cogs', 1);
+INSERT INTO `sys_options_types`(`group`, `name`, `caption`, `icon`, `order`) VALUES ('system', 'system', '_adm_stg_cpt_type_system', 'mi-cog.svg', 1);
 SET @iTypeId = LAST_INSERT_ID();
 
 --

+ 6 - 4
modules/boonex/developer/classes/BxDevPolyglot.php

@@ -20,16 +20,18 @@ class BxDevPolyglot extends BxTemplStudioPolyglot
     {
         parent::__construct(isset($aParams['page']) ? $aParams['page'] : '');
 
+        $this->bPageMenuTitle = false;
+
         $this->aParams = $aParams;
         $this->sSubpageUrl = $this->aParams['url'] . '&pgt_page=';
 
         $this->oModule = BxDolModule::getInstance('bx_developer');
 
-        $this->aMenuItems = array();
+        $this->aMenuItems = false;
 
-		$this->aGridObjects = array(
-			'manage' => $this->oModule->_oConfig->getObject('grid_pgt_manage'),
-		);
+        $this->aGridObjects = [
+            'manage' => $this->oModule->_oConfig->getObject('grid_pgt_manage'),
+        ];
     }
 
     function getPageCss()

+ 2 - 2
modules/boonex/developer/template/css/main.css

@@ -1,6 +1,6 @@
 /*--- Overwrite ---*/
 body.bx-dev-page-body-columns div.bx-std-page-column.bx-std-page-content .bx-std-page-column-cnt {
-    padding: 5rem 0 0 0;
+    padding: 4.0rem 0 0 0;
 }
 body.bx-dev-page-body-single div.bx-std-page-menu,
 body.bx-dev-page-body-columns div.bx-std-page-menu {
@@ -140,5 +140,5 @@ div.bx-dev-page-column.bx-dev-page-content {
     overflow-y: auto;
 }
 div.bx-dev-page-column.bx-dev-page-content .bx-dev-page-column-cnt {
-    padding: 1.5rem;
+    padding: 1.0rem;
 }

+ 1 - 1
modules/boonex/developer/template/page_menu.html

@@ -1,6 +1,6 @@
 <div class="bx-std-pcm-title" id="bx-std-pc-title">
     <div class="bx-std-pcm-title-cnt mx-4 pb-6 border-b border-gray-100/20">
-        <a class="bx-std-pcm-actions bx-btn" href="javascript:void(0)" onclick="__actions_onclick__" title="<bx_text_attribute:_adm_txt_show_actions />">
+        <a class="bx-std-pcm-actions flex justify-center items-center w-10 h-10 bg-gray-200 hover:bg-gray-100 border border-black/10 rounded-lg text-gray-600" href="javascript:void(0)" onclick="__actions_onclick__" title="<bx_text_attribute:_adm_txt_show_actions />">
             <img src="__actions_icon__" />
         </a>
     </div>

+ 9 - 9
modules/boonex/english/data/langs/system/en.xml

@@ -493,9 +493,9 @@
 	<string name="_adm_bp_btn_page_create"><![CDATA[Create]]></string>
 	<string name="_adm_bp_btn_settings"><![CDATA[Settings]]></string>
 	<string name="_adm_bp_btn_view_page"><![CDATA[View Page]]></string>
-	<string name="_adm_bp_cpt_type_custom"><![CDATA[Custom]]></string>
+	<string name="_adm_bp_cpt_type_custom"><![CDATA[Custom Pages]]></string>
 	<string name="_adm_bp_cpt_type_modules"><![CDATA[Modules]]></string>
-	<string name="_adm_bp_cpt_type_system"><![CDATA[System]]></string>
+	<string name="_adm_bp_cpt_type_system"><![CDATA[System Pages]]></string>
 	<string name="_adm_bp_dsc_block_content_image_file"><![CDATA[The image will be displayed in block]]></string>
 	<string name="_adm_bp_dsc_block_content_lang"><![CDATA[Enter the content in accordance with the selected language]]></string>
 	<string name="_adm_bp_dsc_block_content_raw"><![CDATA[Enter HTML content here]]></string>
@@ -1112,17 +1112,16 @@
     <string name="_adm_lmi_cpt_badges"><![CDATA[Badges]]></string>
     <string name="_adm_lmi_cpt_categories"><![CDATA[Categories]]></string>
     <string name="_adm_lmi_cpt_checkout"><![CDATA[Checkout {checkout_counter}]]></string>
-    <string name="_adm_lmi_cpt_cover"><![CDATA[Cover]]></string>
+    <string name="_adm_lmi_cpt_cover"><![CDATA[Covers]]></string>
     <string name="_adm_lmi_cpt_search"><![CDATA[Search]]></string>
     <string name="_adm_lmi_cpt_search_forms"><![CDATA[Search Forms]]></string>
     <string name="_adm_lmi_cpt_search_fields"><![CDATA[Search Fields]]></string>
     <string name="_adm_lmi_cpt_search_sortable_fields"><![CDATA[Search Sortable Fields]]></string>
-    <string name="_adm_lmi_cpt_splash"><![CDATA[Splash]]></string>
+    <string name="_adm_lmi_cpt_splash"><![CDATA[Splash page]]></string>
     <string name="_adm_lmi_cpt_displays"><![CDATA[Displays]]></string>
     <string name="_adm_lmi_cpt_downloaded"><![CDATA[Downloaded]]></string>
-    <string name="_adm_lmi_cpt_etemplates"><![CDATA[Emails]]></string>
-    <string name="_adm_lmi_cpt_etemplates_hf"><![CDATA[Email Template]]></string>
-    <string name="_adm_lmi_cpt_etemplates_creative"><![CDATA[Email Template]]></string>
+    <string name="_adm_lmi_cpt_etemplates_text"><![CDATA[Email Texts]]></string>
+    <string name="_adm_lmi_cpt_etemplates_html"><![CDATA[Email Template]]></string>
     <string name="_adm_lmi_cpt_featured"><![CDATA[Featured]]></string>
     <string name="_adm_lmi_cpt_fields"><![CDATA[Fields]]></string>
     <string name="_adm_lmi_cpt_files"><![CDATA[Files]]></string>
@@ -1133,7 +1132,8 @@
     <string name="_adm_lmi_cpt_injections"><![CDATA[Injections]]></string>
     <string name="_adm_lmi_cpt_images"><![CDATA[Images]]></string>
     <string name="_adm_lmi_cpt_items"><![CDATA[Items]]></string>
-    <string name="_adm_lmi_cpt_keys"><![CDATA[Keys]]></string>
+    <string name="_adm_lmi_cpt_pgt_settings"><![CDATA[i18n Settings]]></string>
+    <string name="_adm_lmi_cpt_pgt_keys"><![CDATA[Text Keys]]></string>
     <string name="_adm_lmi_cpt_labels"><![CDATA[Labels]]></string>
     <string name="_adm_lmi_cpt_latest"><![CDATA[Latest]]></string>
     <string name="_adm_lmi_cpt_levels"><![CDATA[Levels]]></string>
@@ -1145,7 +1145,7 @@
     <string name="_adm_lmi_cpt_providers"><![CDATA[Providers]]></string>
     <string name="_adm_lmi_cpt_popular"><![CDATA[Popular]]></string>
     <string name="_adm_lmi_cpt_purchases"><![CDATA[Purchases]]></string>
-    <string name="_adm_lmi_cpt_pwa"><![CDATA[PWA]]></string>
+    <string name="_adm_lmi_cpt_pwa"><![CDATA[Progressive Web App]]></string>
     <string name="_adm_lmi_cpt_ractions"><![CDATA[Actions]]></string>
     <string name="_adm_lmi_cpt_rlevels"><![CDATA[Levels]]></string>
     <string name="_adm_lmi_cpt_sets"><![CDATA[Sets]]></string>

+ 9 - 9
modules/boonex/russian/data/langs/system/ru.xml

@@ -491,9 +491,9 @@
 	<string name="_adm_bp_btn_page_create"><![CDATA[Создать]]></string>
 	<string name="_adm_bp_btn_settings"><![CDATA[Настройки]]></string>
 	<string name="_adm_bp_btn_view_page"><![CDATA[Просмотреть страницу]]></string>
-	<string name="_adm_bp_cpt_type_custom"><![CDATA[Индивидуальный]]></string>
+	<string name="_adm_bp_cpt_type_custom"><![CDATA[Пользовательские страницы]]></string>
 	<string name="_adm_bp_cpt_type_modules"><![CDATA[Модули]]></string>
-	<string name="_adm_bp_cpt_type_system"><![CDATA[Система]]></string>
+	<string name="_adm_bp_cpt_type_system"><![CDATA[Системные страницы]]></string>
 	<string name="_adm_bp_dsc_block_content_image_file"><![CDATA[Картинка будет отображена в блоке]]></string>
 	<string name="_adm_bp_dsc_block_content_lang"><![CDATA[Введите содержимое в соответствии с выбранным языком]]></string>
 	<string name="_adm_bp_dsc_block_content_raw"><![CDATA[Введите здесь HTML-содержимое]]></string>
@@ -1096,17 +1096,16 @@
     <string name="_adm_lmi_cpt_badges"><![CDATA[Бейджи]]></string>
     <string name="_adm_lmi_cpt_categories"><![CDATA[Категории]]></string>
     <string name="_adm_lmi_cpt_checkout"><![CDATA[Оплата {checkout_counter}]]></string>
-    <string name="_adm_lmi_cpt_cover"><![CDATA[Обложка]]></string>
+    <string name="_adm_lmi_cpt_cover"><![CDATA[Обложки]]></string>
     <string name="_adm_lmi_cpt_search"><![CDATA[Поиск]]></string>
     <string name="_adm_lmi_cpt_search_forms"><![CDATA[Формы поиска]]></string>
     <string name="_adm_lmi_cpt_search_fields"><![CDATA[Поля поиска]]></string>
     <string name="_adm_lmi_cpt_search_sortable_fields"><![CDATA[Поля сортироски поиска]]></string>
-	<string name="_adm_lmi_cpt_splash"><![CDATA[Заставка]]></string>
+	<string name="_adm_lmi_cpt_splash"><![CDATA[Страница-заставка]]></string>
 	<string name="_adm_lmi_cpt_displays"><![CDATA[Дисплеи]]></string>
 	<string name="_adm_lmi_cpt_downloaded"><![CDATA[Скачано]]></string>
-	<string name="_adm_lmi_cpt_etemplates"><![CDATA[Email-ы]]></string>
-	<string name="_adm_lmi_cpt_etemplates_hf"><![CDATA[Email-шаблон]]></string>
-        <string name="_adm_lmi_cpt_etemplates_creative"><![CDATA[Email-шаблон]]></string>
+	<string name="_adm_lmi_cpt_etemplates_text"><![CDATA[Тексты email-ов]]></string>
+        <string name="_adm_lmi_cpt_etemplates_html"><![CDATA[Email-шаблон]]></string>
 	<string name="_adm_lmi_cpt_featured"><![CDATA[Продвинутые]]></string>
 	<string name="_adm_lmi_cpt_fields"><![CDATA[Поля]]></string>
 	<string name="_adm_lmi_cpt_files"><![CDATA[Файлы]]></string>
@@ -1117,7 +1116,8 @@
 	<string name="_adm_lmi_cpt_injections"><![CDATA[Вставки]]></string>
 	<string name="_adm_lmi_cpt_images"><![CDATA[Изображения]]></string>
 	<string name="_adm_lmi_cpt_items"><![CDATA[Элементы]]></string>
-	<string name="_adm_lmi_cpt_keys"><![CDATA[Ключи]]></string>
+        <string name="_adm_lmi_cpt_pgt_settings"><![CDATA[Настройки (i18n)]]></string>
+	<string name="_adm_lmi_cpt_pgt_keys"><![CDATA[Текстовые ключи]]></string>
         <string name="_adm_lmi_cpt_labels"><![CDATA[Метки]]></string>
 	<string name="_adm_lmi_cpt_latest"><![CDATA[Новые]]></string>
 	<string name="_adm_lmi_cpt_levels"><![CDATA[Уровни]]></string>
@@ -1128,7 +1128,7 @@
         <string name="_adm_lmi_cpt_providers"><![CDATA[Поставщики]]></string>
 	<string name="_adm_lmi_cpt_popular"><![CDATA[Популярные]]></string>
 	<string name="_adm_lmi_cpt_purchases"><![CDATA[Покупки]]></string>
-        <string name="_adm_lmi_cpt_pwa"><![CDATA[PWA]]></string>
+        <string name="_adm_lmi_cpt_pwa"><![CDATA[Веб приложение]]></string>
         <string name="_adm_lmi_cpt_ractions"><![CDATA[Действия]]></string>
         <string name="_adm_lmi_cpt_rlevels"><![CDATA[Уровни]]></string>
 	<string name="_adm_lmi_cpt_sets"><![CDATA[Наборы]]></string>

+ 0 - 8
plugins_public/tailwind/css/tailwind.css

@@ -1250,14 +1250,6 @@
         @apply font-inter;
     }
 
-    .bx-std #bx-std-pcap-menu-popup-help .bx-popup,
-    .bx-std #bx-std-pcap-menu-popup-assistant .bx-popup,
-    .bx-std #bx-std-pcap-menu-popup-actions .bx-popup,
-    .bx-std #bx-std-pcap-menu-popup-account .bx-popup,
-    .bx-std .bx-std-mod-popup-settings-wrapper.bx-popup-applied:not(.bx-popup-chain) .bx-popup {
-        @apply ring-1 ring-gray-800;
-    }
-
     .bx-std .bx-menu-top-center .bx-menu-tab-active .bx-mi-icon {
         @apply ring-4 ring-blue-500/50 ring-offset-2 ring-offset-white;
     }

Plik diff jest za duży
+ 0 - 0
plugins_public/tailwind/css/tailwind.min.css


+ 6 - 7
studio/classes/BxDolStudioModule.php

@@ -183,15 +183,14 @@ class BxDolStudioModule extends BxTemplStudioWidget
         if($aResult['code'] != 0)
             return $aResult;
 
+        $this->aModule = BxDolModuleQuery::getInstance()->getModuleByName($this->sModule);
+
         $aResult = array('code' => 0, 'message' => _t('_adm_scs_operation_done'));
         if($iWidgetId == 0) {
-            $aResult['content'] = "";
-            if((int)$aModule['enabled'] == 0) {
-                $aResult['content'] = BxDolStudioTemplate::getInstance()->parseHtmlByName('page_content_2_col.html', array(
-                    'page_menu_code' => $this->getPageMenu(),
-                    'page_main_code' => $this->getPageCode()
-                ));
-            }
+            $aResult['content'] = BxDolStudioTemplate::getInstance()->parseHtmlByName('page_content_2_col.html', [
+                'page_menu_code' => $this->getPageMenu(),
+                'page_main_code' => $this->getPageCode()
+            ]);
         }
         else
             $aResult['widget'] = BxTemplStudioFunctions::getInstance()->getWidget($iWidgetId);

+ 11 - 9
studio/classes/BxDolStudioPolyglot.php

@@ -7,11 +7,10 @@
  * @{
  */
 
-define('BX_DOL_STUDIO_PGT_TYPE_SETTINGS', 'settings');
-define('BX_DOL_STUDIO_PGT_TYPE_KEYS', 'keys');
-define('BX_DOL_STUDIO_PGT_TYPE_ETEMPLATES', 'etemplates');
-define('BX_DOL_STUDIO_PGT_TYPE_ETEMPLATES_HF', 'etemplates_hf');
-define('BX_DOL_STUDIO_PGT_TYPE_ETEMPLATES_CREATIVE', 'etemplates_creative');
+define('BX_DOL_STUDIO_PGT_TYPE_SETTINGS', 'pgt_settings');
+define('BX_DOL_STUDIO_PGT_TYPE_KEYS', 'pgt_keys');
+define('BX_DOL_STUDIO_PGT_TYPE_ETEMPLATES_TEXT', 'etemplates_text');
+define('BX_DOL_STUDIO_PGT_TYPE_ETEMPLATES_HTML', 'etemplates_html');
 
 define('BX_DOL_STUDIO_PGT_TYPE_DEFAULT', BX_DOL_STUDIO_PGT_TYPE_SETTINGS);
 
@@ -89,7 +88,10 @@ class BxDolStudioPolyglot extends BxTemplStudioWidget
         return $aResult;
     }
 
-    public function submitEtemplatesHf(&$oForm)
+    /**
+     * TODO: Remove (after UNA 14) if new version is working fine.
+     */
+    public function submitEtemplatesHtmlOld(&$oForm)
     {
         $sUnsubscribe = "{unsubscribe}";
         $sHeader = $oForm->getCleanValue('et_hf_header');
@@ -103,10 +105,10 @@ class BxDolStudioPolyglot extends BxTemplStudioWidget
         if(!$bResult)
             return $this->getJsResult('_adm_pgt_err_et_hf_save');
 
-        return $this->getJsResult('_adm_pgt_scs_et_hf_save', true, true, BX_DOL_URL_STUDIO . 'polyglot.php?page=' . BX_DOL_STUDIO_PGT_TYPE_ETEMPLATES_HF); 
+        return $this->getJsResult('_adm_pgt_scs_et_hf_save', true, true, BX_DOL_URL_STUDIO . 'polyglot.php?page=' . BX_DOL_STUDIO_PGT_TYPE_ETEMPLATES_HTML); 
     }
     
-    public function submitEtemplatesCreative(&$oForm)
+    public function submitEtemplatesHtml(&$oForm)
     {
         $sUnsubscribe = "{unsubscribe}";
         $sContent = $oForm->getCleanValue('content');
@@ -121,7 +123,7 @@ class BxDolStudioPolyglot extends BxTemplStudioWidget
         if(!$bResult)
             return $this->getJsResult('_adm_pgt_err_et_hf_save');
 
-        return $this->getJsResult('_adm_pgt_scs_et_hf_save', true, true, BX_DOL_URL_STUDIO . 'polyglot.php?page=' . BX_DOL_STUDIO_PGT_TYPE_ETEMPLATES_CREATIVE); 
+        return $this->getJsResult('_adm_pgt_scs_et_hf_save', true, true, BX_DOL_URL_STUDIO . 'polyglot.php?page=' . BX_DOL_STUDIO_PGT_TYPE_ETEMPLATES_HTML); 
     }
 }
 

+ 3 - 7
studio/js/module.js

@@ -43,16 +43,14 @@ BxDolStudioModule.prototype.activate = function(oCheckbox, sName, iWidgetId) {
         this.sActionsUrl, aParams, function(oData) {
             processJsonData(oData);
 
-            if(oData.code != 0) {
-                $('.bx-popup-applied:visible').dolPopupHide();
+            $('.bx-popup-applied:visible').dolPopupHide();
 
+            if(oData.code != 0) {
                 $(oCheckbox).attr('checked', 'checked').trigger('enable');
                 return;
             }
 
             if(iWidgetId != 0 && oData.widget.length > 0) {
-                $('.bx-popup-applied:visible').dolPopupHide();
-
                 $('#bx-std-widget-' + iWidgetId).replaceWith(oData.widget);
                 oBxDolStudioLauncher.enableJitter();
                 return;
@@ -60,10 +58,8 @@ BxDolStudioModule.prototype.activate = function(oCheckbox, sName, iWidgetId) {
 
             var oContent = $('#bx-std-page-columns');
             if(oData.content.length > 0)
-                oContent.html(oData.content).bx_anim('show', $this.sAnimationEffect, $this.iAnimationSpeed);
-            else
                 oContent.bx_anim('hide', $this.sAnimationEffect, $this.iAnimationSpeed, function() {
-                    $(this).html(oData.content);
+                    $(this).html(oData.content).bx_anim('show', $this.sAnimationEffect, 'fast');
                 });
         },
         'json'

+ 1 - 6
studio/template/css/launcher.css

@@ -200,11 +200,6 @@ div.bx-std-widget-action {
     box-sizing: content-box;
 
     margin-top: 0.25rem;
-
-    border: 2px solid #000000;
-    border-radius: 16px;
-    
-    background-color: rgba(229, 231, 235, 1);
 }
 div.bx-std-widget-action:first-child {
     margin-top: 0;
@@ -272,7 +267,7 @@ div.bx-std-widget-caption-jitter {
 }
 div.bx-std-widget-caption,
 div.bx-std-widget-caption a {
-    color: rgb(156 163 175);
+    color: rgba(0, 0, 0, 0.5);
 }
 
 

+ 4 - 13
studio/template/css/menu_top.css

@@ -314,13 +314,11 @@ body > .bx-popup-wrapper.bx-std-mod-popup-settings-wrapper,
     margin-right: 0;
 }
 #bx-std-pcap-menu-popup-help .bx-popup,
-#bx-std-pcap-menu-popup-assistant .bx-popup,
-#bx-std-pcap-menu-popup-assistant .bx-popup .bx-popup-header-color-bg,
 #bx-std-pcap-menu-popup-actions .bx-popup,
 #bx-std-pcap-menu-popup-account .bx-popup,
 .bx-std-mod-popup-settings-wrapper.bx-popup-applied:not(.bx-popup-chain) .bx-popup {
     border-width: 0; 
-    background-color: #001529;
+    background-color: #ffffff;
 }
 #bx-std-pcap-menu-popup-actions .bx-popup-content,
 #bx-std-pmenu-popup-actions .bx-popup-content {
@@ -360,11 +358,10 @@ body > .bx-popup-wrapper.bx-std-mod-popup-settings-wrapper,
 #bx-std-pcap-menu-popup-assistant .bx-popup .bx-popup-header h2,
 #bx-std-pcap-menu-popup-assistant .bx-popup .bx-popup-header .bx-icon,
 #bx-std-pcap-menu-popup-assistant .bx-popup a,
-#bx-std-pcap-menu-popup-assistant .bx-popup .sys-icon,
 #bx-std-pcap-menu-popup-actions .bx-popup,
 #bx-std-pcap-menu-popup-account .bx-popup li a,
 #bx-std-pcap-menu-popup-account .bx-popup li .sys-icon {
-    color: rgba(255, 255, 255, 0.7);
+    color: rgba(0, 0, 0, 0.7);
 }
 #bx-std-pcap-menu-popup-account .bx-popup li svg g {
     opacity: 0.7;
@@ -373,7 +370,7 @@ body > .bx-popup-wrapper.bx-std-mod-popup-settings-wrapper,
 #bx-std-pcap-menu-popup-assistant .bx-popup a:hover,
 #bx-std-pcap-menu-popup-account .bx-popup li:hover a,
 #bx-std-pcap-menu-popup-account .bx-popup li:hover a .sys-icon {
-    color: rgba(255, 255, 255, 0.85);
+    color: rgba(0, 0, 0, 0.85);
 }
 #bx-std-pcap-menu-popup-account .bx-popup li.bx-menu-tab-active {
     background-color: rgba(24, 144, 255, 0.2);
@@ -390,9 +387,6 @@ body > .bx-popup-wrapper.bx-std-mod-popup-settings-wrapper,
 }
 
 /*--- Assistant ---*/
-#bx-std-pcap-menu-popup-assistant .bx-popup .bx-popup-header {
-    border-bottom: 1px solid rgb(31 41 55);
-}
 #bx-std-pcap-menu-popup-assistant .bx-popup .bx-popup-content {
     padding-top: 0;
 }
@@ -413,9 +407,6 @@ body > .bx-popup-wrapper.bx-std-mod-popup-settings-wrapper,
 .bx-std-pcap-assistant .cmt .cmt-head ul li:first-child .bx-base-general-unit-meta-div {
   display: none;
 }
-.bx-std-pcap-assistant .cmt .cmt-cont .cmt-body {
-    color: rgb(229, 231, 235);
-}
 .bx-std-pcap-assistant .cmt-reply.cmt-reply-bottom {
     margin-bottom: 0;
 }
@@ -431,5 +422,5 @@ body > .bx-popup-wrapper.bx-std-mod-popup-settings-wrapper,
 }
 .bx-std-pcap-assistant .bx-form-value .bx-form-input-textarea {
     height: 2.5rem;
-    background-color: rgb(31 41 55);
+    background-color: rgb(229, 231, 235);
 }

+ 1 - 12
studio/template/css/page_columns.css

@@ -46,18 +46,7 @@ div.bx-std-page-column.bx-std-page-menu div.bx-std-page-column-cnt {
     top: 0;
     padding-top: 5rem;
 }
-div.bx-std-page-column.bx-std-page-menu .bx-std-pcm-actions {
-    justify-content: center;
-    -webkit-justify-content: center;
 
-    width: 2.5rem;
-    padding: 0;    
-}
-div.bx-std-page-column.bx-std-page-menu .bx-std-pcm-actions img {
-    width: 2.0rem;
-    height: 2.0rem;
-}
- 
 /*--- Page Content ---*/
 div.bx-std-page-column.bx-std-page-content {
     position: relative;
@@ -75,5 +64,5 @@ div.bx-std-page-column.bx-std-page-content::-webkit-scrollbar {
 div.bx-std-page-column.bx-std-page-content div.bx-std-page-column-cnt {
     width: 100%;
     height: max-content;
-    padding: 6.0rem 1.0rem  1.0rem  1.0rem;
+    padding: 5.0rem 1.0rem  1.0rem  1.0rem;
 }

+ 3 - 3
studio/template/images/icons/ami-account.svg

@@ -1,7 +1,7 @@
 <svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
 <g opacity="0.7">
-<path d="M17.763 18.91L17.413 18.031C17.236 17.585 16.961 17.185 16.609 16.859L16.545 16.8C15.991 16.286 15.263 16 14.507 16H9.493C8.737 16 8.009 16.286 7.454 16.799L7.39 16.859C7.038 17.185 6.764 17.585 6.586 18.031L6.236 18.91" stroke="white" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
-<path d="M14.4749 7.44713C15.8417 8.81397 15.8417 11.03 14.4749 12.3969C13.1081 13.7637 10.892 13.7637 9.52515 12.3969C8.15831 11.03 8.15831 8.81397 9.52515 7.44713C10.892 6.08029 13.1081 6.08029 14.4749 7.44713" stroke="white" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
-<path d="M18.364 5.63604C21.8787 9.15076 21.8787 14.8492 18.364 18.3639C14.8493 21.8787 9.1508 21.8787 5.6361 18.3639C2.12138 14.8492 2.12138 9.15074 5.6361 5.63604C9.15082 2.12132 14.8493 2.12132 18.364 5.63604" stroke="white" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
+<path d="M17.763 18.91L17.413 18.031C17.236 17.585 16.961 17.185 16.609 16.859L16.545 16.8C15.991 16.286 15.263 16 14.507 16H9.493C8.737 16 8.009 16.286 7.454 16.799L7.39 16.859C7.038 17.185 6.764 17.585 6.586 18.031L6.236 18.91" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
+<path d="M14.4749 7.44713C15.8417 8.81397 15.8417 11.03 14.4749 12.3969C13.1081 13.7637 10.892 13.7637 9.52515 12.3969C8.15831 11.03 8.15831 8.81397 9.52515 7.44713C10.892 6.08029 13.1081 6.08029 14.4749 7.44713" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
+<path d="M18.364 5.63604C21.8787 9.15076 21.8787 14.8492 18.364 18.3639C14.8493 21.8787 9.1508 21.8787 5.6361 18.3639C2.12138 14.8492 2.12138 9.15074 5.6361 5.63604C9.15082 2.12132 14.8493 2.12132 18.364 5.63604" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
 </g>
 </svg>

+ 7 - 7
studio/template/images/icons/ami-edit.svg

@@ -1,11 +1,11 @@
 <svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
 <g opacity="0.7">
-<path d="M18.63 5.36999L19.35 4.64999" stroke="white" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
-<path d="M19.37 14.39L18.61 13.62" stroke="white" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
-<path d="M10.36 5.36999L9.64 4.64999" stroke="white" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
-<path fill-rule="evenodd" clip-rule="evenodd" d="M4.205 21.207L2.793 19.794C2.402 19.403 2.402 18.77 2.793 18.379L12.37 8.798C12.761 8.407 13.394 8.407 13.784 8.798L15.196 10.211C15.587 10.602 15.587 11.235 15.196 11.626L5.619 21.207C5.229 21.598 4.596 21.598 4.205 21.207Z" stroke="white" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
-<path d="M13.2 13.62L10.37 10.8" stroke="white" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
-<path d="M14.49 3.52V2.5" stroke="white" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
-<path d="M20.48 9.50999H21.5" stroke="white" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
+<path d="M18.63 5.36999L19.35 4.64999" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
+<path d="M19.37 14.39L18.61 13.62" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
+<path d="M10.36 5.36999L9.64 4.64999" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
+<path fill-rule="evenodd" clip-rule="evenodd" d="M4.205 21.207L2.793 19.794C2.402 19.403 2.402 18.77 2.793 18.379L12.37 8.798C12.761 8.407 13.394 8.407 13.784 8.798L15.196 10.211C15.587 10.602 15.587 11.235 15.196 11.626L5.619 21.207C5.229 21.598 4.596 21.598 4.205 21.207Z" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
+<path d="M13.2 13.62L10.37 10.8" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
+<path d="M14.49 3.52V2.5" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
+<path d="M20.48 9.50999H21.5" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
 </g>
 </svg>

+ 11 - 11
studio/template/images/icons/ami-language.svg

@@ -1,15 +1,15 @@
 <svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
 <g opacity="0.7">
-<path d="M14.0008 21.0035H19.0029C20.1079 21.0035 21.0037 20.1077 21.0037 19.0026V15.001" stroke="white" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
-<path d="M9.99916 2.99609H4.99708C3.89205 2.99609 2.99625 3.8919 2.99625 4.99693V9.99901" stroke="white" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
-<circle cx="17.0021" cy="6.99818" r="5.00208" stroke="white" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
-<path fill-rule="evenodd" clip-rule="evenodd" d="M6.9979 22.0042V22.0042C4.23533 22.0042 1.99582 19.7647 1.99582 17.0021V17.0021C1.99582 14.2395 4.23533 12 6.9979 12V12C8.32454 12 9.59684 12.527 10.5349 13.4651C11.473 14.4031 12 15.6754 12 17.0021V17.0021C12 18.3287 11.473 19.601 10.5349 20.5391C9.59684 21.4772 8.32454 22.0042 6.9979 22.0042Z" stroke="white" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
-<path d="M5.46127 17.8322H8.54456" stroke="white" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
-<path d="M8.79867 18.5527L7.50213 14.9512H6.49371L5.19717 18.5527" stroke="white" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
-<path d="M18.5027 6.12228H17.0021" stroke="white" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
-<path d="M17.0021 4.95508V6.12256" stroke="white" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
-<path d="M15.5015 6.12228H17.0021" stroke="white" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
-<path d="M18.3586 8.62409C17.5132 8.07286 17.0031 7.13228 17.0021 6.12305" stroke="white" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
-<path d="M17.0021 6.12305C17.0011 7.13228 16.4909 8.07286 15.6455 8.62409" stroke="white" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
+<path d="M14.0008 21.0035H19.0029C20.1079 21.0035 21.0037 20.1077 21.0037 19.0026V15.001" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
+<path d="M9.99916 2.99609H4.99708C3.89205 2.99609 2.99625 3.8919 2.99625 4.99693V9.99901" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
+<circle cx="17.0021" cy="6.99818" r="5.00208" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
+<path fill-rule="evenodd" clip-rule="evenodd" d="M6.9979 22.0042V22.0042C4.23533 22.0042 1.99582 19.7647 1.99582 17.0021V17.0021C1.99582 14.2395 4.23533 12 6.9979 12V12C8.32454 12 9.59684 12.527 10.5349 13.4651C11.473 14.4031 12 15.6754 12 17.0021V17.0021C12 18.3287 11.473 19.601 10.5349 20.5391C9.59684 21.4772 8.32454 22.0042 6.9979 22.0042Z" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
+<path d="M5.46127 17.8322H8.54456" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
+<path d="M8.79867 18.5527L7.50213 14.9512H6.49371L5.19717 18.5527" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
+<path d="M18.5027 6.12228H17.0021" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
+<path d="M17.0021 4.95508V6.12256" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
+<path d="M15.5015 6.12228H17.0021" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
+<path d="M18.3586 8.62409C17.5132 8.07286 17.0031 7.13228 17.0021 6.12305" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
+<path d="M17.0021 6.12305C17.0011 7.13228 16.4909 8.07286 15.6455 8.62409" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
 </g>
 </svg>

+ 4 - 4
studio/template/images/icons/ami-logout.svg

@@ -1,8 +1,8 @@
 <svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
 <g opacity="0.7">
-<path d="M12 11.9953H21.0037" stroke="white" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
-<path d="M17.7296 8.72168L21.0037 11.9958" stroke="white" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
-<path d="M17.7296 15.2702L21.0037 11.9961" stroke="white" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
-<path d="M17.5023 4.88253C13.8044 2.02079 8.531 2.46757 5.36729 5.91067C2.20358 9.35376 2.20358 14.6461 5.36729 18.0891C8.531 21.5322 13.8044 21.979 17.5023 19.1173" stroke="white" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
+<path d="M12 11.9953H21.0037" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
+<path d="M17.7296 8.72168L21.0037 11.9958" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
+<path d="M17.7296 15.2702L21.0037 11.9961" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
+<path d="M17.5023 4.88253C13.8044 2.02079 8.531 2.46757 5.36729 5.91067C2.20358 9.35376 2.20358 14.6461 5.36729 18.0891C8.531 21.5322 13.8044 21.979 17.5023 19.1173" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
 </g>
 </svg>

+ 6 - 6
studio/template/images/icons/ami-site.svg

@@ -1,10 +1,10 @@
 <svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
 <g opacity="0.7">
-<path d="M8 20.064V11C8 9.895 8.895 9 10 9H20.487" stroke="white" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
-<path d="M8 14H20.776" stroke="white" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
-<path d="M11.0049 11.49C11.0019 11.49 10.9999 11.492 10.9999 11.495C10.9999 11.498 11.0019 11.5 11.0049 11.5C11.0079 11.5 11.0099 11.498 11.0099 11.495C11.0099 11.492 11.0079 11.49 11.0049 11.49" stroke="white" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
-<path d="M13.5479 11.49C13.5449 11.49 13.5429 11.492 13.5429 11.495C13.5429 11.498 13.5449 11.5 13.5479 11.5C13.5509 11.5 13.5529 11.498 13.5529 11.495C13.5529 11.492 13.5509 11.49 13.5479 11.49" stroke="white" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
-<path fill-rule="evenodd" clip-rule="evenodd" d="M12 21V21C16.971 21 21 16.971 21 12V12C21 7.029 16.971 3 12 3V3C7.029 3 3 7.029 3 12V12C3 16.971 7.029 21 12 21Z" stroke="white" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
-<path d="M16.0879 11.49C16.0849 11.49 16.0829 11.492 16.0829 11.495C16.0829 11.498 16.0849 11.5 16.0879 11.5C16.0909 11.5 16.0929 11.498 16.0929 11.495C16.0929 11.492 16.0899 11.49 16.0879 11.49" stroke="white" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
+<path d="M8 20.064V11C8 9.895 8.895 9 10 9H20.487" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
+<path d="M8 14H20.776" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
+<path d="M11.0049 11.49C11.0019 11.49 10.9999 11.492 10.9999 11.495C10.9999 11.498 11.0019 11.5 11.0049 11.5C11.0079 11.5 11.0099 11.498 11.0099 11.495C11.0099 11.492 11.0079 11.49 11.0049 11.49" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
+<path d="M13.5479 11.49C13.5449 11.49 13.5429 11.492 13.5429 11.495C13.5429 11.498 13.5449 11.5 13.5479 11.5C13.5509 11.5 13.5529 11.498 13.5529 11.495C13.5529 11.492 13.5509 11.49 13.5479 11.49" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
+<path fill-rule="evenodd" clip-rule="evenodd" d="M12 21V21C16.971 21 21 16.971 21 12V12C21 7.029 16.971 3 12 3V3C7.029 3 3 7.029 3 12V12C3 16.971 7.029 21 12 21Z" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
+<path d="M16.0879 11.49C16.0849 11.49 16.0829 11.492 16.0829 11.495C16.0829 11.498 16.0849 11.5 16.0879 11.5C16.0909 11.5 16.0929 11.498 16.0929 11.495C16.0929 11.492 16.0899 11.49 16.0879 11.49" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
 </g>
 </svg>

+ 6 - 0
studio/template/images/icons/mi-bp-custom.svg

@@ -0,0 +1,6 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-file-code-2">
+    <path d="M4 22h14a2 2 0 0 0 2-2V7l-5-5H6a2 2 0 0 0-2 2v4" />
+    <path d="M14 2v4a2 2 0 0 0 2 2h4" />
+    <path d="m5 12-3 3 3 3" />
+    <path d="m9 18 3-3-3-3" />
+</svg>

+ 13 - 0
studio/template/images/icons/mi-bp-system.svg

@@ -0,0 +1,13 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-file-cog">
+    <path d="M14 2v4a2 2 0 0 0 2 2h4" />
+    <path d="m3.2 12.9-.9-.4" />
+    <path d="m3.2 15.1-.9.4" />
+    <path d="M4.677 21.5a2 2 0 0 0 1.313.5H18a2 2 0 0 0 2-2V7l-5-5H6a2 2 0 0 0-2 2v2.5" />
+    <path d="m4.9 11.2-.4-.9" />
+    <path d="m4.9 16.8-.4.9" />
+    <path d="m7.5 10.3-.4.9" />
+    <path d="m7.5 17.7-.4-.9" />
+    <path d="m9.7 12.5-.9.4" />
+    <path d="m9.7 15.5-.9-.4" />
+    <circle cx="6" cy="14" r="3" />
+</svg>

Plik diff jest za duży
+ 0 - 1
studio/template/images/icons/mi-cog.svg


+ 4 - 0
studio/template/images/icons/mi-dsg-cover.svg

@@ -0,0 +1,4 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-crown">
+    <path d="M11.562 3.266a.5.5 0 0 1 .876 0L15.39 8.87a1 1 0 0 0 1.516.294L21.183 5.5a.5.5 0 0 1 .798.519l-2.834 10.246a1 1 0 0 1-.956.734H5.81a1 1 0 0 1-.957-.734L2.02 6.02a.5.5 0 0 1 .798-.519l4.276 3.664a1 1 0 0 0 1.516-.294z" />
+    <path d="M5 21h14" />
+</svg>

+ 7 - 0
studio/template/images/icons/mi-dsg-general.svg

@@ -0,0 +1,7 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-store">
+    <path d="m2 7 4.41-4.41A2 2 0 0 1 7.83 2h8.34a2 2 0 0 1 1.42.59L22 7" />
+    <path d="M4 12v8a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2v-8" />
+    <path d="M15 22v-4a2 2 0 0 0-2-2h-2a2 2 0 0 0-2 2v4" />
+    <path d="M2 7h20" />
+    <path d="M22 7v3a2 2 0 0 1-2 2a2.7 2.7 0 0 1-1.59-.63.7.7 0 0 0-.82 0A2.7 2.7 0 0 1 16 12a2.7 2.7 0 0 1-1.59-.63.7.7 0 0 0-.82 0A2.7 2.7 0 0 1 12 12a2.7 2.7 0 0 1-1.59-.63.7.7 0 0 0-.82 0A2.7 2.7 0 0 1 8 12a2.7 2.7 0 0 1-1.59-.63.7.7 0 0 0-.82 0A2.7 2.7 0 0 1 4 12a2 2 0 0 1-2-2V7" />
+</svg>

+ 4 - 0
studio/template/images/icons/mi-dsg-icon.svg

@@ -0,0 +1,4 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-thumbs-up">
+    <path d="M7 10v12" />
+    <path d="M15 5.88 14 10h5.83a2 2 0 0 1 1.92 2.56l-2.33 8A2 2 0 0 1 17.5 22H4a2 2 0 0 1-2-2v-8a2 2 0 0 1 2-2h2.76a2 2 0 0 0 1.79-1.11L12 2a3.13 3.13 0 0 1 3 3.88Z" />
+</svg>

+ 1 - 0
studio/template/images/icons/mi-dsg-injections.svg

@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-search"><circle cx="11" cy="11" r="8"/><path d="m21 21-4.3-4.3"/></svg>

+ 1 - 0
studio/template/images/icons/mi-dsg-logo.svg

@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-flame"><path d="M8.5 14.5A2.5 2.5 0 0 0 11 12c0-1.38-.5-2-1-3-1.072-2.143-.224-4.054 2-6 .5 2.5 2 4.9 4 6.5 2 1.6 3 3.5 3 5.5a7 7 0 1 1-14 0c0-1.153.433-2.294 1-3a2.5 2.5 0 0 0 2.5 2.5z" /></svg>

+ 1 - 0
studio/template/images/icons/mi-dsg-pwa.svg

@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-shopping-bag"><path d="M6 2 3 6v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2V6l-3-4Z"/><path d="M3 6h18"/><path d="M16 10a4 4 0 0 1-8 0"/></svg>

+ 7 - 0
studio/template/images/icons/mi-dsg-settings.svg

@@ -0,0 +1,7 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-list-checks">
+    <path d="m3 17 2 2 4-4" />
+    <path d="m3 7 2 2 4-4" />
+    <path d="M13 6h8" />
+    <path d="M13 12h8" />
+    <path d="M13 18h8" />
+</svg>

+ 1 - 0
studio/template/images/icons/mi-dsg-splash.svg

@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-folders"><path d="M20 17a2 2 0 0 0 2-2V9a2 2 0 0 0-2-2h-3.9a2 2 0 0 1-1.69-.9l-.81-1.2a2 2 0 0 0-1.67-.9H8a2 2 0 0 0-2 2v9a2 2 0 0 0 2 2Z"/><path d="M2 8v11a2 2 0 0 0 2 2h14"/></svg>

+ 7 - 0
studio/template/images/icons/mi-nav-items.svg

@@ -0,0 +1,7 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-list-checks">
+    <path d="m3 17 2 2 4-4" />
+    <path d="m3 7 2 2 4-4" />
+    <path d="M13 6h8" />
+    <path d="M13 12h8" />
+    <path d="M13 18h8" />
+</svg>

+ 6 - 0
studio/template/images/icons/mi-nav-menus.svg

@@ -0,0 +1,6 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-square-menu">
+    <rect width="18" height="18" x="3" y="3" rx="2" />
+    <path d="M7 8h10" />
+    <path d="M7 12h10" />
+    <path d="M7 16h10" />
+</svg>

+ 8 - 0
studio/template/images/icons/mi-nav-sets.svg

@@ -0,0 +1,8 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-list">
+    <path d="M3 12h.01" />
+    <path d="M3 18h.01" />
+    <path d="M3 6h.01" />
+    <path d="M8 12h13" />
+    <path d="M8 18h13" />
+    <path d="M8 6h13" />
+</svg>

+ 1 - 0
studio/template/images/icons/mi-pgt-etemplates-html.svg

@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-gallery-vertical"><path d="M3 2h18"/><rect width="18" height="12" x="3" y="6" rx="2"/><path d="M3 22h18"/></svg>

+ 1 - 0
studio/template/images/icons/mi-pgt-etemplates-text.svg

@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-text-select"><path d="M5 3a2 2 0 0 0-2 2"/><path d="M19 3a2 2 0 0 1 2 2"/><path d="M21 19a2 2 0 0 1-2 2"/><path d="M5 21a2 2 0 0 1-2-2"/><path d="M9 3h1"/><path d="M9 21h1"/><path d="M14 3h1"/><path d="M14 21h1"/><path d="M3 9v1"/><path d="M21 9v1"/><path d="M3 14v1"/><path d="M21 14v1"/><line x1="7" x2="15" y1="8" y2="8"/><line x1="7" x2="17" y1="12" y2="12"/><line x1="7" x2="13" y1="16" y2="16"/></svg>

+ 1 - 0
studio/template/images/icons/mi-pgt-keys.svg

@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-case-upper"><path d="m3 15 4-8 4 8"/><path d="M4 13h6"/><path d="M15 11h4.5a2 2 0 0 1 0 4H15V7h4a2 2 0 0 1 0 4"/></svg>

+ 1 - 0
studio/template/images/icons/mi-pgt-settings.svg

@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-files"><path d="M20 7h-3a2 2 0 0 1-2-2V2"/><path d="M9 18a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h7l4 4v10a2 2 0 0 1-2 2Z"/><path d="M3 7.6v12.8A1.6 1.6 0 0 0 4.6 22h9.8"/></svg>

+ 1 - 0
studio/template/images/icons/mi-stg-files.svg

@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-files"><path d="M20 7h-3a2 2 0 0 1-2-2V2"/><path d="M9 18a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h7l4 4v10a2 2 0 0 1-2 2Z"/><path d="M3 7.6v12.8A1.6 1.6 0 0 0 4.6 22h9.8"/></svg>

+ 1 - 0
studio/template/images/icons/mi-stg-images.svg

@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-images"><path d="M18 22H4a2 2 0 0 1-2-2V6"/><path d="m22 13-1.296-1.296a2.41 2.41 0 0 0-3.408 0L11 18"/><circle cx="12" cy="8" r="2"/><rect width="16" height="16" x="6" y="2" rx="2"/></svg>

+ 5 - 5
studio/template/images/icons/wi-act-settings.svg

@@ -1,7 +1,7 @@
 <svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
-<path d="M2.5 12C2.5 7.52166 2.5 5.28249 3.89124 3.89124C5.28249 2.5 7.52166 2.5 12 2.5C16.4783 2.5 18.7175 2.5 20.1088 3.89124C21.5 5.28249 21.5 7.52166 21.5 12C21.5 16.4783 21.5 18.7175 20.1088 20.1088C18.7175 21.5 16.4783 21.5 12 21.5C7.52166 21.5 5.28249 21.5 3.89124 20.1088C2.5 18.7175 2.5 16.4783 2.5 12Z" stroke="#1F2937" stroke-width="1.5" stroke-linejoin="round"/>
-<path d="M8.5 10C7.67157 10 7 9.32843 7 8.5C7 7.67157 7.67157 7 8.5 7C9.32843 7 10 7.67157 10 8.5C10 9.32843 9.32843 10 8.5 10Z" stroke="#1F2937" stroke-width="1.5"/>
-<path d="M15.5 17C16.3284 17 17 16.3284 17 15.5C17 14.6716 16.3284 14 15.5 14C14.6716 14 14 14.6716 14 15.5C14 16.3284 14.6716 17 15.5 17Z" stroke="#1F2937" stroke-width="1.5"/>
-<path d="M10 8.5H17" stroke="#1F2937" stroke-width="1.5" stroke-linecap="round"/>
-<path d="M14 15.5H7" stroke="#1F2937" stroke-width="1.5" stroke-linecap="round"/>
+<path d="M2.5 12C2.5 7.52166 2.5 5.28249 3.89124 3.89124C5.28249 2.5 7.52166 2.5 12 2.5C16.4783 2.5 18.7175 2.5 20.1088 3.89124C21.5 5.28249 21.5 7.52166 21.5 12C21.5 16.4783 21.5 18.7175 20.1088 20.1088C18.7175 21.5 16.4783 21.5 12 21.5C7.52166 21.5 5.28249 21.5 3.89124 20.1088C2.5 18.7175 2.5 16.4783 2.5 12Z" stroke="currentColor" stroke-width="1.5" stroke-linejoin="round"/>
+<path d="M8.5 10C7.67157 10 7 9.32843 7 8.5C7 7.67157 7.67157 7 8.5 7C9.32843 7 10 7.67157 10 8.5C10 9.32843 9.32843 10 8.5 10Z" stroke="currentColor" stroke-width="1.5"/>
+<path d="M15.5 17C16.3284 17 17 16.3284 17 15.5C17 14.6716 16.3284 14 15.5 14C14.6716 14 14 14.6716 14 15.5C14 16.3284 14.6716 17 15.5 17Z" stroke="currentColor" stroke-width="1.5"/>
+<path d="M10 8.5H17" stroke="currentColor" stroke-width="1.5" stroke-linecap="round"/>
+<path d="M14 15.5H7" stroke="currentColor" stroke-width="1.5" stroke-linecap="round"/>
 </svg>

+ 2 - 2
studio/template/images/icons/wi-act-uninstall.svg

@@ -1,4 +1,4 @@
 <svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
-<path d="M15 9L9 14.9996M15 15L9 9.00039" stroke="#27272A" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
-<path d="M2.5 12C2.5 7.52166 2.5 5.28249 3.89124 3.89124C5.28249 2.5 7.52166 2.5 12 2.5C16.4783 2.5 18.7175 2.5 20.1088 3.89124C21.5 5.28249 21.5 7.52166 21.5 12C21.5 16.4783 21.5 18.7175 20.1088 20.1088C18.7175 21.5 16.4783 21.5 12 21.5C7.52166 21.5 5.28249 21.5 3.89124 20.1088C2.5 18.7175 2.5 16.4783 2.5 12Z" stroke="#27272A" stroke-width="1.5"/>
+<path d="M15 9L9 14.9996M15 15L9 9.00039" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
+<path d="M2.5 12C2.5 7.52166 2.5 5.28249 3.89124 3.89124C5.28249 2.5 7.52166 2.5 12 2.5C16.4783 2.5 18.7175 2.5 20.1088 3.89124C21.5 5.28249 21.5 7.52166 21.5 12C21.5 16.4783 21.5 18.7175 20.1088 20.1088C18.7175 21.5 16.4783 21.5 12 21.5C7.52166 21.5 5.28249 21.5 3.89124 20.1088C2.5 18.7175 2.5 16.4783 2.5 12Z" stroke="currentColor" stroke-width="1.5"/>
 </svg>

+ 1 - 1
studio/template/page_menu.html

@@ -3,7 +3,7 @@
         <div>__title__</div>
         <bx_if:show_actions>
             <div>
-                <a class="bx-std-pcm-actions bx-btn" href="javascript:void(0)" onclick="__onclick__" title="<bx_text_attribute:_adm_txt_show_actions />">
+                <a class="bx-std-pcm-actions flex justify-center items-center w-10 h-10 bg-gray-200 hover:bg-gray-100 border border-black/10 rounded-lg text-gray-600" href="javascript:void(0)" onclick="__onclick__" title="<bx_text_attribute:_adm_txt_show_actions />">
                     <img src="<bx_icon_url:mi-cog.svg />" />
                 </a>
             </div>

+ 20 - 20
studio/template/scripts/BxBaseStudioBuilderPage.php

@@ -113,35 +113,35 @@ class BxBaseStudioBuilderPage extends BxDolStudioBuilderPage
         return 'oBxDolStudioBuilderPage';
     }
 
-    function getPageMenu($aMenu = array(), $aMarkers = array())
+    function getPageMenu($aMenu = [], $aMarkers = [])
     {
-        $aMenuItems = array(
-            BX_DOL_STUDIO_MODULE_SYSTEM => array(
+        $aMenuItems = [
+            BX_DOL_STUDIO_MODULE_SYSTEM => [
                 'name' => BX_DOL_STUDIO_MODULE_SYSTEM,
-                'icon' => 'mi-cog.svg',
-                'icon_bg' => true
-            ),
-            BX_DOL_STUDIO_MODULE_CUSTOM => array(
+                'icon' => 'mi-bp-system.svg',
+                'icon_bg' => true,
+                'title' => '_adm_bp_cpt_type_' . BX_DOL_STUDIO_MODULE_SYSTEM,
+            ],
+            BX_DOL_STUDIO_MODULE_CUSTOM => [
                 'name' => BX_DOL_STUDIO_MODULE_CUSTOM,
-                'icon' => 'mi-wrench.svg',
+                'icon' => 'mi-bp-custom.svg',
                 'icon_bg' => true,
                 'title' => '_adm_bp_cpt_type_' . BX_DOL_STUDIO_MODULE_CUSTOM,
-            )
-        );
+            ]
+        ];
 
-        $aModulesDb = BxDolModuleQuery::getInstance()->getModulesBy(array('type' => 'type', 'value' => array(BX_DOL_MODULE_TYPE_MODULE, BX_DOL_MODULE_TYPE_TEMPLATE)));
+        $aModulesDb = BxDolModuleQuery::getInstance()->getModulesBy(['type' => 'type', 'value' => [BX_DOL_MODULE_TYPE_MODULE, BX_DOL_MODULE_TYPE_TEMPLATE]]);
         foreach($aModulesDb as $aModuleDb) {
             $sName = $aModuleDb['name'];
+            if($sName == BX_DOL_STUDIO_MODULE_SYSTEM)
+                continue;
 
-            if(!empty($aMenuItems[$sName]))
-                $aMenuItems[$sName] = array_merge($aMenuItems[$sName], $aModuleDb);
-            else
-                $aMenuItems[$sName] = $aModuleDb;
-
-            $aMenuItems[$sName]['title'] = BxDolStudioUtils::getModuleTitle($sName);
-
-            if(empty($aMenuItems[$sName]['icon']))
-                $aMenuItems[$sName]['icon'] = BxDolStudioUtils::getModuleIcon($aModuleDb, 'menu', false); 
+            $aMenuItems[] = [
+                'name' => $sName,
+                'icon' => BxDolStudioUtils::getModuleIcon($aModuleDb, 'menu', false),
+                'icon_bg' => false,
+                'title' => BxDolStudioUtils::getModuleTitle($sName)
+            ]; 
         }
 
         $aMenu = [];

+ 15 - 14
studio/template/scripts/BxBaseStudioDesigner.php

@@ -53,29 +53,30 @@ class BxBaseStudioDesigner extends BxDolStudioDesigner
     	return parent::getPageJsCode($aOptions, $bWrap);
     }
 
-    public function getPageMenu($aMenu = array(), $aMarkers = array())
+    public function getPageMenu($aMenu = [], $aMarkers = [])
     {
         $sJsObject = $this->getPageJsObject();
 
-        $aMenu = array();
-        $aMenuItems = array(
-            BX_DOL_STUDIO_DSG_TYPE_GENERAL => array('icon' => 'globe'),
-            BX_DOL_STUDIO_DSG_TYPE_LOGO => array('icon' => 'pencil-alt'),
-            BX_DOL_STUDIO_DSG_TYPE_ICON => array('icon' => 'far image'),
-            BX_DOL_STUDIO_DSG_TYPE_COVER => array('icon' => 'far file-image'),
-            BX_DOL_STUDIO_DSG_TYPE_SPLASH => array('icon' => 'far file-image'),
-            BX_DOL_STUDIO_DSG_TYPE_INJECTIONS => array('icon' => 'object-group'),
-            BX_DOL_STUDIO_DSG_TYPE_PWA => array('icon' => 'cubes'),
-            BX_DOL_STUDIO_DSG_TYPE_SETTINGS => array('icon' => 'cogs'),
-        );
+        $aMenu = [];
+        $aMenuItems = [
+            BX_DOL_STUDIO_DSG_TYPE_GENERAL => ['icon' => 'mi-dsg-general.svg'],
+            BX_DOL_STUDIO_DSG_TYPE_LOGO => ['icon' => 'mi-dsg-logo.svg'],
+            BX_DOL_STUDIO_DSG_TYPE_ICON => ['icon' => 'mi-dsg-icon.svg'],
+            BX_DOL_STUDIO_DSG_TYPE_COVER => ['icon' => 'mi-dsg-cover.svg'],
+            BX_DOL_STUDIO_DSG_TYPE_SPLASH => ['icon' => 'mi-dsg-splash.svg'],
+            BX_DOL_STUDIO_DSG_TYPE_INJECTIONS => ['icon' => 'mi-dsg-injections.svg'],
+            BX_DOL_STUDIO_DSG_TYPE_PWA => ['icon' => 'mi-dsg-pwa.svg'],
+            BX_DOL_STUDIO_DSG_TYPE_SETTINGS => ['icon' => 'mi-dsg-settings.svg'],
+        ];
         foreach($aMenuItems as $sMenuItem => $aItem)
-            $aMenu[] = array(
+            $aMenu[] = [
                 'name' => $sMenuItem,
                 'icon' => $aItem['icon'],
+                'icon_bg' => true,
                 'link' => BX_DOL_URL_STUDIO . 'designer.php?page=' . $sMenuItem,
                 'title' => _t('_adm_lmi_cpt_' . $sMenuItem),
                 'selected' => $sMenuItem == $this->sPage
-            );
+            ];
 
         return parent::getPageMenu($aMenu);
     }

+ 21 - 14
studio/template/scripts/BxBaseStudioFunctions.php

@@ -98,29 +98,36 @@ class BxBaseStudioFunctions extends BxBaseFunctions implements iBxDolSingleton
                 $sActionIcon = $aAction['icon'];
                 $bActionIcon = strpos($sActionIcon, '.') === false;
 
-                if(!$bActionIcon)
+                $bActionIconInline = !$bActionIcon;
+                if($bActionIconInline && ($sActionIcon = $oTemplate->getIconContent($sActionIcon)) === false) {
                     $sActionIcon = $oTemplate->getIconUrl($sActionIcon);
+                    $bActionIconInline = false;
+                }
 
                 $sCaption = _t($aAction['caption']);
-                $aTmplVarsAction = array(
+                $aTmplVarsAction = [
                     'name' => !empty($aAction['name']) ? $aAction['name'] : $sPage . '-' . $iIndex,
                     'caption' => $sCaption,
                     'url' => !empty($aAction['url']) ? bx_replace_markers($aAction['url'], $aMarkers) : 'javascript:void(0)',
-                    'bx_if:show_click' => array(
+                    'bx_if:show_click' => [
                         'condition' => !empty($aAction['click']),
-                        'content' => array(
+                        'content' => [
                             'content' => 'javascript:' . $aAction['click'],
-                        )
-                    ),
-                    'bx_if:action_icon' => array (
+                        ]
+                    ],
+                    'bx_if:action_icon' => [
                         'condition' => $bActionIcon,
-                        'content' => array('icon' => $sActionIcon, 'caption' => $sCaption),
-                    ),
-                    'bx_if:action_image' => array (
-                        'condition' => !$bActionIcon,
-                        'content' => array('icon_url' => $sActionIcon, 'caption' => $sCaption),
-                    ),
-                );
+                        'content' => ['name' => $sActionIcon, 'caption' => $sCaption],
+                    ],
+                    'bx_if:action_image' => [
+                        'condition' => !$bActionIcon && !$bActionIconInline,
+                        'content' => ['url' => $sActionIcon, 'caption' => $sCaption],
+                    ],
+                    'bx_if:action_image_inline' => [
+                        'condition' => !$bActionIcon && $bActionIconInline,
+                        'content' => ['content' => $sActionIcon],
+                    ],
+                ];
 
                 if(in_array($aAction['name'], ['settings']))
                     $aTmplVarsActionsLeft[] = $aTmplVarsAction;

+ 12 - 20
studio/template/scripts/BxBaseStudioMenu.php

@@ -39,27 +39,19 @@ class BxBaseStudioMenu extends BxDolStudioMenu
             return $aItem;
 
         $aItem['class'] = isset($aItem['class']) ? $aItem['class'] : '';
-        if($this->_bInlineIcons && $aItem['bx_if:image']['condition'] && strpos($aItem['icon'], '.svg') !== false) {
-            $sImage = '';
-            if(($sIconPath = $this->_oTemplate->getIconPath($aItem['icon'])))
-                $sImage = file_get_contents($sIconPath);
-            else 
-                $sImage = bx_file_get_contents($aItem['icon']);
-
-            if($sImage)            
-                $aItem = array_merge($aItem, [
-                    'bx_if:image' => [
-                        'condition' => false,
-                        'content' => [],
-                    ],
-                    'bx_if:image_inline' => [
-                        'condition' => true,
-                        'content' => [
-                            'image' => $sImage
-                        ],
+        if($this->_bInlineIcons && $aItem['bx_if:image']['condition'] && ($sImage = $this->_oTemplate->getIconContent($aItem['icon'])) !== false)
+            $aItem = array_merge($aItem, [
+                'bx_if:image' => [
+                    'condition' => false,
+                    'content' => [],
+                ],
+                'bx_if:image_inline' => [
+                    'condition' => true,
+                    'content' => [
+                        'image' => $sImage
                     ],
-                ]);
-        }
+                ],
+            ]);
 
         if($this->_bMenuSide) {
             $aItem['bx_if:show_icon'] = [

+ 19 - 10
studio/template/scripts/BxBaseStudioModule.php

@@ -62,7 +62,7 @@ class BxBaseStudioModule extends BxDolStudioModule
             'js_code' => $this->getPageJsCode()
         ));
     }
-
+/*
     function getPageAttributes()
     {
         if((int)$this->aModule['enabled'] == 0)
@@ -70,23 +70,32 @@ class BxBaseStudioModule extends BxDolStudioModule
 
         return parent::getPageAttributes();
     }
-
+*/
     function getPageMenu($aMenu = array(), $aMarkers = array())
     {
         $sJsObject = $this->getPageJsObject();
 
-        $aMenu = array();
-        foreach($this->aMenuItems as $sName => $aItem)
-            $aMenu[] = array_merge($aItem, [
-                'name' => $sName,
-                'link' => isset($aItem['link'])  ? $aItem['link'] : bx_append_url_params($this->sManageUrl, array('page' => $sName)),
-                'title' => _t(!empty($aItem['title']) ? $aItem['title'] : $aItem['caption']),
-                'selected' => $sName == $this->sPage
-            ]);
+        $aMenu = [];
+        if((int)$this->aModule['enabled'] != 0)
+            foreach($this->aMenuItems as $sName => $aItem)
+                $aMenu[] = array_merge($aItem, [
+                    'name' => $sName,
+                    'link' => isset($aItem['link'])  ? $aItem['link'] : bx_append_url_params($this->sManageUrl, ['page' => $sName]),
+                    'title' => _t(!empty($aItem['title']) ? $aItem['title'] : $aItem['caption']),
+                    'selected' => $sName == $this->sPage
+                ]);
 
         return parent::getPageMenu($aMenu);
     }
 
+    public function getPageCode($sPage = '', $bWrap = true)
+    {
+        if((int)$this->aModule['enabled'] == 0)
+            return '';
+
+        return parent::getPageCode($sPage, $bWrap);
+    }
+
     protected function getSettings()
     {
         $oOptions = new BxTemplStudioOptions($this->sModule);

+ 15 - 14
studio/template/scripts/BxBaseStudioNavigation.php

@@ -19,11 +19,11 @@ class BxBaseStudioNavigation extends BxDolStudioNavigation
 
         $this->sSubpageUrl = BX_DOL_URL_STUDIO . 'builder_menu.php?page=';
 
-        $this->aGridObjects = array(
-	        'menus' => 'sys_studio_nav_menus',
-	        'sets' => 'sys_studio_nav_sets',
-	        'items' => 'sys_studio_nav_items'
-	    );
+        $this->aGridObjects = [
+            'menus' => 'sys_studio_nav_menus',
+            'sets' => 'sys_studio_nav_sets',
+            'items' => 'sys_studio_nav_items'
+        ];
     }
     function getPageCss()
     {
@@ -37,24 +37,25 @@ class BxBaseStudioNavigation extends BxDolStudioNavigation
     {
         return '';
     }
-    function getPageMenu($aMenu = array(), $aMarkers = array())
+    function getPageMenu($aMenu = [], $aMarkers = [])
     {
         $sJsObject = $this->getPageJsObject();
 
-        $aMenu = array();
-        $aMenuItems = array(
-            BX_DOL_STUDIO_NAV_TYPE_MENUS => array('icon' => 'sitemap'),
-            BX_DOL_STUDIO_NAV_TYPE_SETS => array('icon' => 'align-justify'),
-            BX_DOL_STUDIO_NAV_TYPE_ITEMS => array('icon' => 'indent')
-        );
+        $aMenu = [];
+        $aMenuItems = [
+            BX_DOL_STUDIO_NAV_TYPE_MENUS => ['icon' => 'mi-nav-menus.svg'],
+            BX_DOL_STUDIO_NAV_TYPE_SETS => ['icon' => 'mi-nav-sets.svg'],
+            BX_DOL_STUDIO_NAV_TYPE_ITEMS => ['icon' => 'mi-nav-items.svg']
+        ];
         foreach($aMenuItems as $sMenuItem => $aItem)
-            $aMenu[] = array(
+            $aMenu[] = [
                 'name' => $sMenuItem,
                 'icon' => $aItem['icon'],
+                'icon_bg' => true,
                 'link' => $this->sSubpageUrl . $sMenuItem,
                 'title' => _t('_adm_lmi_cpt_' . $sMenuItem),
                 'selected' => $sMenuItem == $this->sPage
-            );
+            ];
 
         return parent::getPageMenu($aMenu);
     }

+ 5 - 3
studio/template/scripts/BxBaseStudioPage.php

@@ -172,10 +172,12 @@ class BxBaseStudioPage extends BxDolStudioPage
         return '';
     }
 
-    public function getPageMenu($aMenu = array(), $aMarkers = array())
+    public function getPageMenu($aMenu = [], $aMarkers = [])
     {
-        $oMenu = $this->getPageMenuObject($aMenu, $aMarkers);
-        return $oMenu->getCode();
+        if($aMenu === false)
+            return '';
+
+        return $this->getPageMenuObject($aMenu, $aMarkers)->getCode();
     }
 
     public function getPageCode($sPage = '', $bWrap = true) {

+ 26 - 25
studio/template/scripts/BxBaseStudioPolyglot.php

@@ -26,23 +26,17 @@ class BxBaseStudioPolyglot extends BxDolStudioPolyglot
         
         $this->sSubpageUrl = BX_DOL_URL_STUDIO . 'polyglot.php?page=';
 
-        $this->aMenuItems = array(
-            BX_DOL_STUDIO_PGT_TYPE_SETTINGS => array('icon' => 'cogs'),
-            BX_DOL_STUDIO_PGT_TYPE_KEYS => array('icon' => 'key'),
-            BX_DOL_STUDIO_PGT_TYPE_ETEMPLATES => array('icon' => 'far envelope'),
-            /*
-             * Isn't used for now.
-             * 
-            BX_DOL_STUDIO_PGT_TYPE_ETEMPLATES_HF => array('icon' => 'far sticky-note'),
-             * 
-             */
-            BX_DOL_STUDIO_PGT_TYPE_ETEMPLATES_CREATIVE => array('icon' => 'far object-group')
-        );
+        $this->aMenuItems = [
+            BX_DOL_STUDIO_PGT_TYPE_SETTINGS => ['icon' => 'mi-pgt-settings.svg'],
+            BX_DOL_STUDIO_PGT_TYPE_KEYS => ['icon' => 'mi-pgt-keys.svg'],
+            BX_DOL_STUDIO_PGT_TYPE_ETEMPLATES_TEXT => ['icon' => 'mi-pgt-etemplates-text.svg'],
+            BX_DOL_STUDIO_PGT_TYPE_ETEMPLATES_HTML => ['icon' => 'mi-pgt-etemplates-html.svg']
+        ];
 
-        $this->aGridObjects = array(
+        $this->aGridObjects = [
             'keys' => 'sys_studio_lang_keys',
             'etemplates' => 'sys_studio_lang_etemplates',
-        );
+        ];
 
         $this->aHtmlIds = [
             'etc_builder_id' => 'adm-pgt-etc-builder',
@@ -58,24 +52,28 @@ class BxBaseStudioPolyglot extends BxDolStudioPolyglot
         return parent::getPageJsCode($aOptions, $bWrap);
     }
 
-    public function getPageMenu($aMenu = array(), $aMarkers = array())
+    public function getPageMenu($aMenu = [], $aMarkers = [])
     {
+        if($this->aMenuItems === false)
+            return '';
+
         $sJsObject = $this->getPageJsObject();
 
-        $aMenu = array();
+        $aMenu = [];
         foreach($this->aMenuItems as $sMenuItem => $aItem)
-            $aMenu[] = array(
+            $aMenu[] = [
                 'name' => $sMenuItem,
                 'icon' => $aItem['icon'],
+                'icon_bg' => true,
                 'link' => $this->sSubpageUrl . $sMenuItem,
                 'title' => _t('_adm_lmi_cpt_' . $sMenuItem),
                 'selected' => $sMenuItem == $this->sPage
-            );
+            ];
 
         return parent::getPageMenu($aMenu);
     }
 
-    protected function getSettings()
+    protected function getPgtSettings()
     {
         $oOptions = new BxTemplStudioOptions(BX_DOL_STUDIO_STG_TYPE_DEFAULT, BX_DOL_STUDIO_STG_CATEGORY_LANGUAGES);
 
@@ -87,17 +85,20 @@ class BxBaseStudioPolyglot extends BxDolStudioPolyglot
         ));
     }
 
-    protected function getKeys()
+    protected function getPgtKeys()
     {
         return $this->getGrid($this->aGridObjects['keys']);
     }
 
-    protected function getEtemplates()
+    protected function getEtemplatesText()
     {
         return $this->getGrid($this->aGridObjects['etemplates']);
     }
 
-    protected function getEtemplatesHf()
+    /**
+     * TODO: Remove (after UNA 14) if new version is working fine.
+     */
+    protected function getEtemplatesHtmlOld()
     {
         $oTemplate = BxDolStudioTemplate::getInstance();
 
@@ -162,7 +163,7 @@ class BxBaseStudioPolyglot extends BxDolStudioPolyglot
         $oForm->initChecker();
 
         if($oForm->isSubmittedAndValid()) {
-            echo $this->submitEtemplatesHf($oForm);
+            echo $this->submitEtemplatesHtmlOld($oForm);
             exit;
         }
 
@@ -181,7 +182,7 @@ class BxBaseStudioPolyglot extends BxDolStudioPolyglot
         ));
     }
 
-    protected function getEtemplatesCreative()
+    protected function getEtemplatesHtml()
     {
         $oTemplate = BxDolStudioTemplate::getInstance();
 
@@ -247,7 +248,7 @@ class BxBaseStudioPolyglot extends BxDolStudioPolyglot
         $oForm->initChecker();
 
         if($oForm->isSubmittedAndValid()) {
-            echo $this->submitEtemplatesCreative($oForm);
+            echo $this->submitEtemplatesHtml($oForm);
             exit;
         }
 

+ 6 - 5
studio/template/scripts/BxBaseStudioSettings.php

@@ -34,21 +34,22 @@ class BxBaseStudioSettings extends BxDolStudioSettings
     {
         $sType = $this->oOptions->getType();
 
-        $aTypes = $aMenu = array();
-        if($this->oDb->getTypes(array('type' => 'all', 'not_in_group' => array(BX_DOL_STUDIO_STG_GROUP_TEMPLATES)), $aTypes) > 0 ) {
-            $aTypesGrouped = array();
+        $aTypes = $aMenu = [];
+        if($this->oDb->getTypes(['type' => 'all', 'not_in_group' =>[BX_DOL_STUDIO_STG_GROUP_TEMPLATES]], $aTypes) > 0 ) {
+            $aTypesGrouped = [];
             foreach($aTypes as $aType)
                 $aTypesGrouped[$aType['group']][] = $aType;
 
             foreach($aTypesGrouped as $sGroup => $aTypes)
                 foreach($aTypes as $aType)
-                    $aMenu[] = array(
+                    $aMenu[] = [
                         'name' => $aType['name'],
                         'icon' => $this->getMenuIcon($sGroup, $aType),
+                        'icon_bg' => $aType['name'] == 'system',
                         'link' => BX_DOL_URL_STUDIO . 'settings.php?page=' . $aType['name'],
                         'title' => $aType['caption'],
                         'selected' => $aType['name'] == $sType
-                    );
+                    ];
         }
 
         return parent::getPageMenu($aMenu);

+ 9 - 8
studio/template/scripts/BxBaseStudioStorages.php

@@ -17,10 +17,10 @@ class BxBaseStudioStorages extends BxDolStudioStorages
     {
         parent::__construct($sPage);
 
-        $this->aStorages = array(
-            BX_DOL_STUDIO_STRG_TYPE_FILES => array('icon' => 'far file'),
-            BX_DOL_STUDIO_STRG_TYPE_IMAGES => array('icon' => 'far file-image')
-        );
+        $this->aStorages = [
+            BX_DOL_STUDIO_STRG_TYPE_FILES => ['icon' => 'mi-stg-files.svg'],
+            BX_DOL_STUDIO_STRG_TYPE_IMAGES => ['icon' => 'mi-stg-images.svg']
+        ];
 
         $this->sSubpageUrl = BX_DOL_URL_STUDIO . 'storages.php?page=';
     }
@@ -40,17 +40,18 @@ class BxBaseStudioStorages extends BxDolStudioStorages
         return '';
     }
 
-    function getPageMenu($aMenu = array(), $aMarkers = array())
+    function getPageMenu($aMenu = [], $aMarkers = [])
     {
-        $aMenu = array();
+        $aMenu = [];
         foreach($this->aStorages as $sName => $aStorage)
-            $aMenu[] = array(
+            $aMenu[] = [
                 'name' => $sName,
                 'icon' => $aStorage['icon'],
+                'icon_bg' => true,
                 'link' => $this->sSubpageUrl . $sName,
                 'title' => _t('_adm_lmi_cpt_' . $sName),
                 'selected' => $sName == $this->sPage
-            );
+            ];
 
         return parent::getPageMenu($aMenu);
     }

+ 14 - 12
studio/template/scripts/BxBaseStudioStore.php

@@ -40,24 +40,26 @@ class BxBaseStudioStore extends BxDolStudioStore
 
         $aMenu = [];
         $aMenuItems = [
-            'goodies' => ['icon' => 'mi-str-home.svg', 'icon_bg' => true],
-            'latest' => ['icon' => 'mi-str-latest.svg', 'icon_bg' => true],
-            'featured' => ['icon' => 'mi-str-featured.svg', 'icon_bg' => true],
-            'popular' => ['icon' => 'mi-str-popular.svg', 'icon_bg' => true],
-            'categories' => ['icon' => 'mi-str-categories.svg', 'icon_bg' => true],
-            'search' => ['icon' => 'mi-str-search.svg', 'icon_bg' => true],
-            'purchases' => ['icon' => 'mi-str-purchases.svg', 'icon_bg' => true], 
-            'updates' => ['icon' => 'mi-str-updates.svg', 'icon_bg' => true], 
-            'checkout' => ['icon' => 'mi-str-checkout.svg', 'icon_bg' => true], 
-            'downloaded' => ['icon' => 'mi-str-downloaded.svg', 'icon_bg' => true]
+            'goodies' => ['icon' => 'mi-str-home.svg'],
+            'latest' => ['icon' => 'mi-str-latest.svg'],
+            'featured' => ['icon' => 'mi-str-featured.svg'],
+            'popular' => ['icon' => 'mi-str-popular.svg'],
+            'categories' => ['icon' => 'mi-str-categories.svg'],
+            'search' => ['icon' => 'mi-str-search.svg'],
+            'purchases' => ['icon' => 'mi-str-purchases.svg'], 
+            'updates' => ['icon' => 'mi-str-updates.svg'], 
+            'checkout' => ['icon' => 'mi-str-checkout.svg'], 
+            'downloaded' => ['icon' => 'mi-str-downloaded.svg']
         ];
         foreach($aMenuItems as $sMenuItem => $aItem)
-            $aMenu[] = array_merge($aItem, [
+            $aMenu[] = [
                 'name' => $sMenuItem,
+                'icon' => $aItem['icon'],
+                'icon_bg' => true,
                 'link' => $this->getBaseUrl($sMenuItem),
                 'title' => _t('_adm_lmi_cpt_' . $sMenuItem),
                 'selected' => $sMenuItem == $this->sPage
-            ]);
+            ];
 
         $iCounter = BxDolStudioCart::getInstance()->getCount();
 

+ 5 - 6
studio/template/scripts/BxBaseStudioWidget.php

@@ -122,14 +122,13 @@ class BxBaseStudioWidget extends BxDolStudioWidget
 
     public function getPageMenu($aMenu = [], $aMarkers = [])
     {
-        $sMenu = parent::getPageMenu($aMenu, $aMarkers);
-        if(!$sMenu || !$this->bPageMenuTitle)
-            return $sMenu;
+        if(!$this->bPageMenuTitle && $aMenu === false)
+            return '';
 
         $oTemplate = BxDolStudioTemplate::getInstance();
 
         $bActions = false;
-        if(($sActions = $this->getPageCaptionActions()) && ($bActions = strlen($sActions)) > 0)
+        if($this->bPageMenuTitle && ($sActions = $this->getPageCaptionActions()) && ($bActions = strlen($sActions)) > 0)
             $oTemplate->addInjection('injection_header', 'text', BxTemplStudioFunctions::getInstance()->transBox('bx-std-pmenu-popup-actions', $sActions, true));
 
         return $oTemplate->parseHtmlByName('page_menu.html', [
@@ -140,7 +139,7 @@ class BxBaseStudioWidget extends BxDolStudioWidget
                     'onclick' => BX_DOL_STUDIO_PAGE_JS_OBJECT . ".togglePopup('actions', this)",
                 ]
             ],
-            'menu' => $sMenu
+            'menu' => parent::getPageMenu($aMenu, $aMarkers)
         ]);
     }
 
@@ -149,7 +148,7 @@ class BxBaseStudioWidget extends BxDolStudioWidget
         $sResult = parent::getPageCode($sPage, $bWrap);
         if($sResult === false)
             return false;
-
+ 
         if(!empty($this->aPage['wid_type']) && !BxDolStudioRolesUtils::getInstance()->isActionAllowed('use ' . $this->aPage['wid_type'])) {
             $this->setError('_Access denied');
             return false;

+ 10 - 8
studio/template/widget.html

@@ -17,10 +17,11 @@
             <div class="bx-std-widget-actions left">
                 <div class="bx-std-widget-actions-cnt">
                     <bx_repeat:actions>
-                        <div class="bx-std-widget-action bx-def-box-sizing">
-                            <a class="bx-std-widget-action bx-std-wa-__name__" href="__url__" <bx_if:show_click>onClick="__content__"</bx_if:show_click> title="__caption__">
-                                <bx_if:action_icon><i class="sys-icon __icon__" alt="__caption__"></i></bx_if:action_icon>
-                                <bx_if:action_image><img src="__icon_url__"  alt="__caption__" /></bx_if:action_image>
+                        <div class="bx-std-widget-action bg-gray-200 border border-black/10 rounded-2xl">
+                            <a class="bx-std-widget-action bx-std-wa-__name__ text-gray-600 hover:text-gray-700" href="__url__" <bx_if:show_click>onClick="__content__"</bx_if:show_click> title="__caption__">
+                                <bx_if:action_icon><i class="sys-icon __name__" alt="__caption__"></i></bx_if:action_icon>
+                                <bx_if:action_image><img src="__url__"  alt="__caption__" /></bx_if:action_image>
+                                <bx_if:action_image_inline>__content__</bx_if:action_image_inline>
                             </a>
                         </div>
                     </bx_repeat:actions>
@@ -31,10 +32,11 @@
             <div class="bx-std-widget-actions right">
                 <div class="bx-std-widget-actions-cnt">
                     <bx_repeat:actions>
-                        <div class="bx-std-widget-action bx-def-box-sizing">
-                            <a class="bx-std-widget-action bx-std-wa-__name__" href="__url__" <bx_if:show_click>onClick="__content__"</bx_if:show_click> title="__caption__">
-                                <bx_if:action_icon><i class="sys-icon __icon__" alt="__caption__"></i></bx_if:action_icon>
-                                <bx_if:action_image><img src="__icon_url__"  alt="__caption__" /></bx_if:action_image>
+                        <div class="bx-std-widget-action bg-gray-200 border border-black/10 rounded-2xl">
+                            <a class="bx-std-widget-action bx-std-wa-__name__ text-gray-600 hover:text-gray-700" href="__url__" <bx_if:show_click>onClick="__content__"</bx_if:show_click> title="__caption__">
+                                <bx_if:action_icon><i class="sys-icon __name__" alt="__caption__"></i></bx_if:action_icon>
+                                <bx_if:action_image><img src="__url__"  alt="__caption__" /></bx_if:action_image>
+                                <bx_if:action_image_inline>__content__</bx_if:action_image_inline>
                             </a>
                         </div>
                     </bx_repeat:actions>

Niektóre pliki nie zostały wyświetlone z powodu dużej ilości zmienionych plików