pengyuthon
@@ -0,0 +1 @@
|
|||||||
|
# -*- coding: utf-8 -*-
|
||||||
@@ -0,0 +1,50 @@
|
|||||||
|
# -*- coding: utf-8 -*-
|
||||||
|
{
|
||||||
|
'name': "akl_multi_tab_plugin",
|
||||||
|
|
||||||
|
'summary': """
|
||||||
|
akl multi tab plugin for odoo""",
|
||||||
|
|
||||||
|
'description': """
|
||||||
|
akl multi tab plugin
|
||||||
|
multi tab,
|
||||||
|
multi tab theme,
|
||||||
|
odoo theme
|
||||||
|
""",
|
||||||
|
|
||||||
|
'author': 'ylhc',
|
||||||
|
'website': 'https://www.openerpnext.com',
|
||||||
|
'live_test_url': 'https://www.openerpnext.com',
|
||||||
|
|
||||||
|
'category': 'Backend/Theme',
|
||||||
|
'version': '17.0.0.3',
|
||||||
|
'license': 'OPL-1',
|
||||||
|
'images': ['static/description/banner.png',
|
||||||
|
'static/description/akl_screenshot.png'],
|
||||||
|
|
||||||
|
'depends': ['base', 'web'],
|
||||||
|
|
||||||
|
"application": False,
|
||||||
|
"installable": True,
|
||||||
|
"auto_install": False,
|
||||||
|
|
||||||
|
'price': 200.00,
|
||||||
|
'currency': 'USD',
|
||||||
|
|
||||||
|
'data': [],
|
||||||
|
|
||||||
|
'assets': {
|
||||||
|
'web.assets_backend': [
|
||||||
|
|
||||||
|
'akl_multi_tab_plugin/static/src/components/multi_tab/akl_multi_tab.scss',
|
||||||
|
'akl_multi_tab_plugin/static/src/akl_action_container.scss',
|
||||||
|
|
||||||
|
'akl_multi_tab_plugin/static/src/components/multi_tab/akl_multi_tab.js',
|
||||||
|
'akl_multi_tab_plugin/static/src/components/multi_tab/akl_multi_tab.xml',
|
||||||
|
|
||||||
|
'akl_multi_tab_plugin/static/src/akl_action_container.js',
|
||||||
|
'akl_multi_tab_plugin/static/src/akl_action_service.js',
|
||||||
|
'akl_multi_tab_plugin/static/src/akl_list_patch.js'
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,96 @@
|
|||||||
|
# Translation of Odoo Server.
|
||||||
|
# This file contains the translation of the following modules:
|
||||||
|
# * akl_multi_tab_plugin
|
||||||
|
#
|
||||||
|
msgid ""
|
||||||
|
msgstr ""
|
||||||
|
"Project-Id-Version: Odoo Server 16.0\n"
|
||||||
|
"Report-Msgid-Bugs-To: \n"
|
||||||
|
"POT-Creation-Date: 2023-05-19 02:10+0000\n"
|
||||||
|
"PO-Revision-Date: 2023-05-19 02:10+0000\n"
|
||||||
|
"Last-Translator: \n"
|
||||||
|
"Language-Team: \n"
|
||||||
|
"MIME-Version: 1.0\n"
|
||||||
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
|
"Content-Transfer-Encoding: \n"
|
||||||
|
"Plural-Forms: \n"
|
||||||
|
|
||||||
|
#. module: akl_multi_tab_plugin
|
||||||
|
#. odoo-javascript
|
||||||
|
#: code:addons/akl_multi_tab_plugin/static/src/akl_action_service.js:0
|
||||||
|
#, python-format
|
||||||
|
msgid ""
|
||||||
|
"A popup window has been blocked. You may need to change your browser "
|
||||||
|
"settings to allow popup windows for this page."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: akl_multi_tab_plugin
|
||||||
|
#. odoo-javascript
|
||||||
|
#: code:addons/akl_multi_tab_plugin/static/src/components/multi_tab/akl_multi_tab.js:0
|
||||||
|
#, python-format
|
||||||
|
msgid "Close All Tabs"
|
||||||
|
msgstr "关闭所有"
|
||||||
|
|
||||||
|
#. module: akl_multi_tab_plugin
|
||||||
|
#. odoo-javascript
|
||||||
|
#: code:addons/akl_multi_tab_plugin/static/src/components/multi_tab/akl_multi_tab.js:0
|
||||||
|
#, python-format
|
||||||
|
msgid "Close Current Tab"
|
||||||
|
msgstr "关闭当前"
|
||||||
|
|
||||||
|
#. module: akl_multi_tab_plugin
|
||||||
|
#. odoo-javascript
|
||||||
|
#: code:addons/akl_multi_tab_plugin/static/src/components/multi_tab/akl_multi_tab.js:0
|
||||||
|
#, python-format
|
||||||
|
msgid "Close Other Tabs"
|
||||||
|
msgstr "关闭其它"
|
||||||
|
|
||||||
|
#. module: akl_multi_tab_plugin
|
||||||
|
#. odoo-javascript
|
||||||
|
#: code:addons/akl_multi_tab_plugin/static/src/akl_action_service.js:0
|
||||||
|
#, python-format
|
||||||
|
msgid "No view of type '%s' could be found in the current action."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: akl_multi_tab_plugin
|
||||||
|
#. odoo-javascript
|
||||||
|
#: code:addons/akl_multi_tab_plugin/static/src/akl_action_service.js:0
|
||||||
|
#, python-format
|
||||||
|
msgid "Report"
|
||||||
|
msgstr "报告"
|
||||||
|
|
||||||
|
#. module: akl_multi_tab_plugin
|
||||||
|
#. odoo-javascript
|
||||||
|
#: code:addons/akl_multi_tab_plugin/static/src/akl_action_service.js:0
|
||||||
|
#, python-format
|
||||||
|
msgid ""
|
||||||
|
"Unable to find Wkhtmltopdf on this system. The report will be shown in html."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: akl_multi_tab_plugin
|
||||||
|
#. odoo-javascript
|
||||||
|
#: code:addons/akl_multi_tab_plugin/static/src/akl_action_service.js:0
|
||||||
|
#, python-format
|
||||||
|
msgid ""
|
||||||
|
"You need to start Odoo with at least two workers to print a pdf version of "
|
||||||
|
"the reports."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: akl_multi_tab_plugin
|
||||||
|
#. odoo-javascript
|
||||||
|
#: code:addons/akl_multi_tab_plugin/static/src/akl_action_service.js:0
|
||||||
|
#, python-format
|
||||||
|
msgid ""
|
||||||
|
"You should upgrade your version of Wkhtmltopdf to at least 0.12.0 in order "
|
||||||
|
"to get a correct display of headers and footers as well as support for "
|
||||||
|
"table-breaking between pages."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: akl_multi_tab_plugin
|
||||||
|
#. odoo-javascript
|
||||||
|
#: code:addons/akl_multi_tab_plugin/static/src/akl_action_service.js:0
|
||||||
|
#, python-format
|
||||||
|
msgid ""
|
||||||
|
"Your installation of Wkhtmltopdf seems to be broken. The report will be "
|
||||||
|
"shown in html."
|
||||||
|
msgstr ""
|
||||||
@@ -0,0 +1,2 @@
|
|||||||
|
id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink
|
||||||
|
access_akl_multitab_plugin_akl_multitab_plugin,akl_multitab_plugin.akl_multitab_plugin,model_akl_multitab_plugin_akl_multitab_plugin,base.group_user,1,1,1,1
|
||||||
|
@@ -0,0 +1,31 @@
|
|||||||
|
// .akl_controller_container {
|
||||||
|
// overflow-y: hidden;
|
||||||
|
|
||||||
|
// .o_view_controller {
|
||||||
|
// display: flex;
|
||||||
|
// height: 100%;
|
||||||
|
// overflow: hidden;
|
||||||
|
// flex-direction: column;
|
||||||
|
|
||||||
|
// .o_content {
|
||||||
|
// flex: 1 1 auto;
|
||||||
|
// overflow-y: scroll;
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
|
||||||
|
// .o_action {
|
||||||
|
// display: flex;
|
||||||
|
// flex-direction: column;
|
||||||
|
// flex: 1 1 auto;
|
||||||
|
// height: 100%
|
||||||
|
// }
|
||||||
|
|
||||||
|
.o_action_manager_test {
|
||||||
|
direction: ltr;
|
||||||
|
-webkit-box-flex: 1;
|
||||||
|
-webkit-flex: 1 1 auto;
|
||||||
|
flex: 1 1 auto;
|
||||||
|
height: 100%;
|
||||||
|
overflow: hidden;
|
||||||
|
}
|
||||||
|
After Width: | Height: | Size: 7.1 MiB |
|
After Width: | Height: | Size: 160 KiB |
|
After Width: | Height: | Size: 21 MiB |
|
After Width: | Height: | Size: 101 KiB |
|
After Width: | Height: | Size: 550 KiB |
|
After Width: | Height: | Size: 54 KiB |
|
After Width: | Height: | Size: 64 KiB |
|
After Width: | Height: | Size: 53 KiB |
|
After Width: | Height: | Size: 64 KiB |
|
After Width: | Height: | Size: 58 KiB |
|
After Width: | Height: | Size: 8.6 MiB |
|
After Width: | Height: | Size: 79 KiB |
|
After Width: | Height: | Size: 5.1 MiB |
|
After Width: | Height: | Size: 62 KiB |
|
After Width: | Height: | Size: 52 KiB |
@@ -0,0 +1,110 @@
|
|||||||
|
<div class="container">
|
||||||
|
|
||||||
|
<div class="oe_styling_v8">
|
||||||
|
|
||||||
|
<div class="shadow row my-5 p-3 pb-2 overflow-hidden" style="background-color:#fbfcfd; border-radius: 5px; border: 1px solid #d2caca66;">
|
||||||
|
<div class="container">
|
||||||
|
<div class="row">
|
||||||
|
<p style="width: 100%; font-size: 18px; text-indent:1em;" class="px-sm-4 p-2">
|
||||||
|
Akl multi tab pulgin is an advanced module that allows you to create multiple tabs in your Odoo backend.
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<h2 class="w-100 text-center mb-3">(Current Release V16.0.0.5 -- 2023.04.22)</h2>
|
||||||
|
|
||||||
|
<div class="shadow row my-5 p-3 pb-2 overflow-hidden"
|
||||||
|
style="background-color:#fbfcfd; border-radius: 5px; border: 1px solid #693d3d66;">
|
||||||
|
<div class="container">
|
||||||
|
<div class="pt-4" style="padding-left:20px">
|
||||||
|
<h3 style="color:#2c3782; font-weight:bold; font-size:22px" class="mb-3">Overview</h3>
|
||||||
|
</div>
|
||||||
|
<a href="https://apps.odoo.com/apps/themes/16.0/admin_theme/">
|
||||||
|
<img src="./description.gif" style="width:100%; " />
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- 我们的其它产品 -->
|
||||||
|
<h2 class="w-100 text-center mb-3">Our other products, Just click the image to visit</h2>
|
||||||
|
|
||||||
|
<div class="shadow row my-5 p-3 pb-2 overflow-hidden"
|
||||||
|
style="background-color:#fbfcfd; border-radius: 5px; border: 1px solid #d2caca66;">
|
||||||
|
<div class="container">
|
||||||
|
<h3 style="opacity:1; padding:10px 0px; color:#201111; letter-spacing:0.2em; text-transform:uppercase">
|
||||||
|
<b>Admin Theme</b>
|
||||||
|
</h3>
|
||||||
|
<hr class="mb-4 mt-0">
|
||||||
|
<a href="https://apps.odoo.com/apps/themes/16.0/admin_theme/">
|
||||||
|
<img src="./admin_theme.gif" class="img img-fluid mt-3" loading="lazy"/>
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="shadow row my-5 p-3 pb-2 overflow-hidden"
|
||||||
|
style="background-color:#fbfcfd; border-radius: 5px; border: 1px solid #d2caca66;">
|
||||||
|
<div class="container">
|
||||||
|
<div class="pt-4" style="padding-left:20px">
|
||||||
|
<h3 style="color:#2c3782; font-weight:bold; font-size:22px" class="mb-3">Awesome theme</h3>
|
||||||
|
<p style="font-weight:normal; color:#777; font-size:14px; letter-spacing:1px">
|
||||||
|
Awesome theme is a theme to enhance your product
|
||||||
|
</div>
|
||||||
|
<a href="https://apps.odoo.com/apps/themes/15.0/awesome_theme/">
|
||||||
|
<img src="./awesome_theme.gif" class="img img-fluid mt-3" loading="lazy"/>
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
<div class="shadow row my-5 p-3 pb-2 overflow-hidden"
|
||||||
|
style="background-color:#fbfcfd; border-radius: 5px; border: 1px solid #d2caca66;">
|
||||||
|
<div class="container">
|
||||||
|
<h3 style="opacity:1; padding:10px 0px; color:#201111; letter-spacing:0.2em; text-transform:uppercase">
|
||||||
|
<b>rubbish Modeler</b>
|
||||||
|
</h3>
|
||||||
|
<hr class="mb-4 mt-0">
|
||||||
|
<a href="https://apps.odoo.com/apps/modules/14.0/anita_modeler/">
|
||||||
|
<img src="./anita_modeler.png" class="img img-fluid mt-3" loading="lazy" />
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="shadow row my-5 p-3 pb-2 overflow-hidden"
|
||||||
|
style="background-color:#fbfcfd; border-radius: 5px; border: 1px solid #d2caca66;">
|
||||||
|
<div class="container">
|
||||||
|
<h3 style="opacity:1; padding:10px 0px; color:#201111; letter-spacing:0.2em; text-transform:uppercase">
|
||||||
|
<b>rubbish List</b>
|
||||||
|
</h3>
|
||||||
|
<hr class="mb-4 mt-0">
|
||||||
|
<a href="https://apps.odoo.com/apps/modules/15.0/anita_list/">
|
||||||
|
<img src="./anita_list.gif" class="img img-fluid mt-3" loading="lazy"/>
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
<div class="shadow row my-5 p-3 pb-2 overflow-hidden"
|
||||||
|
style="background-color:#fbfcfd; border-radius: 5px; border: 1px solid #d2caca66;">
|
||||||
|
<div class="container">
|
||||||
|
<h3 style="opacity:1; padding:10px 0px; color:#201111; letter-spacing:0.2em; text-transform:uppercase">
|
||||||
|
<b>Changelog</b>
|
||||||
|
</h3>
|
||||||
|
<div class="col-12">
|
||||||
|
<hr class="mb-4 mt-0">
|
||||||
|
<!-- 16.0.0.1 -->
|
||||||
|
<h2 class="h4 pb-2">
|
||||||
|
<span style="color:#00A09D" class="pr-2">16.0.0.1</span>-<span class="pl-2">Feb 1, 2023</span>
|
||||||
|
</h2>
|
||||||
|
<ul class="list-unstyled">
|
||||||
|
<li class="d-flex align-items-start mb-3">
|
||||||
|
<span class="badge badge-warning font-size-sm pt-1 mr-3" style="min-width:60px">update</span>
|
||||||
|
<div>first version</div>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
@@ -0,0 +1,29 @@
|
|||||||
|
.akl_controller_container {
|
||||||
|
overflow-y: hidden;
|
||||||
|
flex: 1 1 auto;
|
||||||
|
|
||||||
|
.o_view_controller {
|
||||||
|
display: flex;
|
||||||
|
height: 100%;
|
||||||
|
overflow: hidden;
|
||||||
|
flex-direction: column;
|
||||||
|
|
||||||
|
.o_content {
|
||||||
|
flex: 1 1 auto;
|
||||||
|
overflow-y: auto;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.o_action {
|
||||||
|
display: flex;
|
||||||
|
flex-direction: column;
|
||||||
|
height: 100%;
|
||||||
|
overflow: hidden;
|
||||||
|
background-color: white;
|
||||||
|
.o_content {
|
||||||
|
flex: 1 1 auto;
|
||||||
|
overflow-y: auto;
|
||||||
|
background-color: white;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,6 @@
|
|||||||
|
/** @odoo-module **/
|
||||||
|
var a0_0x5b689a=a0_0x2250;
|
||||||
|
function a0_0x445c(){var _0x598052=['prototype','2208StNOog','20OajDHW','11297UeBxIP','846246BWEOIy','496968ABTLzO','2cfhcWh','891315OhDNgy','209340slCIla','7msdRcI','8EhRpni','142691pwdXlh','486975ZdRObU'];a0_0x445c=function(){return _0x598052;};return a0_0x445c();}(function(_0x486f61,_0xa803e2){var _0x2b6a4e=a0_0x2250,_0x1ff604=_0x486f61();while(!![]){try{var _0x37856e=-parseInt(_0x2b6a4e(0xba))/0x1*(-parseInt(_0x2b6a4e(0xc2))/0x2)+-parseInt(_0x2b6a4e(0xc4))/0x3*(-parseInt(_0x2b6a4e(0xb9))/0x4)+-parseInt(_0x2b6a4e(0xbb))/0x5+-parseInt(_0x2b6a4e(0xc0))/0x6*(parseInt(_0x2b6a4e(0xc5))/0x7)+parseInt(_0x2b6a4e(0xc1))/0x8+parseInt(_0x2b6a4e(0xc3))/0x9*(parseInt(_0x2b6a4e(0xbe))/0xa)+parseInt(_0x2b6a4e(0xbf))/0xb*(-parseInt(_0x2b6a4e(0xbd))/0xc);if(_0x37856e===_0xa803e2)break;else _0x1ff604['push'](_0x1ff604['shift']());}catch(_0x493b3c){_0x1ff604['push'](_0x1ff604['shift']());}}}(a0_0x445c,0x1c15e));
|
||||||
|
function a0_0x2250(_0x53db8a,_0x46c24d){var _0x445cbc=a0_0x445c();return a0_0x2250=function(_0x22502a,_0x196500){_0x22502a=_0x22502a-0xb9;var _0x1e86bf=_0x445cbc[_0x22502a];return _0x1e86bf;},a0_0x2250(_0x53db8a,_0x46c24d);}
|
||||||
|
import {patch} from '@web/core/utils/patch';
|
||||||
|
import {ListRenderer} from '@web/views/list/list_renderer';patch(ListRenderer[a0_0x5b689a(0xbc)],{'freezeColumnWidths'(){if(!$(this['tableRef']['el'])['is'](':visible'))return;super['freezeColumnWidths'](this,arguments);}});
|
||||||
@@ -0,0 +1,8 @@
|
|||||||
|
/** @odoo-module **/
|
||||||
|
const a0_0x1681c6=a0_0x32e2;
|
||||||
|
function a0_0x32e2(_0x1e018a,_0x4e6248){const _0x1a0fdb=a0_0x1a0f();return a0_0x32e2=function(_0x32e294,_0x124900){_0x32e294=_0x32e294-0x76;let _0x57aaee=_0x1a0fdb[_0x32e294];return _0x57aaee;},a0_0x32e2(_0x1e018a,_0x4e6248);}(function(_0x2a590c,_0x1aae1c){const _0x36da33=a0_0x32e2,_0x2df6b5=_0x2a590c();while(!![]){try{const _0x1ce317=-parseInt(_0x36da33(0x7a))/0x1*(parseInt(_0x36da33(0x87))/0x2)+-parseInt(_0x36da33(0x7c))/0x3+-parseInt(_0x36da33(0x8f))/0x4+-parseInt(_0x36da33(0x89))/0x5+-parseInt(_0x36da33(0x84))/0x6*(-parseInt(_0x36da33(0x78))/0x7)+parseInt(_0x36da33(0x9a))/0x8+parseInt(_0x36da33(0x91))/0x9;if(_0x1ce317===_0x1aae1c)break;else _0x2df6b5['push'](_0x2df6b5['shift']());}catch(_0x5edea1){_0x2df6b5['push'](_0x2df6b5['shift']());}}}(a0_0x1a0f,0x535cc));
|
||||||
|
import {Component,useRef} from '@odoo/owl';
|
||||||
|
import {Dropdown} from '@web/core/dropdown/dropdown';
|
||||||
|
function a0_0x1a0f(){const _0x5daab9=['_on_multi_tab_prev','display_name','_on_click_tab_close','962724hllhBm','close_action','17115021gRXQdN','position','close_all_action','setup','find','name','_on_multi_tab_next','left','get_menu_label','195824sQDODu','rollPage','_get_display_name','active_action','length','outerWidth','tabContainerRef','children','template','1317071zAkJHp','_close_current_action','7184zqjNpq','action_infos','1497948IOCxfc','querySelector','close_other_action','_get_cur_active_tab','each','indexOf','active','action','6DqyGMA','css','env','118vrlfVU','ref_action','3044975TBqSnX','props','current_action_info'];a0_0x1a0f=function(){return _0x5daab9;};return a0_0x1a0f();}
|
||||||
|
import {DropdownItem} from '@web/core/dropdown/dropdown_item';
|
||||||
|
export class AklMultiTab extends Component{[a0_0x1681c6(0x94)](){const _0x52c5bd=a0_0x1681c6;super[_0x52c5bd(0x94)](),this[_0x52c5bd(0xa0)]=useRef('tab_container');}[a0_0x1681c6(0x8e)](_0x3434cf){const _0x2cb209=a0_0x1681c6;this[_0x2cb209(0x8a)][_0x2cb209(0x90)](_0x3434cf);}[a0_0x1681c6(0x7f)](){const _0x33fbc4=a0_0x1681c6;if(this[_0x33fbc4(0x8b)])return this[_0x33fbc4(0x8b)];else return this[_0x33fbc4(0x7b)]['length']>0x0?this[_0x33fbc4(0x7b)][this[_0x33fbc4(0x7b)][_0x33fbc4(0x9e)]-0x1]:null;}get['action_infos'](){const _0x4e521b=a0_0x1681c6;return this[_0x4e521b(0x8a)][_0x4e521b(0x7b)];}get['current_action_info'](){const _0x42eb79=a0_0x1681c6;return this['action_infos'][_0x42eb79(0x95)](_0x26afad=>_0x26afad[_0x42eb79(0x82)]);}[a0_0x1681c6(0x99)](_0x47cf55){const _0x12c1ae=a0_0x1681c6;switch(_0x47cf55){case'Close Current Tab':return this['env']['_t']('Close Current Tab');case'Close Other Tabs':return this[_0x12c1ae(0x86)]['_t']('Close Other Tabs');case'Close All Tabs':return this['env']['_t']('Close All Tabs');}}[a0_0x1681c6(0x8c)](){const _0x572eac=a0_0x1681c6;if(this[_0x572eac(0x7b)][_0x572eac(0x9e)]==0x0)return;var _0x2fa4cd=this[_0x572eac(0x7b)][_0x572eac(0x81)](this[_0x572eac(0x8b)]);_0x2fa4cd=_0x2fa4cd-0x1;if(_0x2fa4cd<0x0){if(this[_0x572eac(0x7b)][_0x572eac(0x9e)]>0x1)_0x2fa4cd=this[_0x572eac(0x7b)]['length']-0x1;else return;}let _0x567478=this[_0x572eac(0x7b)][_0x2fa4cd];this['props']['active_action'](_0x567478),this['rollPage']('auto',_0x2fa4cd);}[a0_0x1681c6(0x97)](){const _0x4222d7=a0_0x1681c6;if(this[_0x4222d7(0x7b)][_0x4222d7(0x9e)]<=0x1)return;var _0x2a9573=this['action_infos']['indexOf'](this[_0x4222d7(0x8b)]);_0x2a9573=_0x2a9573+0x1;_0x2a9573>=this['action_infos'][_0x4222d7(0x9e)]&&(_0x2a9573=0x0);let _0x52dd07=this['action_infos'][_0x2a9573];this['props'][_0x4222d7(0x9d)](_0x52dd07),this['rollPage']('auto',_0x2a9573);}['_on_click_tab_item'](_0x1a8ef4){const _0x48c04e=a0_0x1681c6;var _0x48b327=this[_0x48c04e(0x8a)][_0x48c04e(0x7b)][_0x48c04e(0x81)](_0x1a8ef4);this[_0x48c04e(0x8a)][_0x48c04e(0x9d)](_0x1a8ef4),this[_0x48c04e(0x9b)]('auto',_0x48b327);}[a0_0x1681c6(0x79)](){const _0x5746fe=a0_0x1681c6;this[_0x5746fe(0x8b)]&&this[_0x5746fe(0x8a)][_0x5746fe(0x90)](this['current_action_info']);}['_close_other_action'](){const _0x14dfd0=a0_0x1681c6;this['current_action_info']&&this[_0x14dfd0(0x8a)][_0x14dfd0(0x7e)](this['current_action_info']);}['_close_all_action'](){const _0x10565f=a0_0x1681c6;this[_0x10565f(0x8a)][_0x10565f(0x93)]();}[a0_0x1681c6(0x9c)](_0x4c4356){const _0x387b45=a0_0x1681c6;let _0x4addda=_0x4c4356[_0x387b45(0x83)][_0x387b45(0x88)]||_0x4c4356[_0x387b45(0x83)];while(_0x4addda&&_0x4addda[_0x387b45(0x88)]&&_0x4addda[_0x387b45(0x88)]!==_0x4addda){_0x4addda=_0x4addda[_0x387b45(0x88)];}return _0x4addda[_0x387b45(0x8d)]||_0x4addda[_0x387b45(0x96)]||'New';}[a0_0x1681c6(0x9b)](_0x165669,_0x142840){const _0x297006=a0_0x1681c6;let _0x1a0f61=$(this[_0x297006(0xa0)]['el'][_0x297006(0x7d)]('.akl_page_items')),_0x3f139e=_0x1a0f61[_0x297006(0x76)]('li'),_0x4e4e68=_0x1a0f61[_0x297006(0x9f)](),_0x323ded=parseFloat(_0x1a0f61[_0x297006(0x85)]('left'));if(_0x165669==='left'){if(!_0x323ded&&_0x323ded<=0x0)return;let _0x3a549c=-_0x323ded-_0x4e4e68;_0x3f139e[_0x297006(0x80)](function(_0x5466a3,_0x5ed0ba){const _0x421ad3=_0x297006;let _0x513855=$(_0x5ed0ba),_0x739bf6=_0x513855[_0x421ad3(0x92)]()['left'];if(_0x739bf6>=_0x3a549c)return _0x1a0f61[_0x421ad3(0x85)]('left',-_0x739bf6),![];});}else{if(_0x165669==='auto'){let _0x367137=_0x3f139e['eq'](_0x142840);if(!_0x367137[0x0])return;;let _0x48dfa2=_0x367137[_0x297006(0x92)]()[_0x297006(0x98)];if(_0x48dfa2<-_0x323ded)return _0x1a0f61[_0x297006(0x85)]('left',-_0x48dfa2);if(_0x48dfa2+_0x367137['outerWidth']()>=_0x4e4e68-_0x323ded){let _0x49a814=_0x48dfa2+_0x367137[_0x297006(0x9f)]()-(_0x4e4e68-_0x323ded);_0x3f139e[_0x297006(0x80)](function(_0x6de8d0,_0x3b8397){const _0x57629b=_0x297006;let _0x287525=$(_0x3b8397),_0x4d3d11=_0x287525[_0x57629b(0x92)]()['left'];if(_0x4d3d11+_0x323ded>0x0){if(_0x4d3d11-_0x323ded>_0x49a814)return _0x1a0f61['css']('left',-_0x4d3d11),![];}});}}else _0x3f139e[_0x297006(0x80)](function(_0x4a76e1,_0x2bc12c){const _0x7a02db=_0x297006;let _0x1d7964=$(_0x2bc12c),_0x497596=_0x1d7964['position']()['left'];if(_0x497596+_0x1d7964['outerWidth']()>=_0x4e4e68-_0x323ded)return _0x1a0f61[_0x7a02db(0x85)]('left',-_0x497596),![];});}}};AklMultiTab[a0_0x1681c6(0x8a)]={'action_infos':{'type':Array},'close_action':{'type':Function},'active_action':{'type':Function},'close_other_action':{'type':Function},'close_all_action':{'type':Function}},AklMultiTab['components']={'Dropdown':Dropdown,'DropdownItem':DropdownItem},AklMultiTab[a0_0x1681c6(0x77)]='akl_multi_tab.tab';
|
||||||
@@ -0,0 +1,299 @@
|
|||||||
|
.akl_multi_tab_container {
|
||||||
|
|
||||||
|
line-height: 40px;
|
||||||
|
background-color: #fff;
|
||||||
|
border-bottom: 1px solid #dee2e6;
|
||||||
|
box-sizing: border-box;
|
||||||
|
z-index: 3;
|
||||||
|
|
||||||
|
.akl_multi_tab {
|
||||||
|
position: relative;
|
||||||
|
padding: 0 80px 0 40px;
|
||||||
|
height: 40px;
|
||||||
|
display: flex;
|
||||||
|
flex-direction: row;
|
||||||
|
box-sizing: border-box;
|
||||||
|
|
||||||
|
.akl_tab_scroll {
|
||||||
|
|
||||||
|
width: 100%;
|
||||||
|
height: 100%;
|
||||||
|
overflow: hidden;
|
||||||
|
|
||||||
|
.akl_page_items {
|
||||||
|
position: relative;
|
||||||
|
left: 0px;
|
||||||
|
;
|
||||||
|
height: 100%;
|
||||||
|
flex: 1 1 auto;
|
||||||
|
background: rgb(255, 255, 255);
|
||||||
|
overflow: visible;
|
||||||
|
white-space: nowrap;
|
||||||
|
padding: 0px;
|
||||||
|
|
||||||
|
li {
|
||||||
|
display: inline-block;
|
||||||
|
*display: inline;
|
||||||
|
*zoom: 1;
|
||||||
|
|
||||||
|
vertical-align: middle;
|
||||||
|
font-size: 14px;
|
||||||
|
transition: all .2s;
|
||||||
|
-webkit-transition: all .2s;
|
||||||
|
min-width: 65px;
|
||||||
|
padding: 0 15px;
|
||||||
|
text-align: center;
|
||||||
|
cursor: pointer;
|
||||||
|
|
||||||
|
line-height: 40px;
|
||||||
|
max-width: 160px;
|
||||||
|
text-overflow: ellipsis;
|
||||||
|
padding-right: 40px;
|
||||||
|
overflow: hidden;
|
||||||
|
border-right: 1px solid #f6f6f6;
|
||||||
|
vertical-align: top;
|
||||||
|
position: relative;
|
||||||
|
white-space: nowrap;
|
||||||
|
padding: 0px 30px 0px 10px;
|
||||||
|
user-select: none;
|
||||||
|
|
||||||
|
&::after {
|
||||||
|
content: '';
|
||||||
|
position: absolute;
|
||||||
|
top: 0;
|
||||||
|
left: 0;
|
||||||
|
width: 0;
|
||||||
|
height: 2px;
|
||||||
|
border-radius: 0;
|
||||||
|
background-color: #292B34;
|
||||||
|
transition: all .3s;
|
||||||
|
-webkit-transition: all .3s;
|
||||||
|
}
|
||||||
|
|
||||||
|
&.akl_multi_tab_active {
|
||||||
|
&::after {
|
||||||
|
width: 100%;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
&:hover {
|
||||||
|
background-color: #f6f6f6;
|
||||||
|
|
||||||
|
&::after {
|
||||||
|
width: 100%;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.akl_tab_close {
|
||||||
|
|
||||||
|
position: absolute;
|
||||||
|
right: 8px;
|
||||||
|
top: 50%;
|
||||||
|
margin: -8px 0 0 0;
|
||||||
|
width: 16px;
|
||||||
|
height: 16px;
|
||||||
|
line-height: 16px;
|
||||||
|
border-radius: 50%;
|
||||||
|
font-size: 12px;
|
||||||
|
|
||||||
|
&:first {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
&:hover {
|
||||||
|
background-color: #FF5722;
|
||||||
|
color: #fff;
|
||||||
|
}
|
||||||
|
|
||||||
|
svg {
|
||||||
|
margin-top: -2px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
&.active {
|
||||||
|
background-color: #f6f6f6;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.akl_tab_control {
|
||||||
|
width: 40px;
|
||||||
|
height: 100%;
|
||||||
|
text-align: center;
|
||||||
|
cursor: pointer;
|
||||||
|
transition: all .3s;
|
||||||
|
-webkit-transition: all .3s;
|
||||||
|
box-sizing: border-box;
|
||||||
|
border-left: 1px solid #f6f6f6;
|
||||||
|
|
||||||
|
&:hover {
|
||||||
|
background-color: #f6f6f6;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.akl_icon_prev {
|
||||||
|
border-right: 1px solid #f6f6f6;
|
||||||
|
color: #666;
|
||||||
|
line-height: 40px;
|
||||||
|
margin: 0;
|
||||||
|
padding: 0;
|
||||||
|
|
||||||
|
-webkit-tap-highlight-color: rgba(0, 0, 0, 0);
|
||||||
|
-webkit-font-smoothing: antialiased;
|
||||||
|
-webkit-transition: all .3s;
|
||||||
|
|
||||||
|
font-size: 16px;
|
||||||
|
font-style: normal;
|
||||||
|
position: absolute;
|
||||||
|
|
||||||
|
top: 0;
|
||||||
|
left: 0;
|
||||||
|
|
||||||
|
width: 40px;
|
||||||
|
height: 100%;
|
||||||
|
text-align: center;
|
||||||
|
cursor: pointer;
|
||||||
|
box-sizing: border-box;
|
||||||
|
border-left: none;
|
||||||
|
border-right: 1px solid #f6f6f6;
|
||||||
|
}
|
||||||
|
|
||||||
|
.akl_icon_next {
|
||||||
|
border-right: 1px solid #f6f6f6;
|
||||||
|
color: #666;
|
||||||
|
line-height: 40px;
|
||||||
|
margin: 0;
|
||||||
|
padding: 0;
|
||||||
|
-webkit-tap-highlight-color: rgba(0, 0, 0, 0);
|
||||||
|
font-family: layui-icon !important;
|
||||||
|
font-size: 16px;
|
||||||
|
font-style: normal;
|
||||||
|
-webkit-font-smoothing: antialiased;
|
||||||
|
position: absolute;
|
||||||
|
top: 0;
|
||||||
|
width: 40px;
|
||||||
|
height: 100%;
|
||||||
|
text-align: center;
|
||||||
|
cursor: pointer;
|
||||||
|
-webkit-transition: all .3s;
|
||||||
|
box-sizing: border-box;
|
||||||
|
border-left: 1px solid #f6f6f6;
|
||||||
|
right: 40px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.akl_icon_down {
|
||||||
|
//right: 1px;
|
||||||
|
color: #666;
|
||||||
|
line-height: 40px;
|
||||||
|
margin: 0;
|
||||||
|
padding: 0;
|
||||||
|
-webkit-tap-highlight-color: rgba(0, 0, 0, 0);
|
||||||
|
-webkit-transition: all .3s;
|
||||||
|
font-family: layui-icon !important;
|
||||||
|
font-size: 16px;
|
||||||
|
font-style: normal;
|
||||||
|
-webkit-font-smoothing: antialiased;
|
||||||
|
position: absolute;
|
||||||
|
top: 0;
|
||||||
|
width: 40px;
|
||||||
|
height: 100%;
|
||||||
|
text-align: center;
|
||||||
|
cursor: pointer;
|
||||||
|
box-sizing: border-box;
|
||||||
|
border-left: 1px solid #f6f6f6;
|
||||||
|
right: 0;
|
||||||
|
|
||||||
|
.dropdown-toggle {
|
||||||
|
width: 100%;
|
||||||
|
height: 100%;
|
||||||
|
background: none;
|
||||||
|
border: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
.dropdown-menu {
|
||||||
|
.dropdown-item {
|
||||||
|
line-height: 30px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.akl_multi_tab_active {
|
||||||
|
background-color: #f6f6f6;
|
||||||
|
|
||||||
|
&::after {
|
||||||
|
content: '';
|
||||||
|
position: absolute;
|
||||||
|
top: 0;
|
||||||
|
left: 0;
|
||||||
|
width: 100%;
|
||||||
|
height: 2px;
|
||||||
|
border-radius: 0;
|
||||||
|
background-color: #292B34;
|
||||||
|
transition: all .3s;
|
||||||
|
-webkit-transition: all .3s;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.dropdown-menu {
|
||||||
|
z-index: 1000;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.o_action_manager {
|
||||||
|
display: flex;
|
||||||
|
flex-direction: column;
|
||||||
|
|
||||||
|
.akl_tab_page_container {
|
||||||
|
display: flex;
|
||||||
|
flex-direction: column;
|
||||||
|
overflow: hidden;
|
||||||
|
flex: 1 1 auto;
|
||||||
|
|
||||||
|
// > div {
|
||||||
|
// flex: 1 1 auto;
|
||||||
|
// overflow: auto;
|
||||||
|
// display: flex;
|
||||||
|
// flex-direction: column;
|
||||||
|
// }
|
||||||
|
|
||||||
|
.o_view_controller {
|
||||||
|
display: flex;
|
||||||
|
flex: 1 1 auto;
|
||||||
|
flex-direction: column;
|
||||||
|
overflow: hidden;
|
||||||
|
height: 100%;
|
||||||
|
|
||||||
|
.o_content {
|
||||||
|
overflow: auto;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.o_home_menu_background {
|
||||||
|
.akl_multi_tab_container {
|
||||||
|
display: none !important;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
[name='product_template_id'] {
|
||||||
|
div, span {
|
||||||
|
width: 100% !important;
|
||||||
|
display: block !important;
|
||||||
|
}
|
||||||
|
span {
|
||||||
|
white-space: pre-wrap !important;
|
||||||
|
word-break: break-all !important;
|
||||||
|
text-overflow: initial !important;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
td[name='product_id'] {
|
||||||
|
white-space: pre-wrap !important;
|
||||||
|
word-break: break-all !important;
|
||||||
|
text-overflow: initial !important;
|
||||||
|
}
|
||||||
@@ -0,0 +1,68 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<templates id="template" xml:space="preserve">
|
||||||
|
|
||||||
|
<t t-name="akl_multi_tab.tab" owl="1">
|
||||||
|
<div class="akl_multi_tab_container">
|
||||||
|
<div class="akl_multi_tab">
|
||||||
|
|
||||||
|
<div class="akl_tab_control akl_icon_prev" t-on-click.stop="_on_multi_tab_prev">
|
||||||
|
<svg viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" width="20"
|
||||||
|
height="20">
|
||||||
|
<path d="M269.25 512l271.53-271.53a32 32 0 0 0-45.25-45.25L201.37 489.38a32 32 0 0 0 0 45.25l294.16 294.16a32 32 0 0 0 45.25-45.25z"
|
||||||
|
fill="#adb5bd"/>
|
||||||
|
<path d="M551.1 512l271.53-271.53a32 32 0 0 0-45.26-45.25L483.22 489.38a32 32 0 0 0 0 45.25l294.15 294.16a32 32 0 1 0 45.26-45.25z"
|
||||||
|
fill="#adb5bd"/>
|
||||||
|
</svg>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="akl_tab_control akl_icon_next" t-on-click.stop="_on_multi_tab_next">
|
||||||
|
<svg viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" width="20"
|
||||||
|
height="20">
|
||||||
|
<path d="M483.22 240.47L754.73 512 483.22 783.53a32 32 0 0 0 45.25 45.25l294.15-294.15a32 32 0 0 0 0-45.26L528.47 195.22a32 32 0 0 0-45.25 45.25z"
|
||||||
|
fill="#adb5bd"/>
|
||||||
|
<path d="M540.78 534.63a32 32 0 0 0 0-45.26L246.63 195.22a32 32 0 0 0-45.25 45.25L472.89 512 201.38 783.53a32 32 0 0 0 45.25 45.25z"
|
||||||
|
fill="#adb5bd"/>
|
||||||
|
</svg>
|
||||||
|
</div>
|
||||||
|
<Dropdown class="'akl_tab_control akl_icon_down'" position="'bottom-end'">
|
||||||
|
<t t-set-slot="toggler">
|
||||||
|
<svg viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" width="20"
|
||||||
|
height="20">
|
||||||
|
<path fill="#adb5bd"
|
||||||
|
d="M830.24 340.688l11.328 11.312a16 16 0 0 1 0 22.624L530.448 685.76a16 16 0 0 1-22.64 0L196.688 374.624a16 16 0 0 1 0-22.624l11.312-11.312a16 16 0 0 1 22.624 0l288.496 288.496 288.512-288.496a16 16 0 0 1 22.624 0z"/>
|
||||||
|
</svg>
|
||||||
|
</t>
|
||||||
|
<DropdownItem class="'akl_close_cur_tab'" onSelected="() => this._close_current_action()">
|
||||||
|
Close Current Tab
|
||||||
|
</DropdownItem>
|
||||||
|
<DropdownItem class="'akl_close_other_tabs'" onSelected="() => this._close_other_action()">
|
||||||
|
Close Other Tabs
|
||||||
|
</DropdownItem>
|
||||||
|
<DropdownItem class="'akl_close_all_tabs'" onSelected="() => this._close_all_action()">
|
||||||
|
Close All Tabs
|
||||||
|
</DropdownItem>
|
||||||
|
</Dropdown>
|
||||||
|
<div class="akl_tab_scroll">
|
||||||
|
<ul class="akl_page_items tab_container" t-ref="tab_container">
|
||||||
|
<li t-foreach="props.action_infos"
|
||||||
|
t-as="action_info"
|
||||||
|
t-if="action_info.id"
|
||||||
|
t-key="action_info.id"
|
||||||
|
t-att-class="{'active': action_info.active, 'akl_page_tab_item': true}"
|
||||||
|
t-on-click.stop="() => this._on_click_tab_item(action_info)">
|
||||||
|
<span><t t-esc="_get_display_name(action_info)" /></span>
|
||||||
|
<span class="akl_tab_close" t-on-click.stop="() => this._on_click_tab_close(action_info)">
|
||||||
|
<svg viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" width="14"
|
||||||
|
height="14">
|
||||||
|
<path d="M556.8 512l265.6-265.6c12.8-12.8 12.8-32 0-44.8s-32-12.8-44.8 0L512 467.2 246.4 201.6c-12.8-12.8-32-12.8-44.8 0s-12.8 32 0 44.8l265.6 265.6-265.6 265.6c-12.8 12.8-12.8 32 0 44.8 6.4 6.4 12.8 9.6 22.4 9.6s16-3.2 22.4-9.6l265.6-265.6 265.6 265.6c6.4 6.4 16 9.6 22.4 9.6s16-3.2 22.4-9.6c12.8-12.8 12.8-32 0-44.8L556.8 512z"
|
||||||
|
fill="#bfbfbf"/>
|
||||||
|
</svg>
|
||||||
|
</span>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</t>
|
||||||
|
</templates>
|
||||||