summaryrefslogtreecommitdiff
path: root/addons/web_unsplash/static/src
AgeCommit message (Collapse)Author
2021-05-17[FIX] *: update documentation links Following the recent reorganisation of ↵Victor Feyens
the documentation in 12.0+, the majority of the documents have been moved and their old links are no longer valid. Some redirection rules will soon be deployed, but those rules might be dropped in some years and we want the links to still work, which is why we still replace the links to the new ones. FW-Port of odoo/odoo#70675 (13.0) closes odoo/odoo#70728 X-original-commit: 85c24961ab9ff5c1c79eb7415c97c46d9a77cca3 Related: odoo/enterprise#18283 Signed-off-by: Victor Feyens (vfe) <vfe@odoo.com>
2020-09-16[IMP] web_editor, *: make media-dialog search odoo media-librarySamuel Degueldre
*: website, web_unsplash, website_blog We have recently created an odoo media library that exposes a public API for searching for open-source media, including dynamic SVGs that can be used with the dynamic background-shape system to create illustrations whose colors can be changed by the user. This commit adds the corresponding client-side functionalty: search for the images in the media-library, creating a corresponding attachment when selected, as well as an option to customize the colors of the dynamic SVGs. In the process, adaptations have been made in the web_unsplash module to avoid duplicating code and to adapt code that was making assumptions that are no longer valid. To make new users more aware of this feature, all default images have been hidden from the media-dialog, so that the user is prompted so search for images. Some tests and tours that were relying on having default images in the media-dialog (eg in website_blog) have been adapted to match. task-2316651 Linked to: odoo/iap-apps#235 closes odoo/odoo#56479 Signed-off-by: Jérémy Kersten (jke) <jke@openerp.com>
2020-03-30[IMP] web_editor, *: set image alt automatically, remove useless altsSamuel Degueldre
*: website, web_unplash The html alt attribute is supposed to contain a description of an image's content (an alternative to the visual representation), a lot of snippets contained alt attributes that were not descriptive of their content, and would as such be counter-productive in terms of accessibility. This commit removes those. Previously, the alt attribute on img tags had to be set manually by the user through the editor. This commit makes use of the description field on ir.attachment to store image description, and sets the alt attribute on images to that description when choosing an image from the media dialog. task-2091417 closes odoo/odoo#45174 Related: odoo/enterprise#9520 Signed-off-by: Quentin Smetz (qsm) <qsm@odoo.com>
2020-03-30[IMP] web_editor, web_unsplash: improve media-dialog UXSamuel Degueldre
Previously, searching for images in the database and on unsplash was mutually exclusive, and controlled by a dropdown menu next to the search bar. Additionally, the display of db images and unsplash images was very different, making using the search function inconsistent and awkward. This commit merges the unsplash search into the db search. When searching, the first few matches from the database are displayed, then results from unsplash. Additionally, the layout of images has been greatly improved, eliminating almost all padding, using some flex-box magic to allow the images to take up all the available space without being cropped or deformed. The input to add an attachment by URL is now collapsed by default, and clicking on it will expand it to reduce visual clutter. Finally, when not in multi-images mode, the clicked image is immediately used, rather than the user having to click it and then click the add button, or having to double click, which was not obvious. task-2091417 closes odoo/odoo#45174
2020-03-04[FIX] web_editor: stop media-dialog from loading all db attachmentsSamuel Degueldre
Before this commit, the media-dialog was reading all attachments that matched certain criteria for each tab. On large databases, this results in the search_read call timing out, preventing the media-dialog from opening and making all images and documents un-editable. One unfortunate consequence of this is that we can no longer use the firstFilter and lastFilter features, as those rely on fetching all records and sorting them client-side, as such, this feature has been removed entirely. task-2198527 closes https://github.com/odoo/odoo/issues/43113 closes odoo/odoo#46895 X-original-commit: 1e91a89b78ff6019c6120c73ea1eab09b3d58d2f Signed-off-by: Quentin Smetz (qsm) <qsm@odoo.com>
2019-06-19[FIX] web_editor, web_unsplash: fix nested divfja-odoo
The div that is replaced with the existing.attachments template was not the right target and kept nesting div into each other. The parent div of the existing.attachments now has the o_we_existing_attachments class (the target to be replaced by itself). Part of #33983
2019-06-04[IMP] web_editor, *: improve media dialog attachment uploadSébastien Theys
* = web_unsplash, website Remove iframe upload and replace it with a proper RPC. The route is now only accepting one file at a time, which makes it easier to maintain, and allows to process the first file as soon as it is ready, instead of having to wait on everything. Also fix a bug where a document could not be uploaded because it would try to parse it as an image. Remove filter after search result from the JS and add the corresponding conditions in the domain to avoid processing and returning unnecessary records. If multiple attachments exist with the same URL, now display them all to avoid confusion. Compute all the necessary values in the python model instead of in the JS. Allow SVG in the widget (the server already accepted them before). Disable multiple image upload when not in multiImages mode. task-1930726 PR: #31208
2019-06-04[IMP] web_editor, *: improve file media widget views & selectionSébastien Theys
* = web_unsplash, website_blog Rename "image" to "attachment" when appropriate in FileWidget Improve image selection / highlight code (now based on attachment id) Improve image grid view: - Remove the row mechanism and replace it by a single loop over the images. - Take advantage of row wrap for a responsive display. - Uniformize the height (prevent tall images from moving down everything). - Load a miniature of the images when possible, remove the loading placeholder. This should significantly reduce the download size when opening the dialog, at the cost of CPU usage on the server. - Split the existing image view into one view for the loop and one view for the image itself. This way in a following commit we can reuse the image view when adding a new one, instead of having to render everything again. task-1930726 PR: #31208
2019-05-27[IMP] web_editor, web_unsplash: remove options duplicate attributesSébastien Theys
Since a reference to the options is already kept, there is no need to keep a reference to each option individually. PR: #33509
2019-05-27[IMP] web_editor, web_unsplash: split media widget (image & document)Sébastien Theys
The common code is kept in a generic File widget, while the split allows for easier customization. PR: #33509
2019-05-06[MERGE] forward port branch saas-12.2 up to 78b3b650b0dChristophe Simonis
2019-05-03[MERGE] forward port branch saas-12.1 up to 2420492c264Christophe Simonis
2019-04-25[FIX] web_unsplash: correctly load images after credentialsRomain Derie
Since media dialog and unsplash refactoring (1f847a1e2e, 78a30d44c) there was a bug after adding credentials. Indeed, when doing a search for the first time and no credentials are set, it shows a form to add the missing credentials. When saving those, it should automatically perform the initial search now that the credentials are set. But it was not the case anymore, it would keep reloading the credential form. User would have to close and reopen media dialog. closes odoo/odoo#32943 Signed-off-by: Quentin Smetz (qsm) <qsm@odoo.com>
2019-03-06[REF] web_unsplash: 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-26[REF] *: use 'frontend' system in non-website appsqsm-odoo
* account, auth_signup, payment, portal, project, sale, sale_management, web_unsplash, website, website_mail, website_rating, website_sale This commit does probably not do what is stated for all non-website apps but it is a first step. It also uses the system in apps which could have already used it but did not. Part of https://github.com/odoo/odoo/pull/29442 task-1932066
2018-12-04[REF] web_editor, web_unsplash: review load more featureqsm-odoo
* Simplify the code * Make the feature mork without unsplash * Handle corner cases task-1896705
2018-12-04[IMP] web_editor, *: improve media dialogAndrea Ulliana
* web_unsplash, website_sale - Visual improvements and cleaning in each tab: video, documents, pictogram, images. - Only one search input for both the local library and unsplash. - Replace the idea of multiple pages by adding a 'Load More' button. task-1896705
2019-01-22[FIX] *: review 'frontend' pages init (web_editor.base)Christophe Matthieu
* auth_password_policy_signup, auth_signup, website, portal, survey, web_unsplash, website Following the new editor's merge at https://github.com/odoo/odoo/pull/29775 web_editor.base has been moved to website while it was still used by frontend pages which do not depend on website (especially portal). This commit moves web_editor.base to portal while waiting for https://github.com/odoo/odoo/pull/29442. It also removes the unnecessary dependencies to it in non-portal pages (in survey for example).
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-23[FIX] web_unsplash: add unsplash searched terms in attachement name/urlRomain Derie
Before this commit: An unsplash image would be saved as an attachement with: - A name like 'x54ze78z.JPEG' - An url like '/unsplash/x54ze78z.JPEG' - A filename like 'x54ze78z.JPGED' We would not store the searched terms in the name/url. Then, we would not be able to search on local attachement in the media dialog to retrieve the images based on what we searched. Now: We store the searched terms in the name/url so it can be used later in the media dialog search: - Name like 'big_lion.jpg' (duplicates may be possible) - Url like '/unsplash/x54ze78z/big_lion.jpg' - Filename like 'unsplash_x54ze78z_big_lion.jpg' Task-1911345
2018-11-23[FIX] web_unsplash: don't expose client_id in networkRomain Derie
Unsplash CEO asked us to stop exposing our key client side (even if it was only in the browser network and previously allowed by their API team leader). After multiple exchange, it has been negociated that: 1. Our non saas user won't be able to apply for a production key and should prefix they Unsplash application name by 'Odoo:'. Their key will remain in test mode. Indeed, Unsplash won't be able to review every Odoo application and ensure it respects the API terms and it is a real application. 2. Our saas user will query Unsplash with a dedicated enterprise key 3. The documentation should explain it all Task-1911345
2018-11-05[FIX] web_unsplash: do not fetch app_id if no Unsplash imagesRomain Derie
As empty arrays are considered truthy, the call to `/web_unsplash/get_app_id` would always be performed even if no Unsplash images. closes odoo/odoo#28421
2018-11-02[FIX] web_unsplash: wrong doc linksRomain Derie
Doc links were created before the doc, then the doc was merged under a different URL. This commit corrects the links to the Unsplash documentation. closes odoo/odoo#28355
2018-10-26[IMP] web_unsplash: Implement Beacon Alternative and credit UnsplashRomain Derie
Unsplash API requirements does not directly allow to store their images on our server (We should use hotlinking unless the image is edited (cropped etc)). Still, they have the `Image Beacon Alternative` to allow to store their images on our server if we really need it with our use case. With the Beacon Alternative, we should ping Unsplash server to notify an image view. To do so, we need to be able to recognize Unsplash imagesin the DOM, this is why we are now using /unsplash/ in the URL. The Unsplash image name should be the image ID as it will be the identifier needed to ping their server. This commit also adds credit to Unsplash in the media dialog next to the unsplash input search. It also add the `w-100` on the media dialog card as we lost that UI behavior from BS3 to BS4. opw-35060 closes odoo/odoo#27377
2018-09-12[FIX] web_unsplash: row without container not taking all width in bs4Romain Derie
This commits add a container to make row full width, it also use bs4 classes to make the content centered. It also clean useless DOM. Task-1878245 (chatter)
2018-08-13[ADD] web_unsplash: Find free high-resolution images from UnsplashRomain Derie
Move module from enterprise to community Work of @dep-odoo and @rdeodoo