2019-05-03 10:33:22 +02:00
|
|
|
<templates>
|
2019-05-16 11:23:02 +02:00
|
|
|
<div t-name="TabbedEditor" class="tabbed-editor">
|
2019-05-03 10:33:22 +02:00
|
|
|
<div class="tabBar" t-att-class="{resizeable: props.resizeable}" t-on-mousedown="onMouseDown">
|
2019-05-16 12:04:50 +02:00
|
|
|
<t t-foreach="['js', 'xml', 'css']" t-as="tab">
|
2019-06-13 13:58:20 +02:00
|
|
|
<a t-ref="{{tab}}" t-if="props[tab] !== false" t-key="tab" class="tab flash" t-att-class="{active: state.currentTab===tab}" t-on-click="setTab(tab)">
|
2019-05-16 12:04:50 +02:00
|
|
|
<t t-esc="tab"/>
|
|
|
|
|
</a>
|
|
|
|
|
</t>
|
2019-05-03 10:33:22 +02:00
|
|
|
</div>
|
2019-05-28 13:17:38 +02:00
|
|
|
<div class="code-editor" t-ref="editor"></div>
|
2019-05-03 10:33:22 +02:00
|
|
|
</div>
|
|
|
|
|
|
2019-05-14 15:58:30 +02:00
|
|
|
<div t-name="App" class="playground">
|
2019-06-04 10:06:05 +02:00
|
|
|
<div class="left-bar" t-att-class="{split: state.splitLayout}"
|
|
|
|
|
t-att-style="leftPaneStyle"
|
|
|
|
|
t-on-updateCode="updateCode">
|
2019-05-03 10:33:22 +02:00
|
|
|
<div class="menubar">
|
|
|
|
|
<a class="btn run-code flash" t-on-click="runCode" title="Execute this Code">▶ Run</a>
|
|
|
|
|
<select t-on-change="setSample">
|
|
|
|
|
<option t-foreach="SAMPLES" t-as="sample" t-key="sample_index">
|
|
|
|
|
<t t-esc="sample.description"/>
|
|
|
|
|
</option>
|
|
|
|
|
</select>
|
|
|
|
|
<a class="btn flash" t-on-click="downloadCode" title="Download a Zip with this Code"><i class="fas fa-download"></i></a>
|
|
|
|
|
<a class="layout-selector flash" t-on-click="toggleLayout" title="Toggle Layout"><i class="fas" t-att-class="state.splitLayout ? 'fa-toggle-on' : 'fa-toggle-off'"></i></a>
|
|
|
|
|
</div>
|
2019-06-18 09:24:52 +02:00
|
|
|
<TabbedEditor
|
2019-06-04 09:14:57 +02:00
|
|
|
js="state.js"
|
|
|
|
|
css="!state.splitLayout and state.css"
|
2019-06-24 15:03:00 +02:00
|
|
|
xml="!state.splitLayout and state.xml"
|
2019-06-04 09:14:57 +02:00
|
|
|
t-att-style="topEditorStyle"/>
|
2019-05-16 11:23:02 +02:00
|
|
|
<t t-if="state.splitLayout">
|
|
|
|
|
<div class="separator horizontal"/>
|
2019-10-30 15:15:32 +01:00
|
|
|
<TabbedEditor
|
2019-06-04 09:14:57 +02:00
|
|
|
js="false"
|
|
|
|
|
css="state.css"
|
|
|
|
|
xml="state.xml"
|
|
|
|
|
resizeable="true"
|
2019-05-16 11:23:02 +02:00
|
|
|
t-on-updatePanelHeight="updatePanelHeight"/>
|
2019-05-03 10:33:22 +02:00
|
|
|
</t>
|
|
|
|
|
</div>
|
|
|
|
|
<div class="separator vertical" t-on-mousedown="onMouseDown"/>
|
|
|
|
|
<div class="right-pane" t-att-style="rightPaneStyle">
|
|
|
|
|
<div class="welcome" t-if="state.displayWelcome">
|
|
|
|
|
<div>🦉 Odoo Web Library 🦉</div>
|
|
|
|
|
<div>v<t t-esc="version"/></div>
|
|
|
|
|
<div class="url"><a href="https://github.com/odoo/owl">https://github.com/odoo/owl</a></div>
|
2019-10-01 21:37:36 +02:00
|
|
|
<div class="note">
|
|
|
|
|
<p>Note: these examples are using recent features of Javascript, and require a recent browser to work without a transpilation step!
|
|
|
|
|
For example, it makes use of class fields and class static fields. These examples should work in a recent Chrome version.
|
|
|
|
|
</p>
|
|
|
|
|
</div>
|
2019-05-03 10:33:22 +02:00
|
|
|
</div>
|
2019-05-28 13:17:38 +02:00
|
|
|
<div class="content" t-ref="content"/>
|
2019-05-03 10:33:22 +02:00
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
</templates>
|