summaryrefslogtreecommitdiff
path: root/addons/website/static/src/js/menu
AgeCommit message (Collapse)Author
2019-07-26[MERGE] forward port branch saas-12.2 up to 1d6d790513eChristophe Simonis
2019-07-25[MERGE] forward port branch 12.0 up to b82df99d7a8Christophe Simonis
2019-07-25[MERGE] forward port branch saas-11.3 up to 5f419d4ad33Christophe Simonis
2019-07-24[MERGE] forward port branch 11.0 up to 0375c0174daChristophe Simonis
2019-07-22[FIX] web_editor, website: stop snippet animations before cloningRomain Derie
Before this commit, when a snippet was cloned, its animation was not destroyed first. The flow was: 1. Clone the snippet (DOM) - web_editor trigger `snippet_cloned` 2. Start cloned snippet animation - website listen `snippet_cloned` This was causing bugs, eg facebook snippet for which the animation is to create an iframe containing the facebook widget. When cloning this snippet, its iframe would be cloned to, then its animation would be started, creating another iframe. To fix such flows, the snippet cloning flow should be: 1. Strop the snippet animation 2. Clone the snippet (DOM) - web_editor trigger `snippet_cloned` 3. Start cloned snippet animation - website listen `snippet_cloned` 4. Restart the original snippet animation task-1951466 closes odoo/odoo#35029 Signed-off-by: Quentin Smetz (qsm) <qsm@odoo.com>
2019-06-03[MERGE] forward port branch saas-12.2 up to 995aa1685eeChristophe Simonis
2019-05-21[IMP] website: add specific object for Optimize SEORomain Derie
Before this commit, the object used by Optimize SEO 'wizard' was always the main object, without any possibility to change that (except by changing the main object but that would cause a lot of other issue, eg edit in backend). This commit add the possibility to explicitly set a seo object on the html data attribute. If set, this one will be used instead of the main object. This is useful for event.event where all the event pages (with website menu enabled) would share the same SEO since the main object would be the event.event. With this commit, the seo object is now the website.page, thus giving the possibility to have a separate SEO for every event pages. (Required for Odoo.com website for OXP) closes odoo/odoo#33194 Signed-off-by: Jérémy Kersten (jke) <jke@openerp.com>
2019-03-15[FIX] website: restore broken promises in websiteqsm-odoo
Since the switch to jQuery 3, Odoo uses native promises in its JS. Some mistakes were made in the website app during conversion from old jQuery deferred to native promises. - `this` -> `self` when wrapping in a promise - `.always(fct)` -> `.then(fct).guardedCatch(fct)` - a function returned sometimes a jQuery deferred, sometimes a native promise. This made the caller fail when using `always` or fail when using `guardedCatch` closes odoo/odoo#31887 Signed-off-by: Quentin Smetz (qsm) <qsm@odoo.com>
2019-03-06[REF] website: adapt code after jQuery updateVincent Schippefilt
Part of task 1896658 Co-authored-by: Aaron Bohy <aab@odoo.com> Co-authored-by: Christophe Matthieu <chm@odoo.com> Co-authored-by: Mathieu Duckerts-Antoine <dam@odoo.com> Co-authored-by: David Monjoie <dmo@odoo.com> Co-authored-by: Martin Geubelle <mge@odoo.com> Co-authored-by: svs-odoo <svs@odoo.com> Co-authored-by: Vincent Schippefilt <vsc@odoo.com>
2019-02-19[FIX] website: avoid double start editionChristophe Matthieu
issue: 'enable_editor' and click on 'edit' before loading edition, or double click on 'edit'
2019-02-19[FIX] website: remove 'enable_editor' from the URL before editionChristophe Matthieu
2019-02-15[REF] website: remove useless codeqsm-odoo
Part of https://github.com/odoo/odoo/commit/f4ba72a7593b67595852fc52ec0997d3276dbc67 became useless after forward-port in the new editor. Indeed, that commit handled what happened with data-editor-message attributes on save but as the new editor can discard changes without reloading the page, the forward-port of that commit made the code handle the attribute removal on editor *close*. closes odoo/odoo#31143
2019-02-14[IMP] web_editor: lazy load the wysiwygChristophe Matthieu
Issue: wysiwyg asset slow down the loading of the website, error inadvertently introduced: https://github.com/odoo/odoo/pull/29775 The assets are now loaded assynchroneously, when the editor is needed, its assets will be loaded. closes odoo/odoo#30700
2019-02-11[MERGE] forward port branch saas-12.1 up to 93d736e905eChristophe Simonis
2019-02-08[IMP] website: move navbar options to customize theme dialogqsm-odoo
Move the 'Show Logo', 'Show Sign In' and 'Fixed Top Menu' options from the customize menu to the customize theme dialog using new features introduced with https://github.com/odoo/odoo/pull/29624 The customize menu divider is also only added if there are toggable options in there (which is not the case anymore for all pages since this commit). PR https://github.com/odoo/odoo/pull/29624 task-1904244
2019-02-07[MERGE] forward port branch 12.0 up to a46138cb019Christophe Simonis
2019-02-26[REF] website, *: stop using 'animation' confusing nameqsm-odoo
* web, website_blog, website_sale, website_twitter Before this PR, all website widgets were named 'Animation'. Now that they are 'Public Widgets', we can at last stop using the confusing 'animation' name. Part of https://github.com/odoo/odoo/pull/29442 task-1932066
2019-02-26[REF] website, web, *: move part of website into webqsm-odoo
* im_livechat, survey, website_forum When website is installed, the JavaScript code has access to utilities to define improved widgets which are automatically attached to existing DOM elements on page load. Those mechanics are more and more needed in portal which does not depend on website (as it is website which depends on portal). This commit moves part of website JS to web, so that it can be used by all 'frontend' apps whose only common dependency is web (portal, survey, auth_signup, ...). This PR also questioned several other similar issues which will be handled later like: - website should maybe not depends on portal but only on http_routing - part of portal should be moved to http_routing and http_routing should be renamed (especially for frontend layouts, etc) so that apps like survey can reuse some common code Part of https://github.com/odoo/odoo/pull/29442 task-1932066
2019-02-06[FIX] website: remove data-editor-message attributes on saveqsm-odoo
When the edit mode is entered, some elements receive data-editor-message attributes. These were not removed on save which could in some cases make the attributes be saved in the database. For this to happen it would require an `.oe_structure.oe_empty` element to be put *inside* an editable element (instead of being the one which is editable). In that case the `.oe_structure` content would be saved in an inheriting view but the parent view would also be COW'd for no reason because of that attribute. Difficult to say if such a case exist in the current views but as it technically possible and that some of our tests use that configuration, it is worth fixing. Note: this fix was in fact done in the new editor in master and allowed to detect that one of our test was not testing a feature correctly because of that. This will be adapted in a different commit of this PR. closes odoo/odoo#30834
2019-02-06[FIX] website: restore some edit.js featuresqsm-odoo
Following the new editor's merge at https://github.com/odoo/odoo/pull/29775, the website 'edit.js' file received mistakes / useless code. https://github.com/odoo/odoo/pull/30839 fixes one of them. Hopefully this commit will solve the remaining ones. - https://github.com/odoo/odoo/blob/12.0/addons/website/static/src/js/menu/edit.js#L43 was moved for no reason at all at the bottom of the method alongside its comment which broke the feature and made the comment wrong. - Changed a '.a' selector into a '.a:not(.b), .a.b' selector... https://github.com/odoo/odoo/blob/b6db6b878c5d329c19262d829e13726c3a3a1d25/addons/website/static/src/js/menu/edit.js#L136 - For the same selector, a 'FIXME' comment was removed while it was not fixed (this restores it as a 'TODO' instead of a 'FIXME' though). - On edition stop, removed all the data-editor-message, even the specific ones that were not added by the editor (note that it was not a problem for the current ones in Odoo as they were by chance on the main editable elements which made them not saved in the database): https://github.com/odoo/odoo/blob/b6db6b878c5d329c19262d829e13726c3a3a1d25/addons/website/static/src/js/menu/edit.js#L177 closes odoo/odoo#30870
2019-02-05[FIX] website: only show "welcome" message on empty homepageAntoine Guenet
Every new page was being considered an empty homepage with "Welcome to your Homepage! Let's start designing." shown. Now only an empty homepage shows that message. closes odoo/odoo#30839
2019-02-05[REF] website, *: remove 'website.context' moduleqsm-odoo
* website_forum, website_gengo, website_mail_channel, website_sale Retrieving the global context is now the root's job, this will prevent problems when trying to extend the values the context has. See upcoming improvements with https://github.com/odoo/odoo/pull/29442 closes odoo/odoo#30816
2019-01-16[FIX] website: solve alignment bugs in onboardingAnshuman Sharma
- Fix the position of 'Add to menu' toggle button in new page dialog - Properly align tip icon in the welcome message task-1895287 closes odoo/odoo#29403
2019-01-18[MERGE] forward port branch 12.0 up to f854e01a983Christophe Simonis
2019-01-09[MERGE] forward port branch 12.0 up to 3e4138deaa2Christophe Simonis
closes odoo/odoo#30045
2018-12-04[MERGE] forward port branch 11.0 up to 2156af480fdChristophe Simonis
2018-12-18[FIX] website: seo - fix translation for seo modalJeremy Kersten
Lang / Context is implicitely added in the query using this._rpc Before this commit if you set the title 'Title 1' for your website in the main langage and after edit the title as "Title 2" in another language, it was the main title that was replaced instead of the translation. Now we use this._rpc that bind automatically the context and so the current lang that we are editing. closes odoo/odoo#29596
2018-11-29[FIX] website, *: properly clean website widgetsqsm-odoo
* web_editor When an user saves its website, all the animations are destroyed so that a clean DOM is saved. This is particularly important for snippets like the latest post one that would crash the page if not cleaned before saving. Two cases were found where animations were not cleaned before saving and this is what this commit fixes: - When an user used the undo/redo system, all animations were lost as the DOM is recreated. - When an user duplicated a snippet, animations were not restarted on the cloned element. closes odoo/odoo#29159
2018-12-05[MERGE] forward port branch saas-11.3 up to d4c65a7edeeChristophe Simonis
2018-12-05[MERGE] forward port branch 12.0 up to 053bb45706fChristophe Simonis
2018-11-27[IMP] website: support custom placeholder in empty-structure for editorJeremy Kersten
Before this commit, the placeholder was hardcoded: 'Drag building blocks here' Now you can customize the placeholder using a data-editor-message attribute.
2018-11-20[FIX] website: allow publishers to save their website editionqsm-odoo
On save, the editor will ask to parent widgets if something needs to be done first. The website navbar will receive that demand and asks to its action-capable components to do something. For example, the content menu handles page-related options saving. However, some users with limited access rights do not have the content menu... but the website navbar expects that the save action is performed. So, this empty action is defined here so that all users have an 'on_save' related action. This was only happening since 12.0 as 'on_save' actions were introduced there to save page-related options. closes odoo/odoo#28810
2019-01-28[MERGE] forward port branch saas-12.1 up to d3b8422c9c4Christophe Simonis
closes odoo/odoo#30614
2019-01-22[REF] website, *: rename and simplify web_editor.contextChristophe Matthieu
* website_forum, website_gengo, website_mail_channel, website_sale Following the new editor's merge at https://github.com/odoo/odoo/pull/29775, the web_editor.context module was moved to website without being renamed. This commit renames it to website.context but also merge the website extension that was made to that context directly within its definition. closes odoo/odoo#30409
2019-01-21[FIX] website, *: restore media dialog usesqsm-odoo
* web_editor, website_blog Following the new editor's merge at https://github.com/odoo/odoo/pull/29775, the media dialog was refactored but the code which used it outside of the editor was not adapted at all. Also, the selected image was not saved correctly anymore, making the media dialog useless outside the editor in the current implementation. - Adapted SEO image uploading and body image background choice which were not working anymore - Adapted blog cover choice and gallery snippet which were strangely still working even though there were sending wrong parameters during media dialog initialization closes odoo/odoo#30416
2019-01-21[FIX] website, *: restore using widgets outside the editorqsm-odoo
* web_editor Following the new editor's merge at https://github.com/odoo/odoo/pull/29775, the editor dialog and the switches crashed on their use in website. This is because the merge split some xml files without adapting xml dependencies... this commit only takes care of code which depended on '/web_editor/static/src/xml/editor.xml'. closes odoo/odoo#30408
2019-01-18[FIX] website, *: restore edit menu dialogqsm-odoo
* web_editor Following the new editor's merge at https://github.com/odoo/odoo/pull/29775, the website edit menu was not opening anymore. - Fix JS bug at initialization - Adapt JS code to target correct file which was renamed - Restore 4-months-old commit https://github.com/odoo/odoo/commit/f1ccc4978b140b2ffb888ef628b27a691dc023a0 - Adapt JS to get the menu label field using the new editor JS closes odoo/odoo#30353
2019-01-17[IMP] web_editor,*: Refactoring the wysiwyg editor and 'html' fieldChristophe Matthieu
* Creating a new structure by transforming all the plugins in the library using the odoo inheritance system. Plugins are easier to implement with the AbstractPlugin to add Odoo behaviors. * From now on, the methods of the library (in this case Summernote) can no longer be called by other modules or files. Only the wysiwyg widgets can access it, to simplify the updating process. The wysiwyg object serves as an interface. * Depending on the options the snippets will be loaded or not, the editor will be in an iframe or not... all of this is transparent from the outside. * Regarding iframes, all controllers related to editing have been removed: the new API no longer needs them. This speeds up loading, eases testing and removes complexity for the same features. PUBLIC FEATURES There are several public methods on the Wysiwyg class: * Wysiwyg.prepare (WidgetParent): returns a deferred resolved when the library (xml, lazy, assets...) is loaded. * Wysiwyg.getRange (DOM): returns the range (selection in the dom) * Wysiwyg.setRange (startNode, startOffset, endNode, endOffset): creates a range (selection in the dom) * Wysiwyg.setRangeFromNode (DOM, options) that creates a range from an element (option available to select all, start or end) A jQuery selector was added: :o_editable, which indicates whether the current element is editable. That is, if it is contained in a tag with the attribute 'contentEditable = "true"' or in a tag with the class o_editable. Several methods are also present: * focusIn: makes a focus and places the cursor at the beginning of the element * focusInEnd: makes a focus and places the cursor at the end of the element * selectContent: makes a focus and selects the content HTML FIELD The HTML field can receive different options: * style-inline: {boolean} transforms a class into an inline style when saving and vice versa when reading. * no-attachment: {boolean} prevents the use of attachments (in media dialog) * cssEdit: {xml_id} to use a template containing the css to loaded in an iframe when editing * cssReadonly: {xml_id} to use a template containing the css to load into an iframe when viewing in readonly * snippets: {xml_id} snippets template (can be used with or without cssEdit) * wrapper: {template} qweb static template (containing a tag: id = "wrapper") that will include the content during editing (removed on save) MASS MAILING A widget was created for mass mailing. There are now two fields: body_html and body_arch. body_arch contains the code with the class without conversion into inline style, useful when editing and one with the inline style that is visible in readonly mode and sent by email. Advantage: no spreading errors, able to update css/theme, able to do more changes when converting to inline style so that a maximum of mail clients have an impeccable rendering. Co-authored-by: Antoine Guenet <age@odoo.com>
2018-11-12[FIX] website: restore customize menu loadingqsm-odoo
When opening the customize menu as soon as the page became visible, an RPC crashed and the toggable options did not appear anymore. This happened: 1) DOM is ready. 2) The user click on the menu. 3) At the same time, the customize menu is initialized (`attachTo`), its event handlers are bound and the async `willStart` method is called. 4) The event handler for the user click is called... and crashes as requires a variable which would have been set in the `start` method. The bug did not appear in previous versions as the handler was not using the standard system and bound the event handler "by hand" in the `start` method. Maybe `attachTo` should not bind event handlers before the `willStart` method is completed; this would be a subject for the master branch. This commit solves the problem by setting the required variable in the `willStart` method instead of the `start` method. closes odoo/odoo#28578
2018-11-02[FIX] website: review action start on page loadingqsm-odoo
This commit fixes a bug introduced with https://github.com/odoo/odoo/pull/28251: When opening the ace editor on page load thanks to the #ace-view-editor URL hash, a JS error occurred preventing the editor to open. This was due to the way actions were executed on page loading: - Menu elements are initialized and can handle actions - On initialization, the ace menu tried to launch the editor - First, it asked that all widgets are closed (see mentioned PR) - The website handled that action demand by asking everyone to close their widget - The 'new content' menu tried... and failed as referenced a variable which would only have been created in the start method. Conclusion: before handling actions, all action-capable widgets should be started. This is what this commit does: when receiving an action demand, we first wait for the action handler to be fully started. This implied another change: before, many menus were waiting for the result of an action to notify that their start method is finished... this would cause a deadlock in the new system so those were removed, this did not make much sense anyway (if the result of that starting action has to be known, a dedicated event/method should handle that). closes odoo/odoo#28364
2018-10-30[FIX] website: fix ace editor interactions with other widgetsqsm-odoo
- The affix navbar went over the ace editor, preventing to save/close - The ace editor went always under the new content menu Now: - The affix navbar is always under the ace editor - The ace editor closes when the new content menu opens - The new content menu closes when the ace editor opens closes odoo/odoo#28251
2018-09-30[REF] website, *: add automatic context for call_kw rpcqsm-odoo
* web_editor, website_blog, website_crm_partner_assign, website_links, website_livechat, website_mail_channel, website_mass_mailing, website_slides Calling a model's method thanks to an RPC will now always send the web_editor context automatically, making sure the method gets the website_id all the time, removing the need to guess the current website (now the get_current_website method uses the context website_id if any). Note: other routes already have the website_id via request.env.context if they correctly set website=True (this commit also adds website=True for scss files customization routes).
2018-09-28[IMP] website: add default social share imageSébastien Theys
Allow to specify another image than the logo as default share image. This commit closes #27297
2018-09-25[IMP] website: improve "new content" text & add block uiSébastien Theys
We don't want the user to click on the page while an installation is in progress.
2018-09-25[IMP] website: add quick install from "new content"Sébastien Theys
This gives the user an overview of the possible actions, including those he currently does not have installed. It allows him to quickly install the missing applications without having to go on the backend. The commit also improves the existing actions: - correct handling of the actions deferred - add some translated terms PR: #27110 task-1885419
2018-09-25[FIX] website: make ?enable_seo more robustSébastien Theys
Sometimes we try to append a query string to an url, but if there is a remaining anchor, the query string will not be added at the right place. The title and description tags might not exist (translated page) so it would be displaying false instead of empty string. PR: #27110 task-1885419
2018-09-17[MERGE] forward port branch 11.0 up to f2b8caff07bChristophe Simonis
2018-09-14[FIX] website: seo add words no freezeLucas Perais (lpe)
On a website page, click on promote and add the keyword "DS1517" before this commit, the javascript froze after this commit, it doesn't freeze OPW 1880341 closes #26771
2018-09-13[IMP] website: improve Optimize SEO and Page ManagerSébastien Theys
Modal generic: - Fix footer overflowing buttons by pushing them to a new line. Page manager: - Add an SEO column to easily see which pages have incomplete SEO. - Add an edit SEO column to navigate to the SEO modal on said page. - Hide "edit in backend" column as debug. - Generally improve the whole view by adding appropriate titles on icons, etc. SEO modal: - Improve general style. - Add description length alert. - Restructure the keyword table/suggestions. - Reset page meta to their initial value on Discard. - Various small usability improvements. PR: #26897 task-1850579
2018-09-13[FIX] website: only show 'Follow tooltip' when possibleJeremy Kersten
Before this commit, the message was always displayed. Now we only show into the default homepage the message "Follow all the tooltip" when there at least 1 tooltip in the current page. task-1878245