diff --git a/CHANGELOG b/CHANGELOG
index b639ccaf1c..382c5420d2 100644
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -1,3 +1,4 @@
+* New icons
* Support timestamp field
* Validate dictionary items
* Add (i)like support to domain inversion
diff --git a/images/LICENSE b/images/LICENSE
new file mode 100644
index 0000000000..7a4a3ea242
--- /dev/null
+++ b/images/LICENSE
@@ -0,0 +1,202 @@
+
+ Apache License
+ Version 2.0, January 2004
+ http://www.apache.org/licenses/
+
+ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+ 1. Definitions.
+
+ "License" shall mean the terms and conditions for use, reproduction,
+ and distribution as defined by Sections 1 through 9 of this document.
+
+ "Licensor" shall mean the copyright owner or entity authorized by
+ the copyright owner that is granting the License.
+
+ "Legal Entity" shall mean the union of the acting entity and all
+ other entities that control, are controlled by, or are under common
+ control with that entity. For the purposes of this definition,
+ "control" means (i) the power, direct or indirect, to cause the
+ direction or management of such entity, whether by contract or
+ otherwise, or (ii) ownership of fifty percent (50%) or more of the
+ outstanding shares, or (iii) beneficial ownership of such entity.
+
+ "You" (or "Your") shall mean an individual or Legal Entity
+ exercising permissions granted by this License.
+
+ "Source" form shall mean the preferred form for making modifications,
+ including but not limited to software source code, documentation
+ source, and configuration files.
+
+ "Object" form shall mean any form resulting from mechanical
+ transformation or translation of a Source form, including but
+ not limited to compiled object code, generated documentation,
+ and conversions to other media types.
+
+ "Work" shall mean the work of authorship, whether in Source or
+ Object form, made available under the License, as indicated by a
+ copyright notice that is included in or attached to the work
+ (an example is provided in the Appendix below).
+
+ "Derivative Works" shall mean any work, whether in Source or Object
+ form, that is based on (or derived from) the Work and for which the
+ editorial revisions, annotations, elaborations, or other modifications
+ represent, as a whole, an original work of authorship. For the purposes
+ of this License, Derivative Works shall not include works that remain
+ separable from, or merely link (or bind by name) to the interfaces of,
+ the Work and Derivative Works thereof.
+
+ "Contribution" shall mean any work of authorship, including
+ the original version of the Work and any modifications or additions
+ to that Work or Derivative Works thereof, that is intentionally
+ submitted to Licensor for inclusion in the Work by the copyright owner
+ or by an individual or Legal Entity authorized to submit on behalf of
+ the copyright owner. For the purposes of this definition, "submitted"
+ means any form of electronic, verbal, or written communication sent
+ to the Licensor or its representatives, including but not limited to
+ communication on electronic mailing lists, source code control systems,
+ and issue tracking systems that are managed by, or on behalf of, the
+ Licensor for the purpose of discussing and improving the Work, but
+ excluding communication that is conspicuously marked or otherwise
+ designated in writing by the copyright owner as "Not a Contribution."
+
+ "Contributor" shall mean Licensor and any individual or Legal Entity
+ on behalf of whom a Contribution has been received by Licensor and
+ subsequently incorporated within the Work.
+
+ 2. Grant of Copyright License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ copyright license to reproduce, prepare Derivative Works of,
+ publicly display, publicly perform, sublicense, and distribute the
+ Work and such Derivative Works in Source or Object form.
+
+ 3. Grant of Patent License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ (except as stated in this section) patent license to make, have made,
+ use, offer to sell, sell, import, and otherwise transfer the Work,
+ where such license applies only to those patent claims licensable
+ by such Contributor that are necessarily infringed by their
+ Contribution(s) alone or by combination of their Contribution(s)
+ with the Work to which such Contribution(s) was submitted. If You
+ institute patent litigation against any entity (including a
+ cross-claim or counterclaim in a lawsuit) alleging that the Work
+ or a Contribution incorporated within the Work constitutes direct
+ or contributory patent infringement, then any patent licenses
+ granted to You under this License for that Work shall terminate
+ as of the date such litigation is filed.
+
+ 4. Redistribution. You may reproduce and distribute copies of the
+ Work or Derivative Works thereof in any medium, with or without
+ modifications, and in Source or Object form, provided that You
+ meet the following conditions:
+
+ (a) You must give any other recipients of the Work or
+ Derivative Works a copy of this License; and
+
+ (b) You must cause any modified files to carry prominent notices
+ stating that You changed the files; and
+
+ (c) You must retain, in the Source form of any Derivative Works
+ that You distribute, all copyright, patent, trademark, and
+ attribution notices from the Source form of the Work,
+ excluding those notices that do not pertain to any part of
+ the Derivative Works; and
+
+ (d) If the Work includes a "NOTICE" text file as part of its
+ distribution, then any Derivative Works that You distribute must
+ include a readable copy of the attribution notices contained
+ within such NOTICE file, excluding those notices that do not
+ pertain to any part of the Derivative Works, in at least one
+ of the following places: within a NOTICE text file distributed
+ as part of the Derivative Works; within the Source form or
+ documentation, if provided along with the Derivative Works; or,
+ within a display generated by the Derivative Works, if and
+ wherever such third-party notices normally appear. The contents
+ of the NOTICE file are for informational purposes only and
+ do not modify the License. You may add Your own attribution
+ notices within Derivative Works that You distribute, alongside
+ or as an addendum to the NOTICE text from the Work, provided
+ that such additional attribution notices cannot be construed
+ as modifying the License.
+
+ You may add Your own copyright statement to Your modifications and
+ may provide additional or different license terms and conditions
+ for use, reproduction, or distribution of Your modifications, or
+ for any such Derivative Works as a whole, provided Your use,
+ reproduction, and distribution of the Work otherwise complies with
+ the conditions stated in this License.
+
+ 5. Submission of Contributions. Unless You explicitly state otherwise,
+ any Contribution intentionally submitted for inclusion in the Work
+ by You to the Licensor shall be under the terms and conditions of
+ this License, without any additional terms or conditions.
+ Notwithstanding the above, nothing herein shall supersede or modify
+ the terms of any separate license agreement you may have executed
+ with Licensor regarding such Contributions.
+
+ 6. Trademarks. This License does not grant permission to use the trade
+ names, trademarks, service marks, or product names of the Licensor,
+ except as required for reasonable and customary use in describing the
+ origin of the Work and reproducing the content of the NOTICE file.
+
+ 7. Disclaimer of Warranty. Unless required by applicable law or
+ agreed to in writing, Licensor provides the Work (and each
+ Contributor provides its Contributions) on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+ implied, including, without limitation, any warranties or conditions
+ of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+ PARTICULAR PURPOSE. You are solely responsible for determining the
+ appropriateness of using or redistributing the Work and assume any
+ risks associated with Your exercise of permissions under this License.
+
+ 8. Limitation of Liability. In no event and under no legal theory,
+ whether in tort (including negligence), contract, or otherwise,
+ unless required by applicable law (such as deliberate and grossly
+ negligent acts) or agreed to in writing, shall any Contributor be
+ liable to You for damages, including any direct, indirect, special,
+ incidental, or consequential damages of any character arising as a
+ result of this License or out of the use or inability to use the
+ Work (including but not limited to damages for loss of goodwill,
+ work stoppage, computer failure or malfunction, or any and all
+ other commercial damages or losses), even if such Contributor
+ has been advised of the possibility of such damages.
+
+ 9. Accepting Warranty or Additional Liability. While redistributing
+ the Work or Derivative Works thereof, You may choose to offer,
+ and charge a fee for, acceptance of support, warranty, indemnity,
+ or other liability obligations and/or rights consistent with this
+ License. However, in accepting such obligations, You may act only
+ on Your own behalf and on Your sole responsibility, not on behalf
+ of any other Contributor, and only if You agree to indemnify,
+ defend, and hold each Contributor harmless for any liability
+ incurred by, or claims asserted against, such Contributor by reason
+ of your accepting any such warranty or additional liability.
+
+ END OF TERMS AND CONDITIONS
+
+ APPENDIX: How to apply the Apache License to your work.
+
+ To apply the Apache License to your work, attach the following
+ boilerplate notice, with the fields enclosed by brackets "[]"
+ replaced with your own identifying information. (Don't include
+ the brackets!) The text should be enclosed in the appropriate
+ comment syntax for the file format. We also recommend that a
+ file or class name and description of purpose be included on the
+ same "printed page" as the copyright notice for easier
+ identification within third-party archives.
+
+ Copyright [yyyy] [name of copyright owner]
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
\ No newline at end of file
diff --git a/images/tryton-add.svg b/images/tryton-add.svg
new file mode 100644
index 0000000000..08cc2308c8
--- /dev/null
+++ b/images/tryton-add.svg
@@ -0,0 +1,4 @@
+
+
+
+
diff --git a/images/tryton-archive.svg b/images/tryton-archive.svg
new file mode 100644
index 0000000000..a5d45991b7
--- /dev/null
+++ b/images/tryton-archive.svg
@@ -0,0 +1,4 @@
+
+
+
+
diff --git a/images/tryton-arrow-down.svg b/images/tryton-arrow-down.svg
new file mode 100644
index 0000000000..c1204da1cd
--- /dev/null
+++ b/images/tryton-arrow-down.svg
@@ -0,0 +1,7 @@
+
+
+
+
+
+
diff --git a/images/tryton-arrow-left.svg b/images/tryton-arrow-left.svg
new file mode 100644
index 0000000000..e084870266
--- /dev/null
+++ b/images/tryton-arrow-left.svg
@@ -0,0 +1,7 @@
+
+
+
+
+
+
diff --git a/images/tryton-arrow-right.svg b/images/tryton-arrow-right.svg
new file mode 100644
index 0000000000..0f56374381
--- /dev/null
+++ b/images/tryton-arrow-right.svg
@@ -0,0 +1,7 @@
+
+
+
+
+
+
diff --git a/images/tryton-arrow-up.svg b/images/tryton-arrow-up.svg
new file mode 100644
index 0000000000..b3d21d3434
--- /dev/null
+++ b/images/tryton-arrow-up.svg
@@ -0,0 +1,4 @@
+
+
+
+
diff --git a/images/tryton-attach.svg b/images/tryton-attach.svg
new file mode 100644
index 0000000000..23979032c2
--- /dev/null
+++ b/images/tryton-attach.svg
@@ -0,0 +1,4 @@
+
+
+
+
diff --git a/images/tryton-attachment-hi.svg b/images/tryton-attachment-hi.svg
deleted file mode 100644
index 759177bb15..0000000000
--- a/images/tryton-attachment-hi.svg
+++ /dev/null
@@ -1,245 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- image/svg+xml
-
- Mail Attachment
- 2005-11-04
-
-
- Andreas Nilsson
-
-
- http://tango-project.org
-
-
- attachment
- file
-
-
-
-
-
- Garrett LeSage, Cédric Krier
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/images/tryton-attachment.svg b/images/tryton-attachment.svg
deleted file mode 100644
index 00bc67b809..0000000000
--- a/images/tryton-attachment.svg
+++ /dev/null
@@ -1,187 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- image/svg+xml
-
- Mail Attachment
- 2005-11-04
-
-
- Andreas Nilsson
-
-
- http://tango-project.org
-
-
- attachment
- file
-
-
-
-
-
- Garrett LeSage
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/images/tryton-back.svg b/images/tryton-back.svg
new file mode 100644
index 0000000000..c37f00025a
--- /dev/null
+++ b/images/tryton-back.svg
@@ -0,0 +1,4 @@
+
+
+
+
diff --git a/images/tryton-bookmark-border.svg b/images/tryton-bookmark-border.svg
new file mode 100644
index 0000000000..abcd01628a
--- /dev/null
+++ b/images/tryton-bookmark-border.svg
@@ -0,0 +1,4 @@
+
+
+
+
diff --git a/images/tryton-bookmark.svg b/images/tryton-bookmark.svg
index a05002f2d6..8b5a0a5539 100644
--- a/images/tryton-bookmark.svg
+++ b/images/tryton-bookmark.svg
@@ -1,427 +1,4 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- image/svg+xml
-
-
-
-
-
- Jakub Steiner
-
-
- http://jimmac.musichall.cz
-
-
- address
- contact
- book
- office
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
diff --git a/images/tryton-bookmarks.svg b/images/tryton-bookmarks.svg
new file mode 100644
index 0000000000..79839be669
--- /dev/null
+++ b/images/tryton-bookmarks.svg
@@ -0,0 +1,4 @@
+
+
+
+
diff --git a/images/tryton-cancel.svg b/images/tryton-cancel.svg
index fd4ba2b719..b2dac49d45 100644
--- a/images/tryton-cancel.svg
+++ b/images/tryton-cancel.svg
@@ -1,1432 +1,4 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- image/svg+xml
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
diff --git a/images/tryton-clear.svg b/images/tryton-clear.svg
index c946399742..289d406e75 100644
--- a/images/tryton-clear.svg
+++ b/images/tryton-clear.svg
@@ -1,417 +1,4 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- image/svg+xml
-
- Edit Clear
-
-
- Andreas Nilsson
-
-
- http://www.tango-project.org
-
-
- clear
- reset
- blank
- edit
-
-
-
-
-
- Jakub Steiner (although minimally ;)
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
diff --git a/images/tryton-close.svg b/images/tryton-close.svg
index 4f8c9db6a9..289d406e75 100644
--- a/images/tryton-close.svg
+++ b/images/tryton-close.svg
@@ -1,360 +1,4 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- image/svg+xml
-
-
-
- Jakub Steiner
-
-
- http://jimmac.musichall.cz
-
- Unreadable
-
-
- emblem
- access
- denied
- unreadable
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
diff --git a/images/tryton-connect.svg b/images/tryton-connect.svg
deleted file mode 100644
index fe6b5a0f04..0000000000
--- a/images/tryton-connect.svg
+++ /dev/null
@@ -1,1044 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- image/svg+xml
-
- Computer
- 2005-03-08
-
-
- Jakub Steiner
-
-
-
-
- workstation
- computer
- node
- client
-
-
-
- http://jimmac.musichall.cz/
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/images/tryton-copy.svg b/images/tryton-copy.svg
index 1883eb9843..dbd8b0cfc2 100644
--- a/images/tryton-copy.svg
+++ b/images/tryton-copy.svg
@@ -1,329 +1,4 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- image/svg+xml
-
- Edit Copy
- 2005-10-15
-
-
- Andreas Nilsson
-
-
-
-
- edit
- copy
-
-
-
-
-
- Jakub Steiner
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
diff --git a/images/tryton-create.svg b/images/tryton-create.svg
new file mode 100644
index 0000000000..015dc1bcd4
--- /dev/null
+++ b/images/tryton-create.svg
@@ -0,0 +1,4 @@
+
+
+
+
diff --git a/images/tryton-date.svg b/images/tryton-date.svg
new file mode 100644
index 0000000000..1aab65c4e6
--- /dev/null
+++ b/images/tryton-date.svg
@@ -0,0 +1,4 @@
+
+
+
+
diff --git a/images/tryton-delete.svg b/images/tryton-delete.svg
index 362186733f..9308f4df56 100644
--- a/images/tryton-delete.svg
+++ b/images/tryton-delete.svg
@@ -1,897 +1,4 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- image/svg+xml
-
- Delete
-
-
-
- Jakub Steiner
-
-
-
-
- edit
- delete
- shredder
-
-
-
-
- Novell, Inc.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
diff --git a/images/tryton-dialog-error.svg b/images/tryton-dialog-error.svg
deleted file mode 100644
index a8ccd7cb89..0000000000
--- a/images/tryton-dialog-error.svg
+++ /dev/null
@@ -1,331 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- image/svg+xml
-
-
-
- Rodney Dawes
-
-
-
-
- Jakub Steiner, Garrett LeSage
-
-
-
- Dialog Error
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/images/tryton-dialog-information.svg b/images/tryton-dialog-information.svg
deleted file mode 100644
index 2855792d82..0000000000
--- a/images/tryton-dialog-information.svg
+++ /dev/null
@@ -1,1160 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- image/svg+xml
-
- Info
-
-
- Jakub Steiner
-
-
-
-
- dialog
- info
-
-
- http://jimmac.musichall.cz
-
-
-
- Garrett LeSage
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/images/tryton-dialog-warning.svg b/images/tryton-dialog-warning.svg
deleted file mode 100644
index 59ec3fbf94..0000000000
--- a/images/tryton-dialog-warning.svg
+++ /dev/null
@@ -1,374 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- image/svg+xml
-
- Dialog Warning
- 2005-10-14
-
-
- Andreas Nilsson
-
-
-
-
- Jakub Steiner, Garrett LeSage
-
-
-
-
- dialog
- warning
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/images/tryton-disconnect.svg b/images/tryton-disconnect.svg
deleted file mode 100644
index 37be1ebf87..0000000000
--- a/images/tryton-disconnect.svg
+++ /dev/null
@@ -1,1415 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- image/svg+xml
-
- Computer
- 2005-03-08
-
-
- Jakub Steiner
-
-
-
-
- workstation
- computer
- node
- client
-
-
-
- http://jimmac.musichall.cz/
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/images/tryton-email.svg b/images/tryton-email.svg
new file mode 100644
index 0000000000..e1560c6374
--- /dev/null
+++ b/images/tryton-email.svg
@@ -0,0 +1,4 @@
+
+
+
+
diff --git a/images/tryton-error.svg b/images/tryton-error.svg
new file mode 100644
index 0000000000..19c6c83163
--- /dev/null
+++ b/images/tryton-error.svg
@@ -0,0 +1,4 @@
+
+
+
+
diff --git a/images/tryton-executable.svg b/images/tryton-executable.svg
deleted file mode 100644
index 5a6293b1dd..0000000000
--- a/images/tryton-executable.svg
+++ /dev/null
@@ -1,179 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- image/svg+xml
-
- Executable
-
-
- Jakub Steiner
-
-
- http://jimmac.musichall.cz/
-
-
- executable
- program
- binary
- bin
- script
- shell
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/images/tryton-exit.svg b/images/tryton-exit.svg
new file mode 100644
index 0000000000..dbd95bfd9c
--- /dev/null
+++ b/images/tryton-exit.svg
@@ -0,0 +1,4 @@
+
+
+
+
diff --git a/images/tryton-export.svg b/images/tryton-export.svg
new file mode 100644
index 0000000000..41628798b2
--- /dev/null
+++ b/images/tryton-export.svg
@@ -0,0 +1,4 @@
+
+
+
+
diff --git a/images/tryton-filter.svg b/images/tryton-filter.svg
new file mode 100644
index 0000000000..f0a2e4f31f
--- /dev/null
+++ b/images/tryton-filter.svg
@@ -0,0 +1,4 @@
+
+
+
+
diff --git a/images/tryton-find-replace.svg b/images/tryton-find-replace.svg
deleted file mode 100644
index f6b51a2c8e..0000000000
--- a/images/tryton-find-replace.svg
+++ /dev/null
@@ -1,975 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- image/svg+xml
-
- Edit Find Replace
-
-
- edit
- find
- locate
- search
-
-
-
-
-
- Garrett LeSage
-
-
-
-
-
- Jakub Steiner, Steven Garrity
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/images/tryton-find.svg b/images/tryton-find.svg
deleted file mode 100644
index ab591370fe..0000000000
--- a/images/tryton-find.svg
+++ /dev/null
@@ -1,751 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- image/svg+xml
-
- Edit Find
-
-
- edit
- find
- locate
- search
-
-
-
-
-
- Steven Garrity
-
-
-
-
-
- Jakub Steiner
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/images/tryton-folder-new.svg b/images/tryton-folder-new.svg
deleted file mode 100644
index cab1bc4079..0000000000
--- a/images/tryton-folder-new.svg
+++ /dev/null
@@ -1,453 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- image/svg+xml
-
- New Folder
-
-
-
- Jakub Steiner
-
-
-
- http://jimmac.musichall.cz
-
-
- folder
- directory
- create
- new
-
-
-
-
- Tuomas Kuosmanen
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/images/tryton-format-align-center.svg b/images/tryton-format-align-center.svg
new file mode 100644
index 0000000000..75873e9185
--- /dev/null
+++ b/images/tryton-format-align-center.svg
@@ -0,0 +1,4 @@
+
+
+
+
diff --git a/images/tryton-format-align-justify.svg b/images/tryton-format-align-justify.svg
new file mode 100644
index 0000000000..288727edfc
--- /dev/null
+++ b/images/tryton-format-align-justify.svg
@@ -0,0 +1,4 @@
+
+
+
+
diff --git a/images/tryton-format-align-left.svg b/images/tryton-format-align-left.svg
new file mode 100644
index 0000000000..97645a3295
--- /dev/null
+++ b/images/tryton-format-align-left.svg
@@ -0,0 +1,4 @@
+
+
+
+
diff --git a/images/tryton-format-align-right.svg b/images/tryton-format-align-right.svg
new file mode 100644
index 0000000000..c073397046
--- /dev/null
+++ b/images/tryton-format-align-right.svg
@@ -0,0 +1,4 @@
+
+
+
+
diff --git a/images/tryton-format-bold.svg b/images/tryton-format-bold.svg
new file mode 100644
index 0000000000..ca6b4b63ce
--- /dev/null
+++ b/images/tryton-format-bold.svg
@@ -0,0 +1,4 @@
+
+
+
+
diff --git a/images/tryton-format-color-text.svg b/images/tryton-format-color-text.svg
new file mode 100644
index 0000000000..4bda2cb107
--- /dev/null
+++ b/images/tryton-format-color-text.svg
@@ -0,0 +1,5 @@
+
+
+
+
+
diff --git a/images/tryton-format-italic.svg b/images/tryton-format-italic.svg
new file mode 100644
index 0000000000..fa65b97d56
--- /dev/null
+++ b/images/tryton-format-italic.svg
@@ -0,0 +1,4 @@
+
+
+
+
diff --git a/images/tryton-format-underline.svg b/images/tryton-format-underline.svg
new file mode 100644
index 0000000000..8615187f44
--- /dev/null
+++ b/images/tryton-format-underline.svg
@@ -0,0 +1,4 @@
+
+
+
+
diff --git a/images/tryton-forward.svg b/images/tryton-forward.svg
new file mode 100644
index 0000000000..461dc3f692
--- /dev/null
+++ b/images/tryton-forward.svg
@@ -0,0 +1,4 @@
+
+
+
+
diff --git a/images/tryton-fullscreen.svg b/images/tryton-fullscreen.svg
deleted file mode 100644
index e61ededec1..0000000000
--- a/images/tryton-fullscreen.svg
+++ /dev/null
@@ -1,523 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- image/svg+xml
-
-
-
- Jakub Steiner
-
-
- http://jimmac.musichall.cz
-
- View Fullscreen
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/images/tryton-go-home.svg b/images/tryton-go-home.svg
deleted file mode 100644
index f580c1876b..0000000000
--- a/images/tryton-go-home.svg
+++ /dev/null
@@ -1,446 +0,0 @@
-
-image/svg+xml Go Home Jakub Steiner http://jimmac.musichall.cz home return go default user directory Tuomas Kuosmanen
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/images/tryton-go-jump.svg b/images/tryton-go-jump.svg
deleted file mode 100644
index 7921cdb0c7..0000000000
--- a/images/tryton-go-jump.svg
+++ /dev/null
@@ -1,205 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- image/svg+xml
-
-
-
- Jakub Steiner
-
-
- http://jimmac.musichall.cz
-
- Go Jump
-
-
- go
- jump
- seek
- arrow
- pointer
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/images/tryton-go-next.svg b/images/tryton-go-next.svg
deleted file mode 100644
index 6c0a09018e..0000000000
--- a/images/tryton-go-next.svg
+++ /dev/null
@@ -1,193 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- image/svg+xml
-
-
-
- Jakub Steiner
-
-
- http://jimmac.musichall.cz
-
- Go Next
-
-
- go
- next
- right
- arrow
- pointer
- >
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/images/tryton-go-previous.svg b/images/tryton-go-previous.svg
deleted file mode 100644
index b95349738d..0000000000
--- a/images/tryton-go-previous.svg
+++ /dev/null
@@ -1,855 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- image/svg+xml
-
-
-
- Jakub Steiner
-
-
- http://jimmac.musichall.cz
-
- Go Previous
-
-
- go
- previous
- left
- arrow
- pointer
- <
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/images/tryton-help.svg b/images/tryton-help.svg
deleted file mode 100644
index db1392466c..0000000000
--- a/images/tryton-help.svg
+++ /dev/null
@@ -1,225 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- image/svg+xml
-
- Help Browser
- 2005-11-06
-
-
- Tuomas Kuosmanen
-
-
-
-
- help
- browser
- documentation
- docs
- man
- info
-
-
-
-
-
- Jakub Steiner, Andreas Nilsson
-
-
- http://tigert.com
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/images/tryton-history.svg b/images/tryton-history.svg
new file mode 100644
index 0000000000..05f201a445
--- /dev/null
+++ b/images/tryton-history.svg
@@ -0,0 +1,4 @@
+
+
+
+
diff --git a/images/tryton-icon.svg b/images/tryton-icon.svg
deleted file mode 100644
index 5d42445920..0000000000
--- a/images/tryton-icon.svg
+++ /dev/null
@@ -1,96 +0,0 @@
-
-
-
-
- Tryton
-
-
-
-
-
-
-
- image/svg+xml
-
- Tryton
-
-
-
- Bertrand Chenal
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/images/tryton-import.svg b/images/tryton-import.svg
new file mode 100644
index 0000000000..f093479f99
--- /dev/null
+++ b/images/tryton-import.svg
@@ -0,0 +1,4 @@
+
+
+
+
diff --git a/images/tryton-info.svg b/images/tryton-info.svg
new file mode 100644
index 0000000000..5b31235b88
--- /dev/null
+++ b/images/tryton-info.svg
@@ -0,0 +1,4 @@
+
+
+
+
diff --git a/images/tryton-launch.svg b/images/tryton-launch.svg
new file mode 100644
index 0000000000..7479e92628
--- /dev/null
+++ b/images/tryton-launch.svg
@@ -0,0 +1,4 @@
+
+
+
+
diff --git a/images/tryton-link.svg b/images/tryton-link.svg
new file mode 100644
index 0000000000..08d13d80da
--- /dev/null
+++ b/images/tryton-link.svg
@@ -0,0 +1,4 @@
+
+
+
+
diff --git a/images/tryton-list-add.svg b/images/tryton-list-add.svg
deleted file mode 100644
index b3ddd25252..0000000000
--- a/images/tryton-list-add.svg
+++ /dev/null
@@ -1,437 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- image/svg+xml
-
- Add
- 2006-01-04
-
-
- Andreas Nilsson
-
-
- http://tango-project.org
-
-
- add
- plus
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/images/tryton-list-remove.svg b/images/tryton-list-remove.svg
deleted file mode 100644
index bd9b979c57..0000000000
--- a/images/tryton-list-remove.svg
+++ /dev/null
@@ -1,425 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- image/svg+xml
-
- Remove
- 2006-01-04
-
-
- Andreas Nilsson
-
-
- http://tango-project.org
-
-
- remove
- delete
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/images/tryton-locale.svg b/images/tryton-locale.svg
deleted file mode 100644
index 76cd4e588e..0000000000
--- a/images/tryton-locale.svg
+++ /dev/null
@@ -1,879 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- image/svg+xml
-
-
-
- Jakub Steiner
-
-
- http://jimmac.musichall.cz
-
- Locale Preferences
-
-
- locale preferences
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/images/tryton-lock.svg b/images/tryton-lock.svg
deleted file mode 100644
index 8c44878018..0000000000
--- a/images/tryton-lock.svg
+++ /dev/null
@@ -1,287 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- image/svg+xml
-
-
-
-
-
- Jakub Steiner
-
-
- http://jimmac.musichall.cz/
-
-
- Cédric Krier
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/images/tryton-log-out.svg b/images/tryton-log-out.svg
deleted file mode 100644
index fb53bb23f2..0000000000
--- a/images/tryton-log-out.svg
+++ /dev/null
@@ -1,458 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- image/svg+xml
-
-
-
- Jakub Steiner
-
-
- http://jimmac.musichall.cz
-
- System Log Out
-
-
- log out
- logout
- exit
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/images/tryton-log.svg b/images/tryton-log.svg
new file mode 100644
index 0000000000..3bcd81e84c
--- /dev/null
+++ b/images/tryton-log.svg
@@ -0,0 +1,5 @@
+
+
+
+
+
diff --git a/images/tryton-mail-message-new.svg b/images/tryton-mail-message-new.svg
deleted file mode 100644
index ad7de185f9..0000000000
--- a/images/tryton-mail-message-new.svg
+++ /dev/null
@@ -1,465 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- image/svg+xml
-
- Mail New
-
-
- Jakub Steiner
-
-
-
-
- Andreas Nilsson, Steven Garrity
-
-
-
-
-
- mail
- e-mail
- MUA
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/images/tryton-mail-message.svg b/images/tryton-mail-message.svg
deleted file mode 100644
index 130d066234..0000000000
--- a/images/tryton-mail-message.svg
+++ /dev/null
@@ -1,502 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- image/svg+xml
-
- Mail New
-
-
- Jakub Steiner
-
-
-
-
- Andreas Nilsson, Steven Garrity, Cédric Krier
-
-
-
-
-
- mail
- e-mail
- MUA
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/images/tryton-menu.svg b/images/tryton-menu.svg
new file mode 100644
index 0000000000..37e9cfb552
--- /dev/null
+++ b/images/tryton-menu.svg
@@ -0,0 +1,4 @@
+
+
+
+
diff --git a/images/tryton-new.svg b/images/tryton-new.svg
deleted file mode 100644
index 47f216bf2b..0000000000
--- a/images/tryton-new.svg
+++ /dev/null
@@ -1,449 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- image/svg+xml
-
- New Document
-
-
- Jakub Steiner
-
-
- http://jimmac.musichall.cz
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/images/tryton-noimage.png b/images/tryton-noimage.png
deleted file mode 100644
index 0d2452b5af..0000000000
Binary files a/images/tryton-noimage.png and /dev/null differ
diff --git a/images/tryton-note.svg b/images/tryton-note.svg
new file mode 100644
index 0000000000..a10719ede4
--- /dev/null
+++ b/images/tryton-note.svg
@@ -0,0 +1,4 @@
+
+
+
+
diff --git a/images/tryton-ok.svg b/images/tryton-ok.svg
index b576bb0ce6..535ff0390a 100644
--- a/images/tryton-ok.svg
+++ b/images/tryton-ok.svg
@@ -1,1677 +1,4 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- image/svg+xml
-
-
-
- Jakub Steiner
-
-
- http://jimmac.musichall.cz
-
- Dialog ok
-
-
- ok
- sure
- set
- apply
-
-
-
-
- Andreas Nilsson
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
diff --git a/images/tryton-open.svg b/images/tryton-open.svg
index 144cb0e9f1..f33176ea28 100644
--- a/images/tryton-open.svg
+++ b/images/tryton-open.svg
@@ -1,536 +1,4 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- image/svg+xml
-
- Folder Icon Accept
- 2005-01-31
-
-
- Jakub Steiner
-
-
-
- http://jimmac.musichall.cz
- Active state - when files are being dragged to.
-
-
- Novell, Inc.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
diff --git a/images/tryton-preferences-system-session.svg b/images/tryton-preferences-system-session.svg
deleted file mode 100644
index 3490bba532..0000000000
--- a/images/tryton-preferences-system-session.svg
+++ /dev/null
@@ -1,511 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- image/svg+xml
-
-
-
- Jakub Steiner
-
-
- http://jimmac.musichall.cz
-
- Preferences Session
-
-
- session
- restart
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/images/tryton-preferences-system.svg b/images/tryton-preferences-system.svg
deleted file mode 100644
index ed634284dd..0000000000
--- a/images/tryton-preferences-system.svg
+++ /dev/null
@@ -1,399 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- image/svg+xml
-
-
-
- Jakub Steiner
-
-
- http://jimmac.musichall.cz
-
- Preferences System
-
-
- preferences
- settings
- control panel
- tweaks
- system
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/images/tryton-preferences.svg b/images/tryton-preferences.svg
deleted file mode 100644
index f5b070f24a..0000000000
--- a/images/tryton-preferences.svg
+++ /dev/null
@@ -1,778 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- image/svg+xml
-
-
-
- Jakub Steiner
-
-
- http://jimmac.musichall.cz
-
- Desktop Preferences
-
-
- preferences
- system
- category
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/images/tryton-print-email.svg b/images/tryton-print-email.svg
deleted file mode 100644
index 3f433b0189..0000000000
--- a/images/tryton-print-email.svg
+++ /dev/null
@@ -1,883 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- image/svg+xml
-
-
-
-
- Jakub Steiner
-
-
-
-
- Andreas Nilsson, Steven Garrity
-
-
-
-
-
- mail
- e-mail
- MUA
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/images/tryton-print-open.svg b/images/tryton-print-open.svg
deleted file mode 100644
index 655e0b413a..0000000000
--- a/images/tryton-print-open.svg
+++ /dev/null
@@ -1,869 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- image/svg+xml
-
-
-
-
- Jakub Steiner
-
-
- http://jimmac.musichall.cz
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/images/tryton-print.svg b/images/tryton-print.svg
index 213b3c9b09..7ffc5851fd 100644
--- a/images/tryton-print.svg
+++ b/images/tryton-print.svg
@@ -1,503 +1,4 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- image/svg+xml
-
- Printer
-
-
- Jakub Steiner
-
-
-
- http://jimmac.musichall.cz
-
-
- printer
- local
- laser
- bubblejet
- inkjet
- print
- output
- cups
- lpd
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
diff --git a/images/tryton-public.svg b/images/tryton-public.svg
new file mode 100644
index 0000000000..24d6e503ed
--- /dev/null
+++ b/images/tryton-public.svg
@@ -0,0 +1,4 @@
+
+
+
+
diff --git a/images/tryton-refresh.svg b/images/tryton-refresh.svg
index 84a88911fb..e9618ab4f9 100644
--- a/images/tryton-refresh.svg
+++ b/images/tryton-refresh.svg
@@ -1,394 +1,4 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- image/svg+xml
-
-
-
- Jakub Steiner
-
-
- http://jimmac.musichall.cz
-
- View Refresh
-
-
- reload
- refresh
- view
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
diff --git a/images/tryton-remove.svg b/images/tryton-remove.svg
new file mode 100644
index 0000000000..ab7f7ba90e
--- /dev/null
+++ b/images/tryton-remove.svg
@@ -0,0 +1,4 @@
+
+
+
+
diff --git a/images/tryton-save-as.svg b/images/tryton-save-as.svg
deleted file mode 100644
index bcbcf483b1..0000000000
--- a/images/tryton-save-as.svg
+++ /dev/null
@@ -1,664 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- image/svg+xml
-
- Save As
-
-
- Jakub Steiner
-
-
-
-
- hdd
- hard drive
- save as
- io
- store
-
-
-
-
- http://jimmac.musichall.cz
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/images/tryton-save.svg b/images/tryton-save.svg
index d6380089d4..3754a0cf0d 100644
--- a/images/tryton-save.svg
+++ b/images/tryton-save.svg
@@ -1,620 +1,4 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- image/svg+xml
-
- Save
-
-
- Jakub Steiner
-
-
-
-
- hdd
- hard drive
- save
- io
- store
-
-
-
-
- http://jimmac.musichall.cz
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
diff --git a/images/tryton-search.svg b/images/tryton-search.svg
new file mode 100644
index 0000000000..6859898f79
--- /dev/null
+++ b/images/tryton-search.svg
@@ -0,0 +1,4 @@
+
+
+
+
diff --git a/images/tryton-star-border.svg b/images/tryton-star-border.svg
new file mode 100644
index 0000000000..21862f2cd7
--- /dev/null
+++ b/images/tryton-star-border.svg
@@ -0,0 +1,4 @@
+
+
+
+
diff --git a/images/tryton-star.svg b/images/tryton-star.svg
index b5785ef8b5..2b5e942ef8 100644
--- a/images/tryton-star.svg
+++ b/images/tryton-star.svg
@@ -1,143 +1,5 @@
-
-
-
-
-
-
-
- image/svg+xml
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
diff --git a/images/tryton-start-here.svg b/images/tryton-start-here.svg
deleted file mode 100644
index 2e5f20217c..0000000000
--- a/images/tryton-start-here.svg
+++ /dev/null
@@ -1,493 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- image/svg+xml
-
-
-
- Jakub Steiner
-
-
- http://jimmac.musichall.cz
-
- Start Here
- To be replaced by vendor/distribution branding.
-
-
- start
- applications
- launchers
-
-
-
-
- Garrett LeSage
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/images/tryton-switch.svg b/images/tryton-switch.svg
new file mode 100644
index 0000000000..cc607585b9
--- /dev/null
+++ b/images/tryton-switch.svg
@@ -0,0 +1,4 @@
+
+
+
+
diff --git a/images/tryton-system-file-manager.svg b/images/tryton-system-file-manager.svg
deleted file mode 100644
index 13c4f62501..0000000000
--- a/images/tryton-system-file-manager.svg
+++ /dev/null
@@ -1,318 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- image/svg+xml
-
- File Manager
-
-
- Jakub Steiner
-
-
- http://jimmac.musichall.cz
-
-
- file
- manager
- copy
- move
- filesystem
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/images/tryton-system.svg b/images/tryton-system.svg
deleted file mode 100644
index 748999f2d3..0000000000
--- a/images/tryton-system.svg
+++ /dev/null
@@ -1,741 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- image/svg+xml
-
- Computer
- 2005-03-08
-
-
- Jakub Steiner
-
-
-
-
- workstation
- computer
- node
- client
-
-
-
- http://jimmac.musichall.cz/
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/images/tryton-text-background.svg b/images/tryton-text-background.svg
deleted file mode 100644
index 3b2332fe44..0000000000
--- a/images/tryton-text-background.svg
+++ /dev/null
@@ -1,548 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- image/svg+xml
-
- Graphics Category
-
-
-
- Jakub Steiner
-
-
-
-
-
- graphics
- category
- pixel
- vector
- editor
- draw
- paint
-
-
- http://tango-project.org
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/images/tryton-text-foreground.svg b/images/tryton-text-foreground.svg
deleted file mode 100644
index 7e076d3406..0000000000
--- a/images/tryton-text-foreground.svg
+++ /dev/null
@@ -1,569 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- image/svg+xml
-
-
-
-
-
- Jakub Steiner
-
-
-
-
-
- graphics
- category
- pixel
- vector
- editor
- draw
- paint
-
-
- http://tango-project.org
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/images/tryton-text-markup.svg b/images/tryton-text-markup.svg
deleted file mode 100644
index 00e755c557..0000000000
--- a/images/tryton-text-markup.svg
+++ /dev/null
@@ -1,577 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- image/svg+xml
-
- Document Properties
-
-
- document
- settings
- preferences
- properties
- tweak
-
-
-
-
-
- Jakub Steiner
-
-
- http://jimmac.musichall.cz
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/images/tryton-translate.svg b/images/tryton-translate.svg
new file mode 100644
index 0000000000..e0ed1220a3
--- /dev/null
+++ b/images/tryton-translate.svg
@@ -0,0 +1,4 @@
+
+
+
+
diff --git a/images/tryton-unarchive.svg b/images/tryton-unarchive.svg
new file mode 100644
index 0000000000..765b534c0a
--- /dev/null
+++ b/images/tryton-unarchive.svg
@@ -0,0 +1,9 @@
+
+
+
+
+
+
+
+
+
diff --git a/images/tryton-undo.svg b/images/tryton-undo.svg
index 0c0e81d3f9..6763ef40d0 100644
--- a/images/tryton-undo.svg
+++ b/images/tryton-undo.svg
@@ -1,231 +1,4 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- image/svg+xml
-
-
-
- Jakub Steiner
-
-
- http://jimmac.musichall.cz
-
- Edit Undo
-
-
- edit
- undo
- revert
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
diff --git a/images/tryton-unstar.svg b/images/tryton-unstar.svg
deleted file mode 100644
index e09223ec54..0000000000
--- a/images/tryton-unstar.svg
+++ /dev/null
@@ -1,139 +0,0 @@
-
-
-
-
-
-
-
- image/svg+xml
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/images/tryton-warning.svg b/images/tryton-warning.svg
new file mode 100644
index 0000000000..4a0fa05996
--- /dev/null
+++ b/images/tryton-warning.svg
@@ -0,0 +1,4 @@
+
+
+
+
diff --git a/images/tryton-web-browser.svg b/images/tryton-web-browser.svg
deleted file mode 100644
index 142e04218f..0000000000
--- a/images/tryton-web-browser.svg
+++ /dev/null
@@ -1,983 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- image/svg+xml
-
- Globe
-
-
- Jakub Steiner
-
-
-
-
- Tuomas Kuosmanen
-
-
-
- http://jimmac.musichall.cz
-
-
- globe
- international
- web
- www
- internet
- network
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/index.html b/index.html
index ee2ca7ad4d..75136e1645 100644
--- a/index.html
+++ b/index.html
@@ -46,7 +46,7 @@ this repository contains the full copyright notices and license terms. -->
-
+
Tryton
diff --git a/src/common.js b/src/common.js
index fb19b2a6c2..0d2c7ff487 100644
--- a/src/common.js
+++ b/src/common.js
@@ -749,12 +749,13 @@
}
this.icon = this.el.children('img');
if (!this.icon.length) {
- this.icon = jQuery(' ').prependTo(this.el);
+ this.icon = jQuery(' ', {
+ 'class': 'icon',
+ }).prependTo(this.el);
this.icon.hide();
}
this.el.addClass('btn btn-default');
this.el.attr('type', 'button');
- this.icon.addClass('icon');
this.icon.attr('aria-hidden', true);
this.set_icon(attributes.icon);
},
@@ -764,8 +765,7 @@
this.icon.hide();
return;
}
- var prm = Sao.common.ICONFACTORY.register_icon(icon_name);
- prm.done(function(url) {
+ Sao.common.ICONFACTORY.get_icon_url(icon_name).done(function(url) {
this.icon.attr('src', url);
this.icon.show();
}.bind(this));
@@ -2486,59 +2486,57 @@
};
Sao.common.LOCAL_ICONS = [
- 'tryton-attachment-hi',
- 'tryton-attachment',
+ 'tryton-add',
+ 'tryton-archive',
+ 'tryton-attach',
+ 'tryton-back',
+ 'tryton-bookmark-border',
'tryton-bookmark',
+ 'tryton-bookmarks',
'tryton-cancel',
'tryton-clear',
'tryton-close',
- 'tryton-connect',
'tryton-copy',
+ 'tryton-create',
+ 'tryton-date',
'tryton-delete',
- 'tryton-dialog-error',
- 'tryton-dialog-information',
- 'tryton-dialog-warning',
- 'tryton-disconnect',
- 'tryton-executable',
- 'tryton-find-replace',
- 'tryton-find',
- 'tryton-folder-new',
- 'tryton-fullscreen',
- 'tryton-go-home',
- 'tryton-go-jump',
- 'tryton-go-next',
- 'tryton-go-previous',
- 'tryton-help',
- 'tryton-icon',
- 'tryton-list-add',
- 'tryton-list-remove',
- 'tryton-locale',
- 'tryton-lock',
- 'tryton-log-out',
- 'tryton-mail-message-new',
- 'tryton-mail-message',
- 'tryton-new',
+ 'tryton-email',
+ 'tryton-error',
+ 'tryton-exit',
+ 'tryton-export',
+ 'tryton-filter',
+ 'tryton-format-align-center',
+ 'tryton-format-align-justify',
+ 'tryton-format-align-left',
+ 'tryton-format-align-right',
+ 'tryton-format-bold',
+ 'tryton-format-color-text',
+ 'tryton-format-italic',
+ 'tryton-format-underline',
+ 'tryton-forward',
+ 'tryton-history',
+ 'tryton-import',
+ 'tryton-info',
+ 'tryton-launch',
+ 'tryton-link',
+ 'tryton-log',
+ 'tryton-menu',
+ 'tryton-note',
'tryton-ok',
'tryton-open',
- 'tryton-preferences-system-session',
- 'tryton-preferences-system',
- 'tryton-preferences',
- 'tryton-print-email',
- 'tryton-print-open',
'tryton-print',
+ 'tryton-public',
'tryton-refresh',
- 'tryton-save-as',
+ 'tryton-remove',
'tryton-save',
+ 'tryton-search',
+ 'tryton-star-border',
'tryton-star',
- 'tryton-start-here',
- 'tryton-system-file-manager',
- 'tryton-system',
- 'tryton-text-background',
- 'tryton-text-foreground',
- 'tryton-text-markup',
+ 'tryton-switch',
+ 'tryton-translate',
+ 'tryton-unarchive',
'tryton-undo',
- 'tryton-unstar',
- 'tryton-web-browser'
+ 'tryton-warning',
];
Sao.common.IconFactory = Sao.class_(Object, {
@@ -2584,15 +2582,12 @@
return jQuery.when();
} else if ((icon_name in this.loaded_icons) ||
~Sao.common.LOCAL_ICONS.indexOf(icon_name)) {
- return jQuery.when(this.get_icon_url(icon_name));
+ return jQuery.when();
}
if (this.register_prm.state() == 'pending') {
- var waiting_prm = jQuery.Deferred();
- this.register_prm.then(function() {
- this.register_icon(icon_name).then(
- waiting_prm.resolve, waiting_prm.reject);
+ return this.register_prm.then(function() {
+ return this.register_icon(icon_name);
}.bind(this));
- return waiting_prm;
}
var loaded_prm;
if (!(icon_name in this.name2id)) {
@@ -2626,55 +2621,49 @@
[ids, ['name', 'icon']], {});
return read_prm.then(function(icons) {
icons.forEach(function(icon) {
- var img_url;
- if (navigator.userAgent.match(/firefox/i)) {
- // Fixefox doesn't support SVG inside Blob
- // https://bugzilla.mozilla.org/show_bug.cgi?id=841920
- // Temporary use the embeded base64 version which
- // will be replaced later by the URL of the png object
- img_url = 'data:image/svg+xml;base64,' +
- window.btoa(unescape(encodeURIComponent(icon.icon)));
- var image = new Image();
- image.src = img_url;
- image.onload = function() {
- var canvas = document.createElement('canvas');
- canvas.width = image.width;
- canvas.height = image.height;
- var context = canvas.getContext('2d');
- context.drawImage(image, 0, 0);
- canvas.toBlob(function(blob) {
- var old_img_url = img_url;
- img_url = window.URL.createObjectURL(blob);
- this.loaded_icons[icon.name] = img_url;
- jQuery(document).find('img').each(function(i, el) {
- if (el.src == old_img_url) {
- el.src = img_url;
- }
- });
- canvas.remove();
- }.bind(this), 'image/png');
- }.bind(this);
- } else {
- var blob = new Blob([icon.icon],
- {type: 'image/svg+xml'});
- img_url = window.URL.createObjectURL(blob);
- }
+ var img_url = this._convert(icon.icon);
this.loaded_icons[icon.name] = img_url;
delete this.name2id[icon.name];
this.tryton_icons.splice(
find_array([icon.id, icon.name]), 1);
}.bind(this));
- return this.get_icon_url(icon_name);
}.bind(this));
}.bind(this));
return this.register_prm;
},
+ _convert: function(data) {
+ var xml = jQuery.parseXML(data);
+ jQuery(xml).find('svg').attr('fill', Sao.config.icon_color);
+ data = new XMLSerializer().serializeToString(xml);
+ var blob = new Blob([data],
+ {type: 'image/svg+xml'});
+ return window.URL.createObjectURL(blob);
+ },
get_icon_url: function(icon_name) {
- if (icon_name in this.loaded_icons) {
- return this.loaded_icons[icon_name];
+ return this.register_icon(icon_name).then(function() {
+ if (icon_name in this.loaded_icons) {
+ return this.loaded_icons[icon_name];
+ } else {
+ return jQuery.get('images/' + icon_name + '.svg', null, null, 'text')
+ .then(function(icon) {
+ var img_url = this._convert(icon);
+ this.loaded_icons[icon_name] = img_url;
+ return img_url;
+ }.bind(this));
+ }
+ }.bind(this));
+ },
+ get_icon_img: function(icon_name, attrs) {
+ attrs = attrs || {};
+ if (!attrs['class']) {
+ attrs['class'] = 'icon';
}
- return "images/" + icon_name + ".svg";
- }
+ var img = jQuery(' ', attrs);
+ this.get_icon_url(icon_name).then(function(url) {
+ img.attr('src', url);
+ });
+ return img;
+ },
});
Sao.common.ICONFACTORY = new Sao.common.IconFactory();
@@ -2725,9 +2714,8 @@
dialog.body.append(jQuery('
', {
'class': 'alert alert-info',
role: 'alert'
- }).append(jQuery(' ', {
- 'class': 'glyphicon ' + icon,
- 'aria-hidden': true
+ }).append(Sao.common.ICONFACTORY.get_icon_img(icon, {
+ 'aria-hidden': true,
})).append(jQuery(' ', {
'class': 'sr-only'
}).append(Sao.i18n.gettext('Message: '))
@@ -2745,7 +2733,7 @@
},
run: function(message, icon) {
return Sao.common.MessageDialog._super.run.call(
- this, message, icon || 'glyphicon-info-sign');
+ this, message, icon || 'tryton-info');
}
});
Sao.common.message = new Sao.common.MessageDialog();
@@ -2758,9 +2746,8 @@
var content = jQuery('
', {
'class': 'alert alert-warning',
role: 'alert'
- }).append(jQuery(' ', {
- 'class': 'glyphicon glyphicon-alert',
- 'aria-hidden': true
+ }).append(Sao.common.ICONFACTORY.get_icon_img('tryton-warning', {
+ 'aria-hidden': true,
})).append(jQuery(' ', {
'class': 'sr-only'
}).append(Sao.i18n.gettext('Warning: '))
@@ -2835,9 +2822,8 @@
dialog.body.append(jQuery('
', {
'class': 'alert alert-info',
role: 'alert'
- }).append(jQuery(' ', {
- 'class': 'glyphicon glyphicon-info-sign',
- 'aria-hidden': true
+ }).append(Sao.common.ICONFACTORY.get_icon_img('tryton-info', {
+ 'aria-hidden': true,
})).append(jQuery(' ', {
'class': 'sr-only'
}).append(Sao.i18n.gettext('Confirmation: '))
@@ -2954,9 +2940,8 @@
'class': 'alert alert-warning',
role: 'alert'
}).append(jQuery('
')
- .append(jQuery(' ', {
- 'class': 'glyphicon glyphicon-info-sign',
- 'aria-hidden': true
+ .append(Sao.common.ICONFACTORY.get_icon_img('tryton-info', {
+ 'aria-hidden': true,
})).append(jQuery(' ', {
'class': 'sr-only'
}).append(Sao.i18n.gettext('Write Concurrency Warning: '))
@@ -3017,9 +3002,8 @@
dialog.body.append(jQuery('
', {
'class': 'alert alert-warning',
role: 'alert'
- }).append(jQuery(' ', {
- 'class': 'glyphicon glyphicon-alert',
- 'aria-hidden': true
+ }).append(Sao.common.ICONFACTORY.get_icon_img('tryton-error', {
+ 'aria-hidden': true,
})).append(jQuery(' ', {
'class': 'sr-only'
}).append(Sao.i18n.gettext('Warning: '))
@@ -3400,8 +3384,6 @@
'text': name,
'target': '_blank'
}).appendTo(dialog.body)
- .append(jQuery(' ', {
- 'class': 'glyphicon glyphicon-download-alt'}))
.click(close);
var button = jQuery(' ', {
'class': 'btn btn-default',
diff --git a/src/rpc.js b/src/rpc.js
index 99e0305ca8..97eb310c98 100644
--- a/src/rpc.js
+++ b/src/rpc.js
@@ -68,7 +68,7 @@
return;
} else {
Sao.common.message.run('Concurrency Exception',
- 'glyphicon-alert').always(dfd.reject);
+ 'tryton-warning').always(dfd.reject);
return;
}
} else {
diff --git a/src/sao.js b/src/sao.js
index 6f1b12da8e..7d1fcacc75 100644
--- a/src/sao.js
+++ b/src/sao.js
@@ -239,6 +239,7 @@ var Sao = {};
Sao.config.roundup = {};
Sao.config.roundup.url = 'http://bugs.tryton.org/roundup/';
Sao.config.title = 'Tryton';
+ Sao.config.icon_color = '#3465a4';
Sao.i18n = i18n();
Sao.i18n.setlang = function(lang) {
@@ -297,6 +298,10 @@ var Sao = {};
Sao.Action.execute(action_id, {}, null, {});
});
Sao.set_title();
+ Sao.common.ICONFACTORY.get_icon_url('tryton-menu')
+ .then(function(url) {
+ jQuery('.navbar-brand > img').attr('src', url);
+ });
var new_lang = preferences.language != Sao.i18n.getLocale();
var prm = jQuery.Deferred();
Sao.i18n.setlang(preferences.language).always(function() {
@@ -557,13 +562,10 @@ var Sao = {};
var li = jQuery(' ', {
'role': 'presentation'
});
- var icon = jQuery(' ', {
- 'class': 'favorite-icon'
- });
+ var icon = Sao.common.ICONFACTORY.get_icon_img(
+ menu_item[2], {'class': 'favorite-icon'});
a.append(icon);
li.append(a);
- icon.attr('src',
- Sao.common.ICONFACTORY.get_icon_url(menu_item[2]));
a.append(menu_item[1]);
a.click(function(evt) {
evt.preventDefault();
@@ -617,8 +619,9 @@ var Sao = {};
'href': '#',
'title': title,
'aria-label': title,
- }).click(Sao.logout).append(jQuery(' ', {
- 'class': 'glyphicon glyphicon-log-out hidden-xs',
+ }).click(Sao.logout).append(
+ Sao.common.ICONFACTORY.get_icon_img('tryton-exit', {
+ 'class': 'icon hidden-xs',
'aria-hidden': true,
})).append(jQuery(' ', {
'class': 'visible-xs',
@@ -699,8 +702,9 @@ var Sao = {};
},
get_cell: function() {
- var cell = jQuery(' ', {
- 'tabindex': 0
+ var cell = jQuery(' ', {
+ 'class': 'column-affix',
+ 'tabindex': 0,
});
return cell;
},
@@ -710,11 +714,15 @@ var Sao = {};
}
record.load(this.field.name).done(function() {
if (record._values.favorite !== null) {
- var star = 'glyphicon glyphicon-star';
+ var icon = 'tryton-star';
if (!record._values.favorite) {
- star += '-empty';
+ icon += '-border';
}
- cell.addClass(star);
+ cell.data('star', Boolean(record._values.favorite));
+ Sao.common.ICONFACTORY.get_icon_url(icon)
+ .then(function(url) {
+ cell.attr('src', url);
+ });
cell.click({'record': record, 'button': cell},
this.favorite_click);
}
@@ -725,16 +733,20 @@ var Sao = {};
// Prevent activate the action of the row
e.stopImmediatePropagation();
var button = e.data.button;
- var method;
- if (button.hasClass('glyphicon-star-empty')) {
- button.removeClass('glyphicon-star-empty');
- button.addClass('glyphicon-star');
+ var method, icon;
+ var star = button.data('star');
+ if (!star) {
+ icon = 'tryton-star';
method = 'set';
} else {
- button.removeClass('glyphicon-star');
- button.addClass('glyphicon-star-empty');
+ icon = 'tryton-star-border';
method = 'unset';
}
+ button.data('star', !star);
+ Sao.common.ICONFACTORY.get_icon_url(icon)
+ .then(function(url) {
+ button.attr('src', url);
+ });
var name = Sao.main_menu_screen.model_name + '.favorite';
var session = Sao.Session.current_session;
var args = {
@@ -799,7 +811,7 @@ var Sao = {};
'class': 'global-search-container',
});
var group = jQuery('
', {
- 'class': 'input-group',
+ 'class': 'input-group input-group-sm',
}).appendTo(this.el);
jQuery('
', {
@@ -812,10 +824,9 @@ var Sao = {};
'aria-expanded': false,
'title': Sao.i18n.gettext("Favorites"),
'aria-label': Sao.i18n.gettext("Favorites"),
- }).click(Sao.favorites_menu).append(jQuery(' ', {
- 'class': 'glyphicon glyphicon-bookmark',
- 'aria-hidden': true,
- }))).appendTo(group);
+ }).click(Sao.favorites_menu).append(
+ Sao.common.ICONFACTORY.get_icon_img('tryton-bookmarks')))
+ .appendTo(group);
this.search_entry = jQuery(' ', {
'id': 'global-search-entry',
@@ -839,13 +850,9 @@ var Sao = {};
},
format: function(content) {
var el = jQuery('
');
- var img = jQuery(' ', {
- 'class': 'global-search-icon'
- }).appendTo(el);
- Sao.common.ICONFACTORY.register_icon(content.icon).then(
- function(icon_url) {
- img.attr('src', icon_url);
- });
+ Sao.common.ICONFACTORY.get_icon_img(
+ content.icon, {'class': 'global_search-icon'})
+ .appendTo(el);
jQuery(' ', {
'class': 'global-search-text'
}).text(content.record_name).appendTo(el);
diff --git a/src/sao.less b/src/sao.less
index e4e2245f10..01e61d4b5d 100644
--- a/src/sao.less
+++ b/src/sao.less
@@ -205,7 +205,7 @@ img.icon {
}
& .expander {
cursor: pointer;
- & > .glyphicon {
+ & > img {
float: left;
margin-right: 5px;
width: 1em;
diff --git a/src/screen.js b/src/screen.js
index 91cbcce0d7..91b9312683 100644
--- a/src/screen.js
+++ b/src/screen.js
@@ -47,16 +47,13 @@
'class': 'btn btn-default',
'aria-label': Sao.i18n.gettext("Search"),
'title': Sao.i18n.gettext("Search"),
- }).append(jQuery(' ', {
- 'class': 'glyphicon glyphicon-search'
- }));
+ }).append(Sao.common.ICONFACTORY.get_icon_img('tryton-search'));
this.but_active = jQuery(' ', {
type: 'button',
'class': 'btn btn-default hidden-xs',
'aria-expanded': false,
- }).append(jQuery(' ', {
- 'class': 'glyphicon glyphicon-compressed',
+ }).append(Sao.common.ICONFACTORY.get_icon_img('tryton-archive', {
'aria-hidden': true,
}));
this._set_active_tooltip();
@@ -70,9 +67,8 @@
'aria-label': Sao.i18n.gettext("Bookmarks"),
'title': Sao.i18n.gettext("Bookmarks"),
'id': 'bookmarks'
- }).append(jQuery(' ', {
- 'class': 'glyphicon glyphicon-bookmark',
- 'aria-hidden': true
+ }).append(Sao.common.ICONFACTORY.get_icon_img('tryton-bookmark', {
+ 'aria-hidden': true,
}));
var dropdown_bookmark = jQuery('', {
'class': 'dropdown-menu',
@@ -100,14 +96,14 @@
this.but_star = jQuery(' ', {
'class': 'btn btn-default',
'type': 'button'
- }).append(jQuery(' ', {
- 'class': 'glyphicon',
+ }).append(jQuery(' ', {
+ 'class': 'icon',
'aria-hidden': true
- })).click(this.star_click.bind(this));
+ }).data('star', false)).click(this.star_click.bind(this));
this.set_star();
jQuery('
', {
- 'class': 'input-group'
+ 'class': 'input-group input-group-sm'
})
.append(jQuery(' ', {
'class': 'input-group-btn'
@@ -131,9 +127,8 @@
'class': 'btn btn-default',
'aria-label': Sao.i18n.gettext("Previous"),
'title': Sao.i18n.gettext("Previous"),
- }).append(jQuery(' ', {
- 'class': 'glyphicon glyphicon-menu-left',
- 'aria-hidden': true
+ }).append(Sao.common.ICONFACTORY.get_icon_img('tryton-back', {
+ 'aria-hidden': true,
}));
this.but_prev.click(this.search_prev.bind(this));
this.but_next = jQuery(' ', {
@@ -141,9 +136,8 @@
'class': 'btn btn-default',
'aria-label': Sao.i18n.gettext("Next"),
'title': Sao.i18n.gettext("Next"),
- }).append(jQuery(' ', {
- 'class': 'glyphicon glyphicon-menu-right',
- 'aria-hidden': true
+ }).append(Sao.common.ICONFACTORY.get_icon_img('tryton-forward', {
+ 'aria-hidden': true,
}));
this.but_next.click(this.search_next.bind(this));
@@ -216,23 +210,24 @@
}, this);
},
set_star: function(star) {
- var glyphicon = this.but_star.children('span.glyphicon');
- var title;
+ var img = this.but_star.children('img');
+ var title, icon;
if (star) {
- glyphicon.removeClass('glyphicon-star-empty');
- glyphicon.addClass('glyphicon-star');
+ icon = 'tryton-star';
title = Sao.i18n.gettext("Remove this bookmark");
} else {
- glyphicon.removeClass('glyphicon-star');
- glyphicon.addClass('glyphicon-star-empty');
+ icon = 'tryton-star-border';
title = Sao.i18n.gettext('Bookmark this filter');
}
+ this.but_star.data('star', Boolean(star));
this.but_star.attr('title', title);
this.but_star.attr('aria-label', title);
+ Sao.common.ICONFACTORY.get_icon_url(icon).then(function(url) {
+ img.attr('src', url);
+ });
},
get_star: function() {
- var glyphicon = this.but_star.children('span.glyphicon');
- return glyphicon.hasClass('glyphicon-star');
+ return this.but_star.data('star');
},
star_click: function() {
var star = this.get_star();
@@ -571,9 +566,8 @@
'tabindex': -1,
'aria-label': Sao.i18n.gettext("Open the calendar"),
'title': Sao.i18n.gettext("Open the calendar"),
- }).append(jQuery(' ', {
- 'class': 'glyphicon glyphicon-calendar'
- }))).appendTo(entry);
+ }).append(Sao.common.ICONFACTORY.get_icon_img('tryton-date')
+ )).appendTo(entry);
jQuery(' ', {
'class': 'form-control input-sm',
type: 'text',
diff --git a/src/session.js b/src/session.js
index 668241c2b8..68f998c98a 100644
--- a/src/session.js
+++ b/src/session.js
@@ -145,10 +145,7 @@
dialog.button = jQuery(' ', {
'class': 'btn btn-primary',
'type': 'submit'
- }).append(jQuery(' ', {
- 'class': 'glyphicon glyphicon-log-in',
- 'aria-hidden': true,
- })).append(' ' + Sao.i18n.gettext("Login")).appendTo(dialog.footer);
+ }).append(' ' + Sao.i18n.gettext("Login")).appendTo(dialog.footer);
return dialog;
};
diff --git a/src/tab.js b/src/tab.js
index a0cb6e626c..66accd8d6c 100644
--- a/src/tab.js
+++ b/src/tab.js
@@ -17,89 +17,89 @@
return [
{
id: 'switch_',
- icon: 'glyphicon-list-alt',
+ icon: 'tryton-switch',
label: Sao.i18n.gettext('Switch'),
tooltip: Sao.i18n.gettext('Switch view'),
}, {
id: 'previous',
- icon: 'glyphicon-chevron-left',
+ icon: 'tryton-back',
label: Sao.i18n.gettext('Previous'),
tooltip: Sao.i18n.gettext('Previous Record')
}, {
id: 'next',
- icon: 'glyphicon-chevron-right',
+ icon: 'tryton-forward',
label: Sao.i18n.gettext('Next'),
tooltip: Sao.i18n.gettext('Next Record'),
}, {
id: 'search',
- icon: 'glyphicon-search',
+ icon: 'tryton-search',
label: Sao.i18n.gettext('Search'),
}, null, {
id: 'new_',
- icon: 'glyphicon-edit',
+ icon: 'tryton-create',
label: Sao.i18n.gettext('New'),
tooltip: Sao.i18n.gettext('Create a new record'),
}, {
id: 'save',
- icon: 'glyphicon-save',
+ icon: 'tryton-save',
label: Sao.i18n.gettext('Save'),
tooltip: Sao.i18n.gettext('Save this record'),
}, {
id: 'reload',
- icon: 'glyphicon-refresh',
+ icon: 'tryton-refresh',
label: Sao.i18n.gettext('Reload/Undo'),
tooltip: Sao.i18n.gettext('Reload'),
}, {
id: 'copy',
- icon: 'glyphicon-duplicate',
+ icon: 'tryton-copy',
label: Sao.i18n.gettext('Duplicate'),
}, {
id: 'delete_',
- icon: 'glyphicon-trash',
+ icon: 'tryton-delete',
label: Sao.i18n.gettext('Delete'),
}, null, {
id: 'logs',
- icon: 'glyphicon-time',
+ icon: 'tryton-log',
label: Sao.i18n.gettext('View Logs...'),
}, {
id: (this.screen &&
Sao.common.MODELHISTORY.contains(this.screen.model_name)) ?
'revision': null,
- icon: 'glyphicon-time',
+ icon: 'tryton-history',
label: Sao.i18n.gettext('Show revisions...'),
}, null, {
id: 'attach',
- icon: 'glyphicon-paperclip',
+ icon: 'tryton-attach',
label: Sao.i18n.gettext('Attachment'),
tooltip: Sao.i18n.gettext('Add an attachment to the record'),
}, {
id: 'note',
- icon: 'glyphicon-comment',
+ icon: 'tryton-note',
label: Sao.i18n.gettext('Note'),
tooltip: Sao.i18n.gettext('Add a note to the record'),
}, {
id: 'action',
- icon: 'glyphicon-cog',
+ icon: 'tryton-launch',
label: Sao.i18n.gettext('Action'),
}, null, {
id: 'relate',
- icon: 'glyphicon-share-alt',
+ icon: 'tryton-link',
label: Sao.i18n.gettext('Relate'),
}, {
id: 'print',
- icon: 'glyphicon-print',
+ icon: 'tryton-print',
label: Sao.i18n.gettext('Print'),
}, null, {
id: 'export',
- icon: 'glyphicon-export',
+ icon: 'tryton-export',
label: Sao.i18n.gettext('Export'),
}, {
id: 'import',
- icon: 'glyphicon-import',
+ icon: 'tryton-import',
label: Sao.i18n.gettext('Import'),
}, null, {
id: 'close',
- icon: 'glyphicon-remove',
+ icon: 'tryton-close',
label: Sao.i18n.gettext('Close Tab'),
},
];
@@ -134,9 +134,8 @@
'role': 'menuitem',
'href': '#',
'tabindex': -1
- }).append(jQuery(' ', {
- 'class': 'glyphicon ' + item.icon,
- 'aria-hidden': 'true'
+ }).append(Sao.common.ICONFACTORY.get_icon_img(item.icon, {
+ 'aria-hidden': 'true',
})).append(' ' + item.label).appendTo(menuitem);
this.menu_buttons[item.id] = menuitem;
link.click(function(evt) {
@@ -215,9 +214,8 @@
'title': item.label,
'id': item.id
})
- .append(jQuery(' ', {
- 'class': 'glyphicon ' + item.icon,
- 'aria-hidden': 'true'
+ .append(Sao.common.ICONFACTORY.get_icon_img(item.icon, {
+ 'aria-hidden': 'true',
}))
.appendTo(group);
this.buttons[item.id].click(item, function(event) {
@@ -481,11 +479,11 @@
screen.context());
prm.done(function(toolbars) {
[
- ['action', 'glyphicon-cog',
+ ['action', 'tryton-launch',
Sao.i18n.gettext('Launch action')],
- ['relate', 'glyphicon-share-alt',
+ ['relate', 'tryton-link',
Sao.i18n.gettext('Open related records')],
- ['print', 'glyphicon-print',
+ ['print', 'tryton-print',
Sao.i18n.gettext('Print report')]
].forEach(function(menu_action) {
var button = jQuery('
', {
@@ -501,10 +499,10 @@
'title': menu_action[2],
'id': menu_action[0],
})
- .append(jQuery(' ', {
- 'class': 'glyphicon ' + menu_action[1],
- 'aria-hidden': 'true'
- }))
+ .append(Sao.common.ICONFACTORY.get_icon_img(
+ menu_action[1], {
+ 'aria-hidden': 'true',
+ }))
.append(jQuery(' ', {
'class': 'caret'
})))
diff --git a/src/view/form.js b/src/view/form.js
index 11eec77096..0231e5608c 100644
--- a/src/view/form.js
+++ b/src/view/form.js
@@ -782,9 +782,7 @@ function eval_pyson(value){
'class': 'tab-pane',
}).uniqueId();
var tab_id = pane.attr('id');
- var img = jQuery(' ', {
- 'class': 'icon',
- });
+ var img = Sao.common.ICONFACTORY.get_icon_img(icon);
var page = jQuery(' ', {
'role': 'presentation'
}).append(
@@ -804,10 +802,6 @@ function eval_pyson(value){
pane.addClass('active');
this.selected = true;
}
- Sao.common.ICONFACTORY.register_icon(icon)
- .done(function(url) {
- img.attr('src', url);
- });
return page;
},
set_current_page: function(page_index) {
@@ -931,7 +925,7 @@ function eval_pyson(value){
var field = record.model.fields[name];
name = field.get(record);
}
- Sao.common.ICONFACTORY.register_icon(name)
+ Sao.common.ICONFACTORY.get_icon_url(name)
.done(function(url) {
this.img.attr('src', url);
}.bind(this));
@@ -1358,9 +1352,8 @@ function eval_pyson(value){
'class': 'btn btn-default btn-sm form-control',
'type': 'button',
'aria-label': Sao.i18n.gettext('Translate')
- }).append(jQuery(' ', {
- 'class': 'glyphicon glyphicon-flag'
- })).appendTo(jQuery(' ', {
+ }).append(Sao.common.ICONFACTORY.get_icon_img('tryton-translate')
+ ).appendTo(jQuery(' ', {
'class': 'input-group-btn'
}).appendTo(this.group));
button.click(this.translate.bind(this));
@@ -1481,9 +1474,8 @@ function eval_pyson(value){
'tabindex': -1,
'aria-label': Sao.i18n.gettext("Open the calendar"),
'title': Sao.i18n.gettext("Open the calendar"),
- }).append(jQuery(' ', {
- 'class': 'glyphicon glyphicon-calendar'
- }))).appendTo(this.date);
+ }).append(Sao.common.ICONFACTORY.get_icon_img('tryton-date')
+ )).appendTo(this.date);
this.input = jQuery(' ', {
'type': 'text',
'class': 'form-control input-sm mousetrap'
@@ -1859,9 +1851,8 @@ function eval_pyson(value){
}).appendTo(jQuery(' ', {
'class': 'input-group-btn'
}).appendTo(this.el));
- button.append(jQuery(' ', {
- 'class': 'glyphicon glyphicon-flag'
- }));
+ button.append(
+ Sao.common.ICONFACTORY.get_icon_img('tryton-translate'));
button.click(this.translate.bind(this));
}
},
@@ -1924,9 +1915,8 @@ function eval_pyson(value){
}).appendTo(jQuery(' ', {
'class': 'input-group-btn',
}).appendTo(this.el));
- button.append(jQuery(' ', {
- 'class': 'glyphicon glyphicon-flag',
- }));
+ button.append(
+ Sao.common.ICONFACTORY.get_icon_img('tryton-translate'));
button.click(this.translate.bind(this));
}
},
@@ -1953,9 +1943,9 @@ function eval_pyson(value){
button = jQuery(' ', {
'class': 'btn btn-default',
'type': 'button'
- }).append(jQuery(' ', {
- 'class': 'glyphicon glyphicon-' + properties.icon
- })).appendTo(group);
+ }).append(Sao.common.ICONFACTORY.get_icon_img(
+ 'tryton-format-' + properties.icon)
+ ).appendTo(group);
button.click(properties.command, button_apply_command);
}
};
@@ -1968,7 +1958,7 @@ function eval_pyson(value){
'icon': 'italic',
'command': 'italic'
}, {
- 'icon': 'text-color', // XXX
+ 'icon': 'underline',
'command': 'underline'
}]);
@@ -2169,8 +2159,8 @@ function eval_pyson(value){
'class': 'btn btn-default',
'type': 'button',
'tabindex': -1,
- }).append(jQuery(' ', {
- 'class': 'glyphicon'
+ }).append(jQuery(' ', {
+ 'class': 'icon'
})).appendTo(jQuery(' ', {
'class': 'input-group-btn'
}).prependTo(group));
@@ -2178,8 +2168,8 @@ function eval_pyson(value){
'class': 'btn btn-default',
'type': 'button',
'tabindex': -1,
- }).append(jQuery(' ', {
- 'class': 'glyphicon'
+ }).append(jQuery(' ', {
+ 'class': 'icon'
})).appendTo(jQuery(' ', {
'class': 'input-group-btn'
}).appendTo(group));
@@ -2254,14 +2244,14 @@ function eval_pyson(value){
var primary, tooltip1, secondary, tooltip2;
value = field.get(record);
if (this.has_target(value)) {
- primary = 'glyphicon-folder-open';
+ primary = 'tryton-open';
tooltip1 = Sao.i18n.gettext("Open the record ");
- secondary = 'glyphicon-erase';
+ secondary = 'tryton-clear';
tooltip2 = Sao.i18n.gettext("Clear the field ");
} else {
primary = null;
tooltip1 = '';
- secondary = 'glyphicon-search';
+ secondary = 'tryton-search';
tooltip2 = Sao.i18n.gettext("Search a record ");
}
if (this.entry.prop('readonly')) {
@@ -2274,15 +2264,16 @@ function eval_pyson(value){
var icon_name = items[0];
var tooltip = items[1];
var button = items[2];
- var icon = button.find('.glyphicon');
- icon.removeClass().addClass('glyphicon');
+ var img = button.find('img');
// don't use .hide/.show because the display value is not
// correctly restored on modal.
if (!icon_name) {
button.parent().css('display', 'none');
} else {
button.parent().css('display', 'table-cell');
- icon.addClass(icon_name);
+ Sao.common.ICONFACTORY.get_icon_url(icon_name).then(function(url) {
+ img.attr('src', url);
+ });
}
button.attr('aria-label', tooltip);
button.attr('title', tooltip);
@@ -2761,9 +2752,8 @@ function eval_pyson(value){
'tabindex': -1,
'aria-label': Sao.i18n.gettext("Switch"),
'title': Sao.i18n.gettext("Switch"),
- }).append(jQuery(' ', {
- 'class': 'glyphicon glyphicon-list-alt'
- })).appendTo(buttons);
+ }).append(Sao.common.ICONFACTORY.get_icon_img('tryton-switch')
+ ).appendTo(buttons);
this.but_switch.click(this.switch_.bind(this));
this.but_previous = jQuery(' ', {
@@ -2772,9 +2762,8 @@ function eval_pyson(value){
'tabindex': -1,
'aria-label': Sao.i18n.gettext("Previous"),
'title': Sao.i18n.gettext("Previous"),
- }).append(jQuery(' ', {
- 'class': 'glyphicon glyphicon-chevron-left'
- })).appendTo(buttons);
+ }).append(Sao.common.ICONFACTORY.get_icon_img('tryton-back')
+ ).appendTo(buttons);
this.but_previous.click(this.previous.bind(this));
this.label = jQuery(' ', {
@@ -2789,9 +2778,8 @@ function eval_pyson(value){
'tabindex': -1,
'aria-label': Sao.i18n.gettext("Next"),
'title': Sao.i18n.gettext("Next"),
- }).append(jQuery(' ', {
- 'class': 'glyphicon glyphicon-chevron-right'
- })).appendTo(buttons);
+ }).append(Sao.common.ICONFACTORY.get_icon_img('tryton-forward')
+ ).appendTo(buttons);
this.but_next.click(this.next.bind(this));
if (attributes.add_remove) {
@@ -2812,9 +2800,8 @@ function eval_pyson(value){
'tabindex': -1,
'aria-label': Sao.i18n.gettext("Add"),
'title': Sao.i18n.gettext("Add"),
- }).append(jQuery(' ', {
- 'class': 'glyphicon glyphicon-plus'
- })).appendTo(buttons);
+ }).append(Sao.common.ICONFACTORY.get_icon_img('tryton-add')
+ ).appendTo(buttons);
this.but_add.click(this.add.bind(this));
this.but_remove = jQuery(' ', {
@@ -2823,9 +2810,8 @@ function eval_pyson(value){
'tabindex': -1,
'aria-label': Sao.i18n.gettext("Remove"),
'title': Sao.i18n.gettext("Remove"),
- }).append(jQuery(' ', {
- 'class': 'glyphicon glyphicon-minus'
- })).appendTo(buttons);
+ }).append(Sao.common.ICONFACTORY.get_icon_img('tryton-remove')
+ ).appendTo(buttons);
this.but_remove.click(this.remove.bind(this));
}
@@ -2835,9 +2821,8 @@ function eval_pyson(value){
'tabindex': -1,
'aria-label': Sao.i18n.gettext("New"),
'title': Sao.i18n.gettext("New"),
- }).append(jQuery(' ', {
- 'class': 'glyphicon glyphicon-edit'
- })).appendTo(buttons);
+ }).append(Sao.common.ICONFACTORY.get_icon_img('tryton-create')
+ ).appendTo(buttons);
this.but_new.click(this.new_.bind(this));
this.but_open = jQuery(' ', {
@@ -2846,9 +2831,8 @@ function eval_pyson(value){
'tabindex': -1,
'aria-label': Sao.i18n.gettext("Open"),
'title': Sao.i18n.gettext("Open"),
- }).append(jQuery(' ', {
- 'class': 'glyphicon glyphicon-folder-open'
- })).appendTo(buttons);
+ }).append(Sao.common.ICONFACTORY.get_icon_img('tryton-open')
+ ).appendTo(buttons);
this.but_open.click(this.open.bind(this));
this.but_del = jQuery(' ', {
@@ -2857,9 +2841,8 @@ function eval_pyson(value){
'tabindex': -1,
'aria-label': Sao.i18n.gettext("Delete"),
'title': Sao.i18n.gettext("Delete"),
- }).append(jQuery(' ', {
- 'class': 'glyphicon glyphicon-trash'
- })).appendTo(buttons);
+ }).append(Sao.common.ICONFACTORY.get_icon_img('tryton-delete')
+ ).appendTo(buttons);
this.but_del.click(this.delete_.bind(this));
this.but_undel = jQuery(' ', {
@@ -2868,9 +2851,8 @@ function eval_pyson(value){
'tabindex': -1,
'aria-label': Sao.i18n.gettext("Undelete"),
'title': Sao.i18n.gettext("Undelete"),
- }).append(jQuery(' ', {
- 'class': 'glyphicon glyphicon-repeat'
- })).appendTo(buttons);
+ }).append(Sao.common.ICONFACTORY.get_icon_img('tryton-undo')
+ ).appendTo(buttons);
this.but_undel.click(this.undelete.bind(this));
this.content = jQuery('
', {
@@ -3303,9 +3285,8 @@ function eval_pyson(value){
'tabindex': -1,
'aria-label': Sao.i18n.gettext("Add"),
'title': Sao.i18n.gettext("Add"),
- }).append(jQuery(' ', {
- 'class': 'glyphicon glyphicon-plus'
- })).appendTo(buttons);
+ }).append(Sao.common.ICONFACTORY.get_icon_img('tryton-add')
+ ).appendTo(buttons);
this.but_add.click(this.add.bind(this));
this.but_remove = jQuery(' ', {
@@ -3314,9 +3295,8 @@ function eval_pyson(value){
'tabindex': -1,
'aria-label': Sao.i18n.gettext("Remove"),
'title': Sao.i18n.gettext("Remove"),
- }).append(jQuery(' ', {
- 'class': 'glyphicon glyphicon-minus'
- })).appendTo(buttons);
+ }).append(Sao.common.ICONFACTORY.get_icon_img('tryton-remove')
+ ).appendTo(buttons);
this.but_remove.click(this.remove.bind(this));
this.content = jQuery('
', {
@@ -3529,9 +3509,8 @@ function eval_pyson(value){
'type': 'button',
'aria-label': Sao.i18n.gettext("Save As"),
'title': Sao.i18n.gettext("Save As..."),
- }).append(jQuery(' ', {
- 'class': 'glyphicon glyphicon-save'
- })).appendTo(group);
+ }).append(Sao.common.ICONFACTORY.get_icon_img('tryton-save')
+ ).appendTo(group);
this.but_save_as.click(this.save_as.bind(this));
this.but_select = jQuery(' ', {
@@ -3539,9 +3518,8 @@ function eval_pyson(value){
'type': 'button',
'aria-label': Sao.i18n.gettext("Select"),
'title': Sao.i18n.gettext("Select..."),
- }).append(jQuery(' ', {
- 'class': 'glyphicon glyphicon-search'
- })).appendTo(group);
+ }).append(Sao.common.ICONFACTORY.get_icon_img('tryton-search')
+ ).appendTo(group);
this.but_select.click(this.select.bind(this));
this.but_clear = jQuery(' ', {
@@ -3549,9 +3527,8 @@ function eval_pyson(value){
'type': 'button',
'aria-label': Sao.i18n.gettext("Clear"),
'title': Sao.i18n.gettext("Clear"),
- }).append(jQuery(' ', {
- 'class': 'glyphicon glyphicon-erase'
- })).appendTo(group);
+ }).append(Sao.common.ICONFACTORY.get_icon_img('tryton-clear')
+ ).appendTo(group);
this.but_clear.click(this.clear.bind(this));
return group;
@@ -3699,9 +3676,8 @@ function eval_pyson(value){
this.but_open = jQuery(' ', {
'class': 'btn btn-default',
'type': 'button'
- }).append(jQuery(' ', {
- 'class': 'glyphicon glyphicon-folder-open'
- })).appendTo(jQuery(' ', {
+ }).append(Sao.common.ICONFACTORY.get_icon_img('tryton-open')
+ ).appendTo(jQuery(' ', {
'class': 'input-group-btn',
}).prependTo(group));
this.but_open.click(this.open.bind(this));
@@ -3907,8 +3883,8 @@ function eval_pyson(value){
}
},
set_icon: function(value) {
- value = value || 'tryton-web-browser';
- Sao.common.ICONFACTORY.register_icon(value).done(function(url) {
+ value = value || 'tryton-public';
+ Sao.common.ICONFACTORY.get_icon_url(value).done(function(url) {
this.icon.attr('src', url);
}.bind(this));
},
@@ -4039,9 +4015,8 @@ function eval_pyson(value){
'class': 'btn btn-default btn-sm',
'type': 'button',
'aria-label': Sao.i18n.gettext('Add')
- }).append(jQuery(' ', {
- 'class': 'glyphicon glyphicon-plus'
- })).appendTo(jQuery('
', {
+ }).append(Sao.common.ICONFACTORY.get_icon_img('tryton-add')
+ ).appendTo(jQuery('
', {
'class': 'input-group-btn'
}).appendTo(group));
this.but_add.click(this.add.bind(this));
@@ -4283,9 +4258,8 @@ function eval_pyson(value){
'class': 'btn btn-default',
'type': 'button',
'arial-label': Sao.i18n.gettext('Remove')
- }).append(jQuery(' ', {
- 'class': 'glyphicon glyphicon-minus'
- })).appendTo(jQuery('
', {
+ }).append(Sao.common.ICONFACTORY.get_icon_img('tryton-remove')
+ ).appendTo(jQuery('
', {
'class': 'input-group-btn'
}).appendTo(group));
@@ -4436,9 +4410,8 @@ function eval_pyson(value){
'tabindex': -1,
'aria-label': Sao.i18n.gettext("Open the calendar"),
'title': Sao.i18n.gettext("Open the calendar"),
- }).append(jQuery(' ', {
- 'class': 'glyphicon glyphicon-calendar'
- }))).prependTo(this.date);
+ }).append(Sao.common.ICONFACTORY.get_icon_img('tryton-date')
+ )).prependTo(this.date);
this.date.datetimepicker({
'format': Sao.common.moment_format(this.format),
'locale': moment.locale(),
@@ -4503,8 +4476,8 @@ function eval_pyson(value){
this.encoder = new Sao.PYSON.Encoder({});
this.decoder = new Sao.PYSON.Decoder({}, true);
this.el.keyup(this.validate_pyson.bind(this));
- this.icon = jQuery(' ', {
- 'class': 'glyphicon',
+ this.icon = jQuery(' ', {
+ 'class': 'icon',
}).appendTo(jQuery(' ', {
'class': 'input-group-addon',
}).appendTo(this.group));
@@ -4546,10 +4519,12 @@ function eval_pyson(value){
validate_pyson: function() {
var icon = 'ok';
if (this.get_encoded_value() === null) {
- icon = 'remove';
+ icon = 'error';
}
- this.icon.removeClass().addClass('glyphicon').addClass(
- ' glyphicon-' + icon + '-sign');
+ Sao.common.ICONFACTORY.get_icon_img('tryton-' + icon)
+ .then(function(url) {
+ this.icon.attr('src', url);
+ }.bind(this));
},
focus_out: function() {
this.validate_pyson();
diff --git a/src/view/tree.js b/src/view/tree.js
index 0d31e63266..2859935dde 100644
--- a/src/view/tree.js
+++ b/src/view/tree.js
@@ -130,7 +130,9 @@
label.attr('title', column.attributes.help);
}
if (column.sortable) {
- var arrow = jQuery(' ');
+ var arrow = jQuery(' ', {
+ 'class': 'icon',
+ });
label.append(arrow);
column.arrow = arrow;
th.click(column, this.sort_model.bind(this));
@@ -261,24 +263,30 @@
sort_model: function(e){
var column = e.data;
var arrow = column.arrow;
- var arrow_top = 'glyphicon glyphicon-triangle-top';
- var arrow_bottom = 'glyphicon glyphicon-triangle-bottom';
this.columns.forEach(function(col) {
if (col.arrow){
- if (col != column && col.arrow.hasClass('glyphicon')) {
- col.arrow.removeClass(arrow_top + ' ' + arrow_bottom);
+ if (col != column && col.arrow.attr('src')) {
+ col.arrow.attr('src', '');
}
}
});
this.screen.order = this.screen.default_order;
- if (arrow.hasClass(arrow_bottom)) {
- arrow.removeClass(arrow_bottom);
- arrow.addClass(arrow_top);
+ if (arrow.data('order') == 'ASC') {
+ arrow.data('order', 'DESC');
+ Sao.common.ICONFACTORY.get_icon_url('tryton-arrow-up')
+ .then(function(url) {
+ arrow.attr('src', url);
+ });
this.screen.order = [[column.attributes.name, 'DESC']];
- } else if (arrow.hasClass(arrow_top)) {
- arrow.removeClass(arrow_top);
+ } else if (arrow.data('order') == 'DESC') {
+ arrow.data('order', '');
+ arrow.attr('src', '');
} else {
- arrow.addClass(arrow_bottom);
+ arrow.data('order', 'ASC');
+ Sao.common.ICONFACTORY.get_icon_url('tryton-arrow-down')
+ .then(function(url) {
+ arrow.attr('src', url);
+ });
this.screen.order = [[column.attributes.name, 'ASC']];
}
var unsaved_records = [];
@@ -889,8 +897,7 @@
var row = widgets[1];
td.append(table);
if ((i === 0) && this.children_field) {
- this.expander = jQuery(' ', {
- 'class': 'glyphicon',
+ this.expander = jQuery(' ', {
'tabindex': 0
});
this.expander.html(' ');
@@ -1043,13 +1050,16 @@
return false;
},
update_expander: function(expanded) {
+ var icon;
if (expanded) {
- this.expander.removeClass('glyphicon-plus');
- this.expander.addClass('glyphicon-minus');
+ icon = 'tryton-arrow-down';
} else {
- this.expander.removeClass('glyphicon-minus');
- this.expander.addClass('glyphicon-plus');
+ icon = 'tryton-arrow-right';
}
+ Sao.common.ICONFACTORY.get_icon_url(icon)
+ .then(function(url) {
+ this.expander.attr('src', url);
+ }.bind(this));
},
collapse_children: function() {
this.rows.forEach(function(row, pos, rows) {
@@ -1448,7 +1458,7 @@
this.protocol = protocol || null;
this.icon = attributes.icon;
if (this.protocol && !this.icon) {
- this.icon = 'tryton-web-browser';
+ this.icon = 'tryton-public';
}
},
get_cell: function() {
@@ -1473,7 +1483,7 @@
cell = this.get_cell();
}
record.load(this.attributes.name).done(function() {
- var value, icon_prm;
+ var value;
var field = record.model.fields[this.attributes.name];
var invisible = field.get_state_attrs(record).invisible;
if (invisible) {
@@ -1506,16 +1516,16 @@
else {
value = this.icon;
}
- icon_prm = Sao.common.ICONFACTORY.register_icon(value);
- icon_prm.done(function(url) {
- var img_tag;
- if (cell.children('img').length) {
- img_tag = cell.children('img');
- } else {
- img_tag = cell;
- }
- img_tag.attr('src', url || '');
- }.bind(this));
+ Sao.common.ICONFACTORY.get_icon_url(value)
+ .done(function(url) {
+ var img_tag;
+ if (cell.children('img').length) {
+ img_tag = cell.children('img');
+ } else {
+ img_tag = cell;
+ }
+ img_tag.attr('src', url || '');
+ }.bind(this));
} else {
value = this.attributes.string || '';
if (!value) {
@@ -1784,9 +1794,8 @@
button = jQuery(' ', {
'class': 'btn btn-default btn-sm',
'type': 'button',
- }).append(jQuery(' ', {
- 'class': 'glyphicon glyphicon-save',
- })).appendTo(cell)
+ }).append(Sao.common.ICONFACTORY.get_icon_img('tryton-save')
+ ).appendTo(cell)
.click(record, function(event) {
// Prevent editable tree to start edition
event.stopPropagation();
diff --git a/src/window.js b/src/window.js
index b25919257f..4bc547009a 100644
--- a/src/window.js
+++ b/src/window.js
@@ -151,9 +151,8 @@
'class': 'btn btn-default btn-sm',
'type': 'button',
'aria-label': Sao.i18n.gettext('Add')
- }).append(jQuery(' ', {
- 'class': 'glyphicon glyphicon-plus'
- })).appendTo(buttons);
+ }).append(Sao.common.ICONFACTORY.get_icon_img('tryton-add')
+ ).appendTo(buttons);
this.but_add.click(this.add.bind(this));
this.but_add.prop('disabled', !access.read || readonly);
@@ -161,9 +160,8 @@
'class': 'btn btn-default btn-sm',
'type': 'button',
'aria-label': Sao.i18n.gettext('Remove')
- }).append(jQuery(' ', {
- 'class': 'glyphicon glyphicon-minus'
- })).appendTo(buttons);
+ }).append(Sao.common.ICONFACTORY.get_icon_img('tryton-remove')
+ ).appendTo(buttons);
this.but_remove.click(this.remove.bind(this));
this.but_remove.prop('disabled', !access.read || readonly);
}
@@ -172,9 +170,8 @@
'class': 'btn btn-default btn-sm',
'type': 'button',
'aria-label': Sao.i18n.gettext('New')
- }).append(jQuery(' ', {
- 'class': 'glyphicon glyphicon-edit'
- })).appendTo(buttons);
+ }).append(Sao.common.ICONFACTORY.get_icon_img('tryton-create')
+ ).appendTo(buttons);
this.but_new.click(this.new_.bind(this));
this.but_new.prop('disabled', !access.create || readonly);
@@ -182,9 +179,8 @@
'class': 'btn btn-default btn-sm',
'type': 'button',
'aria-label': Sao.i18n.gettext('Delete')
- }).append(jQuery(' ', {
- 'class': 'glyphicon glyphicon-trash'
- })).appendTo(buttons);
+ }).append(Sao.common.ICONFACTORY.get_icon_img('tryton-delete')
+ ).appendTo(buttons);
this.but_del.click(this.delete_.bind(this));
this.but_del.prop('disabled', !access['delete'] || readonly);
@@ -192,9 +188,8 @@
'class': 'btn btn-default btn-sm',
'type': 'button',
'aria-label': Sao.i18n.gettext('Undelete')
- }).append(jQuery(' ', {
- 'class': 'glyphicon glyphicon-repeat'
- })).appendTo(buttons);
+ }).append(Sao.common.ICONFACTORY.get_icon_img('tryton-undo')
+ ).appendTo(buttons);
this.but_undel.click(this.undelete.bind(this));
this.but_undel.prop('disabled', !access['delete'] || readonly);
@@ -202,9 +197,8 @@
'class': 'btn btn-default btn-sm',
'type': 'button',
'aria-label': Sao.i18n.gettext('Previous')
- }).append(jQuery(' ', {
- 'class': 'glyphicon glyphicon-chevron-left'
- })).appendTo(buttons);
+ }).append(Sao.common.ICONFACTORY.get_icon_img('tryton-back')
+ ).appendTo(buttons);
this.but_previous.click(this.previous.bind(this));
this.label = jQuery(' ', {
@@ -216,18 +210,16 @@
'class': 'btn btn-default btn-sm',
'type': 'button',
'aria-label': Sao.i18n.gettext('Next')
- }).append(jQuery(' ', {
- 'class': 'glyphicon glyphicon-chevron-right'
- })).appendTo(buttons);
+ }).append(Sao.common.ICONFACTORY.get_icon_img('tryton-forward')
+ ).appendTo(buttons);
this.but_next.click(this.next.bind(this));
this.but_switch = jQuery(' ', {
'class': 'btn btn-default btn-sm',
'type': 'button',
'aria-label': Sao.i18n.gettext('Switch')
- }).append(jQuery(' ', {
- 'class': 'glyphicon glyphicon-list-alt'
- })).appendTo(buttons);
+ }).append(Sao.common.ICONFACTORY.get_icon_img('tryton-switch')
+ ).appendTo(buttons);
this.but_switch.click(this.switch_.bind(this));
}
@@ -855,9 +847,8 @@
var button_add = jQuery(' ', {
'class': 'btn btn-default btn-block',
'type': 'button'
- }).append(jQuery(' ', {
- 'class': 'glyphicon glyphicon-plus'
- })).click(function(){
+ }).append(Sao.common.ICONFACTORY.get_icon_img('tryton-add')
+ ).click(function(){
this.fields_all.find('.bg-primary').each(function(i, el_field) {
this.sig_sel_add(el_field);
}.bind(this));
@@ -867,9 +858,8 @@
jQuery(' ', {
'class': 'btn btn-default btn-block',
'type': 'button'
- }).append(jQuery(' ', {
- 'class': 'glyphicon glyphicon-minus'
- })).click(function(){
+ }).append(Sao.common.ICONFACTORY.get_icon_img('tryton-remove')
+ ).click(function(){
// sig_unsel
this.fields_selected.children('li.bg-primary').remove();
}.bind(this)).append(' '+Sao.i18n.gettext('Remove'))
@@ -878,9 +868,8 @@
jQuery(' ', {
'class': 'btn btn-default btn-block',
'type': 'button'
- }).append(jQuery(' ', {
- 'class': 'glyphicon glyphicon-remove'
- })).click(function(){
+ }).append(Sao.common.ICONFACTORY.get_icon_img('tryton-clear')
+ ).click(function(){
this.fields_selected.empty();
}.bind(this)).append(' '+Sao.i18n.gettext('Clear'))
.appendTo(this.column_buttons);
@@ -907,7 +896,7 @@
}).appendTo(this.dialog.body);
var expander_icon = jQuery(' ', {
- 'class': 'glyphicon glyphicon-plus',
+ 'class': 'caret',
}).css('cursor', 'pointer').html(' ');
var csv_param_label = jQuery(' ', {
@@ -916,10 +905,8 @@
jQuery('
', {
'class': 'col-md-12'
- }).append(expander_icon).append(csv_param_label)
+ }).append(csv_param_label).append(expander_icon)
.on('click', function(){
- expander_icon.toggleClass('glyphicon-plus')
- .toggleClass('glyphicon-minus');
this.expander_csv.collapse('toggle');
}.bind(this)).appendTo(row_csv_param);
@@ -1043,9 +1030,8 @@
jQuery(' ', {
'class': 'btn btn-default btn-block',
'type': 'button'
- }).append(jQuery(' ', {
- 'class': 'glyphicon glyphicon-search'
- })).click(function(){
+ }).append(Sao.common.ICONFACTORY.get_icon_img('tryton-search')
+ ).click(function(){
this.autodetect();
}.bind(this)).append(' '+Sao.i18n.gettext('Auto-Detect'))
.appendTo(this.column_buttons);
@@ -1131,19 +1117,25 @@
if (parent_node[field].relation) {
node.prepend(' ');
- var expander_icon = jQuery(' ', {
- 'class': 'glyphicon glyphicon-plus'
- }).click(function(e) {
- e.stopPropagation();
- expander_icon.toggleClass('glyphicon-plus')
- .toggleClass('glyphicon-minus');
- if(expander_icon.hasClass('glyphicon-minus')) {
- this.on_row_expanded(parent_node[field]);
- }
- else {
- node.next('ul').remove();
- }
- }.bind(this)).prependTo(node);
+ var expander_icon = Sao.common.ICONFACTORY
+ .get_icon_img('tryton-arrow-right')
+ .data('expanded', false)
+ .click(function(e) {
+ e.stopPropagation();
+ var icon;
+ var expanded = expander_icon.data('expanded');
+ expander_icon.data('expanded', !expanded);
+ if (expanded) {
+ icon = 'tryton-arrow-right';
+ node.next('ul').remove();
+ } else {
+ icon = 'tryton-arrow-down';
+ this.on_row_expanded(parent_node[field]);
+ }
+ Sao.common.ICONFACTORY.get_icon_url(icon).then(function(url) {
+ expander_icon.attr('src', url);
+ });
+ }.bind(this)).prependTo(node);
}
}.bind(this));
},
@@ -1356,9 +1348,8 @@
jQuery(' ', {
'class': 'btn btn-default btn-block',
'type': 'button'
- }).append(jQuery(' ', {
- 'class': 'glyphicon glyphicon-floppy-save'
- })).click(function(){
+ }).append(Sao.common.ICONFACTORY.get_icon_img('tryton-save')
+ ).click(function(){
this.addreplace_predef();
}.bind(this)).append(' '+Sao.i18n.gettext('Save Export'))
.appendTo(this.column_buttons);
@@ -1366,9 +1357,8 @@
jQuery(' ', {
'class': 'btn btn-default btn-block',
'type': 'button'
- }).append(jQuery(' ', {
- 'class': 'glyphicon glyphicon-floppy-remove'
- })).click(function(){
+ }).append(Sao.common.ICONFACTORY.get_icon_img('tryton-delete')
+ ).click(function(){
this.remove_predef();
}.bind(this)).append(' '+Sao.i18n.gettext('Delete Export'))
.appendTo(this.column_buttons);
@@ -1424,19 +1414,25 @@
if (parent_node[name].children) {
node.prepend(' ');
- var expander_icon = jQuery(' ', {
- 'class': 'glyphicon glyphicon-plus'
- }).click(function(e){
- e.stopPropagation();
- expander_icon.toggleClass('glyphicon-plus')
- .toggleClass('glyphicon-minus');
- if(expander_icon.hasClass('glyphicon-minus')) {
- this.on_row_expanded(parent_node[name]);
- }
- else {
- node.next('ul').remove();
- }
- }.bind(this)).prependTo(node);
+ var expander_icon = Sao.common.ICONFACTORY
+ .get_icon_img('tryton-arrow-right')
+ .data('expanded', false)
+ .click(function(e) {
+ e.stopPropagation();
+ var icon;
+ var expanded = expander_icon.data('expanded');
+ expander_icon.data('expanded', !expanded);
+ if (expanded) {
+ icon = 'tryton-arrow-right';
+ node.next('ul').remove();
+ } else {
+ icon = 'tryton-arrow-down';
+ this.on_row_expanded(parent_node[name]);
+ }
+ Sao.common.ICONFACTORY.get_icon_url(icon).then(function(url) {
+ expander_icon.attr('src', url);
+ });
+ }.bind(this)).prependTo(node);
}
}.bind(this));
},