[FIX] various css fixes related to scrolling
[odoo/odoo.git] / addons / web / static / src / xml / base.xml
1 <?xml version="1.0" encoding="UTF-8"?>
2 <!-- vim:fdl=1:
3 -->
4 <templates id="template" xml:space="preserve">
5 <t t-name="EmptyComponent">
6     <div></div>
7 </t>
8 <t t-name="Loading">
9     <div class="oe_loading">
10         Loading...
11     </div>
12 </t>
13 <t t-name="Notification">
14     <div class="oe_notification" t-translation="off">
15         <div id="oe_notification_default">
16             <a class="ui-notify-cross ui-notify-close" href="#">x</a>
17             <h1>#{title}</h1>
18             <p>#{text}</p>
19         </div>
20         <div id="oe_notification_alert" class="ui-state-error">
21             <a class="ui-notify-cross ui-notify-close" href="#">x</a>
22             <span style="float:left; margin:2px 5px 0 0;" class="ui-icon ui-icon-alert"></span>
23             <h1>#{title}</h1>
24             <p>#{text}</p>
25         </div>
26     </div>
27 </t>
28 <t t-name="Tipsy.alert">
29     <a class="oe_tooltip_close oe_e">[</a>
30     <span style="float:left; margin:2px 5px 0 0;" class="ui-icon ui-icon-alert ui-state-error"></span>
31     <div class="oe_tooltip_message">
32         <t t-esc="message"/>
33     </div>
34 </t>
35 <t t-name="Dialog">
36     <div class="modal" tabindex="-1" data-backdrop="static" role="dialog" aria-hidden="true">
37         <div class="modal-dialog modal-lg">
38             <div class="modal-content">
39                 <div class="modal-header">
40                     <button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
41                     <h3 class="modal-title"><t t-raw="title"/></h3>
42                 </div>
43                 <div class="modal-body" style="overflow-y: auto;">
44                 </div>
45             </div>
46         </div>
47     </div>
48 </t>
49 <t t-name="CrashManager.warning">
50     <table cellspacing="0" cellpadding="0" border="0" class="oe_dialog_warning">
51     <tr>
52         <td class="oe_dialog_icon"><img t-att-src='_s + "/web/static/src/img/warning.png"'/></td>
53         <td>
54             <p>
55                 <t t-js="d">
56                     var message = d.message ? d.message : d.error.data.message;
57                     d.html_error = context.engine.tools.html_escape(message)
58                         .replace(/\n/g, '<br/>');
59                 </t>
60                 <t t-raw="html_error"/>
61             </p>
62         </td>
63     </tr>
64     </table>
65 </t>
66 <t t-name="CrashManager.error">
67     <div class="oe_error_detail">
68         <pre><t t-esc="error.message"/></pre>
69         <hr/>
70         <pre><t t-esc="error.data.debug"/></pre>
71     </div>
72 </t>
73
74 <t t-name="DatabaseManager">
75     <div class="oe_view_manager_view_form">
76         <div class="oe_form">
77             <form id="db_create" name="create_db_form" style="display: block;">
78                 <div class="oe_view_manager oe_view_manager_current">
79                     <div class="oe_view_manager_header" style="padding: 8px;">
80                         <div class="oe_header_row">
81                             <h2 class="oe_view_title">
82                                 <span class="oe_view_title_text oe_breadcrumb_title">Create a New Database</span>
83                             </h2>
84                         </div>
85                     </div>
86                 </div>
87                 <p class="oe_grey" style="margin: 10px">
88                     Fill in this form to create an OpenERP database. You can
89                     create databases for different companies or for different
90                     goals (testing, production). Once the database is created,
91                     you will be able to install your first application.
92                 </p>
93                 <p class="oe_grey" style="margin: 10px">
94                     By default, the master password is 'admin'. This password
95                     is required to created, delete dump or restore databases.
96                 </p>
97                 <table class="db_option_table" style="margin: 10px">
98                     <tr>
99                         <td><label for="super_admin_pwd">Master password:</label></td>
100                         <td>
101                             <input type="password" name="super_admin_pwd" class="required" value="admin"/>
102                         </td>
103                     </tr>
104                     <tr>
105                         <td><label for="db_name">Select a database name:</label></td>
106                         <td>
107                             <input type="text" name="db_name" class="required" matches="^[a-zA-Z0-9][a-zA-Z0-9_-]+$" autofocus="true" placeholder="e.g. mycompany"/> 
108                         </td>
109                     </tr>
110                     <tr>
111                         <td><label for="demo_data">Load demonstration data:</label></td>
112                         <td class="oe_form_group_cell">
113                             <span class="oe_form_field oe_form_field_boolean oe_grey" >
114                                 <input type="checkbox" name="demo_data" />
115                                 Check this box to evaluate OpenERP.
116                             </span>
117                         </td>
118                     </tr>
119                     <tr>
120                         <td><label for="db_lang">Default language:</label></td>
121                         <td class="oe_form_field oe_form_field_selection">
122                             <select name="db_lang" t-if="widget.lang_list" class="oe_inline">
123                                 <t t-foreach="widget.lang_list" t-as="lang">
124                                     <option t-att-value="lang[0]" t-att-selected="lang[0] === 'en_US' ? 'selected' : undefined">
125                                         <t t-esc="lang[1]" />
126                                     </option>
127                                 </t>
128                             </select>
129                         </td>
130                     </tr>
131                     <tr>
132                         <td><label for="create_admin_pwd">Choose a password:</label></td>
133                         <td><input type="password" name="create_admin_pwd" class="required" /></td>
134                     </tr>
135                     <tr>
136                         <td><label for="create_confirm_pwd">Confirm password:</label></td>
137                         <td><input type="password" name="create_confirm_pwd" class="required" equalTo="input[name=create_admin_pwd]"/></td>
138                     </tr>
139                     <tr>
140                         <td></td>
141                         <td><button type="submit" class="oe_button oe_highlight db_create">Create Database</button></td>
142                     </tr>
143                 </table>
144             </form>
145             <form id="db_duplicate" name="duplicate_db_form" style="display: none;">
146                 <div class="oe_view_manager oe_view_manager_current">
147                     <div class="oe_view_manager_header" style="padding: 8px;">
148                         <div class="oe_header_row">
149                             <h2 class="oe_view_title">
150                                 <span class="oe_view_title_text oe_breadcrumb_title">Duplicate Database</span>
151                             </h2>
152                             <button type="submit" class="oe_button oe_highlight db_duplicate">Duplicate</button>
153                         </div>
154                     </div>
155                 </div>
156                 <table align="center" class="db_option_table">
157                     <tr>
158                         <td><label for="super_admin_pwd">Master password:</label></td>
159                         <td><input type="password" name="super_admin_pwd" class="required" value="admin" /></td>
160                     </tr>
161                     <tr>
162                         <td><label for="db_original_name">Original database name:</label></td>
163                         <td><input type="text" name="db_original_name" class="required" matches="^[a-zA-Z][a-zA-Z0-9_-]+$" autofocus="true"/></td>
164                     </tr>
165                     <tr>
166                         <td><label for="db_name">New database name:</label></td>
167                         <td><input type="text" name="db_name" class="required" matches="^[a-zA-Z][a-zA-Z0-9_-]+$" /></td>
168                     </tr>
169                 </table>
170             </form>
171             <form id="db_drop" name="drop_db_form" style="display: none; ">
172                 <div class="oe_view_manager oe_view_manager_current">
173                     <div class="oe_view_manager_header" style="padding: 8px;">
174                         <div class="oe_header_row">
175                             <h2 class="oe_view_title">
176                                 <span class="oe_view_title_text oe_breadcrumb_title">Drop Database</span>
177                             </h2>
178                             <button type="submit" class="oe_button oe_highlight db_drop">Drop</button>
179                         </div>
180                     </div>
181                 </div>
182                 <table align="center" class="db_option_table">
183                     <tr>
184                         <td><label for="drop_db">Database:</label></td>
185                         <td class="oe_form_field oe_form_field_selection">
186                             <select t-if="widget.db_list" name="drop_db" autofocus="autofocus">
187                                 <t t-foreach="widget.db_list" t-as="db">
188                                     <option t-att-value="db">
189                                         <t t-esc="db" />
190                                     </option>
191                                 </t>
192                             </select>
193                             <input t-if="!widget.db_list" name="drop_db" class="required" type="text" autofocus="autofocus"/>
194                         </td>
195                     </tr>
196                     <tr>
197                         <td><label for="drop_password">Master Password:</label></td>
198                         <td><input type="password" name="drop_pwd" class="required" /></td>
199                     </tr>
200                 </table>
201             </form>
202             <form id="db_backup" name="backup_db_form" target="backup-target" action="/web/database/backup" style="display: none;">
203                 <div class="oe_view_manager oe_view_manager_current">
204                     <div class="oe_view_manager_header" style="padding: 8px;">
205                         <div class="oe_header_row">
206                             <h2 class="oe_view_title">
207                                 <span class="oe_view_title_text oe_breadcrumb_title">Backup Database</span>
208                             </h2>
209                             <button type="submit" class="oe_button oe_highlight db_backup">Backup</button>
210                         </div>
211                     </div>
212                 </div>
213                 <input type="hidden" name="token" />
214                 <table align="center" class="db_option_table">
215                     <tr>
216                         <td><label for="backup_db">Database:</label></td>
217                         <td class="oe_form_field oe_form_field_selection ">
218                             <select t-if="widget.db_list" name="backup_db" autofocus="autofocus">
219                                 <t t-foreach="widget.db_list" t-as="db">
220                                     <option t-att-value="db">
221                                         <t t-esc="db" />
222                                     </option>
223                                 </t>
224                             </select>
225                             <input t-if="!widget.db_list" name="backup_db" class="required" type="text" autofocus="autofocus"/>
226                         </td>
227                     </tr>
228                     <tr>
229                         <td><label for="backup_pwd">Master Password:</label></td>
230                         <td><input type="password" name="backup_pwd" class="required" /></td>
231                     </tr>
232                 </table>
233             </form>
234             <form id="db_restore" name="restore_db_form" style="display: none; ">
235                 <div class="oe_view_manager oe_view_manager_current">
236                     <div class="oe_view_manager_header" style="padding: 8px;">
237                         <div class="oe_header_row">
238                             <h2 class="oe_view_title">
239                                 <span class="oe_view_title_text oe_breadcrumb_title">Restore Database</span>
240                             </h2>
241                             <button type="submit" class="oe_button oe_highlight db_restore">Restore</button>
242                         </div>
243                     </div>
244                 </div>
245                 <table align="center" class="db_option_table">
246                     <tr>
247                         <td><label for="restore_pwd">Master Password:</label></td>
248                         <td><input type="password" name="restore_pwd" class="required" autofocus="autofocus"/></td>
249                     </tr>
250                     <tr>
251                         <td><label for="restore_db">File:</label></td>
252                         <td><input type="file" name="db_file" class="required"/></td>
253                     </tr>
254                     <tr>
255                         <td><label for="new_db">New database name:</label></td>
256                         <td><input type="text" name="new_db" class="required"/></td>
257                     </tr>
258                     <tr>
259                         <td><label for="mode">Mode:</label></td>
260                         <td><select name="mode" class="required">
261                             <option value="restore">Backup Restore</option>
262                             <option value="copy">Copy of an existing database</option>
263                         </select></td>
264                     </tr>
265                 </table>
266             </form>
267             <form id="db_change_password" name="change_pwd_form" style="display: none;">
268                 <div class="oe_view_manager oe_view_manager_current">
269                     <div class="oe_view_manager_header" style="padding: 8px;">
270                         <div class="oe_header_row">
271                             <h2 class="oe_view_title">
272                                 <span class="oe_view_title_text oe_breadcrumb_title">Change Master Password</span>
273                             </h2>
274                             <button type="submit" class="oe_button oe_highlight db-change-password">Change Password</button>
275                         </div>
276                     </div>
277                 </div>
278                 <table align="center" class="db_option_table">
279                     <tr>
280                         <td><label for="old_pwd">Master password:</label></td>
281                         <td><input type="password" name="old_pwd" class="required" minlength="1" autofocus="autofocus"/></td>
282                     </tr>
283                     <tr>
284                         <td><label for="new_pwd">New master password:</label></td>
285                         <td><input type="password" name="new_pwd" class="required" minlength="1"/></td>
286                     </tr>
287                     <tr>
288                         <td><label for="confirm_pwd">Confirm new master password:</label></td>
289                         <td><input type="password" name="confirm_pwd" class="required" equalTo="input[name=new_pwd]" minlength="1"/> </td>
290                     </tr>
291                 </table>
292             </form>
293         </div>
294     </div>
295 </t>
296 <t t-name="DatabaseManager.user_menu">
297     <span class="oe_right">
298          <a id="back-to-login" href="#"><span class="oe_topbar_item oe_topbar_name">Back to Login</span></a>
299     </span>
300 </t>
301 <t t-name="DatabaseManager.menu">
302     <div class="oe_secondary_menu_section">Database Management</div>
303     <ul class="oe_secondary_submenu nav nav-pills nav-stacked">
304         <li><a href="#db_create">Create</a></li>
305         <li><a href="#db_duplicate">Duplicate</a></li>
306         <li><a href="#db_drop">Drop</a></li>
307         <li><a href="#db_backup">Backup</a></li>
308         <li><a href="#db_restore">Restore</a></li>
309         <li><a href="#db_change_password">Password</a></li>
310     </ul>
311 </t>
312
313 <t t-name="ChangePassword">
314     <form name="change_password_form" method="POST">
315       <div class="oe_form">
316         <table align="center">
317             <tr>
318                 <td class="oe_form_group_cell oe_form_group_cell_label"><label for="old_pwd" class="oe_form_label">Old Password:</label></td>
319                 <td class="oe_form_group_cell"><input type="password" name="old_pwd"
320                            minlength="1" autofocus="autofocus"/></td>
321             </tr>
322             <tr>
323             <td class="oe_form_group_cell oe_form_group_cell_label"><label for="new_password" class="oe_form_label">New Password:</label></td>
324             <td class="oe_form_group_cell"><input type="password" name="new_password"
325                        minlength="1"/></td>
326             </tr>
327             <tr>
328                 <td class="oe_form_group_cell oe_form_group_cell_label"><label for="confirm_pwd" class="oe_form_label">Confirm New Password:</label></td>
329                 <td class="oe_form_group_cell"><input type="password" name="confirm_pwd"
330                              minlength="1"/></td>
331             </tr>
332             <tr>
333                 <td colspan="2" align="right">
334                     <button class='oe_button oe_form_button'>Change Password</button>
335                     <span class="oe_fade oe_form_button"> or </span>
336                     <button type="button" class="oe_button oe_form_button_cancel oe_form_button oe_link" href="javascript:void(0)"><span>Cancel</span></button>
337                 </td>
338             </tr>
339         </table>
340       </div>
341     </form>
342 </t>
343
344 <t t-name="Menu">
345     <ul class="nav navbar-nav navbar-left" t-if="widget.data">
346         <li t-foreach="widget.data.data.children" t-as="menu">
347             <t t-call="Menu.link"/>
348         </li>
349         <li id="menu_more_container" class="dropdown" style="display: none;">
350             <a href="#" class="dropdown-toggle" data-toggle="dropdown">More <b class="caret"></b></a>
351             <ul id="menu_more" class="dropdown-menu"></ul>
352         </li>
353     </ul>
354 </t>
355 <t t-name="Menu.secondary">
356     <div t-foreach="widget.data.data.children" t-as="menu" style="display: none" class="oe_secondary_menu" t-att-data-menu-parent="menu.id">
357         <t t-foreach="menu.children" t-as="menu">
358             <div class="oe_secondary_menu_section">
359                 <t t-esc="menu.name"/>
360                 <!--
361                     Shall the section be still clickable ?
362                     <t t-call="Menu.link"/>
363                 -->
364             </div>
365             <t t-call="Menu.secondary.submenu"/>
366         </t>
367     </div>
368 </t>
369 <t t-name="Menu.secondary.submenu">
370     <ul t-if="menu.children.length" class="oe_secondary_submenu nav nav-pills nav-stacked">
371         <li t-foreach="menu.children" t-as="menu">
372             <t t-call="Menu.link"/>
373             <!--<span class="oe_menu_label">8</span>-->
374             <t t-call="Menu.secondary.submenu"/>
375         </li>
376     </ul>
377 </t>
378 <t t-name="Menu.link">
379     <a t-attf-href="#menu_id=#{menu.id}&amp;action=#{menu.action ? menu.action.split(',')[1] : ''}"
380         t-att-class="menu.children.length ? 'oe_menu_toggler' : 'oe_menu_leaf'"
381         t-att-data-menu="menu.id"
382         t-att-data-action-model="menu.action ? menu.action.split(',')[0] : ''"
383         t-att-data-action-id="menu.action ? menu.action.split(',')[1] : ''">
384         <span class="oe_menu_text">
385             <t t-esc="menu.name"/>
386         </span>
387     </a>
388 </t>
389
390 <t t-name="Menu.needaction_counter">
391     <div id="menu_counter" class="badge pull-right">
392         <t t-if="widget.needaction_counter &gt; 99"> 99+ </t>
393         <t t-if="widget.needaction_counter &lt;= 99"> <t t-esc="widget.needaction_counter"/> </t>
394     </div>
395 </t>
396
397 <t t-name="UserMenu">
398     <ul class="nav navbar-nav navbar-right">
399         <li class="dropdown">
400             <a href="#" class="dropdown-toggle" data-toggle="dropdown">
401                 <img class="oe_topbar_avatar" t-att-data-default-src="_s + '/web/static/src/img/user_menu_avatar.png'"/>
402                 <span class="oe_topbar_name"/> <b class="caret"></b>
403             </a>
404             <ul class="dropdown-menu">
405                 <li><a href="#" data-menu="settings">Preferences</a></li>
406                 <li><a href="#" data-menu="account">My OpenERP.com account</a></li>
407                 <li><a href="#" data-menu="about">About OpenERP</a></li>
408                 <li><a href="#" data-menu="help">Help</a></li>
409                 <li><a href="#" data-menu="logout">Log out</a></li>
410             </ul>
411         </li>
412     </ul>
413 </t>
414 <t t-name="UserMenu.about">
415
416     <div class="oe_about">
417       <a class="oe_activate_debug_mode oe_right" href="?debug" style="background-color: white; padding:2px 6px; border-radius: 10px;">Activate the developer mode</a>
418       <img class="oe_logo" src="/web/static/src/img/logo2.png"/>
419       <h3>Version <t t-esc="version_info.server_version"/></h3>
420
421       <div class="oe_bottom">
422         <p>Copyright © 2004-TODAY OpenERP SA. All Rights Reserved.<br />
423             OpenERP is a trademark of the <a target="_blank" href="http://openerp.com/" style="text-decoration: underline;">OpenERP SA Company</a>.</p>
424         <p>Licenced under the terms of <a target="_blank" href="http://www.gnu.org/licenses/agpl.html" style="text-decoration: underline;">GNU Affero General Public License</a></p>
425         <p>For more information visit <a target="_blank" href="http://openerp.com/" style="text-decoration: underline;">OpenERP.com</a></p>
426       </div>
427     </div>
428
429 </t>
430
431 <t t-name="WebClient">
432     <div class="openerp openerp_webclient_container">
433     <table class="oe_webclient">
434         <tr>
435             <td colspan="2" class="navbar navbar-default navbar-static-top oe_navbar" role="navigation">
436                 <div class="oe_menu_placeholder"/>
437                 <div class="oe_user_menu_placeholder"/>
438                 <div class="oe_systray"/>
439             </td>
440         </tr>
441         <tr>
442             <td class="oe_leftbar" valign="top">
443                 <div>
444                     <t t-set="debug" t-value="__debug__ ? '&amp;debug' : ''"/>
445                     <a class="oe_logo" t-attf-href="/web?#{debug}">
446                         <span class="oe_logo_edit">Edit Company data</span>
447                         <img t-att-src='widget.session.url("/web/binary/company_logo")'/>
448                     </a>
449                     <div class="oe_secondary_menus_container"/>
450                     <div class="oe_footer">
451                         Powered by <a href="http://www.openerp.com" target="_blank"><span>OpenERP</span></a>
452                     </div>
453                 </div>
454             </td>
455             <td class="oe_application">
456             </td>
457         </tr>
458     </table>
459     </div>
460 </t>
461 <t t-name="WebClient.timezone_notification">
462     <div class="oe_webclient_timezone_notification">
463         <p>Your user's preference timezone does not match your browser timezone:</p>
464
465         <dl>
466             <dt>User's timezone</dt>
467             <dd><t t-esc="user_timezone"/> (<t t-esc="user_offset"/>)</dd>
468             <dt>Browser's timezone</dt>
469             <dd><t t-esc="browser_offset"/></dd>
470         </dl>
471
472         <p><a href="#">Click here to change your user's timezone.</a></p>
473     </div>
474 </t>
475 <t t-name="WebClient.timezone_systray">
476     <div class="oe_topbar_item oe_timezone_systray" title="Timezone mismatch">
477         <span class="ui-icon ui-state-error ui-icon-alert"/>
478     </div>
479 </t>
480
481 <t t-name="EmbedClient">
482     <div class="openerp">
483         <div class="oe_application"></div>
484     </div>
485 </t>
486
487 <t t-name="ViewManager">
488     <div class="oe_view_manager">
489         <table class="oe_view_manager_header">
490             <col width="20%"/>
491             <col width="35%"/>
492             <col width="15%"/>
493             <col width="30%"/>
494             <tr class="oe_header_row oe_header_row_top">
495                 <td colspan="2">
496                         <h2 class="oe_view_title" t-if="widget.flags.display_title !== false">
497                             <span class="oe_view_title_text oe_breadcrumb_title"/>
498                         </h2>
499                 </td>
500                 <td colspan="2">
501                         <div class="oe_view_manager_view_search"/>
502                 </td>
503             </tr>
504             <tr class="oe_header_row">
505                 <td>
506                         <div class="oe_view_manager_buttons"/>
507                 </td>
508                 <td colspan="2">
509                         <div class="oe_view_manager_sidebar"/>
510                 </td>
511                 <td>
512                     <ul class="oe_view_manager_switch oe_button_group oe_right">
513                         <t t-if="widget.views_src.length > 1" t-foreach="widget.views_src" t-as="view">
514                           <li class="oe_e">
515                             <a t-attf-class="oe_vm_switch_#{view.view_type}" t-att-data-view-type="view.view_type"
516                                t-att-title="view.button_label"/>
517                           </li>
518                         </t>
519                     </ul>
520                     <div class="oe_view_manager_pager oe_right"/>
521                 </td>
522             </tr>
523         </table>
524
525     <div class="oe_view_manager_body">
526         <div class="oe_searchview_drawer_container"/>
527             <t t-foreach="widget.views_src" t-as="view">
528                 <div t-attf-class="oe_view_manager_view_#{view.view_type}"/>
529             </t>
530         </div>
531     </div>
532 </t>
533
534 <t t-name="ViewManagerAction" t-extend="ViewManager">
535     <t t-jquery="h2.oe_view_title" t-operation="before">
536         <select t-if="widget.session.debug" class="oe_debug_view"/>
537     </t>
538 </t>
539 <t t-name="ViewManagerDebug">
540     <option value="">Debug View#<t t-esc="view.fields_view.view_id"/></option>
541     <t t-if="view_manager.active_view === 'form'">
542         <option value="perm_read">View Log (perm_read)</option>
543         <option value="toggle_layout_outline">Toggle Form Layout Outline</option>
544         <option value="set_defaults">Set Defaults</option>
545     </t>
546     <option value="tests">JS Tests</option>
547     <option value="fields">View Fields</option>
548     <option value="fvg">Fields View Get</option>
549     <option value="manage_filters">Manage Filters</option>
550     <t t-if="view_manager.session.uid === 1">
551         <option value="translate">Technical translation</option>
552         <option value="manage_views">Manage Views</option>
553         <option value="edit" data-model="ir.ui.view" t-att-data-id="view.fields_view.view_id">Edit <t t-esc="_.str.capitalize(view.fields_view.type)"/>View</option>
554         <option t-if="view_manager.searchview" value="edit" data-model="ir.ui.view" t-att-data-id="view_manager.searchview.view_id">Edit SearchView</option>
555         <option t-if="view_manager.action" value="edit" t-att-data-model="view_manager.action.type" t-att-data-id="view_manager.action.id">Edit Action</option>
556         <option value="edit_workflow">Edit Workflow</option>
557         <option value="print_workflow">Print Workflow</option>
558     </t>
559 </t>
560 <t t-name="ViewManagerDebugViewLog">
561     <div class="oe_debug_view_log">
562         <table class="table table-condensed table-striped">
563             <tr>
564                 <th>ID:</th>
565                 <td><t t-esc="perm.id"/></td>
566             </tr>
567             <tr>
568                 <th>XML ID:</th>
569                 <td><t t-esc="perm.xmlid or '/'"/></td>
570             </tr>
571             <tr>
572                 <th>Creation User:</th>
573                 <td><t t-esc="format(perm.create_uid, { 'type' : 'many2one' }, '/')"/></td>
574             </tr>
575             <tr>
576                 <th>Creation Date:</th>
577                 <td><t t-esc="format(perm.create_date, { 'type' : 'datetime' }, '/')"/></td>
578             </tr>
579             <tr>
580                 <th>Latest Modification by:</th>
581                 <td><t t-esc="format(perm.write_uid, { 'type' : 'many2one' }, '/')"/></td>
582             </tr>
583             <tr>
584                 <th>Latest Modification Date:</th>
585                 <td><t t-esc="format(perm.write_date, { 'type' : 'datetime' }, '/')"/></td>
586             </tr>
587         </table>
588     </div>
589 </t>
590 <t t-name="ViewPager">
591     <div class="oe_pager_value">
592         <t t-raw="__content__"/>
593     </div>
594     <ul class="oe_pager_group">
595         <!--
596         <button class="oe_button oe_button_pager" type="button" data-pager-action="first">
597             <img t-att-src='_s + "/web/static/src/img/pager_first.png"'/>
598         </button>
599         -->
600         <li>
601             <a class="oe_i" type="button" data-pager-action="previous">(</a>
602         </li>
603         <li>
604             <a class="oe_i" type="button" data-pager-action="next">)</a>
605         </li>
606         <!--
607         <button class="oe_button oe_button_pager" type="button" data-pager-action="last">
608             <img t-att-src='_s + "/web/static/src/img/pager_last.png"'/>
609         </button>
610         -->
611     </ul>
612 </t>
613
614 <t t-name="Sidebar">
615     <div class="oe_sidebar">
616         <t t-foreach="widget.sections" t-as="section">
617             <div class="oe_form_dropdown_section">
618                 <button class="oe_dropdown_toggle oe_dropdown_arrow" t-if="section.name != 'buttons'">
619                     <t t-if="section.name == 'files'" t-raw="widget.items[section.name].length || ''"/>
620                     <t t-esc="section.label"/>
621                 </button>
622                 <t t-if="section.name == 'buttons'" t-foreach="widget.items[section.name]" t-as="item" t-att-class="item.classname">
623                     <button t-att-title="item.title or ''" t-att-data-section="section.name" t-att-data-index="item_index" t-att-href="item.url"
624                         target="_blank" class="oe_sidebar_button oe_highlight">
625                         <t t-raw="item.label"/>
626                     </button>
627                 </t>
628                 <ul class="oe_dropdown_menu">
629                     <li t-foreach="widget.items[section.name]" t-as="item" t-att-class="item.classname">
630                         <t t-if="section.name == 'files'">
631                             <t t-set="item.title">
632                                 <b>Attachment : </b><br/>
633                                 <t t-raw="item.name"/>
634                             </t>
635                             <t t-if="item.create_uid and item.create_uid[0]" t-set="item.title">
636                                 <t t-raw="item.title"/><br/>
637                                 <b>Created by : </b><br/>
638                                 <t t-raw="item.create_uid[1] + ' ' + item.create_date"/>
639                             </t>
640                             <t t-if="item.create_uid and item.write_uid and item.create_uid[0] != item.write_uid[0]" t-set="item.title">
641                                 <t t-raw="item.title"/><br/>
642                                 <b>Modified by : </b><br/>
643                                 <t t-raw="item.write_uid[1] + ' ' + item.write_date"/>
644                             </t>
645                         </t>
646                         <a class="oe_sidebar_action_a" t-att-title="item.title or ''" t-att-data-section="section.name" t-att-data-index="item_index" t-att-href="item.url" target="_blank">
647                             <t t-raw="item.label"/>
648                         </a>
649                          <a t-if="section.name == 'files' and !item.callback" class="oe_sidebar_delete_item" t-att-data-id="item.id" title="Delete this attachment">x</a>
650                     </li>
651                     <li t-if="section.name == 'files'" class="oe_sidebar_add_attachment">
652                         <t t-call="HiddenInputFile">
653                             <t t-set="fileupload_id" t-value="widget.fileupload_id"/>
654                             <t t-set="fileupload_action" t-translation="off">/web/binary/upload_attachment</t>
655                             <input type="hidden" name="model" t-att-value="widget.dataset and widget.dataset.model"/>
656                             <input type="hidden" name="id" t-att-value="widget.model_id"/>
657                             <input type="hidden" name="session_id" t-att-value="widget.session.session_id" t-if="widget.session.override_session"/>
658                             <span>Add...</span>
659                         </t>
660                     </li>
661                 </ul>
662             </div>
663         </t>
664     </div>
665 </t>
666
667 <t t-name="TreeView">
668     <select t-if="toolbar" style="width: 30%">
669     </select>
670     <table class="oe_tree_table oe-treeview-table">
671         <thead>
672             <tr>
673                 <th t-foreach="fields_view" t-as="field"
674                     t-if="!field.attrs.modifiers.tree_invisible"
675                     class="treeview-header">
676                     <t t-esc="field_value.attrs.string || fields[field.attrs.name].string" />
677                 </th>
678             </tr>
679         </thead>
680         <tbody>
681         </tbody>
682     </table>
683 </t>
684 <tr t-name="TreeView.rows"
685         t-foreach="records" t-as="record"
686         t-att-id="'treerow_' + record.id"
687         t-att-data-id="record.id" t-att-data-level="level + 1"
688         t-att-data-row-parent-id="row_parent_id">
689     <t t-set="children" t-value="record[children_field]"/>
690     <t t-set="class" t-value="children and children.length ? 'treeview-tr' : 'treeview-td'"/>
691     <t t-set="rank" t-value="'oe-treeview-first'"/>
692     <t t-set="style" t-value="'background-position: ' + 19*(level) + 'px; padding-left: ' + (4 + 19*(level)) + 'px;'"/>
693
694     <td t-foreach="fields_view" t-as="field"
695         t-if="!field.attrs.modifiers.tree_invisible"
696         t-att-data-id="record.id"
697         t-att-style="color_for(record) + style "
698         t-attf-class="#{class} #{rank} #{(fields[field.attrs.name].type === 'float') or (fields[field.attrs.name].type === 'integer') ? 'oe_number' : ''}">
699
700         <span t-if="!field.attrs.modifiers.invisible" >
701             <t t-esc="render(record[field.attrs.name], fields[field.attrs.name])" />
702         </span>
703
704         <t t-set="class" t-value="'treeview-td'"/>
705         <t t-set="rank" t-value="''"/>
706         <t t-set="style" t-value="''"/>
707     </td>
708 </tr>
709
710 <table t-name="ListView" class="oe_list_content">
711     <t t-set="columns_count" t-value="visible_columns.length + (options.selectable ? 1 : 0) + (options.deletable ? 1 : 0)"/>
712     <thead>
713         <tr t-if="(!!options.action_buttons and !options.$buttons) or (!!options.pager and !options.$pager)">
714             <th t-att-colspan="columns_count">
715                 <div class="oe_list_buttons"/>
716                 <div class="oe_list_sidebar"/>
717                 <div class="oe_list_pager"/>
718             </th>
719         </tr>
720         <tr t-if="options.header" class="oe_list_header_columns">
721             <t t-foreach="columns" t-as="column">
722                 <th t-if="column.meta">
723                     <t t-esc="column.string"/>
724                 </th>
725             </t>
726             <th t-if="options.selectable" width="1"  >
727                 <input type="checkbox" class="oe_list_record_selector"/>
728             </th>
729             <t t-foreach="columns" t-as="column">
730                 <th t-if="!column.meta and column.invisible !== '1'" t-att-data-id="column.id"
731                     t-attf-class="oe_list_header_#{column.widget or column.type} #{((options.sortable and column.tag !== 'button') ? 'oe_sortable' : null)}"><div>
732                     <t t-if="column.tag !== 'button'"><t t-esc="column.string"/></t>
733                 </div></th>
734             </t>
735             <th t-if="options.deletable" class="oe_list_record_delete" width="13px"/>
736         </tr>
737     </thead>
738     <tfoot>
739         <tr>
740             <td t-if="options.selectable"/>
741             <td t-foreach="aggregate_columns" t-as="column" class="oe_list_footer oe_number"
742                 t-att-data-field="column.id" t-att-title="column.label">
743             </td>
744             <td t-if="options.deletable" class="oe_list_record_delete"/>
745         </tr>
746     </tfoot>
747 </table>
748 <t t-name="ListView.buttons">
749     <div class="oe_list_buttons">
750     <t t-if="!widget.no_leaf and widget.options.action_buttons !== false and widget.options.addable and widget.is_action_enabled('create')">
751         <button type="button" class="oe_button oe_list_add oe_highlight">
752             <t t-esc="widget.options.addable"/>
753         </button>
754     </t>
755     </div>
756 </t>
757 <t t-name="ListView.pager">
758     <div class="oe_list_pager" t-att-colspan="widget.columns_count">
759         <t t-if="!widget.no_leaf and widget.options.pager !== false" t-call="ViewPager">
760             <span class="oe_list_pager_state">
761             </span>
762         </t>
763     </div>
764 </t>
765 <t t-name="ListView.rows" t-foreach="records.length" t-as="index">
766     <t t-call="ListView.row">
767         <t t-set="record" t-value="records.at(index)"/>
768     </t>
769 </t>
770 <tr t-name="ListView.row"
771         t-att-data-id="record.get('id')"
772         t-att-style="view.style_for(record)">
773     <t t-set="asData" t-value="record.toForm().data"/>
774     <t t-foreach="columns" t-as="column">
775         <td t-if="column.meta"> </td>
776     </t>
777     <th t-if="options.selectable" class="oe_list_record_selector" width="1">
778         <t t-set="checked" t-value="options.select_view_id == record.get('id') ? 'checked' : null"/>
779         <input t-if="options.radio" type="radio" name="radiogroup" t-att-checked="checked"/>
780         <input t-if="!options.radio" type="checkbox" name="radiogroup" t-att-checked="checked"/>
781     </th>
782     <t t-foreach="columns" t-as="column">
783         <t t-set="number" t-value="column.type === 'integer' or column.type == 'float'"/>
784         <t t-set="modifiers" t-value="column.modifiers_for(asData)"/>
785         <td t-if="!column.meta and column.invisible !== '1'" t-att-title="column.help"
786             t-attf-class="oe_list_field_cell oe_list_field_#{column.widget or column.type} #{number ? 'oe_number' : ''} #{column.tag === 'button' ? 'oe-button' : ''} #{modifiers.readonly ? 'oe_readonly' : ''} #{modifiers.required ? 'oe_required' : ''}"
787             t-att-data-field="column.id"
788             ><t t-raw="render_cell(record, column)"/></td>
789     </t>
790     <td t-if="options.deletable" class='oe_list_record_delete' width="13px">
791         <button type="button" name="delete" class="oe_i">d</button>
792     </td>
793 </tr>
794 <t t-extend="ListView.buttons">
795     <t t-jquery="button.oe_list_add" t-operation="after">
796         <button class="oe_button oe_list_save oe_highlight"
797                 type="button">Save</button>
798         <span class="oe_alternative">
799             <span class="oe_fade">or</span>
800             <a href="#" class="oe_bold oe_list_discard">Discard</a>
801         </span>
802     </t>
803 </t>
804 <button t-name="ListView.row.text_button" type="button"
805         t-att-title="widget.string" t-att-disabled="disabled || undefined"
806         t-att-class="disabled ? 'oe_list_button_disabled btn_txt oe_link' : 'btn_txt oe_link'"
807         ><t t-esc="widget.string"/></button>
808 <button t-name="ListView.row.button" type="button"
809         t-att-title="widget.string" t-att-disabled="disabled || undefined"
810         t-att-class="disabled ? 'oe_list_button_disabled' : ''"
811         ><img t-attf-src="#{prefix}/web/static/src/img/icons/#{widget.icon}.png"
812         t-att-alt="widget.string"/></button>
813 <t t-extend="ListView.row">
814     <!-- adds back padding to row being rendered after edition, if necessary
815          (if not deletable add back padding), otherwise the row being added is
816          missing columns
817      -->
818     <t t-jquery="&gt; :last" t-operation="after">
819         <td t-if="edited and !options.deletable" class="oe-listview-padding"/>
820     </t>
821 </t>
822
823 <t t-name="FormView">
824     <div class="oe_formview">
825         <div class="oe_form_buttons"/>
826         <div class="oe_form_sidebar"/>
827         <div class="oe_form_pager"/>
828         <div class="oe_form_container"/>
829     </div>
830 </t>
831 <div t-name="FormView.buttons" class="oe_form_buttons">
832     <t t-if="widget.options.action_buttons !== false">
833         <span class="oe_form_buttons_view">
834             <!-- required for the bounce effect on button -->
835             <div t-if="widget.is_action_enabled('edit')" style="display: inline-block;">
836                 <button type="button" class="oe_button oe_form_button_edit" accesskey="E">Edit</button>
837             </div>
838             <button t-if="widget.is_action_enabled('create')"
839                 type="button" class="oe_button oe_form_button_create" accesskey="C">Create</button>
840         </span>
841         <span class="oe_form_buttons_edit">
842             <button type="button" class="oe_button oe_form_button_save oe_highlight" accesskey="S">Save</button>
843             <span class="oe_fade">or</span>
844             <a href="#" class="oe_bold oe_form_button_cancel" accesskey="D">Discard</a>
845         </span>
846     </t>
847 </div>
848 <t t-name="FormView.pager">
849     <div class="oe_form_pager">
850         <t t-if="widget.options.pager !== false" t-call="ViewPager">
851             <span class="oe_form_pager_state"></span>
852         </t>
853     </div>
854 </t>
855 <form t-name="FormView.set_default">
856     <t t-set="args" t-value="widget.dialog_options.args"/>
857     <table style="width: 100%">
858         <tr>
859             <td>
860                 <label for="formview_default_fields"
861                        class="oe_label oe_align_right">
862                     Default:
863                 </label>
864             </td>
865             <td class="oe_form_required">
866                 <select id="formview_default_fields">
867                     <option value=""/>
868                     <option t-foreach="args.fields" t-as="field"
869                             t-att-value="field.name">
870                         <t t-esc="field.string"/> = <t t-esc="field.displayed"/>
871                     </option>
872                 </select>
873             </td>
874         </tr>
875         <tr t-if="args.conditions.length">
876             <td>
877                 <label for="formview_default_conditions"
878                        class="oe_label oe_align_right">
879                     Condition:
880                 </label>
881             </td>
882             <td>
883                 <select id="formview_default_conditions">
884                     <option value=""/>
885                     <option t-foreach="args.conditions" t-as="cond"
886                             t-att-value="cond.name + '=' + cond.value">
887                         <t t-esc="cond.string"/>=<t t-esc="cond.displayed"/>
888                     </option>
889                 </select>
890             </td>
891         </tr>
892         <tr>
893             <td colspan="2">
894                 <input type="radio" id="formview_default_self"
895                        value="self" name="scope" checked="checked"/>
896                 <label for="formview_default_self" class="oe_label"
897                        style="display: inline;">
898                     Only you
899                 </label>
900                 <br/>
901                 <input type="radio" id="formview_default_all"
902                        value="all" name="scope"/>
903                 <label for="formview_default_all" class="oe_label"
904                        style="display: inline;">
905                     All users
906                 </label>
907             </td>
908         </tr>
909     </table>
910 </form>
911
912 <t t-name="FormRenderingForm">
913     <div t-attf-class="#{classnames}">
914     </div>
915 </t>
916 <t t-name="FormRenderingSheet">
917     <div class="oe_form_sheetbg">
918         <div t-attf-class="oe_form_sheet oe_form_sheet_width #{classnames}">
919         </div>
920     </div>
921 </t>
922 <t t-name="FormRenderingGroup">
923     <t t-if="string" t-call="FormRenderingSeparator"/>
924     <table border="0" cellpadding="0" cellspacing="0" t-attf-class="oe_form_group #{classnames}"/>
925 </t>
926 <t t-name="FormRenderingNotebook">
927     <div class="oe_clear">
928         <ul t-attf-class="oe_notebook #{classnames}">
929             <li t-foreach="pages" t-as="page" t-att-modifiers="page.modifiers">
930                 <a t-attf-href="##{page.id}" t-att-accesskey="page.accesskey">
931                     <t t-esc="page.string"/>
932                 </a>
933             </li>
934         </ul>
935     </div>
936 </t>
937 <t t-name="FormRenderingNotebookPage">
938     <div t-attf-class="oe_notebook_page #{classnames}" t-att-id="id">
939     </div>
940 </t>
941 <t t-name="FormRenderingSeparator">
942     <div t-attf-class="oe_horizontal_separator oe_clear #{classnames}">
943         <t t-esc="string"/>
944     </div>
945 </t>
946 <t t-name="FormRenderingLabel">
947     <label  t-att-for="_for"
948             t-attf-class="#{classnames} oe_form_label#{help ? '_help' : ''} oe_align_#{align}">
949         <t t-esc="string"/>
950     </label>
951 </t>
952
953 <t t-name="Widget">
954     Unhandled widget
955     <t t-js="dict">console.warn('Unhandled widget', dict.widget);</t>
956 </t>
957 <t t-name="WidgetLabel.tooltip">
958     <div class="oe_tooltip_string" t-if="widget.string">
959         <t t-esc="widget.node.attrs.string"/> <t t-if="debug and widget.nolabel">(nolabel)</t>
960     </div>
961     <p t-if="widget.node.attrs.help or (widget.field and widget.field.help)" class="oe_tooltip_help"><t t-esc="widget.node.attrs.help || widget.field.help"/></p>
962     <ul t-if="debug" class="oe_tooltip_technical">
963         <li data-item="field" t-if="widget.name">
964             <span class="oe_tooltip_technical_title">Field:</span>
965             <t t-esc="widget.name"/>
966         </li>
967         <li data-item="object" t-if="widget.view and widget.view.fields_view">
968             <span class="oe_tooltip_technical_title">Object:</span>
969             <t t-esc="widget.view.fields_view.model"/>
970         </li>
971         <li data-item="type" t-if="widget.field">
972             <span class="oe_tooltip_technical_title">Type:</span>
973             <t t-esc="widget.field.type"/>
974         </li>
975         <li t-if="widget.node.attrs.widget" data-item="widget">
976             <span class="oe_tooltip_technical_title">Widget:</span>
977             <t t-esc="widget.node.attrs.widget"/>
978         </li>
979         <li t-if="widget.node.attrs.size || (widget.field and widget.field.size)" data-item="size">
980             <span class="oe_tooltip_technical_title">Size:</span>
981             <t t-esc="widget.node.attrs.size || widget.field.size"/>
982         </li>
983         <li t-if="widget.node.attrs.context" data-item="context">
984             <span class="oe_tooltip_technical_title">Context:</span>
985             <t t-esc="widget.node.attrs.context"/>
986         </li>
987         <li t-if="widget.node.attrs.domain" data-item="domain">
988             <span class="oe_tooltip_technical_title">Domain:</span>
989             <t t-esc="widget.node.attrs.domain"/>
990         </li>
991         <li t-if="widget.node.attrs.modifiers and widget.node.attrs.modifiers != '{}'" data-item="modifiers">
992             <span class="oe_tooltip_technical_title">Modifiers:</span>
993             <t t-esc="widget.node.attrs.modifiers"/>
994         </li>
995         <li t-if="widget.field and widget.field.change_default" data-item="change_default">
996             <span class="oe_tooltip_technical_title">Change default:</span>
997             Yes
998         </li>
999         <li t-if="widget.node.attrs.on_change" data-item="on_change">
1000             <span class="oe_tooltip_technical_title">On change:</span>
1001             <t t-esc="widget.node.attrs.on_change"/>
1002         </li>
1003         <li t-if="widget.field and widget.field.relation" data-item="relation">
1004             <span class="oe_tooltip_technical_title">Relation:</span>
1005             <t t-esc="widget.field.relation"/>
1006         </li>
1007         <li t-if="widget.field and widget.field.selection" data-item="selection">
1008             <span class="oe_tooltip_technical_title">Selection:</span>
1009             <ul class="oe_tooltip_technical">
1010                 <li t-foreach="widget.field.selection" t-as="option">
1011                     [<t t-esc="option[0]"/>]
1012                     <t t-if="option[1]"> - </t>
1013                     <t t-esc="option[1]"/>
1014                 </li>
1015             </ul>
1016         </li>
1017     </ul>
1018 </t>
1019 <t t-name="FieldChar">
1020     <span t-att-class="'oe_form_field '+widget.widget_class" t-att-style="widget.node.attrs.style">
1021         <t t-if="!widget.get('effective_readonly')">
1022             <input t-att-type="widget.password ? 'password' : 'text'"
1023                 t-att-id="widget.id_for_label"
1024                 t-att-tabindex="widget.node.attrs.tabindex"
1025                 t-att-autofocus="widget.node.attrs.autofocus"
1026                 t-att-placeholder="widget.node.attrs.placeholder"
1027                 t-att-maxlength="widget.field.size"
1028             /><img class="oe_field_translate oe_input_icon" t-if="widget.field.translate" t-att-src='_s + "/web/static/src/img/icons/terp-translate.png"' width="16" height="16" border="0"/>
1029         </t>
1030         <t t-if="widget.get('effective_readonly')">
1031             <span class="oe_form_char_content"></span>
1032         </t>
1033     </span>
1034 </t>
1035 <t t-name="KanbanSelection">
1036     <div class="btn-group kanban_state">
1037         <t t-foreach="widget.states" t-as="rec">
1038             <a t-if="widget.get('value') === rec.name">
1039                 <a class="oe_legend dropdown-toggle" data-toggle="dropdown">
1040                     <span t-att-class="rec.state_class" t-if="widget.get('value') === rec.name" t-att-title="rec.tooltip"/>
1041                     <span class="sr-only">Toggle Dropdown</span>
1042                 </a>
1043             </a>
1044         </t>
1045         <ul class="dropdown-menu state" role="menu">
1046             <t t-foreach="widget.states" t-as="rec">
1047                 <t t-if="widget.get('value') !== rec.name">
1048                     <li class="oe_legend" t-att-data-value="rec.name" ><a href="#">
1049                         <span t-att-class="rec.state_class" t-att-title="rec.tooltip"/>
1050                         <t t-raw="rec.state_name" /></a>
1051                     </li>
1052                 </t>
1053             </t>
1054         </ul>
1055     </div>
1056 </t>
1057 <t t-name="Priority">
1058     <ul style="list-style: none; padding-left: 2px; display: inline-block;">
1059         <t t-foreach="widget.priorities" t-as="rec" >
1060             <li t-att-data-value="rec.click_value" class="oe_legend" style="display: inline-block;">
1061                 <a href="#" t-att-title="rec.name">
1062                     <span t-att-class="widget.get('value') gte rec.value and 'oe_e oe_star_on' or 'oe_e oe_star_off'">7</span>
1063                 </a>
1064             </li>
1065         </t>
1066     </ul>
1067 </t>
1068 <t t-name="FieldEmail">
1069     <span class="oe_form_field oe_form_field_email" t-att-style="widget.node.attrs.style">
1070         <a t-if="widget.get('effective_readonly')" href="#" class="oe_form_uri" target="_blank"/>
1071         <t t-if="!widget.get('effective_readonly')">
1072             <div>
1073                 <input type="text"
1074                     t-att-id="widget.id_for_label"
1075                     t-att-tabindex="widget.node.attrs.tabindex"
1076                     t-att-autofocus="widget.node.attrs.autofocus"
1077                     t-att-placeholder="widget.node.attrs.placeholder"
1078                 t-att-maxlength="widget.field.size"
1079                 />
1080             </div>
1081         </t>
1082     </span>
1083 </t>
1084 <t t-name="FieldUrl" t-extend="FieldEmail">
1085     <t t-jquery="span:first">
1086         this.removeClass('oe_form_field_email').addClass('oe_form_field_url');
1087     </t>
1088 </t>
1089 <t t-name="FieldText">
1090     <div class="oe_form_field oe_form_field_text" t-att-style="widget.node.attrs.style">
1091         <t t-if="!widget.get('effective_readonly')">
1092             <textarea rows="6"
1093                 t-att-name="widget.name"
1094                 class="field_text"
1095                 t-att-tabindex="widget.node.attrs.tabindex"
1096                 t-att-autofocus="widget.node.attrs.autofocus"
1097                 t-att-placeholder="! widget.get('effective_readonly') ? widget.node.attrs.placeholder : ''"
1098                 t-att-maxlength="widget.field.size"
1099             ></textarea><img class="oe_field_translate oe_input_icon"
1100                             t-if="widget.field.translate and !widget.get('effective_readonly')"
1101                             t-att-src='_s + "/web/static/src/img/icons/terp-translate.png"' width="16" height="16" border="0"
1102             />            
1103         </t>
1104         <t t-if="widget.get('effective_readonly')">
1105             <span class="oe_form_text_content"></span>
1106         </t>
1107     </div>
1108 </t>
1109 <t t-name="FieldTextHtml">
1110     <div t-att-class="'oe_form_field oe_form_field_html' + (widget.get('effective_readonly') ? ' oe_form_embedded_html' : '')"
1111             t-att-style="widget.node.attrs.style">
1112         <t t-if="! widget.get('effective_readonly')">
1113             <textarea/>
1114         </t>
1115     </div>
1116 </t>
1117 <t t-name="FieldCharDomain">
1118     <div class="oe_form_field">
1119         <span class="oe_domain_count"/>
1120         <button class="oe_button oe_link select_records" type="button"
1121             t-att-style="widget.node.attrs.style"
1122             t-att-accesskey="widget.node.attrs.accesskey">
1123             <span class="fa fa-arrow-right"/>
1124         </button>
1125     </div>
1126 </t>
1127 <t t-name="web.datepicker">
1128     <span>
1129         <t t-set="placeholder" t-value="widget.getParent().node and widget.getParent().node.attrs.placeholder"/>
1130         <input type="text" class="oe_datepicker_container" disabled="disabled" style="display: none;"/>
1131         <input type="text"
1132             t-att-name="widget.name"
1133             t-att-placeholder="placeholder"
1134             class="oe_datepicker_master"
1135         /><img class="oe_input_icon oe_datepicker_trigger" draggable="false"
1136                t-att-src='_s + "/web/static/src/img/ui/field_calendar.png"'
1137                title="Select date" width="16" height="16" border="0"/>
1138     </span>
1139 </t>
1140 <t t-name="FieldDate">
1141     <span class="oe_form_field oe_datepicker_root oe_form_field_date" t-att-style="widget.node.attrs.style"/>
1142 </t>
1143 <t t-name="FieldDatetime">
1144     <span class="oe_form_field oe_datepicker_root oe_form_field_datetime" t-att-style="widget.node.attrs.style"/>
1145 </t>
1146 <t t-name="FieldSelection">
1147     <span class="oe_form_field oe_form_field_selection" t-att-style="widget.node.attrs.style">
1148     </span>
1149 </t>
1150 <t t-name="FieldSelectionSelect">
1151     <select t-if="!widget.get('effective_readonly')"
1152         t-att-name="widget.name"
1153         t-att-tabindex="widget.node.attrs.tabindex"
1154         t-att-autofocus="widget.node.attrs.autofocus"
1155         t-att-id="widget.id_for_label">
1156             <t t-foreach="values" t-as="option">
1157                 <option t-att-value="JSON.stringify(option[0])">
1158                     <t t-esc="option[1]"/>
1159                 </option>
1160             </t>
1161     </select>
1162 </t>
1163 <t t-name="FieldRadio">
1164     <span t-attf-class="oe_form_field oe_form_field_radio #{widget.options.horizontal ? 'oe_horizontal' : 'oe_vertical'}" t-att-style="widget.node.attrs.style">
1165         <span t-if="!widget.get('effective_readonly')">
1166             <t t-if="widget.options.horizontal">
1167                 <t t-set="width" t-value="Math.floor(100 / widget.selection.length)"/>
1168                 <t t-if="!widget.options.no_radiolabel">
1169                     <t t-foreach="widget.selection" t-as="selection">
1170                         <label t-att-for="widget.uniqueId + '_' + selection[0]" t-att-style="'width: ' + width + '%;'"><t t-esc="selection[1]"/></label>
1171                     </t>
1172                     <br/>
1173                 </t>
1174                 <t t-foreach="widget.selection" t-as="selection">
1175                     <div t-att-style="'width: ' + width + '%;'">
1176                         <span class="oe_radio_input"><input type="radio" t-att-name="widget.uniqueId" t-att-id="widget.uniqueId + '_' + selection[0]" t-att-value="selection[0]"/></span>
1177                     </div>
1178                 </t>
1179             </t>
1180             <t t-if="!widget.options.horizontal">
1181                 <t t-foreach="widget.selection" t-as="selection">
1182                     <div>
1183                         <span class="oe_radio_input"><input type="radio" t-att-id="widget.uniqueId + '_' + selection[0]" t-att-name="widget.uniqueId" t-att-value="selection[0]"/></span><label t-if="!widget.options.no_radiolabel" t-att-for="widget.uniqueId + '_' + selection[0]"><t t-esc="selection[1]"/></label>
1184                     </div>
1185                 </t>
1186             </t>
1187         </span>
1188         <span t-if="widget.get('effective_readonly')" class="oe_radio_readonly"><t t-esc="widget.get('value')[1]"/></span>
1189     </span>
1190 </t>
1191 <t t-name="FieldMany2One">
1192     <span class="oe_form_field oe_form_field_many2one oe_form_field_with_button" t-att-style="widget.node.attrs.style">
1193         <t t-if="widget.get('effective_readonly')">
1194             <a t-if="! widget.options.no_open" href="#" class="oe_form_uri"/>
1195             <span t-if="widget.options.no_open" href="#" class="oe_form_uri"/>
1196             <span class="oe_form_m2o_follow"/>
1197         </t>
1198         <t t-if="!widget.get('effective_readonly')">
1199             <a t-if="! widget.options.no_open" href="#" tabindex="-1"
1200                 class="oe_m2o_cm_button oe_e" draggable="false">/</a>
1201             <div>
1202                 <input type="text"
1203                     t-att-id="widget.id_for_label"
1204                     t-att-tabindex="widget.node.attrs.tabindex"
1205                     t-att-autofocus="widget.node.attrs.autofocus"
1206                     t-att-placeholder="widget.node.attrs.placeholder"
1207                 />
1208                 <span class="oe_m2o_drop_down_button">
1209                     <img t-att-src='_s + "/web/static/src/img/down-arrow.png"' draggable="false"/>
1210                 </span>
1211             </div>
1212         </t>
1213     </span>
1214 </t>
1215 <t t-name="Many2OneButton">
1216     <span class="oe_form_field">
1217     </span>
1218 </t>
1219 <t t-name="Many2OneButton.cell"
1220     ><img t-attf-src="#{prefix}/web/static/src/img/icons/#{widget.icon}.png" t-att-alt="widget.string" width="16" height="16"/>
1221 </t>
1222 <t t-name="FieldMany2ManyTags">
1223     <div class="oe_form_field oe_tags" t-att-style="widget.node.attrs.style">
1224         <t t-if="! widget.get('effective_readonly')">
1225             <textarea rows="1" style="width: 100%"
1226                 t-att-placeholder="widget.node.attrs.placeholder"></textarea>
1227         </t>
1228     </div>
1229 </t>
1230 <t t-name="FieldMany2ManyTag">
1231     <t t-set="i" t-value="0"/>
1232     <t t-foreach="elements" t-as="el">
1233         <span class="oe_tag" t-att-data-index="i">
1234             <t t-esc="el[1]"/>
1235         </span>
1236         <t t-set="i" t-value="i + 1"/>
1237     </t>
1238 </t>
1239 <t t-name="FieldReference">
1240     <table class="oe_form_field oe_form_field_reference" border="0" cellpadding="0" cellspacing="0" t-att-style="widget.node.attrs.style">
1241     <tr>
1242         <td t-attf-class="oe_form_frame_cell oe_form_selection">
1243             <span t-attf-class="oe_form_view_reference_selection"/>
1244         </td>
1245         <td t-attf-class="oe_form_frame_cell oe_form_many2one" nowrap="true">
1246             <span t-attf-class="oe_form_view_reference_m2o"/>
1247         </td>
1248     </tr>
1249     </table>
1250 </t>
1251 <t t-name="FieldBoolean">
1252     <span class="oe_form_field oe_form_field_boolean" t-att-style="widget.node.attrs.style">
1253         <input type="checkbox"
1254             t-att-id="widget.id_for_label"
1255             t-att-name="widget.name"
1256             t-att-tabindex="widget.node.attrs.tabindex"
1257             t-att-autofocus="widget.node.attrs.autofocus"
1258             class="field_boolean"/>
1259     </span>
1260 </t>
1261 <t t-name="FieldProgressBar">
1262     <span class="oe_form_field oe_form_field_progressbar" t-att-style="widget.node.attrs.style">
1263         <span></span>
1264     </span>
1265 </t>
1266 <t t-name="FieldPercentPie">
1267     <div class="oe_form_field oe_form_field_percent_pie" t-att-style="widget.node.attrs.style">
1268         <svg></svg>
1269         <span t-if="widget.string"><t t-esc="widget.string"/></span>
1270     </div>
1271 </t>
1272 <t t-name="FieldBarChart">
1273     <div class="oe_form_field oe_form_field_bar_chart" t-att-style="widget.node.attrs.style">
1274         <svg></svg>
1275         <span t-if="widget.string"><t t-esc="widget.string"/></span>
1276     </div>
1277 </t>
1278 <t t-name="FieldStatus">
1279     <ul t-att-class="'oe_form_field_status ' + (widget.options.clickable ? 'oe_form_status_clickable' : 'oe_form_status')" t-att-style="widget.node.attrs.style"/>
1280 </t>
1281 <t t-name="FieldStatus.content">
1282     <t t-foreach="widget.selection.unfolded" t-as="i">
1283         <li t-att-class="i[0] === widget.get('value') ? 'oe_active' : ''" t-att-data-id="i[0]">
1284             <span class="label"><t t-esc="i[1]"/></span>
1285             <!-- are you mit ? -->
1286             <span class="arrow"><span></span></span>
1287         </li>
1288     </t>
1289     <t t-if="widget.selection.folded.length">
1290         <li>
1291             <span class="label oe_dropdown_toggle oe_dropdown_arrow">More</span>
1292             <ul class="oe_dropdown_menu">
1293                 <t t-foreach="widget.selection.folded" t-as="i">
1294                     <li t-att-class="i[0] === widget.get('value') ? 'oe_active' : ''" t-att-data-id="i[0]">
1295                         <span class="label"><t t-esc="i[1]"/></span>
1296                     </li>
1297                 </t>
1298             </ul>
1299         </li>
1300     </t>
1301 </t>
1302 <t t-name="FieldBinaryImage">
1303     <span class="oe_form_field oe_form_field_image" t-att-style="widget.node.attrs.style">
1304         <div class="oe_form_field_image_controls oe_edit_only">
1305             <t t-call="HiddenInputFile">
1306                 <t t-set="fileupload_id" t-value="widget.fileupload_id"/>
1307                 Edit 
1308             </t>
1309             <div class="oe_form_binary_progress" style="display: none">
1310                 <img t-att-src='_s + "/web/static/src/img/throbber.gif"' width="16" height="16"/>
1311                 <b>Uploading ...</b>
1312             </div>
1313         </div>
1314     </span>
1315 </t>
1316 <t t-name="FieldBinaryImage-img">
1317     <img t-att-src='url'
1318         t-att-border="widget.readonly ? 0 : 1"
1319         t-att-name="widget.name"
1320         t-att-width="widget.node.attrs.img_width || widget.node.attrs.width"
1321         t-att-height="widget.node.attrs.img_height || widget.node.attrs.height"
1322     />
1323 </t>
1324 <t t-name="FieldBinaryFile">
1325     <t t-if="!widget.get('effective_readonly')">
1326         <table class="oe_form_field oe_form_field_binary" cellpadding="0" cellspacing="0" border="0" t-att-style="widget.node.attrs.style">
1327         <tr>
1328             <td>
1329                 <input type="text" size="1" readonly="readonly"
1330                     t-att-name="widget.name"
1331                     t-att-tabindex="widget.node.attrs.tabindex"
1332                     t-att-autofocus="widget.node.attrs.autofocus"
1333                     class="field_binary"
1334                 />
1335             </td>
1336             <td class="oe_form_binary" nowrap="true">
1337                 <table cellspacing="0" cellpadding="0" border="0">
1338                 <tr>
1339                     <td>
1340                         <t t-call="HiddenInputFile">
1341                             <t t-set="fileupload_id" t-value="widget.fileupload_id"/>
1342                             <t t-set="fileupload_style" t-translation="off">overflow-x: hidden</t>
1343                             <button class="oe_button oe_field_button" type="button">
1344                                 <img t-att-src='_s + "/web/static/src/img/icons/STOCK_DIRECTORY.png"'/>
1345                                 <span>Select</span>
1346                             </button>
1347                         </t>
1348                     </td>
1349                     <td>
1350                         <a class="oe_form_binary_file_save_data">
1351                             <button class="oe_button oe_form_binary_file_save" type="button" title="Save As">
1352                                 <img t-att-src='_s + "/web/static/src/img/icons/gtk-save.png"'/>
1353                                 <span>Save As</span>
1354                             </button>
1355                         </a>
1356                     </td>
1357                     <td>
1358                         <button class="oe_button oe_form_binary_file_clear" type="button" title="Clear">
1359                             <img t-att-src='_s + "/web/static/src/img/icons/STOCK_MISSING_IMAGE.png"'/>
1360                             <span>Clear</span>
1361                         </button>
1362                     </td>
1363                 </tr>
1364                 </table>
1365             </td>
1366             <td class="oe_form_binary_progress" style="display: none" nowrap="true">
1367                 <img t-att-src='_s + "/web/static/src/img/throbber.gif"' width="16" height="16"/>
1368                 <b>Uploading ...</b>
1369             </td>
1370         </tr>
1371         </table>
1372     </t>
1373     <t t-if="widget.get('effective_readonly')">
1374         <span t-att-style="widget.node.attrs.style">
1375             <a href="javascript:void(0)" class="oe_form_uri"/>
1376         </span>
1377     </t>
1378 </t>
1379 <t t-name="HiddenInputFile">
1380     <div t-attf-class="oe_hidden_input_file #{fileupload_class or ''}" t-att-style="fileupload_style">
1381         <form class="oe_form_binary_form" t-att-target="fileupload_id"
1382             method="post" enctype="multipart/form-data" t-att-action="fileupload_action || '/web/binary/upload'">
1383             <input type="hidden" name="session_id" value="" t-if="widget.session.override_session"/>
1384             <input type="hidden" name="callback" t-att-value="fileupload_id"/>
1385             <t t-raw="__content__"/>
1386             <input type="file" class="oe_form_binary_file" name="ufile" t-if="widget.widget!='image'"/>
1387             <input type="file" class="oe_form_binary_file" name="ufile" accept="image/*" t-if="widget.widget=='image'"/>
1388         </form>
1389         <iframe t-att-id="fileupload_id" t-att-name="fileupload_id" style="display: none"/>
1390     </div>
1391 </t>
1392 <t t-name="FieldBinaryFileUploader.files">
1393     <div class="oe_attachments">
1394         <t t-if="!widget.get('effective_readonly')">
1395             <t t-foreach="values" t-as="id">
1396                 <t t-set="file" t-value="widget.data[id]"/>
1397                 <div class="oe_attachment">
1398                     <span t-if="(file.upload or file.percent_loaded&lt;100)" t-attf-title="{(file.name || file.filename) + (file.date?' \n('+file.date+')':'' )}" t-attf-name="{file.name || file.filename}">
1399                         <span class="oe_fileuploader_in_process">...Upload in progress...</span>
1400                         <t t-raw="file.name || file.filename"/>
1401                     </span>
1402                     <a t-if="(!file.upload or file.percent_loaded&gt;=100)" t-att-href="file.url" t-attf-title="{(file.name || file.filename) + (file.date?' \n('+file.date+')':'' )}">
1403                         <t t-raw="file.name || file.filename"/>
1404                     </a>
1405                     <t t-if="(!file.upload or file.percent_loaded&gt;=100)">
1406                         <a class="oe_right oe_delete oe_e" title="Delete this file" t-attf-data-id="{file.id}">[</a>
1407                     </t>
1408                 </div>
1409             </t>
1410         </t>
1411         <t t-if="widget.get('effective_readonly')">
1412             <t t-foreach="widget.get('value')" t-as="id">
1413                 <t t-set="file" t-value="widget.data[id]"/>
1414                 <div>
1415                     <a t-att-href="file.url" t-attf-title="{(file.name || file.filename) + (file.date?' \n('+file.date+')':'' )}">
1416                         <t t-raw="file.name || file.filename"/>
1417                     </a>
1418                 </div>
1419             </t>
1420         </t>
1421     </div>
1422 </t>
1423 <t t-name="FieldBinaryFileUploader">
1424     <div t-att-style="widget.node.attrs.style" t-attf-class="oe_fileupload #{widget.node.attrs.class ? widget.node.attrs.class :''}">
1425         <div class="oe_placeholder_files"/>
1426         <div class="oe_add" t-if="!widget.get('effective_readonly')">
1427             <!-- uploader of file -->
1428             <button class="oe_attach"><span class="oe_e">'</span></button> 
1429             <span class='oe_attach_label'><t t-esc="widget.string"/></span>
1430             <t t-call="HiddenInputFile">
1431                 <t t-set="fileupload_id" t-value="widget.fileupload_id"/>
1432                 <t t-set="fileupload_action" t-translation="off">/web/binary/upload_attachment</t>
1433                 <input type="hidden" name="model" t-att-value="widget.view.model"/>
1434                 <input type="hidden" name="id" value="0"/>
1435                 <input type="hidden" name="session_id" t-att-value="widget.session.session_id" t-if="widget.session.override_session"/>
1436             </t>
1437         </div>
1438     </div>
1439 </t>
1440 <t t-name="WidgetButton">
1441     <button type="button" t-att-class="widget.is_stat_button ? 'oe_stat_button btn btn-default' : 'oe_button oe_form_button'"
1442         t-att-style="widget.node.attrs.style"
1443         t-att-tabindex="widget.node.attrs.tabindex"
1444         t-att-autofocus="widget.node.attrs.autofocus"
1445         t-att-accesskey="widget.node.attrs.accesskey">
1446         <img t-if="!widget.is_stat_button and widget.node.attrs.icon " t-att-src="_s + widget.node.attrs.icon" width="16" height="16"/>
1447         <div t-if="widget.is_stat_button and widget.icon_class" t-att-class="widget.icon_class"></div>
1448         <span t-if="widget.string and !widget.is_stat_button"><t t-esc="widget.string"/></span>
1449         <div t-if="widget.string and widget.is_stat_button"><t t-esc="widget.string"/></div>
1450     </button>
1451 </t>
1452 <t t-name="WidgetButton.tooltip" t-extend="WidgetLabel.tooltip">
1453     <t t-jquery="div.oe_tooltip_string" t-operation="replace">
1454         <div class="oe_tooltip_string" t-if="debug || widget.string">
1455             <t t-if="debug">
1456                 Button
1457                 <t t-if="widget.string">: </t>
1458                 <t t-if="!widget.string"> (no string)</t>
1459             </t>
1460             <t t-esc="widget.string"/>
1461         </div>
1462     </t>
1463     <t t-jquery="ul.oe_tooltip_technical" t-operation="append">
1464         <li t-if="widget.node.attrs.special" data-item="special">
1465             <span class="oe_tooltip_technical_title">Special:</span>
1466             <t t-esc="widget.node.attrs.special"/>
1467         </li>
1468         <t t-set="button_type" t-value="widget.node.attrs.type"/>
1469         <li t-if="button_type" data-item="button_type">
1470             <span class="oe_tooltip_technical_title">Button Type:</span>
1471             <t t-esc="button_type"/>
1472         </li>
1473         <li t-if="button_type === 'object'" data-item="button_method">
1474             <span class="oe_tooltip_technical_title">Method:</span>
1475             <t t-esc="widget.node.attrs.name"/>
1476         </li>
1477         <li t-if="button_type === 'action'" data-item="button_action">
1478             <span class="oe_tooltip_technical_title">Action ID:</span>
1479             <t t-esc="widget.node.attrs.name"/>
1480         </li>
1481     </t>
1482 </t>
1483
1484 <t t-name="AbstractFormPopup.render">
1485     <div>
1486         <table style="width:100%">
1487             <tr style="width:100%">
1488                 <td style="width:100%">
1489                     <div class="oe_popup_search" style="width:100%"></div>
1490                 </td>
1491             </tr>
1492             <tr style="width:100%">
1493                 <td style="width:100%">
1494                     <div class="oe_popup_list_pager"></div>
1495                 </td>
1496             </tr>
1497             <tr style="width:100%">
1498                 <td style="width:100%">
1499                     <div class="oe_popup_list" style="width:100%"></div>
1500                 </td>
1501             </tr>
1502         </table>
1503         <div class="oe_popup_form" style="width:100%"></div>
1504     </div>
1505 </t>
1506 <t t-name="SelectCreatePopup.search.buttons">
1507     <t t-if="! widget.options.disable_multiple_selection">
1508         <button type="button" class="oe_button oe_selectcreatepopup-search-select oe_highlight" disabled="disabled">Select</button>
1509     </t>
1510     <button type="button" class="oe_button oe_selectcreatepopup-search-create">Create</button>
1511     or <a class="oe_selectcreatepopup-search-close oe_bold oe_form_button_cancel" href="javascript:void(0)">Cancel</a>
1512 </t>
1513 <t t-name="AbstractFormPopup.buttons">
1514     <t t-if="! readonly">
1515         <t t-if="! multi_select">
1516             <button type="button" class="oe_button oe_abstractformpopup-form-save oe_highlight">Save</button>
1517         </t>
1518         <t t-if="multi_select">
1519             <button type="button" class="oe_button oe_abstractformpopup-form-save oe_highlight">Save &amp; Close</button>
1520             <button type="button" class="oe_button oe_abstractformpopup-form-save-new oe_highlight">Save &amp; New</button>
1521         </t>
1522         or
1523     </t>
1524     <a class="oe_abstractformpopup-form-close oe_bold oe_form_button_cancel" href="javascript:void(0)">
1525         <t t-if="! readonly">
1526             Discard
1527         </t>
1528         <t t-if="readonly">
1529             Close
1530         </t>
1531     </a>
1532 </t>
1533
1534 <t t-name="One2Many.viewmanager" t-extend="ViewManager">
1535     <t t-jquery=".oe-view-manager-header">
1536         this.attr('t-if', 'views.length != 1');
1537     </t>
1538 </t>
1539 <t t-name="One2Many.formview" t-extend="FormView">
1540     <t t-jquery=".oe_form_buttons" t-operation="inner">
1541         <button type="button" class="oe_button oe_form_button_create">Add</button>
1542     </t>
1543 </t>
1544 <t t-name="One2Many.listview" t-extend="ListView">
1545     <t t-jquery="thead.ui-widget-header > tr:first">
1546         this.removeAttr('t-if');
1547     </t>
1548
1549     <t t-jquery="td.oe-actions">
1550         this.removeAttr('t-if');
1551     </t>
1552     <t t-jquery="td.oe-actions" t-operation="prepend">
1553         <h3 class="oe_view_title"><t t-esc="fields_view.arch.attrs.string"/></h3>
1554     </t>
1555 </t>
1556
1557 <div t-name="SearchView" class="oe_searchview">
1558     <div class="oe_searchview_facets"/>
1559     <div class="oe_searchview_clear"/>
1560     <div class="oe_searchview_unfold_drawer" title="Advanced Search..."/>
1561     <button type="button" class="oe_searchview_search"
1562             title="Search Again">Search</button>
1563 </div>
1564
1565 <div t-name="SearchViewDrawer" class="oe_searchview_drawer" style="display:none;">
1566     <div class="col-md-7"></div>
1567     <div class="col-md-5"></div>
1568 </div>
1569
1570 <div t-name="SearchView.InputView"
1571      class="oe_searchview_input"
1572      contenteditable="true"
1573      tabindex="0"/>
1574 <!-- tabindex: makes div focusable -->
1575 <div t-name="SearchView.FacetView"
1576      class="oe_tag oe_tag_dark oe_searchview_facet"
1577      tabindex="0"
1578     ><span class="oe_facet_remove">x</span
1579     ><span class="oe_facet_category oe_i" t-if="widget.model.has('icon')">
1580         <t t-esc="widget.model.get('icon')"/>
1581     </span
1582     ><span class="oe_facet_category" t-if="!widget.model.has('icon')">
1583         <t t-esc="widget.model.get('category')"/>
1584     </span ><span class="oe_facet_values"
1585 /></div>
1586 <span t-name="SearchView.FacetView.Value" class="oe_facet_value">
1587     <t t-esc="widget.model.get('label')"/>
1588 </span>
1589 <t t-name="SearchView.managed-filters">
1590     <option class="oe_search_filters_title" value="">Filters</option>
1591     <optgroup label="-- Filters --">
1592         <t t-foreach="filters" t-as="filter">
1593             <option t-attf-value="get:#{filter_index}"
1594                     t-att-disabled="filter.disabled and 'disabled'"
1595                     t-att-title="filter.disabled and disabled_filter_message">
1596                 <t t-esc="filter.name"/>
1597             </option>
1598         </t>
1599     </optgroup>
1600     <optgroup label="-- Actions --">
1601         <option value="advanced_filter">Add Advanced Filter</option>
1602         <option value="save_filter">Save Filter</option>
1603         <option value="manage_filters">Manage Filters</option>
1604     </optgroup>
1605 </t>
1606 <t t-name="SearchView.managed-filters.add">
1607     <div>
1608         <p>Filter Name:</p>
1609         <input type="text"/>
1610         <p>(Any existing filter with the same name will be replaced)</p>
1611     </div>
1612 </t>
1613 <t t-name="SearchView.render_lines">
1614     <table class="oe_search_render_line" border="0" cellspacing="0" cellpadding="0"
1615            t-foreach="lines" t-as="line">
1616         <tr>
1617             <td t-foreach="line" t-as="widget" class="oe_searchview_field">
1618                 <t t-raw="widget.render(defaults)"/>
1619             </td>
1620         </tr>
1621     </table>
1622 </t>
1623 <button t-name="SearchView.filter" type="button"
1624         t-att-id="element_id"
1625         t-att-title="attrs.help"
1626         t-att-class="classes.join(' ')"
1627         t-att-style="style"
1628         t-att-autofocus="attrs.default_focus === '1' ? 'autofocus' : undefined">
1629     <img t-att-src="_s + '/web/static/src/img/icons/' + (attrs.icon || 'gtk-home') + '.png'" width="16" height="16"/>
1630     <br t-if="attrs.string"/>
1631     <t t-esc="attrs.string"/>
1632 </button>
1633 <ul t-name="SearchView.filters">
1634     <li t-foreach="widget.filters" t-as="filter" t-if="!filter.visible || filter.visible()"
1635             t-att-title="filter.attrs.string ? filter.attrs.help : undefined"
1636             t-att-data-index="filter_index">
1637         <t t-esc="filter.attrs.string or filter.attrs.help or filter.attrs.name or 'Ω'"/>
1638     </li>
1639 </ul>
1640 <t t-name="SearchView.filters.facet">
1641     <div class="category oe_filter_category"><t t-esc="facet.get('category')"/></div>
1642
1643     <t t-set="val" t-value="facet.get('json')"/>
1644
1645     <div t-if="!(val instanceof Array)" class="search_facet_input_container">
1646         <t t-esc="facet.get('value')"/>
1647     </div>
1648     <t t-if="val instanceof Array">
1649         <div class="search_facet_input_container"
1650                 t-foreach="facet.get('json')" t-as="filter">
1651             <t t-esc="filter.attrs.string || filter.attrs.name"/>
1652         </div>
1653     </t>
1654
1655     <div class="search_facet_remove VS-icon VS-icon-cancel"/>
1656 </t>
1657 <t t-name="SearchView.field">
1658     <label t-att-class="'oe_label' + (attrs.help ? '_help' : '')"
1659            t-att-title="attrs.help"
1660            t-att-for="element_id"
1661            t-att-style="style">
1662         <t t-esc="attrs.string || attrs.name"/>
1663         <span t-if="attrs.help">?</span>
1664     </label>
1665     <div t-att-style="style">
1666         <input type="text" size="15" t-att-name="attrs.name"
1667                t-att-autofocus="attrs.default_focus === '1' ? 'autofocus' : undefined"
1668                t-att-id="element_id"
1669                t-att-value="defaults[attrs.name] || ''"/>
1670         <t t-if="filters.length" t-raw="filters.render(defaults)"/>
1671     </div>
1672 </t>
1673 <t t-name="SearchView.date">
1674     <label t-att-class="'oe_label' + (attrs.help ? '_help' : '')"
1675            t-att-title="attrs.help"
1676            t-att-for="element_id"
1677            t-att-style="style">
1678         <t t-esc="attrs.string || attrs.name"/>
1679         <span t-if="attrs.help">?</span>
1680     </label>
1681     <div t-att-style="style">
1682         <span t-att-id="element_id"/>
1683         <t t-if="filters.length" t-raw="filters.render(defaults)"/>
1684     </div>
1685 </t>
1686 <t t-name="SearchView.field.selection">
1687     <label t-att-title="attrs.help"
1688            t-att-class="'oe_label' + (attrs.help ? '_help' : '')"
1689            t-att-for="element_id"
1690            t-att-style="style">
1691         <t t-esc="attrs.string || attrs.name"/>
1692         <span t-if="attrs.help">?</span>
1693     </label>
1694     <div t-att-style="style">
1695         <select t-att-name="attrs.name" t-att-id="element_id"
1696                 t-att-autofocus="attrs.default_focus === '1' || undefined">
1697             <option t-if="prepend_empty"/>
1698             <t t-foreach="attrs.selection" t-as="option">
1699                 <t t-set="selected" t-value="defaults[attrs.name] === option[0]"/>
1700                 <option t-if="selected"
1701                         t-attf-selected="selected"
1702                         t-att-value="option_index">
1703                     <t t-esc="option[1]"/>
1704                 </option>
1705                 <option t-if="!selected" t-att-value="option_index">
1706                     <t t-esc="option[1]"/>
1707                 </option>
1708             </t>
1709         </select>
1710         <t t-if="filters.length" t-raw="filters.render(defaults)"/>
1711     </div>
1712 </t>
1713 <t t-name="SearchView.util.expand">
1714     <div t-att-class="'searchview_group ' + (expand == '0' ? 'folded' : 'expanded')">
1715         <a t-if="label" class="searchview_group_string" href="#">
1716             <t t-esc="label"/>
1717         </a>
1718         <div class="searchview_group_content">
1719             <t t-raw="content"/>
1720         </div>
1721     </div>
1722 </t>
1723 <div t-name="SearchView.Filters" class="oe_searchview_filters oe_searchview_section">
1724
1725 </div>
1726
1727
1728 <div t-name="SearchView.CustomReports" class="oe_searchview_custom oe_searchview_section">
1729     <dl class="dl-horizontal">
1730         <dt><span class="oe_i">M</span> Custom Reports</dt>
1731         <dd><ul class="oe_searchview_custom_list"/></dd>
1732     </dl>
1733 </div>
1734
1735  <div t-name="SearchView.SaveFilter">
1736     <div class="oe_searchview_custom">
1737         <h4>Save current filter</h4>
1738         <form class="oe_form">
1739             <p class="oe_form_required"><input id="oe_searchview_custom_input" placeholder="Filter name"/></p>
1740             <p>
1741                 <input id="oe_searchview_custom_public" type="checkbox"/>
1742                 <label for="oe_searchview_custom_public">Share with all users</label>
1743                 <input id="oe_searchview_custom_default" type="checkbox"/>
1744                 <label for="oe_searchview_custom_default">Use by default</label>
1745             </p>
1746             <button>Save</button>
1747         </form>
1748     </div>
1749 </div>
1750
1751 <div t-name="SearchView.advanced" class="oe_searchview_advanced">
1752     <h4>Advanced Search</h4>
1753     <form>
1754         <ul>
1755
1756         </ul>
1757         <button class="oe_add_condition button" type="button">Add a condition</button><br/>
1758         <button class="oe_apply" type="submit">Apply</button>
1759     </form>
1760 </div>
1761 <t t-name="SearchView.extended_search.proposition">
1762     <li>
1763         <span class="searchview_extended_prop_or">or</span>
1764         <select class="searchview_extended_prop_field">
1765             <t t-foreach="widget.attrs.fields" t-as="field">
1766                 <option t-att="{'selected': field === widget.attrs.selected ? 'selected' : null}"
1767                         t-att-value="field.name">
1768                     <t t-esc="field.string"/>
1769                 </option>
1770             </t>
1771         </select>
1772         <select class="searchview_extended_prop_op"/>
1773         <span class="searchview_extended_prop_value"/>
1774         <a class="searchview_extended_delete_prop button">x</a>
1775     </li>
1776 </t>
1777 <t t-name="SearchView.extended_search.proposition.char">
1778     <input class="field_char"/>
1779 </t>
1780 <t t-name="SearchView.extended_search.proposition.empty">
1781     <span/>
1782 </t>
1783 <t t-name="SearchView.extended_search.proposition.integer">
1784     <input type="number" class="field_integer" value = "0" step="1"/>
1785 </t>
1786 <t t-name="SearchView.extended_search.proposition.float">
1787     <input type="number" class="field_float" value = "0.0" step="0.01"/>
1788 </t>
1789 <t t-name="SearchView.extended_search.proposition.selection">
1790     <select>
1791         <t t-foreach="widget.field.selection" t-as="element">
1792         <option t-att-value="element[0]"><t t-esc="element[1]"/></option>
1793         </t>
1794     </select>
1795 </t>
1796
1797 <t t-name="ExportView">
1798     <a id="exportview" href="javascript: void(0)" style="text-decoration: none;color: #3D3D3D;">Export</a>
1799 </t>
1800 <table t-name="ExportTreeView" class="oe_export"
1801        style="background-color: #F3F3F3;">
1802     <tr>
1803         <td colspan="3">
1804             This wizard will export all data that matches the current search criteria to a CSV file.
1805             You can export all data or only the fields that can be reimported after modification.
1806         </td>
1807     </tr>
1808     <tr>
1809         <td colspan="3">
1810             <label for="import_compat">Export Type:</label>
1811             <select id="import_compat" name="import_compat">
1812                 <option value="yes">Import-Compatible Export</option>
1813                 <option value="">Export all Data</option>
1814             </select>
1815
1816             <label for="export_format">Export Formats</label>
1817             <select id="export_format" name="export_format"></select>
1818         </td>
1819     </tr>
1820
1821     <tr>
1822         <th>Available fields</th>
1823         <th/>
1824         <th>
1825             Fields to export
1826             <a style="color: blue; text-decoration: none;" href="#" id="export_new_list">Save fields list</a>
1827             <div id="savenewlist"></div>
1828             <div id="ExistsExportList"></div>
1829         </th>
1830     </tr>
1831     <tr style="height: 400px;">
1832         <td class="oe_export_fields_selector_left">
1833             <div id="left_field_panel">
1834             </div>
1835         </td>
1836         <td class="oe_export_fields_selector_center">
1837             <!-- TODO: replace ids by 'oe_*' classes -->
1838             <button class="oe_button" id="add_field">Add</button>
1839             <button class="oe_button" id="remove_field">Remove</button>
1840             <button class="oe_button" id="remove_all_field">Remove All</button>
1841         </td>
1842         <td class="oe_export_fields_selector_right">
1843             <select name="fields_list" id="fields_list"
1844                     multiple="multiple"></select>
1845         </td>
1846     </tr>
1847 </table>
1848 <t t-name="ExportTreeView-Domain">
1849     <t t-if="! record.ids_to_export">
1850         <p><strong>Please pay attention that all records matching your search filter will be exported. Not only the selected ids.</strong></p>
1851     </t>
1852     <t t-if="record.ids_to_export">
1853         <p><strong>Please note that only the selected ids will be exported.</strong></p>
1854     </t>
1855 </t>
1856 <table t-name="ExportTreeView-Secondary"
1857        id="field-tree-structure" class="oe_export_fields_selector_export"
1858        cellspacing="0" cellpadding="0">
1859     <tr><th class="oe_export_tree_header"> Name </th></tr>
1860     <t t-call="ExportTreeView-Secondary.children"/>
1861 </table>
1862 <tr t-name="ExportTreeView-Secondary.children"
1863     t-foreach="fields" t-as="field"
1864     t-att-id="'treerow-' + field.id" class="oe_export_row">
1865     <td>
1866         <table class="tree_grid" border="0">
1867             <tr class="oe_export_row">
1868                 <t t-foreach="(field.id).split('/')" t-as="level" >
1869                     <t t-if="(field.id).split('/')[0] != level">
1870                         <td width="18" t-translation="off">&amp;nbsp;</td>
1871                     </t>
1872                 </t>
1873                 <td valign="top" align="left" style="cursor: pointer;" width="18">
1874                     <t t-if="field.children">
1875                         <t t-if="(field.id).split('/').length != 3">
1876                             <img t-att-id="'parentimg-' + field.id" t-att-src='_s + "/web/static/src/img/expand.gif"' width="16" height="16" border="0"/>
1877                         </t>
1878                     </t>
1879                 </td>
1880                 <td id="tree-column" valign="middle" align="left" style="cursor: pointer;">
1881                     <a t-att-id="'export-' + field.id"  t-att-string="field.string" href="javascript: void(0);" style="text-decoration: none;">
1882                         <t t-esc="field.string"/>
1883                     </a>
1884                 </td>
1885             </tr>
1886         </table>
1887     </td>
1888 </tr>
1889 <t t-name="ExportNewList">
1890     <tr>
1891         <th><label>Save as:</label></th>
1892         <td><input size="10" type="text" id="savelist_name"/></td>
1893         <td><button class="oe_button oe_export_button_export" id="add_export_list">Ok</button></td>
1894     </tr>
1895 </t>
1896 <t t-name="Exists.ExportList">
1897     <label for="saved_export_list">Saved exports:</label>
1898
1899     <select id="saved_export_list">
1900         <option></option>
1901         <t t-foreach="existing_exports" t-as="export">
1902             <option t-att-value="export.id"><t t-esc="export.name"/></option>
1903         </t>
1904     </select>
1905     <button class="oe_button oe_export_button_export" id="delete_export_list" type="button">Delete</button>
1906 </t>
1907
1908 <t t-name="ImportView">
1909     <a id="importview" href="javascript: void(0)" style="text-decoration: none;color: #3D3D3D;">Import</a>
1910 </t>
1911 <t t-name="ImportDataView">
1912 <form name="import_data" id="import_data" action="" method="post" enctype="multipart/form-data"
1913         class="oe_import oe_import_no_result">
1914     <input type="hidden" name="session_id" t-att-value="widget.session.session_id" t-if="widget.session.override_session"/>
1915     <h2 class="separator horizontal">1. Import a .CSV file</h2>
1916     <p>Select a .CSV file to import. If you need a sample of file to import,
1917        you should use the export tool with the "Import Compatible" option.
1918     </p>
1919     <p>
1920         <label for="csvfile">CSV File:</label>
1921         <input type="file" id="csvfile" size="50" name="csvfile"/>
1922     </p>
1923     <h2 class="separator horizontal oe_import_result">2. Check your file format</h2>
1924     <div id="result" class="oe_import_result"></div>
1925     <fieldset class="oe_closed oe_import_result">
1926         <legend>Import Options</legend>
1927         <table>
1928             <tr>
1929                 <td colspan="4">
1930                     <label for="file_has_headers">Does your file have titles?</label>
1931                     <input type="checkbox" checked="checked"
1932                            id="file_has_headers"/>
1933                 </td>
1934             </tr>
1935             <tr>
1936                 <td><label for="csv_separator">Separator:</label></td>
1937                 <td><input type="text" name="csvsep" id="csv_separator" value=","/></td>
1938                 <td><label for="csv_delimiter">Delimiter:</label></td>
1939                 <td><input type="text" name="csvdel" id="csv_delimiter" value='"'/></td>
1940             </tr>
1941             <tr>
1942                 <td><label for="csv_encoding">Encoding:</label></td>
1943                 <td>
1944                     <select name="csvcode" id="csv_encoding">
1945                         <option value="utf-8">UTF-8</option>
1946                         <option value="latin1">Latin 1</option>
1947                     </select>
1948                 </td>
1949                 <td><label for="csv_skip" title="For use if CSV files have titles on multiple lines, skips more than a single line during import">
1950                     Lines to skip<sup>?</sup>:</label></td>
1951                 <td><input type="number" id="csv_skip" value="0" min="0"/></td>
1952             </tr>
1953         </table>
1954     </fieldset>
1955 </form>
1956 </t>
1957 <t t-name="ImportView.result">
1958     <table class="oe_import_grid" width="100%" style="margin: 5px 0;">
1959         <tr t-if="headers" class="oe_import_grid-header">
1960             <td t-foreach="headers" t-as="header" class="oe_import_grid-cell">
1961                 <t t-esc="header"/></td>
1962         </tr>
1963         <tr>
1964             <td t-foreach="records[0]" t-as="column">
1965                 <input class="sel_fields" placeholder="--- Don't Import ---"/><span class="oe_m2o_drop_down_button">
1966                         <img t-att-src='_s + "/web/static/src/img/down-arrow.png"' draggable="false"/></span>
1967             </td>
1968         </tr>
1969         <tr t-foreach="records" t-as="record" class="oe_import_grid-row">
1970             <td t-foreach="record" t-as="cell" class="oe_import_grid-cell">
1971                 <t t-esc="cell"/></td>
1972         </tr>
1973     </table>
1974 </t>
1975 <t t-name="ImportView.error">
1976     <p style="white-space:pre;">The import failed due to:<t t-esc="error.message"/></p>
1977     <t t-if="error.preview">
1978         <p>Here is a preview of the file we could not import:</p>
1979         <pre><t t-esc="error.preview"/></pre>
1980     </t>
1981 </t>
1982 <div t-name="Many2ManyKanban.quick_create" class="oe_kanban_quick_create">
1983     <input t-att-placeholder="_t('Type name to search')"/>
1984 </div>
1985 <t t-name="Throbber">
1986     <div>
1987         <div class="oe_blockui_spin" style="height: 50px">
1988         </div>
1989         <br />
1990         <div class="oe_throbber_message" style="color:white"></div>
1991     </div>
1992 </t>
1993 <t t-name="M2ODialog">
1994     <div>
1995         <p class="oe_grey"/>
1996         Name: <input class="oe_form_m2o_input_name" type="text"/>
1997     </div>
1998 </t>
1999 <t t-name="M2ODialog.buttons">
2000     <button class="oe_form_m2o_qc_button oe_button oe_highlight">Create</button>
2001     <button class="oe_form_m2o_sc_button oe_button">Create and edit</button> or
2002     <button class="oe_form_m2o_cancel_button oe_button oe_link"><span>Cancel</span></button>
2003 </t>
2004 <t t-name="FieldMonetary" t-extend="FieldChar">
2005     <t t-jquery="t:first" t-operation="before">
2006         <t t-if="widget.get('currency_info') and widget.get('currency_info').position === 'before'">
2007             <t t-esc="widget.get('currency_info').symbol"/>
2008         </t>
2009     </t>
2010     <t t-jquery="t:last" t-operation="after">
2011         <t t-if="widget.get('currency_info') and widget.get('currency_info').position === 'after'">
2012             <t t-esc="widget.get('currency_info').symbol"/>
2013         </t>
2014     </t>
2015 </t>
2016 <t t-name="FieldMany2ManyCheckBoxes">
2017     <t t-foreach="widget.get('records')" t-as="record">
2018         <div>
2019             <t t-if="selected[record[0]]">
2020                 <input type="checkbox" t-att-data-record-id="JSON.stringify(record[0])" checked="true"/>
2021             </t>
2022             <t t-if="! selected[record[0]]">
2023                 <input type="checkbox" t-att-data-record-id="JSON.stringify(record[0])"/>
2024             </t>
2025             <t t-esc="record[1]"/>
2026         </div>
2027     </t>
2028 </t>
2029 <t t-name="X2ManyCounter">
2030     <a href="javascript:void(0)"><t t-esc="text"/></a>
2031 </t>
2032 <t t-name="StatInfo">
2033     <strong><t t-esc="value"/></strong><br/><t t-esc="text"/></t>
2034 </templates>