From 6f0588ae817284f8281214994818d81365294da8 Mon Sep 17 00:00:00 2001 From: Nicolas Maillat Date: Tue, 10 Mar 2020 22:21:58 +0000 Subject: [PATCH 01/23] Translated using Weblate (French) Currently translated at 99.3% (2429 of 2446 strings) --- resources/locales/messages.fr.xlf | 58 +++++++++++++++---------------- 1 file changed, 29 insertions(+), 29 deletions(-) diff --git a/resources/locales/messages.fr.xlf b/resources/locales/messages.fr.xlf index 3ae907a829..a7ceb2d0b5 100644 --- a/resources/locales/messages.fr.xlf +++ b/resources/locales/messages.fr.xlf @@ -1,4 +1,4 @@ - +
@@ -7,8 +7,8 @@
- - + + Form/Login/PhraseaAuthenticationForm.php Form/Configuration/EmailFormType.php @@ -3949,9 +3949,9 @@ admin/statusbit/edit.html.twig admin/statusbit/edit.html.twig - + Language selection - Language selection + Language selection web/prod/index.html.twig @@ -10094,9 +10094,9 @@ Si vous recevez cet e-mail sans l'avoir sollicité, merci de l'ignorer ou de le juin classes/module/report.php - + language - Langue actuelle + Langue login/include/language-block.html.twig @@ -10136,45 +10136,45 @@ Si vous recevez cet e-mail sans l'avoir sollicité, merci de l'ignorer ou de le Voir plus de paniers web/lightbox/index.html.twig - + lightbox:feedback:sendreport:warnwindows:cancel - lightbox:feedback:sendreport:warnwindows:cancel + Annuler l'envois et continuer la validation mobile/lightbox/validate.html.twig web/lightbox/validate.html.twig - + lightbox:feedback:sendreport:warnwindows:message - lightbox:feedback:sendreport:warnwindows:message + Récapitulatif des choix de la validation mobile/lightbox/validate.html.twig web/lightbox/validate.html.twig - + lightbox:feedback:sendreport:warnwindows:record_approved - lightbox:feedback:sendreport:warnwindows:record_approved + Approuvés mobile/lightbox/validate.html.twig web/lightbox/validate.html.twig - + lightbox:feedback:sendreport:warnwindows:record_rejected - lightbox:feedback:sendreport:warnwindows:record_rejected + Refusés mobile/lightbox/validate.html.twig web/lightbox/validate.html.twig - + lightbox:feedback:sendreport:warnwindows:record_unexpressed - lightbox:feedback:sendreport:warnwindows:record_unexpressed + Non exprimé mobile/lightbox/validate.html.twig web/lightbox/validate.html.twig - + lightbox:feedback:sendreport:warnwindows:title - lightbox:feedback:sendreport:warnwindows:title + Résumé de la validation mobile/lightbox/validate.html.twig web/lightbox/validate.html.twig - + lightbox:feedback:sendreport:warnwindows:validate - lightbox:feedback:sendreport:warnwindows:validate + Confirmer l'envois du rapport mobile/lightbox/validate.html.twig web/lightbox/validate.html.twig @@ -11730,19 +11730,19 @@ Si vous recevez cet e-mail sans l'avoir sollicité, merci de l'ignorer ou de le Options web/prod/index.html.twig - + prod:workzone:facetstab:tooltips:facet_and_filter - prod:workzone:facetstab:tooltips:facet_and_filter + Ajouter à la recherche web/prod/index.html.twig - + prod:workzone:facetstab:tooltips:facet_except_filter - prod:workzone:facetstab:tooltips:facet_except_filter + Exclure de la recherche web/prod/index.html.twig - + prod:workzone:facetstab:tooltips:remove_facet_filter - prod:workzone:facetstab:tooltips:remove_facet_filter + Supprimer le filtre web/prod/index.html.twig @@ -13399,9 +13399,9 @@ Si vous recevez cet e-mail sans l'avoir sollicité, merci de l'ignorer ou de le Outils vidéos actions/Tools/videoEditor.html.twig - + workzone:feedback:expiration - workzone:feedback:expiration + Validation ouverte jusqu'au prod/WorkZone/Basket.html.twig prod/Tooltip/Basket.html.twig From 9f7fe0671e0e6034322924a385005001bce8d24a Mon Sep 17 00:00:00 2001 From: Nicolas Maillat Date: Tue, 10 Mar 2020 22:18:08 +0000 Subject: [PATCH 02/23] Translated using Weblate (English) Currently translated at 99.4% (2432 of 2446 strings) --- resources/locales/messages.en.xlf | 66 +++++++++++++++---------------- 1 file changed, 33 insertions(+), 33 deletions(-) diff --git a/resources/locales/messages.en.xlf b/resources/locales/messages.en.xlf index a5ab91f476..4cd4147c60 100644 --- a/resources/locales/messages.en.xlf +++ b/resources/locales/messages.en.xlf @@ -1,4 +1,4 @@ - +
@@ -7,8 +7,8 @@
- - + + Form/Login/PhraseaAuthenticationForm.php Form/Configuration/EmailFormType.php @@ -3952,9 +3952,9 @@ admin/statusbit/edit.html.twig admin/statusbit/edit.html.twig
- + Language selection - Language selection + Language selection web/prod/index.html.twig @@ -10059,14 +10059,14 @@ Hidden Facets web/prod/index.html.twig - + index::advance_search: order-by-hits - By Hits + By Hits web/prod/index.html.twig - + index::advance_search: order-by-hits-asc - By Hits asc + By Hits asc web/prod/index.html.twig @@ -10094,9 +10094,9 @@ June classes/module/report.php - + language - Current Language + Language login/include/language-block.html.twig @@ -10136,45 +10136,45 @@ See more baskets web/lightbox/index.html.twig - + lightbox:feedback:sendreport:warnwindows:cancel - lightbox:feedback:sendreport:warnwindows:cancel + Cancel report sending and continue mobile/lightbox/validate.html.twig web/lightbox/validate.html.twig - + lightbox:feedback:sendreport:warnwindows:message - lightbox:feedback:sendreport:warnwindows:message + Your feedback contains mobile/lightbox/validate.html.twig web/lightbox/validate.html.twig - + lightbox:feedback:sendreport:warnwindows:record_approved - lightbox:feedback:sendreport:warnwindows:record_approved + Approved mobile/lightbox/validate.html.twig web/lightbox/validate.html.twig - + lightbox:feedback:sendreport:warnwindows:record_rejected - lightbox:feedback:sendreport:warnwindows:record_rejected + Rejected mobile/lightbox/validate.html.twig web/lightbox/validate.html.twig - + lightbox:feedback:sendreport:warnwindows:record_unexpressed - lightbox:feedback:sendreport:warnwindows:record_unexpressed + Unexpressed mobile/lightbox/validate.html.twig web/lightbox/validate.html.twig - + lightbox:feedback:sendreport:warnwindows:title - lightbox:feedback:sendreport:warnwindows:title + Feedback summary mobile/lightbox/validate.html.twig web/lightbox/validate.html.twig - + lightbox:feedback:sendreport:warnwindows:validate - lightbox:feedback:sendreport:warnwindows:validate + Send my report mobile/lightbox/validate.html.twig web/lightbox/validate.html.twig @@ -11727,19 +11727,19 @@ It is possible to place several search areas Option web/prod/index.html.twig - + prod:workzone:facetstab:tooltips:facet_and_filter - prod:workzone:facetstab:tooltips:facet_and_filter + Filter results with web/prod/index.html.twig - + prod:workzone:facetstab:tooltips:facet_except_filter - prod:workzone:facetstab:tooltips:facet_except_filter + Exclude form results web/prod/index.html.twig - + prod:workzone:facetstab:tooltips:remove_facet_filter - prod:workzone:facetstab:tooltips:remove_facet_filter + Remove filter web/prod/index.html.twig @@ -13396,9 +13396,9 @@ It is possible to place several search areas Thumbnail Tools actions/Tools/videoEditor.html.twig - + workzone:feedback:expiration - workzone:feedback:expiration + Feedback open Until prod/WorkZone/Basket.html.twig prod/Tooltip/Basket.html.twig From f208f9384284fcacea260554a0c858f00f93e569 Mon Sep 17 00:00:00 2001 From: Nicolas Maillat Date: Tue, 10 Mar 2020 22:47:12 +0000 Subject: [PATCH 03/23] Translated using Weblate (English) Currently translated at 99.4% (2432 of 2446 strings) --- resources/locales/messages.en.xlf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/resources/locales/messages.en.xlf b/resources/locales/messages.en.xlf index 4cd4147c60..9b111627c1 100644 --- a/resources/locales/messages.en.xlf +++ b/resources/locales/messages.en.xlf @@ -11729,7 +11729,7 @@ It is possible to place several search areas prod:workzone:facetstab:tooltips:facet_and_filter - Filter results with + Include into results web/prod/index.html.twig From 900d56e09d92ad6d43ec05f4b6fd2e600be18881 Mon Sep 17 00:00:00 2001 From: Nicolas Maillat Date: Tue, 10 Mar 2020 22:45:22 +0000 Subject: [PATCH 04/23] Translated using Weblate (French) Currently translated at 99.3% (2430 of 2446 strings) --- resources/locales/messages.fr.xlf | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/resources/locales/messages.fr.xlf b/resources/locales/messages.fr.xlf index a7ceb2d0b5..a2bd002e0f 100644 --- a/resources/locales/messages.fr.xlf +++ b/resources/locales/messages.fr.xlf @@ -11732,12 +11732,12 @@ Si vous recevez cet e-mail sans l'avoir sollicité, merci de l'ignorer ou de le prod:workzone:facetstab:tooltips:facet_and_filter - Ajouter à la recherche + Inclure les résultats web/prod/index.html.twig - + prod:workzone:facetstab:tooltips:facet_except_filter - Exclure de la recherche + Exclure les résultats web/prod/index.html.twig From c4d33f5f551a252f6c71bc04244dda7f7c4ca821 Mon Sep 17 00:00:00 2001 From: Harrys Ravalomanana Date: Wed, 11 Mar 2020 16:59:44 +0400 Subject: [PATCH 05/23] PHRAS-2978 #comment Workzone basket: fix date format and tooltip display --- lib/classes/phraseadate.php | 53 ++++++++++++++++++++ templates/web/prod/Tooltip/Basket.html.twig | 19 +++---- templates/web/prod/WorkZone/Basket.html.twig | 2 +- 3 files changed, 64 insertions(+), 10 deletions(-) diff --git a/lib/classes/phraseadate.php b/lib/classes/phraseadate.php index c501eadd5d..7d71c3445a 100644 --- a/lib/classes/phraseadate.php +++ b/lib/classes/phraseadate.php @@ -119,6 +119,59 @@ class phraseadate } } + /** + * + * @param DateTime $date + * @return string + */ + public function getLocalDate(DateTime $date = null) + { + if (is_null($date)) { + return null; + } + + $compareTo = new DateTime('now'); + $diff = $compareTo->format('U') - $date->format('U'); + $currentYear = $date->format('Y'); + $dayDiff = floor($diff / 86400); + + if (is_nan($dayDiff) || $dayDiff > 365000) { + return ''; + } + + + + $date_string_Y = new IntlDateFormatter($this->app['locale'], NULL, NULL, NULL, NULL, 'dd MMMM yyyy'); + // $date_string_M = new IntlDateFormatter($this->app['locale'], NULL, NULL, NULL, NULL, 'dd MMMM'); + + if ($dayDiff == 0) { + if ($diff < 60) { + return $this->app->trans('phraseanet::temps:: a l\'instant'); + } elseif ($diff < 120) { + return $this->app->trans('phraseanet::temps:: il y a une minute'); + } elseif ($diff < 3600) { + return $this->app->trans('phraseanet::temps:: il y a %quantity% minutes', ['%quantity%' => floor($diff / 60)]); + } elseif ($diff < 7200) { + return $this->app->trans('phraseanet::temps:: il y a une heure'); + } elseif ($diff < 86400) { + return $this->app->trans('phraseanet::temps:: il y a %quantity% heures', ['%quantity%' => floor($diff / 3600)]); + } + } elseif ($dayDiff == 1) { + return $this->app->trans('phraseanet::temps:: hier'); + + }else { + // current year + /* if (date('Y')== $currentYear) { + return $date_string_M->format($date); + }*/ + //return $date_string_Y->format($date); + } + + + + return $date_string_Y->format($date); + } + /** * * @param DateTime $date diff --git a/templates/web/prod/Tooltip/Basket.html.twig b/templates/web/prod/Tooltip/Basket.html.twig index efd82d2c8f..f35dfa0091 100644 --- a/templates/web/prod/Tooltip/Basket.html.twig +++ b/templates/web/prod/Tooltip/Basket.html.twig @@ -8,21 +8,22 @@ {% block content %}
+ + {% if basket.getValidation() %} + {% set dateExpired = app['date-formatter'].getLocalDate(basket.getValidation().getExpires()) %} + {{ 'workzone:feedback:expiration' | trans }} : {{ dateExpired }} + {% endif %} +
{{ basket.getDescription()|nl2br }}
{% set nb_records = basket.getElements()|length %} - {% set date = app['date-formatter'].getPrettyString(basket.getUpdated()) %} - - {% if basket.getValidation() %} - {% set dateExpired = app['date-formatter'].getPrettyString(basket.getValidation().getExpires()) %} - {{ 'workzone:feedback:expiration' | trans }} : {{ dateExpired }} - {% endif %} - -
+ {% set date = app['date-formatter'].getLocalDate(basket.getUpdated()) %} + +
{% trans with {'%nb_records%' : nb_records} %}%nb_records% records{% endtrans %} - - {{ date }} + - {{ 'prod:workzone:basket:creation-date' | trans }} : {{ date }}

diff --git a/templates/web/prod/WorkZone/Basket.html.twig b/templates/web/prod/WorkZone/Basket.html.twig index 524665ea03..68613370ef 100644 --- a/templates/web/prod/WorkZone/Basket.html.twig +++ b/templates/web/prod/WorkZone/Basket.html.twig @@ -89,7 +89,7 @@ {% endif %}
{% if basket.getValidation() %} - {% set dateExpired = app['date-formatter'].getPrettyString(basket.getValidation().getExpires()) %} + {% set dateExpired = app['date-formatter'].getLocalDate(basket.getValidation().getExpires()) %} {{ 'workzone:feedback:expiration' | trans }} : {{ dateExpired }} {% endif %} From d1df992136447f1511646dcaf7efdb9a0514cbac Mon Sep 17 00:00:00 2001 From: Harrys Ravalomanana Date: Wed, 11 Mar 2020 17:04:20 +0400 Subject: [PATCH 06/23] PHRAS-2978 add translation --- resources/locales/messages.de.xlf | 94 ++++++++++++---------- resources/locales/messages.en.xlf | 120 +++++++++++++++------------- resources/locales/messages.fr.xlf | 120 +++++++++++++++------------- resources/locales/messages.nl.xlf | 94 ++++++++++++---------- resources/locales/validators.de.xlf | 2 +- resources/locales/validators.en.xlf | 2 +- resources/locales/validators.fr.xlf | 2 +- resources/locales/validators.nl.xlf | 2 +- 8 files changed, 238 insertions(+), 198 deletions(-) diff --git a/resources/locales/messages.de.xlf b/resources/locales/messages.de.xlf index 6d303f8141..e098ee4b2f 100644 --- a/resources/locales/messages.de.xlf +++ b/resources/locales/messages.de.xlf @@ -1,6 +1,6 @@ - +
The source node in most cases contains the sample message as written by the developer. If it looks like a dot-delimitted string such as "form.label.firstname", then the developer has not provided a default message. @@ -117,7 +117,7 @@ %basket_length% documents %basket_length% Dokument(e) - mobile/lightbox/validate.html.twig + mobile/lightbox/validate.html.twig web/lightbox/index.html.twig web/lightbox/index.html.twig @@ -193,7 +193,7 @@ %nb_records% records %nb_records% Datensätze prod/Tooltip/Story.html.twig - prod/Tooltip/Basket.html.twig + prod/Tooltip/Basket.html.twig %nb_view% vue @@ -1397,10 +1397,10 @@ Back Zurück mobile/lightbox/basket_element.html.twig - mobile/lightbox/index.html.twig - mobile/lightbox/index.html.twig - mobile/lightbox/index.html.twig - mobile/lightbox/validate.html.twig + mobile/lightbox/index.html.twig + mobile/lightbox/index.html.twig + mobile/lightbox/index.html.twig + mobile/lightbox/validate.html.twig Back to Feedback @@ -2302,7 +2302,7 @@ Deconnexion Abmeldung - mobile/lightbox/index.html.twig + mobile/lightbox/index.html.twig Decouvrez la documentation @@ -2566,8 +2566,7 @@ Do you want to send your report ? Möchten Sie Ihren Bericht senden ? Phrasea/Controller/LightboxController.php - mobile/lightbox/validate.html.twig - mobile/lightbox/validate.html.twig + mobile/lightbox/validate.html.twig Document @@ -3619,7 +3618,7 @@ Hautpseite mobile/lightbox/basket_element.html.twig mobile/lightbox/feed.html.twig - mobile/lightbox/validate.html.twig + mobile/lightbox/validate.html.twig login/include/language-block.html.twig login/layout/base-layout.html.twig @@ -4900,12 +4899,12 @@ Paniers Sammelkörbe - mobile/lightbox/index.html.twig - mobile/lightbox/index.html.twig + mobile/lightbox/index.html.twig + mobile/lightbox/index.html.twig web/account/account.html.twig web/lightbox/index.html.twig lightbox/IE6/validate.html.twig - web/lightbox/validate.html.twig + web/lightbox/validate.html.twig Par %author% @@ -7333,11 +7332,11 @@ Validations Bestätigung - mobile/lightbox/index.html.twig - mobile/lightbox/index.html.twig + mobile/lightbox/index.html.twig + mobile/lightbox/index.html.twig web/lightbox/index.html.twig lightbox/IE6/validate.html.twig - web/lightbox/validate.html.twig + web/lightbox/validate.html.twig Validations received @@ -7408,13 +7407,13 @@ Voici vos paniers Ihre Sammelkörbe - mobile/lightbox/index.html.twig + mobile/lightbox/index.html.twig web/lightbox/index.html.twig Voici vos validations en cours Hier sind Ihre aktuellen Bewertungen - mobile/lightbox/index.html.twig + mobile/lightbox/index.html.twig web/lightbox/index.html.twig @@ -7978,8 +7977,8 @@ a propos Über - mobile/lightbox/index.html.twig - mobile/lightbox/index.html.twig + mobile/lightbox/index.html.twig + mobile/lightbox/index.html.twig action : ajouter au panier @@ -8023,7 +8022,7 @@ web/lightbox/feed.html.twig lightbox/IE6/feed.html.twig lightbox/IE6/validate.html.twig - web/lightbox/validate.html.twig + web/lightbox/validate.html.twig action : outils @@ -9431,7 +9430,7 @@ web/lightbox/feed.html.twig lightbox/IE6/feed.html.twig lightbox/IE6/validate.html.twig - web/lightbox/validate.html.twig + web/lightbox/validate.html.twig boutton::tester @@ -10114,14 +10113,14 @@ lightbox::list lightbox::list - mobile/lightbox/validate.html.twig + mobile/lightbox/validate.html.twig lightbox::recaptitulatif Übersicht - mobile/lightbox/validate.html.twig + mobile/lightbox/validate.html.twig web/lightbox/agreement_box.html.twig - web/lightbox/validate.html.twig + web/lightbox/validate.html.twig lightbox::see_less_basket @@ -10136,44 +10135,44 @@ lightbox:feedback:sendreport:warnwindows:cancel lightbox:feedback:sendreport:warnwindows:cancel - mobile/lightbox/validate.html.twig - web/lightbox/validate.html.twig + mobile/lightbox/validate.html.twig + web/lightbox/validate.html.twig lightbox:feedback:sendreport:warnwindows:message lightbox:feedback:sendreport:warnwindows:message - mobile/lightbox/validate.html.twig - web/lightbox/validate.html.twig + mobile/lightbox/validate.html.twig + web/lightbox/validate.html.twig lightbox:feedback:sendreport:warnwindows:record_approved lightbox:feedback:sendreport:warnwindows:record_approved - mobile/lightbox/validate.html.twig - web/lightbox/validate.html.twig + mobile/lightbox/validate.html.twig + web/lightbox/validate.html.twig lightbox:feedback:sendreport:warnwindows:record_rejected lightbox:feedback:sendreport:warnwindows:record_rejected - mobile/lightbox/validate.html.twig - web/lightbox/validate.html.twig + mobile/lightbox/validate.html.twig + web/lightbox/validate.html.twig lightbox:feedback:sendreport:warnwindows:record_unexpressed lightbox:feedback:sendreport:warnwindows:record_unexpressed - mobile/lightbox/validate.html.twig - web/lightbox/validate.html.twig + mobile/lightbox/validate.html.twig + web/lightbox/validate.html.twig lightbox:feedback:sendreport:warnwindows:title lightbox:feedback:sendreport:warnwindows:title - mobile/lightbox/validate.html.twig + mobile/lightbox/validate.html.twig web/lightbox/validate.html.twig lightbox:feedback:sendreport:warnwindows:validate lightbox:feedback:sendreport:warnwindows:validate - mobile/lightbox/validate.html.twig - web/lightbox/validate.html.twig + mobile/lightbox/validate.html.twig + web/lightbox/validate.html.twig login:: Changer mon adresse email @@ -11059,31 +11058,37 @@ phraseanet::temps:: a l'instant gerade lib/classes/phraseadate.php + lib/classes/phraseadate.php phraseanet::temps:: hier gestern lib/classes/phraseadate.php + lib/classes/phraseadate.php phraseanet::temps:: il y a %quantity% heures vor %quantity% Stunde lib/classes/phraseadate.php + lib/classes/phraseadate.php phraseanet::temps:: il y a %quantity% minutes vor %quantity% Minuten lib/classes/phraseadate.php + lib/classes/phraseadate.php phraseanet::temps:: il y a une heure vor einer Stunde lib/classes/phraseadate.php + lib/classes/phraseadate.php phraseanet::temps:: il y a une minute vor einer Minute lib/classes/phraseadate.php + lib/classes/phraseadate.php phraseanet::time:: a @@ -11716,6 +11721,11 @@ Auswahl entfernen prod/actions/Push.html.twig + + prod:workzone:basket:creation-date + prod:workzone:basket:creation-date + prod/Tooltip/Basket.html.twig + prod:workzone:facetstab:search_and_facets_sort_options prod:workzone:facetstab:search_and_facets_sort_options @@ -13359,8 +13369,8 @@ validation::envoyer mon rapport Meinen Bericht senden - mobile/lightbox/validate.html.twig - mobile/lightbox/validate.html.twig + mobile/lightbox/validate.html.twig + mobile/lightbox/validate.html.twig web/lightbox/basket_options.html.twig web/lightbox/basket_options.html.twig @@ -13394,7 +13404,7 @@ workzone:feedback:expiration workzone:feedback:expiration prod/WorkZone/Basket.html.twig - prod/Tooltip/Basket.html.twig + prod/Tooltip/Basket.html.twig yes diff --git a/resources/locales/messages.en.xlf b/resources/locales/messages.en.xlf index 9b111627c1..4b88c83382 100644 --- a/resources/locales/messages.en.xlf +++ b/resources/locales/messages.en.xlf @@ -1,14 +1,14 @@ - + - +
The source node in most cases contains the sample message as written by the developer. If it looks like a dot-delimitted string such as "form.label.firstname", then the developer has not provided a default message.
- - + + Form/Login/PhraseaAuthenticationForm.php Form/Configuration/EmailFormType.php @@ -117,7 +117,7 @@ %basket_length% documents %basket_length% document(s) - mobile/lightbox/validate.html.twig + mobile/lightbox/validate.html.twig web/lightbox/index.html.twig web/lightbox/index.html.twig @@ -193,7 +193,7 @@ %nb_records% records %nb_records% records prod/Tooltip/Story.html.twig - prod/Tooltip/Basket.html.twig + prod/Tooltip/Basket.html.twig
%nb_view% vue @@ -1398,10 +1398,10 @@ Back Previous mobile/lightbox/basket_element.html.twig - mobile/lightbox/index.html.twig - mobile/lightbox/index.html.twig - mobile/lightbox/index.html.twig - mobile/lightbox/validate.html.twig + mobile/lightbox/index.html.twig + mobile/lightbox/index.html.twig + mobile/lightbox/index.html.twig + mobile/lightbox/validate.html.twig Back to Feedback @@ -2305,7 +2305,7 @@ Deconnexion Logout - mobile/lightbox/index.html.twig + mobile/lightbox/index.html.twig Decouvrez la documentation @@ -2569,8 +2569,7 @@ Do you want to send your report ? Send your Report ? Phrasea/Controller/LightboxController.php - mobile/lightbox/validate.html.twig - mobile/lightbox/validate.html.twig + mobile/lightbox/validate.html.twig Document @@ -3622,7 +3621,7 @@ Home mobile/lightbox/basket_element.html.twig mobile/lightbox/feed.html.twig - mobile/lightbox/validate.html.twig + mobile/lightbox/validate.html.twig login/include/language-block.html.twig login/layout/base-layout.html.twig @@ -4903,12 +4902,12 @@ Paniers Baskets - mobile/lightbox/index.html.twig - mobile/lightbox/index.html.twig + mobile/lightbox/index.html.twig + mobile/lightbox/index.html.twig web/account/account.html.twig web/lightbox/index.html.twig lightbox/IE6/validate.html.twig - web/lightbox/validate.html.twig + web/lightbox/validate.html.twig Par %author% @@ -7336,11 +7335,11 @@ Validations Feedbacks - mobile/lightbox/index.html.twig - mobile/lightbox/index.html.twig + mobile/lightbox/index.html.twig + mobile/lightbox/index.html.twig web/lightbox/index.html.twig lightbox/IE6/validate.html.twig - web/lightbox/validate.html.twig + web/lightbox/validate.html.twig Validations received @@ -7411,13 +7410,13 @@ Voici vos paniers Your Basket(s) - mobile/lightbox/index.html.twig + mobile/lightbox/index.html.twig web/lightbox/index.html.twig Voici vos validations en cours Your feedbacks in progress - mobile/lightbox/index.html.twig + mobile/lightbox/index.html.twig web/lightbox/index.html.twig @@ -7981,8 +7980,8 @@ a propos About - mobile/lightbox/index.html.twig - mobile/lightbox/index.html.twig + mobile/lightbox/index.html.twig + mobile/lightbox/index.html.twig action : ajouter au panier @@ -8026,7 +8025,7 @@ web/lightbox/feed.html.twig lightbox/IE6/feed.html.twig lightbox/IE6/validate.html.twig - web/lightbox/validate.html.twig + web/lightbox/validate.html.twig action : outils @@ -9434,7 +9433,7 @@ web/lightbox/feed.html.twig lightbox/IE6/feed.html.twig lightbox/IE6/validate.html.twig - web/lightbox/validate.html.twig + web/lightbox/validate.html.twig boutton::tester @@ -10117,14 +10116,14 @@ lightbox::list Summary - mobile/lightbox/validate.html.twig + mobile/lightbox/validate.html.twig lightbox::recaptitulatif Summary - mobile/lightbox/validate.html.twig + mobile/lightbox/validate.html.twig web/lightbox/agreement_box.html.twig - web/lightbox/validate.html.twig + web/lightbox/validate.html.twig lightbox::see_less_basket @@ -10136,47 +10135,47 @@ See more baskets web/lightbox/index.html.twig - + lightbox:feedback:sendreport:warnwindows:cancel Cancel report sending and continue - mobile/lightbox/validate.html.twig - web/lightbox/validate.html.twig + mobile/lightbox/validate.html.twig + web/lightbox/validate.html.twig - + lightbox:feedback:sendreport:warnwindows:message Your feedback contains - mobile/lightbox/validate.html.twig - web/lightbox/validate.html.twig + mobile/lightbox/validate.html.twig + web/lightbox/validate.html.twig - + lightbox:feedback:sendreport:warnwindows:record_approved Approved - mobile/lightbox/validate.html.twig - web/lightbox/validate.html.twig + mobile/lightbox/validate.html.twig + web/lightbox/validate.html.twig lightbox:feedback:sendreport:warnwindows:record_rejected Rejected - mobile/lightbox/validate.html.twig - web/lightbox/validate.html.twig + mobile/lightbox/validate.html.twig + web/lightbox/validate.html.twig - + lightbox:feedback:sendreport:warnwindows:record_unexpressed Unexpressed - mobile/lightbox/validate.html.twig - web/lightbox/validate.html.twig + mobile/lightbox/validate.html.twig + web/lightbox/validate.html.twig - + lightbox:feedback:sendreport:warnwindows:title Feedback summary - mobile/lightbox/validate.html.twig + mobile/lightbox/validate.html.twig web/lightbox/validate.html.twig - + lightbox:feedback:sendreport:warnwindows:validate Send my report - mobile/lightbox/validate.html.twig - web/lightbox/validate.html.twig + mobile/lightbox/validate.html.twig + web/lightbox/validate.html.twig login:: Changer mon adresse email @@ -11062,31 +11061,37 @@ phraseanet::temps:: a l'instant Just now lib/classes/phraseadate.php + lib/classes/phraseadate.php phraseanet::temps:: hier Yesterday lib/classes/phraseadate.php + lib/classes/phraseadate.php phraseanet::temps:: il y a %quantity% heures %quantity% hours ago lib/classes/phraseadate.php + lib/classes/phraseadate.php phraseanet::temps:: il y a %quantity% minutes %quantity% minutes ago lib/classes/phraseadate.php + lib/classes/phraseadate.php phraseanet::temps:: il y a une heure One hour ago lib/classes/phraseadate.php + lib/classes/phraseadate.php phraseanet::temps:: il y a une minute One minute ago lib/classes/phraseadate.php + lib/classes/phraseadate.php phraseanet::time:: a @@ -11722,22 +11727,27 @@ It is possible to place several search areas Delete Selection prod/actions/Push.html.twig + + prod:workzone:basket:creation-date + prod:workzone:basket:creation-date + prod/Tooltip/Basket.html.twig + prod:workzone:facetstab:search_and_facets_sort_options Option web/prod/index.html.twig - + prod:workzone:facetstab:tooltips:facet_and_filter Include into results web/prod/index.html.twig - + prod:workzone:facetstab:tooltips:facet_except_filter Exclude form results web/prod/index.html.twig - + prod:workzone:facetstab:tooltips:remove_facet_filter Remove filter web/prod/index.html.twig @@ -13365,8 +13375,8 @@ It is possible to place several search areas validation::envoyer mon rapport Send my feedback - mobile/lightbox/validate.html.twig - mobile/lightbox/validate.html.twig + mobile/lightbox/validate.html.twig + mobile/lightbox/validate.html.twig web/lightbox/basket_options.html.twig web/lightbox/basket_options.html.twig @@ -13396,11 +13406,11 @@ It is possible to place several search areas Thumbnail Tools actions/Tools/videoEditor.html.twig - + workzone:feedback:expiration Feedback open Until prod/WorkZone/Basket.html.twig - prod/Tooltip/Basket.html.twig + prod/Tooltip/Basket.html.twig yes diff --git a/resources/locales/messages.fr.xlf b/resources/locales/messages.fr.xlf index a2bd002e0f..cb2cb96690 100644 --- a/resources/locales/messages.fr.xlf +++ b/resources/locales/messages.fr.xlf @@ -1,14 +1,14 @@ - + - +
The source node in most cases contains the sample message as written by the developer. If it looks like a dot-delimitted string such as "form.label.firstname", then the developer has not provided a default message.
- - + + Form/Login/PhraseaAuthenticationForm.php Form/Configuration/EmailFormType.php @@ -117,7 +117,7 @@ %basket_length% documents %basket_length% documents - mobile/lightbox/validate.html.twig + mobile/lightbox/validate.html.twig web/lightbox/index.html.twig web/lightbox/index.html.twig @@ -193,7 +193,7 @@ %nb_records% records %nb_records% enregistrement(s) prod/Tooltip/Story.html.twig - prod/Tooltip/Basket.html.twig + prod/Tooltip/Basket.html.twig
%nb_view% vue @@ -1397,10 +1397,10 @@ Back Retour mobile/lightbox/basket_element.html.twig - mobile/lightbox/index.html.twig - mobile/lightbox/index.html.twig - mobile/lightbox/index.html.twig - mobile/lightbox/validate.html.twig + mobile/lightbox/index.html.twig + mobile/lightbox/index.html.twig + mobile/lightbox/index.html.twig + mobile/lightbox/validate.html.twig Back to Feedback @@ -2302,7 +2302,7 @@ Deconnexion Déconnexion - mobile/lightbox/index.html.twig + mobile/lightbox/index.html.twig Decouvrez la documentation @@ -2566,8 +2566,7 @@ Do you want to send your report ? Souhaitez-vous envoyer votre rapport ? Phrasea/Controller/LightboxController.php - mobile/lightbox/validate.html.twig - mobile/lightbox/validate.html.twig + mobile/lightbox/validate.html.twig Document @@ -3619,7 +3618,7 @@ Accueil mobile/lightbox/basket_element.html.twig mobile/lightbox/feed.html.twig - mobile/lightbox/validate.html.twig + mobile/lightbox/validate.html.twig login/include/language-block.html.twig login/layout/base-layout.html.twig @@ -4900,12 +4899,12 @@ Paniers Paniers - mobile/lightbox/index.html.twig - mobile/lightbox/index.html.twig + mobile/lightbox/index.html.twig + mobile/lightbox/index.html.twig web/account/account.html.twig web/lightbox/index.html.twig lightbox/IE6/validate.html.twig - web/lightbox/validate.html.twig + web/lightbox/validate.html.twig Par %author% @@ -7335,11 +7334,11 @@ Pour les utilisateurs authentifiés, la demande de validation est également dis Validations Validations - mobile/lightbox/index.html.twig - mobile/lightbox/index.html.twig + mobile/lightbox/index.html.twig + mobile/lightbox/index.html.twig web/lightbox/index.html.twig lightbox/IE6/validate.html.twig - web/lightbox/validate.html.twig + web/lightbox/validate.html.twig Validations received @@ -7410,13 +7409,13 @@ Pour les utilisateurs authentifiés, la demande de validation est également dis Voici vos paniers Paniers disponibles - mobile/lightbox/index.html.twig + mobile/lightbox/index.html.twig web/lightbox/index.html.twig Voici vos validations en cours Demandes de validations en cours - mobile/lightbox/index.html.twig + mobile/lightbox/index.html.twig web/lightbox/index.html.twig @@ -7980,8 +7979,8 @@ Pour les utilisateurs authentifiés, la demande de validation est également dis a propos A propos - mobile/lightbox/index.html.twig - mobile/lightbox/index.html.twig + mobile/lightbox/index.html.twig + mobile/lightbox/index.html.twig action : ajouter au panier @@ -8025,7 +8024,7 @@ Pour les utilisateurs authentifiés, la demande de validation est également dis web/lightbox/feed.html.twig lightbox/IE6/feed.html.twig lightbox/IE6/validate.html.twig - web/lightbox/validate.html.twig + web/lightbox/validate.html.twig action : outils @@ -9434,7 +9433,7 @@ Si vous recevez cet e-mail sans l'avoir sollicité, merci de l'ignorer ou de le web/lightbox/feed.html.twig lightbox/IE6/feed.html.twig lightbox/IE6/validate.html.twig - web/lightbox/validate.html.twig + web/lightbox/validate.html.twig boutton::tester @@ -10117,14 +10116,14 @@ Si vous recevez cet e-mail sans l'avoir sollicité, merci de l'ignorer ou de le lightbox::list Vignette - mobile/lightbox/validate.html.twig + mobile/lightbox/validate.html.twig lightbox::recaptitulatif Récapitulatif - mobile/lightbox/validate.html.twig + mobile/lightbox/validate.html.twig web/lightbox/agreement_box.html.twig - web/lightbox/validate.html.twig + web/lightbox/validate.html.twig lightbox::see_less_basket @@ -10136,47 +10135,47 @@ Si vous recevez cet e-mail sans l'avoir sollicité, merci de l'ignorer ou de le Voir plus de paniers web/lightbox/index.html.twig - + lightbox:feedback:sendreport:warnwindows:cancel Annuler l'envois et continuer la validation - mobile/lightbox/validate.html.twig - web/lightbox/validate.html.twig + mobile/lightbox/validate.html.twig + web/lightbox/validate.html.twig - + lightbox:feedback:sendreport:warnwindows:message Récapitulatif des choix de la validation - mobile/lightbox/validate.html.twig - web/lightbox/validate.html.twig + mobile/lightbox/validate.html.twig + web/lightbox/validate.html.twig - + lightbox:feedback:sendreport:warnwindows:record_approved Approuvés - mobile/lightbox/validate.html.twig - web/lightbox/validate.html.twig + mobile/lightbox/validate.html.twig + web/lightbox/validate.html.twig - + lightbox:feedback:sendreport:warnwindows:record_rejected Refusés - mobile/lightbox/validate.html.twig - web/lightbox/validate.html.twig + mobile/lightbox/validate.html.twig + web/lightbox/validate.html.twig - + lightbox:feedback:sendreport:warnwindows:record_unexpressed Non exprimé - mobile/lightbox/validate.html.twig - web/lightbox/validate.html.twig + mobile/lightbox/validate.html.twig + web/lightbox/validate.html.twig - + lightbox:feedback:sendreport:warnwindows:title Résumé de la validation - mobile/lightbox/validate.html.twig + mobile/lightbox/validate.html.twig web/lightbox/validate.html.twig - + lightbox:feedback:sendreport:warnwindows:validate Confirmer l'envois du rapport - mobile/lightbox/validate.html.twig - web/lightbox/validate.html.twig + mobile/lightbox/validate.html.twig + web/lightbox/validate.html.twig login:: Changer mon adresse email @@ -11062,31 +11061,37 @@ Si vous recevez cet e-mail sans l'avoir sollicité, merci de l'ignorer ou de le phraseanet::temps:: a l'instant A l'instant lib/classes/phraseadate.php + lib/classes/phraseadate.php phraseanet::temps:: hier Hier lib/classes/phraseadate.php + lib/classes/phraseadate.php phraseanet::temps:: il y a %quantity% heures Il y a %quantity% heures lib/classes/phraseadate.php + lib/classes/phraseadate.php phraseanet::temps:: il y a %quantity% minutes Il y a %quantity% minutes lib/classes/phraseadate.php + lib/classes/phraseadate.php phraseanet::temps:: il y a une heure Il y a une heure lib/classes/phraseadate.php + lib/classes/phraseadate.php phraseanet::temps:: il y a une minute Il y a une minute lib/classes/phraseadate.php + lib/classes/phraseadate.php phraseanet::time:: a @@ -11725,12 +11730,17 @@ Si vous recevez cet e-mail sans l'avoir sollicité, merci de l'ignorer ou de le Supprimer la selection prod/actions/Push.html.twig + + prod:workzone:basket:creation-date + prod:workzone:basket:creation-date + prod/Tooltip/Basket.html.twig + prod:workzone:facetstab:search_and_facets_sort_options Options web/prod/index.html.twig - + prod:workzone:facetstab:tooltips:facet_and_filter Inclure les résultats web/prod/index.html.twig @@ -11740,7 +11750,7 @@ Si vous recevez cet e-mail sans l'avoir sollicité, merci de l'ignorer ou de le Exclure les résultats web/prod/index.html.twig - + prod:workzone:facetstab:tooltips:remove_facet_filter Supprimer le filtre web/prod/index.html.twig @@ -13368,8 +13378,8 @@ Si vous recevez cet e-mail sans l'avoir sollicité, merci de l'ignorer ou de le validation::envoyer mon rapport Envoyer mon rapport - mobile/lightbox/validate.html.twig - mobile/lightbox/validate.html.twig + mobile/lightbox/validate.html.twig + mobile/lightbox/validate.html.twig web/lightbox/basket_options.html.twig web/lightbox/basket_options.html.twig @@ -13399,11 +13409,11 @@ Si vous recevez cet e-mail sans l'avoir sollicité, merci de l'ignorer ou de le Outils vidéos actions/Tools/videoEditor.html.twig - + workzone:feedback:expiration Validation ouverte jusqu'au prod/WorkZone/Basket.html.twig - prod/Tooltip/Basket.html.twig + prod/Tooltip/Basket.html.twig yes diff --git a/resources/locales/messages.nl.xlf b/resources/locales/messages.nl.xlf index 933082ae1a..63376e621f 100644 --- a/resources/locales/messages.nl.xlf +++ b/resources/locales/messages.nl.xlf @@ -1,6 +1,6 @@ - +
The source node in most cases contains the sample message as written by the developer. If it looks like a dot-delimitted string such as "form.label.firstname", then the developer has not provided a default message. @@ -121,7 +121,7 @@ %basket_length% documents %basket_length% documenten - mobile/lightbox/validate.html.twig + mobile/lightbox/validate.html.twig web/lightbox/index.html.twig web/lightbox/index.html.twig @@ -197,7 +197,7 @@ %nb_records% records %nb_records% records prod/Tooltip/Story.html.twig - prod/Tooltip/Basket.html.twig + prod/Tooltip/Basket.html.twig %nb_view% vue @@ -1402,10 +1402,10 @@ Back Terug mobile/lightbox/basket_element.html.twig - mobile/lightbox/index.html.twig - mobile/lightbox/index.html.twig - mobile/lightbox/index.html.twig - mobile/lightbox/validate.html.twig + mobile/lightbox/index.html.twig + mobile/lightbox/index.html.twig + mobile/lightbox/index.html.twig + mobile/lightbox/validate.html.twig Back to Feedback @@ -2309,7 +2309,7 @@ Deconnexion Log out - mobile/lightbox/index.html.twig + mobile/lightbox/index.html.twig Decouvrez la documentation @@ -2573,8 +2573,7 @@ Do you want to send your report ? Wenst u uw rapport te sturen ? Phrasea/Controller/LightboxController.php - mobile/lightbox/validate.html.twig - mobile/lightbox/validate.html.twig + mobile/lightbox/validate.html.twig Document @@ -3629,7 +3628,7 @@ Startpagina mobile/lightbox/basket_element.html.twig mobile/lightbox/feed.html.twig - mobile/lightbox/validate.html.twig + mobile/lightbox/validate.html.twig login/include/language-block.html.twig login/layout/base-layout.html.twig @@ -4910,12 +4909,12 @@ Paniers Mandjes - mobile/lightbox/index.html.twig - mobile/lightbox/index.html.twig + mobile/lightbox/index.html.twig + mobile/lightbox/index.html.twig web/account/account.html.twig web/lightbox/index.html.twig lightbox/IE6/validate.html.twig - web/lightbox/validate.html.twig + web/lightbox/validate.html.twig Par %author% @@ -7343,11 +7342,11 @@ Validations Controles - mobile/lightbox/index.html.twig - mobile/lightbox/index.html.twig + mobile/lightbox/index.html.twig + mobile/lightbox/index.html.twig web/lightbox/index.html.twig lightbox/IE6/validate.html.twig - web/lightbox/validate.html.twig + web/lightbox/validate.html.twig Validations received @@ -7418,13 +7417,13 @@ Voici vos paniers Uw mandjes - mobile/lightbox/index.html.twig + mobile/lightbox/index.html.twig web/lightbox/index.html.twig Voici vos validations en cours Een controle in proces - mobile/lightbox/index.html.twig + mobile/lightbox/index.html.twig web/lightbox/index.html.twig @@ -7988,8 +7987,8 @@ a propos Over - mobile/lightbox/index.html.twig - mobile/lightbox/index.html.twig + mobile/lightbox/index.html.twig + mobile/lightbox/index.html.twig action : ajouter au panier @@ -8033,7 +8032,7 @@ web/lightbox/feed.html.twig lightbox/IE6/feed.html.twig lightbox/IE6/validate.html.twig - web/lightbox/validate.html.twig + web/lightbox/validate.html.twig action : outils @@ -9441,7 +9440,7 @@ web/lightbox/feed.html.twig lightbox/IE6/feed.html.twig lightbox/IE6/validate.html.twig - web/lightbox/validate.html.twig + web/lightbox/validate.html.twig boutton::tester @@ -10124,14 +10123,14 @@ lightbox::list lightbox::list - mobile/lightbox/validate.html.twig + mobile/lightbox/validate.html.twig lightbox::recaptitulatif Beknopt - mobile/lightbox/validate.html.twig + mobile/lightbox/validate.html.twig web/lightbox/agreement_box.html.twig - web/lightbox/validate.html.twig + web/lightbox/validate.html.twig lightbox::see_less_basket @@ -10146,44 +10145,44 @@ lightbox:feedback:sendreport:warnwindows:cancel lightbox:feedback:sendreport:warnwindows:cancel - mobile/lightbox/validate.html.twig - web/lightbox/validate.html.twig + mobile/lightbox/validate.html.twig + web/lightbox/validate.html.twig lightbox:feedback:sendreport:warnwindows:message lightbox:feedback:sendreport:warnwindows:message - mobile/lightbox/validate.html.twig - web/lightbox/validate.html.twig + mobile/lightbox/validate.html.twig + web/lightbox/validate.html.twig lightbox:feedback:sendreport:warnwindows:record_approved lightbox:feedback:sendreport:warnwindows:record_approved - mobile/lightbox/validate.html.twig - web/lightbox/validate.html.twig + mobile/lightbox/validate.html.twig + web/lightbox/validate.html.twig lightbox:feedback:sendreport:warnwindows:record_rejected lightbox:feedback:sendreport:warnwindows:record_rejected - mobile/lightbox/validate.html.twig - web/lightbox/validate.html.twig + mobile/lightbox/validate.html.twig + web/lightbox/validate.html.twig lightbox:feedback:sendreport:warnwindows:record_unexpressed lightbox:feedback:sendreport:warnwindows:record_unexpressed - mobile/lightbox/validate.html.twig - web/lightbox/validate.html.twig + mobile/lightbox/validate.html.twig + web/lightbox/validate.html.twig lightbox:feedback:sendreport:warnwindows:title lightbox:feedback:sendreport:warnwindows:title - mobile/lightbox/validate.html.twig + mobile/lightbox/validate.html.twig web/lightbox/validate.html.twig lightbox:feedback:sendreport:warnwindows:validate lightbox:feedback:sendreport:warnwindows:validate - mobile/lightbox/validate.html.twig - web/lightbox/validate.html.twig + mobile/lightbox/validate.html.twig + web/lightbox/validate.html.twig login:: Changer mon adresse email @@ -11069,31 +11068,37 @@ phraseanet::temps:: a l'instant op dit moment lib/classes/phraseadate.php + lib/classes/phraseadate.php phraseanet::temps:: hier gisteren lib/classes/phraseadate.php + lib/classes/phraseadate.php phraseanet::temps:: il y a %quantity% heures phraseanet::temps:: il y a %quantity% heures lib/classes/phraseadate.php + lib/classes/phraseadate.php phraseanet::temps:: il y a %quantity% minutes phraseanet::temps:: il y a %quantity% minutes lib/classes/phraseadate.php + lib/classes/phraseadate.php phraseanet::temps:: il y a une heure een uur geleden lib/classes/phraseadate.php + lib/classes/phraseadate.php phraseanet::temps:: il y a une minute één minuut geleden lib/classes/phraseadate.php + lib/classes/phraseadate.php phraseanet::time:: a @@ -11726,6 +11731,11 @@ prod:push: delete selection prod/actions/Push.html.twig + + prod:workzone:basket:creation-date + prod:workzone:basket:creation-date + prod/Tooltip/Basket.html.twig + prod:workzone:facetstab:search_and_facets_sort_options prod:workzone:facetstab:search_and_facets_sort_options @@ -13369,8 +13379,8 @@ validation::envoyer mon rapport stuur mijn rapport - mobile/lightbox/validate.html.twig - mobile/lightbox/validate.html.twig + mobile/lightbox/validate.html.twig + mobile/lightbox/validate.html.twig web/lightbox/basket_options.html.twig web/lightbox/basket_options.html.twig @@ -13404,7 +13414,7 @@ workzone:feedback:expiration workzone:feedback:expiration prod/WorkZone/Basket.html.twig - prod/Tooltip/Basket.html.twig + prod/Tooltip/Basket.html.twig yes diff --git a/resources/locales/validators.de.xlf b/resources/locales/validators.de.xlf index 33596e5930..4070c8f51a 100644 --- a/resources/locales/validators.de.xlf +++ b/resources/locales/validators.de.xlf @@ -1,6 +1,6 @@ - +
The source node in most cases contains the sample message as written by the developer. If it looks like a dot-delimitted string such as "form.label.firstname", then the developer has not provided a default message. diff --git a/resources/locales/validators.en.xlf b/resources/locales/validators.en.xlf index c0a4fb87ee..8d7f9e6487 100644 --- a/resources/locales/validators.en.xlf +++ b/resources/locales/validators.en.xlf @@ -1,6 +1,6 @@ - +
The source node in most cases contains the sample message as written by the developer. If it looks like a dot-delimitted string such as "form.label.firstname", then the developer has not provided a default message. diff --git a/resources/locales/validators.fr.xlf b/resources/locales/validators.fr.xlf index 2dc9b0935b..30dd5d546a 100644 --- a/resources/locales/validators.fr.xlf +++ b/resources/locales/validators.fr.xlf @@ -1,6 +1,6 @@ - +
The source node in most cases contains the sample message as written by the developer. If it looks like a dot-delimitted string such as "form.label.firstname", then the developer has not provided a default message. diff --git a/resources/locales/validators.nl.xlf b/resources/locales/validators.nl.xlf index 722071bff5..515d9f7788 100644 --- a/resources/locales/validators.nl.xlf +++ b/resources/locales/validators.nl.xlf @@ -1,6 +1,6 @@ - +
The source node in most cases contains the sample message as written by the developer. If it looks like a dot-delimitted string such as "form.label.firstname", then the developer has not provided a default message. From 8ee7b04c842bda1c40ed5a0f6d839ca6807c3bbc Mon Sep 17 00:00:00 2001 From: Arthur de Moulins Date: Thu, 12 Mar 2020 12:26:10 +0100 Subject: [PATCH 07/23] add dev utils to builder image --- Dockerfile | 18 +++++- README.md | 14 +++++ docker-compose.override.yml | 16 +++++- .../.oh-my-zsh/themes/alchemy.zsh-theme | 7 +++ docker/builder/root/bootstrap/.zshrc | 56 +++++++++++++++++++ .../root/bootstrap/entrypoint.d/ohmyzsh.sh | 5 ++ .../root/bootstrap/entrypoint.d/zshrc.sh | 7 +++ docker/builder/root/bootstrap/entrypoint.sh | 17 ++++++ 8 files changed, 134 insertions(+), 6 deletions(-) create mode 100644 docker/builder/root/bootstrap/.oh-my-zsh/themes/alchemy.zsh-theme create mode 100644 docker/builder/root/bootstrap/.zshrc create mode 100644 docker/builder/root/bootstrap/entrypoint.d/ohmyzsh.sh create mode 100644 docker/builder/root/bootstrap/entrypoint.d/zshrc.sh create mode 100755 docker/builder/root/bootstrap/entrypoint.sh diff --git a/Dockerfile b/Dockerfile index e900d1aea4..cbb260a711 100644 --- a/Dockerfile +++ b/Dockerfile @@ -82,8 +82,17 @@ RUN curl -sL https://deb.nodesource.com/setup_10.x | bash - \ && apt-get install -y --no-install-recommends \ nodejs \ yarn \ + nano \ + vim \ + iputils-ping \ + zsh \ + telnet \ + autoconf \ + libtool \ + pkg-config \ && apt-get clean \ && rm -rf /var/lib/apt/lists \ + && git clone https://github.com/robbyrussell/oh-my-zsh.git /bootstrap/.oh-my-zsh \ && mkdir -p /var/alchemy/Phraseanet \ && chown -R app:app /var/alchemy @@ -99,10 +108,13 @@ RUN composer install --prefer-dist --no-dev --no-progress --no-suggest --classma COPY --chown=app . . -RUN rm -rf docker/phraseanet/root \ - && make install +RUN make install -ADD docker/phraseanet/ / +ADD ./docker/builder/root / + +ENTRYPOINT ["/bootstrap/entrypoint.sh"] + +CMD [] ######################################################################### # Phraseanet web application image diff --git a/README.md b/README.md index 4d9509d731..e5865b0c6b 100644 --- a/README.md +++ b/README.md @@ -105,6 +105,20 @@ This can be made easily from the builder container: > Please note that the phraseanet image does not contain nor `composer` neither `node` tools. This allow the final image to be slim. > If you need to use dev tools, ensure you are running the `builder` image! +### Developer shell + +You can also obtain a shell access in builder container: + +```bash +docker-compose run --rm builder /bin/bash +# or +docker-compose run --rm builder /bin/zsh +``` + +In this container you will have the same libraries (PHP, Node, composer, ...) that are used to build images. +Also you have utils for development like telnet, ping, ssh, git, ... +Your $HOME/.ssh directory is also mounted to builder's home with your ssh agent. + ### Using Xdebug Xdebug is enabled by default with the `docker-compose.override.yml` diff --git a/docker-compose.override.yml b/docker-compose.override.yml index c9b846aa84..48729416e4 100644 --- a/docker-compose.override.yml +++ b/docker-compose.override.yml @@ -10,25 +10,29 @@ services: gateway: volumes: + - ../:/var/alchemy - .:/var/alchemy/Phraseanet - ./docker/nginx/root/entrypoint.sh:/entrypoint.sh - ${PHRASEANET_DATA_DIR}:/var/alchemy/Phraseanet/datas:rw - ${PHRASEANET_THUMBNAILS_DIR}:/var/alchemy/Phraseanet/www/thumbnails:rw - ${PHRASEANET_TMP_DIR}:/var/alchemy/Phraseanet/tmp:rw - - builder: build: context: . target: builder - command: exit 0 + stdin_open: true + tty: true volumes: + - ../:/var/alchemy - .:/var/alchemy/Phraseanet - ${PHRASEANET_CONFIG_DIR}:/var/alchemy/Phraseanet/config:rw - ${PHRASEANET_LOGS_DIR}:/var/alchemy/Phraseanet/logs:rw - ${PHRASEANET_DATA_DIR}:/var/alchemy/Phraseanet/datas:rw - ${PHRASEANET_THUMBNAILS_DIR}:/var/alchemy/Phraseanet/www/thumbnails:rw + - ${SSH_AUTH_SOCK}:/ssh-auth-sock + - ${HOME}/.ssh:/home/app/.ssh + - dev_vol:/home/app phraseanet: environment: @@ -36,6 +40,7 @@ services: - XDEBUG_CONFIG=remote_host=${XDEBUG_REMOTE_HOST} idekey=${IDE_KEY} remote_enable=1 profiler_enable=${XDEBUG_PROFILER_ENABLED} profiler_output_dir=/var/alchemy/Phraseanet/cache/profiler - PHP_IDE_CONFIG volumes: + - ../:/var/alchemy - .:/var/alchemy/Phraseanet - ${PHRASEANET_CONFIG_DIR}:/var/alchemy/Phraseanet/config:rw - ${PHRASEANET_LOGS_DIR}:/var/alchemy/Phraseanet/logs:rw @@ -45,6 +50,7 @@ services: worker: volumes: + - ../:/var/alchemy - .:/var/alchemy/Phraseanet - ${PHRASEANET_CONFIG_DIR}:/var/alchemy/Phraseanet/config:rw - ${PHRASEANET_LOGS_DIR}:/var/alchemy/Phraseanet/logs:rw @@ -77,3 +83,7 @@ networks: ipam: config: - subnet: $PHRASEANET_SUBNET_IPS + +volumes: + dev_vol: + driver: local diff --git a/docker/builder/root/bootstrap/.oh-my-zsh/themes/alchemy.zsh-theme b/docker/builder/root/bootstrap/.oh-my-zsh/themes/alchemy.zsh-theme new file mode 100644 index 0000000000..807e8b6ef7 --- /dev/null +++ b/docker/builder/root/bootstrap/.oh-my-zsh/themes/alchemy.zsh-theme @@ -0,0 +1,7 @@ +local ret_status="%(?:%{$fg_bold[green]%}➜ :%{$fg_bold[red]%}➜ %s)" +PROMPT='%* %{$fg_bold[green]%}%n%{$fg[grey]%}@%m%{$fg_bold[green]%}%u ${ret_status}%{$fg_bold[green]%}%p %{$fg[cyan]%}%c %{$fg_bold[blue]%}$(git_prompt_info)%{$fg_bold[blue]%} % %{$reset_color%}' + +ZSH_THEME_GIT_PROMPT_PREFIX="[%{$fg[red]%}" +ZSH_THEME_GIT_PROMPT_SUFFIX="%{$reset_color%}" +ZSH_THEME_GIT_PROMPT_DIRTY="%{$fg[blue]%}] %{$fg[yellow]%}✗%{$reset_color%}" +ZSH_THEME_GIT_PROMPT_CLEAN="%{$fg[blue]%}]" diff --git a/docker/builder/root/bootstrap/.zshrc b/docker/builder/root/bootstrap/.zshrc new file mode 100644 index 0000000000..ae18e5a4ef --- /dev/null +++ b/docker/builder/root/bootstrap/.zshrc @@ -0,0 +1,56 @@ +export LC_ALL=en_US.UTF-8 +export LANG=en_US.UTF-8 + +export ZSH=$HOME/.oh-my-zsh + +ZSH_THEME="alchemy" + +# Uncomment the following line to use case-sensitive completion. +# CASE_SENSITIVE="true" + +# Uncomment the following line to use hyphen-insensitive completion. Case +# sensitive completion must be off. _ and - will be interchangeable. +# HYPHEN_INSENSITIVE="true" + +# Uncomment the following line to disable bi-weekly auto-update checks. +# DISABLE_AUTO_UPDATE="true" + +# Uncomment the following line to change how often to auto-update (in days). +# export UPDATE_ZSH_DAYS=13 + +# Uncomment the following line to disable colors in ls. +# DISABLE_LS_COLORS="true" + +# Uncomment the following line to disable auto-setting terminal title. +# DISABLE_AUTO_TITLE="true" + +# Uncomment the following line to enable command auto-correction. +# ENABLE_CORRECTION="true" + +# Uncomment the following line to display red dots whilst waiting for completion. +# COMPLETION_WAITING_DOTS="true" + +# Uncomment the following line if you want to disable marking untracked files +# under VCS as dirty. This makes repository status check for large repositories +# much, much faster. +# DISABLE_UNTRACKED_FILES_DIRTY="true" + +# Uncomment the following line if you want to change the command execution time +# stamp shown in the history command output. +# The optional three formats: "mm/dd/yyyy"|"dd.mm.yyyy"|"yyyy-mm-dd" +# HIST_STAMPS="mm/dd/yyyy" + +# Would you like to use another custom folder than $ZSH/custom? +# ZSH_CUSTOM=/path/to/new-custom-folder + +# Which plugins would you like to load? (plugins can be found in ~/.oh-my-zsh/plugins/*) +# Custom plugins may be added to ~/.oh-my-zsh/custom/plugins/ +# Example format: plugins=(rails git textmate ruby lighthouse) +# Add wisely, as too many plugins slow down shell startup. +plugins=(git symfony2) + +# User configuration + +source $ZSH/oh-my-zsh.sh + +alias ll='ls -alFh' diff --git a/docker/builder/root/bootstrap/entrypoint.d/ohmyzsh.sh b/docker/builder/root/bootstrap/entrypoint.d/ohmyzsh.sh new file mode 100644 index 0000000000..aded04c7c7 --- /dev/null +++ b/docker/builder/root/bootstrap/entrypoint.d/ohmyzsh.sh @@ -0,0 +1,5 @@ +#!/bin/bash + +if [ ! -d "$HOME/.oh-my-zsh" ]; then + cp -r "/bootstrap/.oh-my-zsh" "$HOME/.oh-my-zsh" +fi diff --git a/docker/builder/root/bootstrap/entrypoint.d/zshrc.sh b/docker/builder/root/bootstrap/entrypoint.d/zshrc.sh new file mode 100644 index 0000000000..71d47ed475 --- /dev/null +++ b/docker/builder/root/bootstrap/entrypoint.d/zshrc.sh @@ -0,0 +1,7 @@ +#!/bin/bash + +ZSH_FILE="$HOME/.zshrc" + +if [ ! -f "$HOME/.zshrc" ]; then + cp "/bootstrap/.zshrc" "$HOME/.zshrc" +fi diff --git a/docker/builder/root/bootstrap/entrypoint.sh b/docker/builder/root/bootstrap/entrypoint.sh new file mode 100755 index 0000000000..c8bff0d1bb --- /dev/null +++ b/docker/builder/root/bootstrap/entrypoint.sh @@ -0,0 +1,17 @@ +#!/bin/bash + +if [ -d /bootstrap/entrypoint.d ]; then + for i in /bootstrap/entrypoint.d/*.sh; do + if [ -r $i ]; then + . $i + fi + done + unset i +fi + +if [ ! -t 1 ] ; then + echo "No tty available." + exit 0 +fi + +exec "$@" From 924515d6d03cc06ae3cc3846ac8f019dd84696d4 Mon Sep 17 00:00:00 2001 From: Arthur de Moulins Date: Thu, 12 Mar 2020 12:44:50 +0100 Subject: [PATCH 08/23] set PHP date.timezone to UTC --- docker/phraseanet/php.ini.sample | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docker/phraseanet/php.ini.sample b/docker/phraseanet/php.ini.sample index 774389b614..7f5fc97430 100644 --- a/docker/phraseanet/php.ini.sample +++ b/docker/phraseanet/php.ini.sample @@ -935,7 +935,7 @@ cli_server.color = On [Date] ; Defines the default timezone used by the date functions ; http://php.net/date.timezone -date.timezone = Europe/Paris +date.timezone = UTC ; http://php.net/date.default-latitude ;date.default_latitude = 31.7667 From 38b15ab4640de0f59d3adc4f703873605d917a72 Mon Sep 17 00:00:00 2001 From: Arthur de Moulins Date: Thu, 12 Mar 2020 15:37:25 +0100 Subject: [PATCH 09/23] fix worker command passed to entrypoint --- docker/phraseanet/worker/entrypoint.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docker/phraseanet/worker/entrypoint.sh b/docker/phraseanet/worker/entrypoint.sh index d4d773c829..763a07d8ba 100755 --- a/docker/phraseanet/worker/entrypoint.sh +++ b/docker/phraseanet/worker/entrypoint.sh @@ -15,4 +15,4 @@ if [ ${XDEBUG_ENABLED} == "1" ]; then docker-php-ext-enable xdebug fi -runuser -u app "$@" +runuser -u app -- $@ From c13232a001ba38cb0452549c6031c47875293d87 Mon Sep 17 00:00:00 2001 From: Arthur de Moulins Date: Thu, 12 Mar 2020 15:49:52 +0100 Subject: [PATCH 10/23] add kibana for dev --- docker-compose.override.yml | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/docker-compose.override.yml b/docker-compose.override.yml index 48729416e4..d926216316 100644 --- a/docker-compose.override.yml +++ b/docker-compose.override.yml @@ -78,6 +78,11 @@ services: volumes: - ${PHRASEANET_ELASTICSEARCH_DIR}:/usr/share/elasticsearch/data:rw + kibana: + image: kibana:4.6.6 + ports: + - 5601:5601 + networks: default: ipam: From 19e6ba689c773116f35fa1d3048a646f3e359025 Mon Sep 17 00:00:00 2001 From: Arthur de Moulins Date: Thu, 12 Mar 2020 19:24:41 +0100 Subject: [PATCH 11/23] add install-plugin script, add project name env --- .env | 5 ++++ Dockerfile | 16 ++++++++++ README.md | 22 ++++++++++++++ docker-compose.override.yml | 5 ++++ docker-compose.yml | 11 +++++++ docker/phraseanet/install-plugins | 50 +++++++++++++++++++++++++++++++ 6 files changed, 109 insertions(+) create mode 100755 docker/phraseanet/install-plugins diff --git a/.env b/.env index 2fb773529c..e89eeec0aa 100644 --- a/.env +++ b/.env @@ -1,3 +1,4 @@ +PHRASEANET_PROJECT_NAME=Phraseanet # Registry from where you pull Docker images PHRASEANET_DOCKER_REGISTRY=local # Tag of the Docker images @@ -70,3 +71,7 @@ PHRASEANET_DB_DIR=./volumes/db PHRASEANET_ELASTICSEARCH_DIR=./volumes/elasticsearch PHRASEANET_THUMBNAILS_DIR=./www/thumbnails PHRASEANET_TMP_DIR=./tmp + +# Plugin support +PHRASEANET_PLUGINS= +PHRASEANET_SSH_PRIVATE_KEY= diff --git a/Dockerfile b/Dockerfile index cbb260a711..4b2614a357 100644 --- a/Dockerfile +++ b/Dockerfile @@ -86,6 +86,7 @@ RUN curl -sL https://deb.nodesource.com/setup_10.x | bash - \ vim \ iputils-ping \ zsh \ + ssh \ telnet \ autoconf \ libtool \ @@ -112,6 +113,21 @@ RUN make install ADD ./docker/builder/root / +# SSH Private repo +ARG SSH_PRIVATE_KEY +ARG PHRASEANET_PLUGINS + +RUN ( \ + test ! -z "${SSH_PRIVATE_KEY}" \ + && mkdir -p ~/.ssh \ + && echo "${SSH_PRIVATE_KEY}" > ~/.ssh/id_rsa \ + # make sure github domain.com is accepted + && ssh-keyscan -H github.com >> ~/.ssh/known_hosts \ + && chmod 600 ~/.ssh/id_rsa \ + ) || echo "Skip SSH key" + +RUN ./docker/phraseanet/install-plugins + ENTRYPOINT ["/bootstrap/entrypoint.sh"] CMD [] diff --git a/README.md b/README.md index e5865b0c6b..a277761d1d 100644 --- a/README.md +++ b/README.md @@ -146,6 +146,28 @@ XDEBUG_REMOTE_HOST=host.docker.internal > Don't forget to recreate your container (`docker-compose up -d phraseanet`) +### Build images with plugins + +Plugins can be installed during build if you set the `PHRASEANET_PLUGINS` env var as follows: + +```bash +PHRASEANET_PLUGINS="git@github.com:alchemy-fr/Phraseanet-plugin-webgallery.git" + +# You can optionally precise the branch to install +# If not precised, the main branch will be pulled +PHRASEANET_PLUGINS="git@github.com:alchemy-fr/Phraseanet-plugin-webgallery.git(custom-branch)" + +# Plugins are separated by spaces +PHRASEANET_PLUGINS="git@github.com:foo/bar.git(branch-1) git@github.com:baz/42.git" +``` + +If you install private plugins, make sure you export your SSH private key content in order to allow docker build to access the GIT repository: +```bash +export PHRASEANET_SSH_PRIVATE_KEY=$(cat ~/.ssh/id_rsa) +# or if your private key is protected by a passphrase: +export PHRASEANET_SSH_PRIVATE_KEY=$(openssl rsa -in ~/.ssh/id_rsa -out /tmp/id_rsa_raw && cat /tmp/id_rsa_raw && rm /tmp/id_rsa_raw) +``` + # With Vagrant (deprecated) ## Development : diff --git a/docker-compose.override.yml b/docker-compose.override.yml index d926216316..7e2b3dd2b8 100644 --- a/docker-compose.override.yml +++ b/docker-compose.override.yml @@ -21,6 +21,9 @@ services: build: context: . target: builder + args: + - SSH_PRIVATE_KEY=${PHRASEANET_SSH_PRIVATE_KEY} + - PHRASEANET_PLUGINS=${PHRASEANET_PLUGINS} stdin_open: true tty: true volumes: @@ -33,6 +36,8 @@ services: - ${SSH_AUTH_SOCK}:/ssh-auth-sock - ${HOME}/.ssh:/home/app/.ssh - dev_vol:/home/app + environment: + - PHRASEANET_PROJECT_NAME phraseanet: environment: diff --git a/docker-compose.yml b/docker-compose.yml index 4c6f435ee7..e0bd547fbb 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -5,6 +5,9 @@ services: build: context: . target: phraseanet-nginx + args: + - SSH_PRIVATE_KEY=${PHRASEANET_SSH_PRIVATE_KEY} + - PHRASEANET_PLUGINS=${PHRASEANET_PLUGINS} image: $PHRASEANET_DOCKER_REGISTRY/phraseanet-nginx:$PHRASEANET_DOCKER_TAG restart: on-failure volumes: @@ -21,6 +24,9 @@ services: build: context: . target: phraseanet-fpm + args: + - SSH_PRIVATE_KEY=${PHRASEANET_SSH_PRIVATE_KEY} + - PHRASEANET_PLUGINS=${PHRASEANET_PLUGINS} image: $PHRASEANET_DOCKER_REGISTRY/phraseanet-fpm:$PHRASEANET_DOCKER_TAG restart: on-failure depends_on: @@ -29,6 +35,7 @@ services: - rabbitmq - elasticsearch environment: + - PHRASEANET_PROJECT_NAME - MAX_BODY_SIZE - MAX_INPUT_VARS - OPCACHE_ENABLED @@ -57,6 +64,9 @@ services: build: context: . target: phraseanet-worker + args: + - SSH_PRIVATE_KEY=${PHRASEANET_SSH_PRIVATE_KEY} + - PHRASEANET_PLUGINS=${PHRASEANET_PLUGINS} image: $PHRASEANET_DOCKER_REGISTRY/phraseanet-worker:$PHRASEANET_DOCKER_TAG restart: on-failure depends_on: @@ -65,6 +75,7 @@ services: - rabbitmq - elasticsearch environment: + - PHRASEANET_PROJECT_NAME - MAX_BODY_SIZE - MAX_INPUT_VARS - OPCACHE_ENABLED diff --git a/docker/phraseanet/install-plugins b/docker/phraseanet/install-plugins new file mode 100755 index 0000000000..d4a5cb01c8 --- /dev/null +++ b/docker/phraseanet/install-plugins @@ -0,0 +1,50 @@ +#!/usr/bin/env php + $plugin) { + $plugin = trim($plugin); + $repo = $plugin; + $branch = 'master'; + if (1 === preg_match('#^(.+)\(([^)]+)\)$#', $plugin, $matches)) { + $repo = $matches[1]; + $branch = $matches[2]; + } + + $pluginTmpName = 'plugin' . $key; + $pluginPath = './plugin' . $key; + if (is_dir($pluginPath)) { + echo shell_exec(sprintf('rm -rf %s', $pluginPath)); + } + + echo sprintf("Installing %s (branch: %s)\n", $repo, $branch); + runCommand(sprintf('git clone --single-branch --branch %s %s %s', $branch, $repo, $pluginPath)); + + runCommand(sprintf('bin/setup plugins:add %s', $pluginPath)); + + echo shell_exec(sprintf('rm -rf %s', $pluginPath)); +} From 83c44f6c6039afaa9c49f0e3c3a49ba8d9a03144 Mon Sep 17 00:00:00 2001 From: Arthur de Moulins Date: Fri, 13 Mar 2020 14:08:35 +0100 Subject: [PATCH 12/23] change dc alias into a function so it could be dynamic --- README.md | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index a277761d1d..f394ace118 100644 --- a/README.md +++ b/README.md @@ -56,10 +56,17 @@ export PHRASEANET_APP_PORT=8082 It may be easier to deal with a local file to manage our env variables. -You can add your `env.local` at the root of this project and define a command alias in your `~/.bashrc`: +You can add your `env.local` at the root of this project and define a command function in your `~/.bashrc`: ```bash -alias dc="env $(cat env.local | grep -v '#' | tr '\n' ' ') docker-compose" +# ~/.bashrc or ~/.zshrc +function dc() { + if [ -f env.local ]; then + env $(cat env.local | grep -v '#' | tr '\n' ' ') docker-compose $@ + else + docker-compose $@ + fi +} ``` ### Running the application From 0d7569439b96d61c7469cd110a1d9b4832de1b4b Mon Sep 17 00:00:00 2001 From: Arthur de Moulins Date: Fri, 13 Mar 2020 14:08:59 +0100 Subject: [PATCH 13/23] upgrade yarn.lock --- yarn.lock | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/yarn.lock b/yarn.lock index 98775d43a0..e3c6d2c73c 100644 --- a/yarn.lock +++ b/yarn.lock @@ -5305,10 +5305,14 @@ jquery-simplecolorpicker@^0.3.1: resolved "https://registry.yarnpkg.com/jquery-simplecolorpicker/-/jquery-simplecolorpicker-0.3.1.tgz#4f6befd380ab05470f585d5482e5180556e460eb" integrity sha1-T2vv04CrBUcPWF1UguUYBVbkYOs= -"jquery-treeview@git+https://github.com/alchemy-fr/jquery-treeview.git", "jquery-treeview@git+https://github.com/alchemy-fr/jquery-treeview.git#1e9e5a49d2875b878801e904cd08c2d25e85af1e": +"jquery-treeview@git+https://github.com/alchemy-fr/jquery-treeview.git#1e9e5a49d2875b878801e904cd08c2d25e85af1e": + version "1.4.2" + resolved "git+https://github.com/alchemy-fr/jquery-treeview.git#1e9e5a49d2875b878801e904cd08c2d25e85af1e" + +"jquery-treeview@https://github.com/alchemy-fr/jquery-treeview.git": version "1.4.2" uid "1e9e5a49d2875b878801e904cd08c2d25e85af1e" - resolved "git+https://github.com/alchemy-fr/jquery-treeview.git#1e9e5a49d2875b878801e904cd08c2d25e85af1e" + resolved "https://github.com/alchemy-fr/jquery-treeview.git#1e9e5a49d2875b878801e904cd08c2d25e85af1e" jquery-ui-datepicker-with-i18n@^1.10.4: version "1.10.4" From 947bc734acf74df43ec81c7c8d0aa97884d47047 Mon Sep 17 00:00:00 2001 From: Harrys Ravalomanana Date: Fri, 13 Mar 2020 17:14:37 +0400 Subject: [PATCH 14/23] PHRAS-2978 #comment fix date format and add datepicker fo modify feedback validation deadline #time 4h --- lib/classes/phraseadate.php | 56 +------ resources/locales/messages.de.xlf | 168 ++++++++++++++++--- resources/locales/messages.en.xlf | 168 ++++++++++++++++--- resources/locales/messages.fr.xlf | 168 ++++++++++++++++--- resources/locales/messages.nl.xlf | 168 ++++++++++++++++--- resources/locales/validators.de.xlf | 2 +- resources/locales/validators.en.xlf | 2 +- resources/locales/validators.fr.xlf | 2 +- resources/locales/validators.nl.xlf | 2 +- templates/web/prod/Tooltip/Basket.html.twig | 4 +- templates/web/prod/WorkZone/Basket.html.twig | 42 ++++- 11 files changed, 611 insertions(+), 171 deletions(-) diff --git a/lib/classes/phraseadate.php b/lib/classes/phraseadate.php index 7d71c3445a..6acca8b75f 100644 --- a/lib/classes/phraseadate.php +++ b/lib/classes/phraseadate.php @@ -90,13 +90,14 @@ class phraseadate $compareTo = new DateTime('now'); $diff = $compareTo->format('U') - $date->format('U'); + $yearDiff = $compareTo->format('Y') - $date->format('Y'); $dayDiff = floor($diff / 86400); if (is_nan($dayDiff) || $dayDiff > 365000) { return ''; } - $date_string = $this->formatDate($date, $this->app['locale'], 'DAY_MONTH'); + $date_string = $this->formatDate($date, $this->app['locale'], ($yearDiff != 0) ? 'DAY_MONTH_YEAR' : 'DAY_MONTH'); if ($dayDiff == 0) { if ($diff < 60) { @@ -119,59 +120,6 @@ class phraseadate } } - /** - * - * @param DateTime $date - * @return string - */ - public function getLocalDate(DateTime $date = null) - { - if (is_null($date)) { - return null; - } - - $compareTo = new DateTime('now'); - $diff = $compareTo->format('U') - $date->format('U'); - $currentYear = $date->format('Y'); - $dayDiff = floor($diff / 86400); - - if (is_nan($dayDiff) || $dayDiff > 365000) { - return ''; - } - - - - $date_string_Y = new IntlDateFormatter($this->app['locale'], NULL, NULL, NULL, NULL, 'dd MMMM yyyy'); - // $date_string_M = new IntlDateFormatter($this->app['locale'], NULL, NULL, NULL, NULL, 'dd MMMM'); - - if ($dayDiff == 0) { - if ($diff < 60) { - return $this->app->trans('phraseanet::temps:: a l\'instant'); - } elseif ($diff < 120) { - return $this->app->trans('phraseanet::temps:: il y a une minute'); - } elseif ($diff < 3600) { - return $this->app->trans('phraseanet::temps:: il y a %quantity% minutes', ['%quantity%' => floor($diff / 60)]); - } elseif ($diff < 7200) { - return $this->app->trans('phraseanet::temps:: il y a une heure'); - } elseif ($diff < 86400) { - return $this->app->trans('phraseanet::temps:: il y a %quantity% heures', ['%quantity%' => floor($diff / 3600)]); - } - } elseif ($dayDiff == 1) { - return $this->app->trans('phraseanet::temps:: hier'); - - }else { - // current year - /* if (date('Y')== $currentYear) { - return $date_string_M->format($date); - }*/ - //return $date_string_Y->format($date); - } - - - - return $date_string_Y->format($date); - } - /** * * @param DateTime $date diff --git a/resources/locales/messages.de.xlf b/resources/locales/messages.de.xlf index e098ee4b2f..9ca23ed2d7 100644 --- a/resources/locales/messages.de.xlf +++ b/resources/locales/messages.de.xlf @@ -1,6 +1,6 @@ - +
The source node in most cases contains the sample message as written by the developer. If it looks like a dot-delimitted string such as "form.label.firstname", then the developer has not provided a default message. @@ -1689,7 +1689,7 @@ Certaines donnees du panier ont change Einige Daten des Sammelkorbs wurden verändert - prod/WorkZone/Basket.html.twig + prod/WorkZone/Basket.html.twig Certaines donnees du reportage ont change @@ -3213,7 +3213,7 @@ Controller/Prod/LanguageController.php prod/WorkZone/Story.html.twig prod/WorkZone/Macros.html.twig - prod/WorkZone/Basket.html.twig + prod/WorkZone/Basket.html.twig web/prod/toolbar.html.twig @@ -7997,14 +7997,14 @@ action : collection Verschieben prod/WorkZone/Story.html.twig - prod/WorkZone/Basket.html.twig + prod/WorkZone/Basket.html.twig web/prod/toolbar.html.twig action : editer Bearbeiten prod/WorkZone/Story.html.twig - prod/WorkZone/Basket.html.twig + prod/WorkZone/Basket.html.twig web/prod/toolbar.html.twig prod/preview/caption.html.twig @@ -8012,7 +8012,7 @@ action : exporter Exportieren prod/WorkZone/Story.html.twig - prod/WorkZone/Basket.html.twig + prod/WorkZone/Basket.html.twig web/prod/toolbar.html.twig prod/results/record.html.twig prod/results/record.html.twig @@ -8028,14 +8028,14 @@ action : outils Werkzeuge prod/WorkZone/Story.html.twig - prod/WorkZone/Basket.html.twig + prod/WorkZone/Basket.html.twig web/prod/toolbar.html.twig action : print Drucken prod/WorkZone/Story.html.twig - prod/WorkZone/Basket.html.twig + prod/WorkZone/Basket.html.twig web/prod/toolbar.html.twig prod/results/record.html.twig prod/results/record.html.twig @@ -8046,7 +8046,7 @@ action : publier Veröffentlichen prod/WorkZone/Story.html.twig - prod/WorkZone/Basket.html.twig + prod/WorkZone/Basket.html.twig web/prod/toolbar.html.twig web/prod/index.html.twig @@ -8054,14 +8054,14 @@ action : push Push prod/WorkZone/Story.html.twig - prod/WorkZone/Basket.html.twig + prod/WorkZone/Basket.html.twig web/prod/toolbar.html.twig action : status Eigenschaften prod/WorkZone/Story.html.twig - prod/WorkZone/Basket.html.twig + prod/WorkZone/Basket.html.twig web/prod/toolbar.html.twig @@ -9137,13 +9137,13 @@ basket:action:delete record form basket basket:action:delete record form basket prod/WorkZone/Story.html.twig - prod/WorkZone/Basket.html.twig + prod/WorkZone/Basket.html.twig basket:action:delete record form database basket:action:delete record form database prod/WorkZone/Story.html.twig - prod/WorkZone/Basket.html.twig + prod/WorkZone/Basket.html.twig be notified when a document is placed in quarantine @@ -11057,38 +11057,32 @@ phraseanet::temps:: a l'instant gerade - lib/classes/phraseadate.php - lib/classes/phraseadate.php + lib/classes/phraseadate.php phraseanet::temps:: hier gestern - lib/classes/phraseadate.php - lib/classes/phraseadate.php + lib/classes/phraseadate.php phraseanet::temps:: il y a %quantity% heures vor %quantity% Stunde - lib/classes/phraseadate.php - lib/classes/phraseadate.php + lib/classes/phraseadate.php phraseanet::temps:: il y a %quantity% minutes vor %quantity% Minuten - lib/classes/phraseadate.php - lib/classes/phraseadate.php + lib/classes/phraseadate.php phraseanet::temps:: il y a une heure vor einer Stunde - lib/classes/phraseadate.php - lib/classes/phraseadate.php + lib/classes/phraseadate.php phraseanet::temps:: il y a une minute vor einer Minute - lib/classes/phraseadate.php - lib/classes/phraseadate.php + lib/classes/phraseadate.php phraseanet::time:: a @@ -11832,7 +11826,7 @@ Aktualisieren prod/WorkZone/Story.html.twig prod/WorkZone/Macros.html.twig - prod/WorkZone/Basket.html.twig + prod/WorkZone/Basket.html.twig prod/results/feeds.html.twig prod/results/feeds.html.twig @@ -13400,12 +13394,132 @@ Video Werkzeug actions/Tools/videoEditor.html.twig + + workzone:datepicker:april + workzone:datepicker:april + prod/WorkZone/Basket.html.twig + + + workzone:datepicker:august + workzone:datepicker:august + prod/WorkZone/Basket.html.twig + + + workzone:datepicker:closeText + workzone:datepicker:closeText + prod/WorkZone/Basket.html.twig + + + workzone:datepicker:currentText + workzone:datepicker:currentText + prod/WorkZone/Basket.html.twig + + + workzone:datepicker:december + workzone:datepicker:december + prod/WorkZone/Basket.html.twig + + + workzone:datepicker:february + workzone:datepicker:february + prod/WorkZone/Basket.html.twig + + + workzone:datepicker:friday + workzone:datepicker:friday + prod/WorkZone/Basket.html.twig + + + workzone:datepicker:january + workzone:datepicker:january + prod/WorkZone/Basket.html.twig + + + workzone:datepicker:july + workzone:datepicker:july + prod/WorkZone/Basket.html.twig + + + workzone:datepicker:june + workzone:datepicker:june + prod/WorkZone/Basket.html.twig + + + workzone:datepicker:march + workzone:datepicker:march + prod/WorkZone/Basket.html.twig + + + workzone:datepicker:may + workzone:datepicker:may + prod/WorkZone/Basket.html.twig + + + workzone:datepicker:monday + workzone:datepicker:monday + prod/WorkZone/Basket.html.twig + + + workzone:datepicker:nextText + workzone:datepicker:nextText + prod/WorkZone/Basket.html.twig + + + workzone:datepicker:november + workzone:datepicker:november + prod/WorkZone/Basket.html.twig + + + workzone:datepicker:october + workzone:datepicker:october + prod/WorkZone/Basket.html.twig + + + workzone:datepicker:prevText + workzone:datepicker:prevText + prod/WorkZone/Basket.html.twig + + + workzone:datepicker:saturday + workzone:datepicker:saturday + prod/WorkZone/Basket.html.twig + + + workzone:datepicker:september + workzone:datepicker:september + prod/WorkZone/Basket.html.twig + + + workzone:datepicker:sunday + workzone:datepicker:sunday + prod/WorkZone/Basket.html.twig + + + workzone:datepicker:thursday + workzone:datepicker:thursday + prod/WorkZone/Basket.html.twig + + + workzone:datepicker:tuesday + workzone:datepicker:tuesday + prod/WorkZone/Basket.html.twig + + + workzone:datepicker:wednesday + workzone:datepicker:wednesday + prod/WorkZone/Basket.html.twig + workzone:feedback:expiration workzone:feedback:expiration - prod/WorkZone/Basket.html.twig + prod/WorkZone/Basket.html.twig prod/Tooltip/Basket.html.twig + + workzone:feedback:update + workzone:feedback:update + prod/WorkZone/Basket.html.twig + yes Ja diff --git a/resources/locales/messages.en.xlf b/resources/locales/messages.en.xlf index 4b88c83382..95c032bf88 100644 --- a/resources/locales/messages.en.xlf +++ b/resources/locales/messages.en.xlf @@ -1,6 +1,6 @@ - +
The source node in most cases contains the sample message as written by the developer. If it looks like a dot-delimitted string such as "form.label.firstname", then the developer has not provided a default message. @@ -1690,7 +1690,7 @@ Certaines donnees du panier ont change This basket has been updated - prod/WorkZone/Basket.html.twig + prod/WorkZone/Basket.html.twig Certaines donnees du reportage ont change @@ -3216,7 +3216,7 @@ Controller/Prod/LanguageController.php prod/WorkZone/Story.html.twig prod/WorkZone/Macros.html.twig - prod/WorkZone/Basket.html.twig + prod/WorkZone/Basket.html.twig web/prod/toolbar.html.twig @@ -8000,14 +8000,14 @@ action : collection Move prod/WorkZone/Story.html.twig - prod/WorkZone/Basket.html.twig + prod/WorkZone/Basket.html.twig web/prod/toolbar.html.twig action : editer Edit prod/WorkZone/Story.html.twig - prod/WorkZone/Basket.html.twig + prod/WorkZone/Basket.html.twig web/prod/toolbar.html.twig prod/preview/caption.html.twig @@ -8015,7 +8015,7 @@ action : exporter Export prod/WorkZone/Story.html.twig - prod/WorkZone/Basket.html.twig + prod/WorkZone/Basket.html.twig web/prod/toolbar.html.twig prod/results/record.html.twig prod/results/record.html.twig @@ -8031,14 +8031,14 @@ action : outils Tools prod/WorkZone/Story.html.twig - prod/WorkZone/Basket.html.twig + prod/WorkZone/Basket.html.twig web/prod/toolbar.html.twig action : print Print prod/WorkZone/Story.html.twig - prod/WorkZone/Basket.html.twig + prod/WorkZone/Basket.html.twig web/prod/toolbar.html.twig prod/results/record.html.twig prod/results/record.html.twig @@ -8049,7 +8049,7 @@ action : publier Publish prod/WorkZone/Story.html.twig - prod/WorkZone/Basket.html.twig + prod/WorkZone/Basket.html.twig web/prod/toolbar.html.twig web/prod/index.html.twig @@ -8057,14 +8057,14 @@ action : push Push prod/WorkZone/Story.html.twig - prod/WorkZone/Basket.html.twig + prod/WorkZone/Basket.html.twig web/prod/toolbar.html.twig action : status Properties prod/WorkZone/Story.html.twig - prod/WorkZone/Basket.html.twig + prod/WorkZone/Basket.html.twig web/prod/toolbar.html.twig @@ -9140,13 +9140,13 @@ basket:action:delete record form basket Delete record from basket prod/WorkZone/Story.html.twig - prod/WorkZone/Basket.html.twig + prod/WorkZone/Basket.html.twig basket:action:delete record form database Delete record from database prod/WorkZone/Story.html.twig - prod/WorkZone/Basket.html.twig + prod/WorkZone/Basket.html.twig be notified when a document is placed in quarantine @@ -11060,38 +11060,32 @@ phraseanet::temps:: a l'instant Just now - lib/classes/phraseadate.php - lib/classes/phraseadate.php + lib/classes/phraseadate.php phraseanet::temps:: hier Yesterday - lib/classes/phraseadate.php - lib/classes/phraseadate.php + lib/classes/phraseadate.php phraseanet::temps:: il y a %quantity% heures %quantity% hours ago - lib/classes/phraseadate.php - lib/classes/phraseadate.php + lib/classes/phraseadate.php phraseanet::temps:: il y a %quantity% minutes %quantity% minutes ago - lib/classes/phraseadate.php - lib/classes/phraseadate.php + lib/classes/phraseadate.php phraseanet::temps:: il y a une heure One hour ago - lib/classes/phraseadate.php - lib/classes/phraseadate.php + lib/classes/phraseadate.php phraseanet::temps:: il y a une minute One minute ago - lib/classes/phraseadate.php - lib/classes/phraseadate.php + lib/classes/phraseadate.php phraseanet::time:: a @@ -11838,7 +11832,7 @@ It is possible to place several search areas Refresh prod/WorkZone/Story.html.twig prod/WorkZone/Macros.html.twig - prod/WorkZone/Basket.html.twig + prod/WorkZone/Basket.html.twig prod/results/feeds.html.twig prod/results/feeds.html.twig @@ -13406,12 +13400,132 @@ It is possible to place several search areas Thumbnail Tools actions/Tools/videoEditor.html.twig + + workzone:datepicker:april + workzone:datepicker:april + prod/WorkZone/Basket.html.twig + + + workzone:datepicker:august + workzone:datepicker:august + prod/WorkZone/Basket.html.twig + + + workzone:datepicker:closeText + workzone:datepicker:closeText + prod/WorkZone/Basket.html.twig + + + workzone:datepicker:currentText + workzone:datepicker:currentText + prod/WorkZone/Basket.html.twig + + + workzone:datepicker:december + workzone:datepicker:december + prod/WorkZone/Basket.html.twig + + + workzone:datepicker:february + workzone:datepicker:february + prod/WorkZone/Basket.html.twig + + + workzone:datepicker:friday + workzone:datepicker:friday + prod/WorkZone/Basket.html.twig + + + workzone:datepicker:january + workzone:datepicker:january + prod/WorkZone/Basket.html.twig + + + workzone:datepicker:july + workzone:datepicker:july + prod/WorkZone/Basket.html.twig + + + workzone:datepicker:june + workzone:datepicker:june + prod/WorkZone/Basket.html.twig + + + workzone:datepicker:march + workzone:datepicker:march + prod/WorkZone/Basket.html.twig + + + workzone:datepicker:may + workzone:datepicker:may + prod/WorkZone/Basket.html.twig + + + workzone:datepicker:monday + workzone:datepicker:monday + prod/WorkZone/Basket.html.twig + + + workzone:datepicker:nextText + workzone:datepicker:nextText + prod/WorkZone/Basket.html.twig + + + workzone:datepicker:november + workzone:datepicker:november + prod/WorkZone/Basket.html.twig + + + workzone:datepicker:october + workzone:datepicker:october + prod/WorkZone/Basket.html.twig + + + workzone:datepicker:prevText + workzone:datepicker:prevText + prod/WorkZone/Basket.html.twig + + + workzone:datepicker:saturday + workzone:datepicker:saturday + prod/WorkZone/Basket.html.twig + + + workzone:datepicker:september + workzone:datepicker:september + prod/WorkZone/Basket.html.twig + + + workzone:datepicker:sunday + workzone:datepicker:sunday + prod/WorkZone/Basket.html.twig + + + workzone:datepicker:thursday + workzone:datepicker:thursday + prod/WorkZone/Basket.html.twig + + + workzone:datepicker:tuesday + workzone:datepicker:tuesday + prod/WorkZone/Basket.html.twig + + + workzone:datepicker:wednesday + workzone:datepicker:wednesday + prod/WorkZone/Basket.html.twig + workzone:feedback:expiration Feedback open Until - prod/WorkZone/Basket.html.twig + prod/WorkZone/Basket.html.twig prod/Tooltip/Basket.html.twig + + workzone:feedback:update + workzone:feedback:update + prod/WorkZone/Basket.html.twig + yes Yes diff --git a/resources/locales/messages.fr.xlf b/resources/locales/messages.fr.xlf index cb2cb96690..1b43accabe 100644 --- a/resources/locales/messages.fr.xlf +++ b/resources/locales/messages.fr.xlf @@ -1,6 +1,6 @@ - +
The source node in most cases contains the sample message as written by the developer. If it looks like a dot-delimitted string such as "form.label.firstname", then the developer has not provided a default message. @@ -1689,7 +1689,7 @@ Certaines donnees du panier ont change Certaines données du panier ont changé - prod/WorkZone/Basket.html.twig + prod/WorkZone/Basket.html.twig Certaines donnees du reportage ont change @@ -3213,7 +3213,7 @@ Controller/Prod/LanguageController.php prod/WorkZone/Story.html.twig prod/WorkZone/Macros.html.twig - prod/WorkZone/Basket.html.twig + prod/WorkZone/Basket.html.twig web/prod/toolbar.html.twig @@ -7999,14 +7999,14 @@ Pour les utilisateurs authentifiés, la demande de validation est également dis action : collection Déplacer prod/WorkZone/Story.html.twig - prod/WorkZone/Basket.html.twig + prod/WorkZone/Basket.html.twig web/prod/toolbar.html.twig action : editer Editer prod/WorkZone/Story.html.twig - prod/WorkZone/Basket.html.twig + prod/WorkZone/Basket.html.twig web/prod/toolbar.html.twig prod/preview/caption.html.twig @@ -8014,7 +8014,7 @@ Pour les utilisateurs authentifiés, la demande de validation est également dis action : exporter Exporter prod/WorkZone/Story.html.twig - prod/WorkZone/Basket.html.twig + prod/WorkZone/Basket.html.twig web/prod/toolbar.html.twig prod/results/record.html.twig prod/results/record.html.twig @@ -8030,14 +8030,14 @@ Pour les utilisateurs authentifiés, la demande de validation est également dis action : outils Outils prod/WorkZone/Story.html.twig - prod/WorkZone/Basket.html.twig + prod/WorkZone/Basket.html.twig web/prod/toolbar.html.twig action : print Imprimer prod/WorkZone/Story.html.twig - prod/WorkZone/Basket.html.twig + prod/WorkZone/Basket.html.twig web/prod/toolbar.html.twig prod/results/record.html.twig prod/results/record.html.twig @@ -8048,7 +8048,7 @@ Pour les utilisateurs authentifiés, la demande de validation est également dis action : publier Publier prod/WorkZone/Story.html.twig - prod/WorkZone/Basket.html.twig + prod/WorkZone/Basket.html.twig web/prod/toolbar.html.twig web/prod/index.html.twig @@ -8056,14 +8056,14 @@ Pour les utilisateurs authentifiés, la demande de validation est également dis action : push Push prod/WorkZone/Story.html.twig - prod/WorkZone/Basket.html.twig + prod/WorkZone/Basket.html.twig web/prod/toolbar.html.twig action : status Propriétés prod/WorkZone/Story.html.twig - prod/WorkZone/Basket.html.twig + prod/WorkZone/Basket.html.twig web/prod/toolbar.html.twig @@ -9140,13 +9140,13 @@ Si vous recevez cet e-mail sans l'avoir sollicité, merci de l'ignorer ou de le basket:action:delete record form basket Retirer du panier prod/WorkZone/Story.html.twig - prod/WorkZone/Basket.html.twig + prod/WorkZone/Basket.html.twig basket:action:delete record form database Supprimer l'enregistrement de la base prod/WorkZone/Story.html.twig - prod/WorkZone/Basket.html.twig + prod/WorkZone/Basket.html.twig be notified when a document is placed in quarantine @@ -11060,38 +11060,32 @@ Si vous recevez cet e-mail sans l'avoir sollicité, merci de l'ignorer ou de le phraseanet::temps:: a l'instant A l'instant - lib/classes/phraseadate.php - lib/classes/phraseadate.php + lib/classes/phraseadate.php phraseanet::temps:: hier Hier - lib/classes/phraseadate.php - lib/classes/phraseadate.php + lib/classes/phraseadate.php phraseanet::temps:: il y a %quantity% heures Il y a %quantity% heures - lib/classes/phraseadate.php - lib/classes/phraseadate.php + lib/classes/phraseadate.php phraseanet::temps:: il y a %quantity% minutes Il y a %quantity% minutes - lib/classes/phraseadate.php - lib/classes/phraseadate.php + lib/classes/phraseadate.php phraseanet::temps:: il y a une heure Il y a une heure - lib/classes/phraseadate.php - lib/classes/phraseadate.php + lib/classes/phraseadate.php phraseanet::temps:: il y a une minute Il y a une minute - lib/classes/phraseadate.php - lib/classes/phraseadate.php + lib/classes/phraseadate.php phraseanet::time:: a @@ -11841,7 +11835,7 @@ Si vous recevez cet e-mail sans l'avoir sollicité, merci de l'ignorer ou de le Rafraîchir prod/WorkZone/Story.html.twig prod/WorkZone/Macros.html.twig - prod/WorkZone/Basket.html.twig + prod/WorkZone/Basket.html.twig prod/results/feeds.html.twig prod/results/feeds.html.twig @@ -13409,12 +13403,132 @@ Si vous recevez cet e-mail sans l'avoir sollicité, merci de l'ignorer ou de le Outils vidéos actions/Tools/videoEditor.html.twig + + workzone:datepicker:april + workzone:datepicker:april + prod/WorkZone/Basket.html.twig + + + workzone:datepicker:august + workzone:datepicker:august + prod/WorkZone/Basket.html.twig + + + workzone:datepicker:closeText + workzone:datepicker:closeText + prod/WorkZone/Basket.html.twig + + + workzone:datepicker:currentText + workzone:datepicker:currentText + prod/WorkZone/Basket.html.twig + + + workzone:datepicker:december + workzone:datepicker:december + prod/WorkZone/Basket.html.twig + + + workzone:datepicker:february + workzone:datepicker:february + prod/WorkZone/Basket.html.twig + + + workzone:datepicker:friday + workzone:datepicker:friday + prod/WorkZone/Basket.html.twig + + + workzone:datepicker:january + workzone:datepicker:january + prod/WorkZone/Basket.html.twig + + + workzone:datepicker:july + workzone:datepicker:july + prod/WorkZone/Basket.html.twig + + + workzone:datepicker:june + workzone:datepicker:june + prod/WorkZone/Basket.html.twig + + + workzone:datepicker:march + workzone:datepicker:march + prod/WorkZone/Basket.html.twig + + + workzone:datepicker:may + workzone:datepicker:may + prod/WorkZone/Basket.html.twig + + + workzone:datepicker:monday + workzone:datepicker:monday + prod/WorkZone/Basket.html.twig + + + workzone:datepicker:nextText + workzone:datepicker:nextText + prod/WorkZone/Basket.html.twig + + + workzone:datepicker:november + workzone:datepicker:november + prod/WorkZone/Basket.html.twig + + + workzone:datepicker:october + workzone:datepicker:october + prod/WorkZone/Basket.html.twig + + + workzone:datepicker:prevText + workzone:datepicker:prevText + prod/WorkZone/Basket.html.twig + + + workzone:datepicker:saturday + workzone:datepicker:saturday + prod/WorkZone/Basket.html.twig + + + workzone:datepicker:september + workzone:datepicker:september + prod/WorkZone/Basket.html.twig + + + workzone:datepicker:sunday + workzone:datepicker:sunday + prod/WorkZone/Basket.html.twig + + + workzone:datepicker:thursday + workzone:datepicker:thursday + prod/WorkZone/Basket.html.twig + + + workzone:datepicker:tuesday + workzone:datepicker:tuesday + prod/WorkZone/Basket.html.twig + + + workzone:datepicker:wednesday + workzone:datepicker:wednesday + prod/WorkZone/Basket.html.twig + workzone:feedback:expiration Validation ouverte jusqu'au - prod/WorkZone/Basket.html.twig + prod/WorkZone/Basket.html.twig prod/Tooltip/Basket.html.twig + + workzone:feedback:update + workzone:feedback:update + prod/WorkZone/Basket.html.twig + yes Oui diff --git a/resources/locales/messages.nl.xlf b/resources/locales/messages.nl.xlf index 63376e621f..c61524de6a 100644 --- a/resources/locales/messages.nl.xlf +++ b/resources/locales/messages.nl.xlf @@ -1,6 +1,6 @@ - +
The source node in most cases contains the sample message as written by the developer. If it looks like a dot-delimitted string such as "form.label.firstname", then the developer has not provided a default message. @@ -1694,7 +1694,7 @@ Certaines donnees du panier ont change Sommige gegevens in het mandje zijn veranderd - prod/WorkZone/Basket.html.twig + prod/WorkZone/Basket.html.twig Certaines donnees du reportage ont change @@ -3223,7 +3223,7 @@ Controller/Prod/LanguageController.php prod/WorkZone/Story.html.twig prod/WorkZone/Macros.html.twig - prod/WorkZone/Basket.html.twig + prod/WorkZone/Basket.html.twig web/prod/toolbar.html.twig @@ -8007,14 +8007,14 @@ action : collection Collectie prod/WorkZone/Story.html.twig - prod/WorkZone/Basket.html.twig + prod/WorkZone/Basket.html.twig web/prod/toolbar.html.twig action : editer Wijzigen prod/WorkZone/Story.html.twig - prod/WorkZone/Basket.html.twig + prod/WorkZone/Basket.html.twig web/prod/toolbar.html.twig prod/preview/caption.html.twig @@ -8022,7 +8022,7 @@ action : exporter Exporteer prod/WorkZone/Story.html.twig - prod/WorkZone/Basket.html.twig + prod/WorkZone/Basket.html.twig web/prod/toolbar.html.twig prod/results/record.html.twig prod/results/record.html.twig @@ -8038,14 +8038,14 @@ action : outils Gereedschappen prod/WorkZone/Story.html.twig - prod/WorkZone/Basket.html.twig + prod/WorkZone/Basket.html.twig web/prod/toolbar.html.twig action : print Print prod/WorkZone/Story.html.twig - prod/WorkZone/Basket.html.twig + prod/WorkZone/Basket.html.twig web/prod/toolbar.html.twig prod/results/record.html.twig prod/results/record.html.twig @@ -8056,7 +8056,7 @@ action : publier Publiceren prod/WorkZone/Story.html.twig - prod/WorkZone/Basket.html.twig + prod/WorkZone/Basket.html.twig web/prod/toolbar.html.twig web/prod/index.html.twig @@ -8064,14 +8064,14 @@ action : push Push prod/WorkZone/Story.html.twig - prod/WorkZone/Basket.html.twig + prod/WorkZone/Basket.html.twig web/prod/toolbar.html.twig action : status Status prod/WorkZone/Story.html.twig - prod/WorkZone/Basket.html.twig + prod/WorkZone/Basket.html.twig web/prod/toolbar.html.twig @@ -9147,13 +9147,13 @@ basket:action:delete record form basket basket:action:delete record form basket prod/WorkZone/Story.html.twig - prod/WorkZone/Basket.html.twig + prod/WorkZone/Basket.html.twig basket:action:delete record form database basket:action:delete record form database prod/WorkZone/Story.html.twig - prod/WorkZone/Basket.html.twig + prod/WorkZone/Basket.html.twig be notified when a document is placed in quarantine @@ -11067,38 +11067,32 @@ phraseanet::temps:: a l'instant op dit moment - lib/classes/phraseadate.php - lib/classes/phraseadate.php + lib/classes/phraseadate.php phraseanet::temps:: hier gisteren - lib/classes/phraseadate.php - lib/classes/phraseadate.php + lib/classes/phraseadate.php phraseanet::temps:: il y a %quantity% heures phraseanet::temps:: il y a %quantity% heures - lib/classes/phraseadate.php - lib/classes/phraseadate.php + lib/classes/phraseadate.php phraseanet::temps:: il y a %quantity% minutes phraseanet::temps:: il y a %quantity% minutes - lib/classes/phraseadate.php - lib/classes/phraseadate.php + lib/classes/phraseadate.php phraseanet::temps:: il y a une heure een uur geleden - lib/classes/phraseadate.php - lib/classes/phraseadate.php + lib/classes/phraseadate.php phraseanet::temps:: il y a une minute één minuut geleden - lib/classes/phraseadate.php - lib/classes/phraseadate.php + lib/classes/phraseadate.php phraseanet::time:: a @@ -11842,7 +11836,7 @@ vernieuwen prod/WorkZone/Story.html.twig prod/WorkZone/Macros.html.twig - prod/WorkZone/Basket.html.twig + prod/WorkZone/Basket.html.twig prod/results/feeds.html.twig prod/results/feeds.html.twig @@ -13410,12 +13404,132 @@ video tool actions/Tools/videoEditor.html.twig + + workzone:datepicker:april + workzone:datepicker:april + prod/WorkZone/Basket.html.twig + + + workzone:datepicker:august + workzone:datepicker:august + prod/WorkZone/Basket.html.twig + + + workzone:datepicker:closeText + workzone:datepicker:closeText + prod/WorkZone/Basket.html.twig + + + workzone:datepicker:currentText + workzone:datepicker:currentText + prod/WorkZone/Basket.html.twig + + + workzone:datepicker:december + workzone:datepicker:december + prod/WorkZone/Basket.html.twig + + + workzone:datepicker:february + workzone:datepicker:february + prod/WorkZone/Basket.html.twig + + + workzone:datepicker:friday + workzone:datepicker:friday + prod/WorkZone/Basket.html.twig + + + workzone:datepicker:january + workzone:datepicker:january + prod/WorkZone/Basket.html.twig + + + workzone:datepicker:july + workzone:datepicker:july + prod/WorkZone/Basket.html.twig + + + workzone:datepicker:june + workzone:datepicker:june + prod/WorkZone/Basket.html.twig + + + workzone:datepicker:march + workzone:datepicker:march + prod/WorkZone/Basket.html.twig + + + workzone:datepicker:may + workzone:datepicker:may + prod/WorkZone/Basket.html.twig + + + workzone:datepicker:monday + workzone:datepicker:monday + prod/WorkZone/Basket.html.twig + + + workzone:datepicker:nextText + workzone:datepicker:nextText + prod/WorkZone/Basket.html.twig + + + workzone:datepicker:november + workzone:datepicker:november + prod/WorkZone/Basket.html.twig + + + workzone:datepicker:october + workzone:datepicker:october + prod/WorkZone/Basket.html.twig + + + workzone:datepicker:prevText + workzone:datepicker:prevText + prod/WorkZone/Basket.html.twig + + + workzone:datepicker:saturday + workzone:datepicker:saturday + prod/WorkZone/Basket.html.twig + + + workzone:datepicker:september + workzone:datepicker:september + prod/WorkZone/Basket.html.twig + + + workzone:datepicker:sunday + workzone:datepicker:sunday + prod/WorkZone/Basket.html.twig + + + workzone:datepicker:thursday + workzone:datepicker:thursday + prod/WorkZone/Basket.html.twig + + + workzone:datepicker:tuesday + workzone:datepicker:tuesday + prod/WorkZone/Basket.html.twig + + + workzone:datepicker:wednesday + workzone:datepicker:wednesday + prod/WorkZone/Basket.html.twig + workzone:feedback:expiration workzone:feedback:expiration - prod/WorkZone/Basket.html.twig + prod/WorkZone/Basket.html.twig prod/Tooltip/Basket.html.twig + + workzone:feedback:update + workzone:feedback:update + prod/WorkZone/Basket.html.twig + yes Ja diff --git a/resources/locales/validators.de.xlf b/resources/locales/validators.de.xlf index 4070c8f51a..b7398ca514 100644 --- a/resources/locales/validators.de.xlf +++ b/resources/locales/validators.de.xlf @@ -1,6 +1,6 @@ - +
The source node in most cases contains the sample message as written by the developer. If it looks like a dot-delimitted string such as "form.label.firstname", then the developer has not provided a default message. diff --git a/resources/locales/validators.en.xlf b/resources/locales/validators.en.xlf index 8d7f9e6487..f8d0a54e1d 100644 --- a/resources/locales/validators.en.xlf +++ b/resources/locales/validators.en.xlf @@ -1,6 +1,6 @@ - +
The source node in most cases contains the sample message as written by the developer. If it looks like a dot-delimitted string such as "form.label.firstname", then the developer has not provided a default message. diff --git a/resources/locales/validators.fr.xlf b/resources/locales/validators.fr.xlf index 30dd5d546a..6f350ddd76 100644 --- a/resources/locales/validators.fr.xlf +++ b/resources/locales/validators.fr.xlf @@ -1,6 +1,6 @@ - +
The source node in most cases contains the sample message as written by the developer. If it looks like a dot-delimitted string such as "form.label.firstname", then the developer has not provided a default message. diff --git a/resources/locales/validators.nl.xlf b/resources/locales/validators.nl.xlf index 515d9f7788..2218c1ff00 100644 --- a/resources/locales/validators.nl.xlf +++ b/resources/locales/validators.nl.xlf @@ -1,6 +1,6 @@ - +
The source node in most cases contains the sample message as written by the developer. If it looks like a dot-delimitted string such as "form.label.firstname", then the developer has not provided a default message. diff --git a/templates/web/prod/Tooltip/Basket.html.twig b/templates/web/prod/Tooltip/Basket.html.twig index f35dfa0091..9905cbf49c 100644 --- a/templates/web/prod/Tooltip/Basket.html.twig +++ b/templates/web/prod/Tooltip/Basket.html.twig @@ -10,7 +10,7 @@
{% if basket.getValidation() %} - {% set dateExpired = app['date-formatter'].getLocalDate(basket.getValidation().getExpires()) %} + {% set dateExpired = app['date-formatter'].getPrettyString(basket.getValidation().getExpires()) %} {{ 'workzone:feedback:expiration' | trans }} : {{ dateExpired }} {% endif %} @@ -19,7 +19,7 @@
{% set nb_records = basket.getElements()|length %} - {% set date = app['date-formatter'].getLocalDate(basket.getUpdated()) %} + {% set date = app['date-formatter'].getPrettyString(basket.getUpdated()) %}
{% trans with {'%nb_records%' : nb_records} %}%nb_records% records{% endtrans %} diff --git a/templates/web/prod/WorkZone/Basket.html.twig b/templates/web/prod/WorkZone/Basket.html.twig index 68613370ef..ef0f52f980 100644 --- a/templates/web/prod/WorkZone/Basket.html.twig +++ b/templates/web/prod/WorkZone/Basket.html.twig @@ -1,3 +1,4 @@ +
@@ -89,9 +90,17 @@ {% endif %}
{% if basket.getValidation() %} - {% set dateExpired = app['date-formatter'].getLocalDate(basket.getValidation().getExpires()) %} - - {{ 'workzone:feedback:expiration' | trans }} : {{ dateExpired }} + {% set dateExpired = app['date-formatter'].getPrettyString(basket.getValidation().getExpires()) %} +
+ {{ 'workzone:feedback:expiration' | trans }} : +
+ + + + +
+
+ {% endif %}
{% set basket_length = basket.getElements()|length %} @@ -113,4 +122,31 @@
+ + + From 23d757c4d6901c3615accc6a68abc392e107e630 Mon Sep 17 00:00:00 2001 From: Arthur de Moulins Date: Fri, 13 Mar 2020 15:53:15 +0100 Subject: [PATCH 15/23] plugin installation in docker --- .dockerignore | 2 +- Dockerfile | 3 +- docker/phraseanet/entrypoint.sh | 2 + docker/phraseanet/install-plugins | 50 --------------- docker/phraseanet/plugins/InitCommand.php | 29 +++++++++ docker/phraseanet/plugins/InstallCommand.php | 64 +++++++++++++++++++ docker/phraseanet/plugins/SubCommand.php | 26 ++++++++ docker/phraseanet/plugins/console | 17 +++++ .../Command/Plugin/AbstractPluginCommand.php | 36 +++++++---- 9 files changed, 164 insertions(+), 65 deletions(-) delete mode 100755 docker/phraseanet/install-plugins create mode 100644 docker/phraseanet/plugins/InitCommand.php create mode 100644 docker/phraseanet/plugins/InstallCommand.php create mode 100644 docker/phraseanet/plugins/SubCommand.php create mode 100755 docker/phraseanet/plugins/console diff --git a/.dockerignore b/.dockerignore index 9b914fafec..95d7045edf 100644 --- a/.dockerignore +++ b/.dockerignore @@ -23,7 +23,7 @@ /datas /docker-compose.* /logs -/nodes_modules +/node_modules /plugins /tmp /vendor diff --git a/Dockerfile b/Dockerfile index 4b2614a357..3feefd2d3b 100644 --- a/Dockerfile +++ b/Dockerfile @@ -90,6 +90,7 @@ RUN curl -sL https://deb.nodesource.com/setup_10.x | bash - \ telnet \ autoconf \ libtool \ + python \ pkg-config \ && apt-get clean \ && rm -rf /var/lib/apt/lists \ @@ -126,7 +127,7 @@ RUN ( \ && chmod 600 ~/.ssh/id_rsa \ ) || echo "Skip SSH key" -RUN ./docker/phraseanet/install-plugins +RUN ./docker/phraseanet/plugins/console install ENTRYPOINT ["/bootstrap/entrypoint.sh"] diff --git a/docker/phraseanet/entrypoint.sh b/docker/phraseanet/entrypoint.sh index 1d1fecb989..037fe0aa02 100755 --- a/docker/phraseanet/entrypoint.sh +++ b/docker/phraseanet/entrypoint.sh @@ -26,4 +26,6 @@ if [ ${XDEBUG_ENABLED} == "1" ]; then docker-php-ext-enable xdebug fi +./docker/phraseanet/plugins/console init + bash -e docker-php-entrypoint $@ diff --git a/docker/phraseanet/install-plugins b/docker/phraseanet/install-plugins deleted file mode 100755 index d4a5cb01c8..0000000000 --- a/docker/phraseanet/install-plugins +++ /dev/null @@ -1,50 +0,0 @@ -#!/usr/bin/env php - $plugin) { - $plugin = trim($plugin); - $repo = $plugin; - $branch = 'master'; - if (1 === preg_match('#^(.+)\(([^)]+)\)$#', $plugin, $matches)) { - $repo = $matches[1]; - $branch = $matches[2]; - } - - $pluginTmpName = 'plugin' . $key; - $pluginPath = './plugin' . $key; - if (is_dir($pluginPath)) { - echo shell_exec(sprintf('rm -rf %s', $pluginPath)); - } - - echo sprintf("Installing %s (branch: %s)\n", $repo, $branch); - runCommand(sprintf('git clone --single-branch --branch %s %s %s', $branch, $repo, $pluginPath)); - - runCommand(sprintf('bin/setup plugins:add %s', $pluginPath)); - - echo shell_exec(sprintf('rm -rf %s', $pluginPath)); -} diff --git a/docker/phraseanet/plugins/InitCommand.php b/docker/phraseanet/plugins/InitCommand.php new file mode 100644 index 0000000000..23b7d644b7 --- /dev/null +++ b/docker/phraseanet/plugins/InitCommand.php @@ -0,0 +1,29 @@ +setName('init') + ->setDescription('Initialize plugins'); + } + + protected function execute(InputInterface $input, OutputInterface $output) + { + foreach (glob('./plugins/*') as $dir) { + if (is_dir($dir)) { + $output->writeln(sprintf('Init %s plugin', basename($dir))); + SubCommand::run(sprintf('bin/setup plugin:add %s', $dir)); + } + } + + return 0; + } +} diff --git a/docker/phraseanet/plugins/InstallCommand.php b/docker/phraseanet/plugins/InstallCommand.php new file mode 100644 index 0000000000..7b8a28c4cd --- /dev/null +++ b/docker/phraseanet/plugins/InstallCommand.php @@ -0,0 +1,64 @@ +setName('install') + ->setDescription('Install plugins'); + } + + protected function execute(InputInterface $input, OutputInterface $output) + { + $plugins = trim(getenv('PHRASEANET_PLUGINS')); + if (empty($plugins)) { + $output->writeln('No plugin to install... SKIP'); + + return 0; + } + + $pluginsDir = 'plugins'; + if (!is_dir($pluginsDir)) { + mkdir($pluginsDir); + } + + foreach (explode(' ', $plugins) as $key => $plugin) { + $plugin = trim($plugin); + $repo = $plugin; + $branch = 'master'; + if (1 === preg_match('#^(.+)\(([^)]+)\)$#', $plugin, $matches)) { + $repo = $matches[1]; + $branch = $matches[2]; + } + + $pluginPath = './plugin' . $key; + if (is_dir($pluginPath)) { + SubCommand::run(sprintf('rm -rf %s', $pluginPath)); + } + + $output->writeln(sprintf('Installing %s (branch: %s)', $repo, $branch)); + SubCommand::run(sprintf('git clone --single-branch --branch %s %s %s', $branch, $repo, $pluginPath)); + + $manifestSrc = $pluginPath.'/manifest.json'; + if (!file_exists($manifestSrc)) { + throw new \Exception(sprintf('Cannot install plugin %s: no manifest.json file found', $plugin)); + } + $pluginDestName = json_decode(file_get_contents($manifestSrc), true)['name']; + rename($pluginPath, $pluginsDir.'/'.$pluginDestName); + $pluginPath = $pluginsDir.'/'.$pluginDestName; + + if (file_exists($pluginPath.'/composer.json')) { + SubCommand::run(sprintf('cd %s && composer install --no-dev', $pluginPath)); + } + } + + return 0; + } +} diff --git a/docker/phraseanet/plugins/SubCommand.php b/docker/phraseanet/plugins/SubCommand.php new file mode 100644 index 0000000000..fd2dbc68a1 --- /dev/null +++ b/docker/phraseanet/plugins/SubCommand.php @@ -0,0 +1,26 @@ +add(new InstallCommand()); +$application->add(new InitCommand()); + +$application->run(); diff --git a/lib/Alchemy/Phrasea/Command/Plugin/AbstractPluginCommand.php b/lib/Alchemy/Phrasea/Command/Plugin/AbstractPluginCommand.php index 2d9d211612..f535c2cd39 100644 --- a/lib/Alchemy/Phrasea/Command/Plugin/AbstractPluginCommand.php +++ b/lib/Alchemy/Phrasea/Command/Plugin/AbstractPluginCommand.php @@ -54,33 +54,43 @@ abstract class AbstractPluginCommand extends Command protected function doInstallPlugin($source, InputInterface $input, OutputInterface $output) { - $temporaryDir = $this->container['temporary-filesystem']->createTemporaryDirectory(); - - $output->write("Importing $source..."); - $this->container['plugins.importer']->import($source, $temporaryDir); - $output->writeln(" OK"); $output->write("Validating plugin..."); - $manifest = $this->container['plugins.plugins-validator']->validatePlugin($temporaryDir); + $manifest = $this->container['plugins.plugins-validator']->validatePlugin($source); $output->writeln(" OK found ".$manifest->getName().""); $targetDir = $this->container['plugin.path'] . DIRECTORY_SEPARATOR . $manifest->getName(); + if (realpath($targetDir) !== realpath($source)) { + $temporaryDir = $this->container['temporary-filesystem']->createTemporaryDirectory(); + $output->write("Importing $source..."); + $this->container['plugins.importer']->import($source, $temporaryDir); + $output->writeln(" OK"); + $workingDir = $temporaryDir; + } else { + $workingDir = $targetDir; + } - $output->write("Setting up composer..."); - $this->container['plugins.composer-installer']->install($temporaryDir); - $output->writeln(" OK"); + if (!is_dir($workingDir.'/vendor')) { + $output->write("Setting up composer..."); + $this->container['plugins.composer-installer']->install($workingDir); + $output->writeln(" OK"); + } $output->write("Installing plugin ".$manifest->getName()."..."); - $this->container['filesystem']->mirror($temporaryDir, $targetDir); + if (isset($temporaryDir)) { + $this->container['filesystem']->mirror($temporaryDir, $targetDir); + } $output->writeln(" OK"); $output->write("Copying public files ".$manifest->getName()."..."); $this->container['plugins.assets-manager']->update($manifest); $output->writeln(" OK"); - $output->write("Removing temporary directory..."); - $this->container['filesystem']->remove($temporaryDir); - $output->writeln(" OK"); + if (isset($temporaryDir)) { + $output->write("Removing temporary directory..."); + $this->container['filesystem']->remove($temporaryDir); + $output->writeln(" OK"); + } $output->write("Activating plugin..."); $this->container['conf']->set(['plugins', $manifest->getName(), 'enabled'], true); From 6ed22b53dcac303f58c931f4be292bae48e703da Mon Sep 17 00:00:00 2001 From: Arthur de Moulins Date: Fri, 13 Mar 2020 19:51:10 +0100 Subject: [PATCH 16/23] fix AddPluginTest --- .../Command/Plugin/AbstractPluginCommand.php | 18 ++++++++++++++++-- .../Phrasea/Command/Plugin/AddPluginTest.php | 2 +- 2 files changed, 17 insertions(+), 3 deletions(-) diff --git a/lib/Alchemy/Phrasea/Command/Plugin/AbstractPluginCommand.php b/lib/Alchemy/Phrasea/Command/Plugin/AbstractPluginCommand.php index f535c2cd39..53e4ffed39 100644 --- a/lib/Alchemy/Phrasea/Command/Plugin/AbstractPluginCommand.php +++ b/lib/Alchemy/Phrasea/Command/Plugin/AbstractPluginCommand.php @@ -15,6 +15,21 @@ use Alchemy\Phrasea\Command\Command; use Symfony\Component\Console\Input\InputInterface; use Symfony\Component\Console\Output\OutputInterface; +function normalizePath($path) { + return array_reduce(explode('/', $path), function ($a, $b) { + if($a === 0) + $a = '/'; + + if($b === '' || $b === '.') + return $a; + + if($b === '..') + return dirname($a); + + return preg_replace('/\/+/', '/', "$a/$b"); + }, 0); +} + abstract class AbstractPluginCommand extends Command { protected function validatePlugins(InputInterface $input, OutputInterface $output) @@ -54,13 +69,12 @@ abstract class AbstractPluginCommand extends Command protected function doInstallPlugin($source, InputInterface $input, OutputInterface $output) { - $output->write("Validating plugin..."); $manifest = $this->container['plugins.plugins-validator']->validatePlugin($source); $output->writeln(" OK found ".$manifest->getName().""); $targetDir = $this->container['plugin.path'] . DIRECTORY_SEPARATOR . $manifest->getName(); - if (realpath($targetDir) !== realpath($source)) { + if (normalizePath($targetDir) !== normalizePath($source)) { $temporaryDir = $this->container['temporary-filesystem']->createTemporaryDirectory(); $output->write("Importing $source..."); $this->container['plugins.importer']->import($source, $temporaryDir); diff --git a/tests/Alchemy/Tests/Phrasea/Command/Plugin/AddPluginTest.php b/tests/Alchemy/Tests/Phrasea/Command/Plugin/AddPluginTest.php index 523b4c00da..506c4f104a 100644 --- a/tests/Alchemy/Tests/Phrasea/Command/Plugin/AddPluginTest.php +++ b/tests/Alchemy/Tests/Phrasea/Command/Plugin/AddPluginTest.php @@ -69,7 +69,7 @@ class AddPluginTest extends PluginCommandTestCase // the plugin is checked when updating config files self::$DI['cli']['plugins.plugins-validator']->expects($this->at(0)) ->method('validatePlugin') - ->with('tempdir') + ->with('TestPlugin') ->will($this->returnValue($manifest)); self::$DI['cli']['plugins.plugins-validator']->expects($this->at(1)) From 1e8de458bd3db7362faf8de50c77f4296744a3d1 Mon Sep 17 00:00:00 2001 From: Nicolas Maillat Date: Sat, 14 Mar 2020 00:46:42 +0100 Subject: [PATCH 17/23] Add default value for SSH_AUTH_SOCK --- .env | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.env b/.env index e89eeec0aa..75c614e5d6 100644 --- a/.env +++ b/.env @@ -72,6 +72,9 @@ PHRASEANET_ELASTICSEARCH_DIR=./volumes/elasticsearch PHRASEANET_THUMBNAILS_DIR=./www/thumbnails PHRASEANET_TMP_DIR=./tmp +# For dev who don't have SSH_AUTH_SOCK (avoid an empty volume name) +SSH_AUTH_SOCK=/dev/null + # Plugin support PHRASEANET_PLUGINS= PHRASEANET_SSH_PRIVATE_KEY= From 56f6eb83e3d52a654287d4214045c31f016026b7 Mon Sep 17 00:00:00 2001 From: Harrys Ravalomanana Date: Mon, 16 Mar 2020 15:46:41 +0400 Subject: [PATCH 18/23] PHRAS-2978-add feedback creation date on workzone feedback --- package.json | 2 +- templates/web/prod/WorkZone/Basket.html.twig | 32 +++++++++++++------- yarn.lock | 8 ++--- 3 files changed, 26 insertions(+), 16 deletions(-) diff --git a/package.json b/package.json index 70d1fbaddb..7ce6d01a66 100644 --- a/package.json +++ b/package.json @@ -65,7 +65,7 @@ "normalize-css": "^2.1.0", "npm": "^6.0.0", "npm-modernizr": "^2.8.3", - "phraseanet-production-client": "0.34.149-d", + "phraseanet-production-client": "0.34.150-d", "requirejs": "^2.3.5", "tinymce": "^4.0.28", "underscore": "^1.8.3", diff --git a/templates/web/prod/WorkZone/Basket.html.twig b/templates/web/prod/WorkZone/Basket.html.twig index ef0f52f980..fb028812d5 100644 --- a/templates/web/prod/WorkZone/Basket.html.twig +++ b/templates/web/prod/WorkZone/Basket.html.twig @@ -90,18 +90,28 @@ {% endif %}
{% if basket.getValidation() %} - {% set dateExpired = app['date-formatter'].getPrettyString(basket.getValidation().getExpires()) %} -
- {{ 'workzone:feedback:expiration' | trans }} : -
- - - - -
-
+
{% set basket_length = basket.getElements()|length %}
{{ 'Certaines donnees du panier ont change' | trans }} {{ 'rafraichir' | trans }}
diff --git a/yarn.lock b/yarn.lock index 98775d43a0..4af2ac395c 100644 --- a/yarn.lock +++ b/yarn.lock @@ -7577,10 +7577,10 @@ phraseanet-common@^0.4.5-d: js-cookie "^2.1.0" pym.js "^1.3.1" -phraseanet-production-client@0.34.149-d: - version "0.34.149-d" - resolved "https://registry.yarnpkg.com/phraseanet-production-client/-/phraseanet-production-client-0.34.149-d.tgz#e486bbe160861d259b005c7b549d8f1ea08cd82d" - integrity sha512-7aXn1WWcALhuruiz8dkLS67Z6MNkQZoxoehCE7iRdnIDRzKioYQ1wycia4MtxyL+4S5XZZb39HIunvdxGsgDSQ== +phraseanet-production-client@0.34.150-d: + version "0.34.150-d" + resolved "https://registry.yarnpkg.com/phraseanet-production-client/-/phraseanet-production-client-0.34.150-d.tgz#625ea96c045719b405fe9b707b632b1290aca285" + integrity sha512-JrtPq6dCTCBxX6kGViXZj4Sc26PMFIaifT3PVD1WHLUCNd/U3nnHzpzKUgVC0ibqOj4aVwA8JW/oMilGEe3cmg== dependencies: "@mapbox/mapbox-gl-language" "^0.9.2" "@turf/turf" "^5.1.6" From 7e3b480442aea13ee718782bbf8245e50a221468 Mon Sep 17 00:00:00 2001 From: Harrys Ravalomanana Date: Mon, 16 Mar 2020 16:51:02 +0400 Subject: [PATCH 19/23] PHRAS-2978 fix icon preview --- package.json | 2 +- templates/web/prod/preview/appears_in.html.twig | 8 ++++---- yarn.lock | 8 ++++---- 3 files changed, 9 insertions(+), 9 deletions(-) diff --git a/package.json b/package.json index 7ce6d01a66..b9d1375021 100644 --- a/package.json +++ b/package.json @@ -65,7 +65,7 @@ "normalize-css": "^2.1.0", "npm": "^6.0.0", "npm-modernizr": "^2.8.3", - "phraseanet-production-client": "0.34.150-d", + "phraseanet-production-client": "0.34.151-d", "requirejs": "^2.3.5", "tinymce": "^4.0.28", "underscore": "^1.8.3", diff --git a/templates/web/prod/preview/appears_in.html.twig b/templates/web/prod/preview/appears_in.html.twig index e6087d49ab..0b7aa4dfa5 100644 --- a/templates/web/prod/preview/appears_in.html.twig +++ b/templates/web/prod/preview/appears_in.html.twig @@ -27,15 +27,15 @@ {##} {% if basket.getValidation() %} - + {% elseif basket.getPusher() %} {% if not basket.isRead() %} - + {% else %} - + {% endif %} {% else %} - + {% endif %} {{basket.getName()}} diff --git a/yarn.lock b/yarn.lock index 4af2ac395c..f6889a2d62 100644 --- a/yarn.lock +++ b/yarn.lock @@ -7577,10 +7577,10 @@ phraseanet-common@^0.4.5-d: js-cookie "^2.1.0" pym.js "^1.3.1" -phraseanet-production-client@0.34.150-d: - version "0.34.150-d" - resolved "https://registry.yarnpkg.com/phraseanet-production-client/-/phraseanet-production-client-0.34.150-d.tgz#625ea96c045719b405fe9b707b632b1290aca285" - integrity sha512-JrtPq6dCTCBxX6kGViXZj4Sc26PMFIaifT3PVD1WHLUCNd/U3nnHzpzKUgVC0ibqOj4aVwA8JW/oMilGEe3cmg== +phraseanet-production-client@0.34.151-d: + version "0.34.151-d" + resolved "https://registry.yarnpkg.com/phraseanet-production-client/-/phraseanet-production-client-0.34.151-d.tgz#e004c9990160959028a2fe581b0108074c0b06f4" + integrity sha512-4KcbDpWSqOqIhtUHrZKV/qiAZlcW81d8u7ZuTSJ7Eyq6ft0os1IJZ2ccJ0WZIgbcRU5JCfY6Y1bVvajqfOT9sA== dependencies: "@mapbox/mapbox-gl-language" "^0.9.2" "@turf/turf" "^5.1.6" From 9c87ba5504e588ea80ed6eaf8358133586159037 Mon Sep 17 00:00:00 2001 From: Harrys Ravalomanana Date: Mon, 16 Mar 2020 17:40:32 +0400 Subject: [PATCH 20/23] PHRAS-2978 remove other change for PHRAS-2989 --- package.json | 2 +- templates/web/prod/preview/appears_in.html.twig | 8 ++++---- yarn.lock | 8 ++++---- 3 files changed, 9 insertions(+), 9 deletions(-) diff --git a/package.json b/package.json index b9d1375021..7ce6d01a66 100644 --- a/package.json +++ b/package.json @@ -65,7 +65,7 @@ "normalize-css": "^2.1.0", "npm": "^6.0.0", "npm-modernizr": "^2.8.3", - "phraseanet-production-client": "0.34.151-d", + "phraseanet-production-client": "0.34.150-d", "requirejs": "^2.3.5", "tinymce": "^4.0.28", "underscore": "^1.8.3", diff --git a/templates/web/prod/preview/appears_in.html.twig b/templates/web/prod/preview/appears_in.html.twig index 0b7aa4dfa5..e6087d49ab 100644 --- a/templates/web/prod/preview/appears_in.html.twig +++ b/templates/web/prod/preview/appears_in.html.twig @@ -27,15 +27,15 @@ {##} {% if basket.getValidation() %} - + {% elseif basket.getPusher() %} {% if not basket.isRead() %} - + {% else %} - + {% endif %} {% else %} - + {% endif %} {{basket.getName()}} diff --git a/yarn.lock b/yarn.lock index f6889a2d62..4af2ac395c 100644 --- a/yarn.lock +++ b/yarn.lock @@ -7577,10 +7577,10 @@ phraseanet-common@^0.4.5-d: js-cookie "^2.1.0" pym.js "^1.3.1" -phraseanet-production-client@0.34.151-d: - version "0.34.151-d" - resolved "https://registry.yarnpkg.com/phraseanet-production-client/-/phraseanet-production-client-0.34.151-d.tgz#e004c9990160959028a2fe581b0108074c0b06f4" - integrity sha512-4KcbDpWSqOqIhtUHrZKV/qiAZlcW81d8u7ZuTSJ7Eyq6ft0os1IJZ2ccJ0WZIgbcRU5JCfY6Y1bVvajqfOT9sA== +phraseanet-production-client@0.34.150-d: + version "0.34.150-d" + resolved "https://registry.yarnpkg.com/phraseanet-production-client/-/phraseanet-production-client-0.34.150-d.tgz#625ea96c045719b405fe9b707b632b1290aca285" + integrity sha512-JrtPq6dCTCBxX6kGViXZj4Sc26PMFIaifT3PVD1WHLUCNd/U3nnHzpzKUgVC0ibqOj4aVwA8JW/oMilGEe3cmg== dependencies: "@mapbox/mapbox-gl-language" "^0.9.2" "@turf/turf" "^5.1.6" From c4399fd4ac0910e8e7e5556d864363cd64a177bb Mon Sep 17 00:00:00 2001 From: Nicolas Maillat Date: Mon, 16 Mar 2020 22:43:21 +0000 Subject: [PATCH 21/23] Translated using Weblate (English) Currently translated at 99.1% (2450 of 2471 strings) --- resources/locales/messages.en.xlf | 98 +++++++++++++++---------------- 1 file changed, 49 insertions(+), 49 deletions(-) diff --git a/resources/locales/messages.en.xlf b/resources/locales/messages.en.xlf index 95c032bf88..e1294aa797 100644 --- a/resources/locales/messages.en.xlf +++ b/resources/locales/messages.en.xlf @@ -1,4 +1,4 @@ - +
@@ -7,8 +7,8 @@
- - + + Form/Login/PhraseaAuthenticationForm.php Form/Configuration/EmailFormType.php @@ -11721,9 +11721,9 @@ It is possible to place several search areas Delete Selection prod/actions/Push.html.twig - + prod:workzone:basket:creation-date - prod:workzone:basket:creation-date + Creation Date prod/Tooltip/Basket.html.twig @@ -13400,14 +13400,14 @@ It is possible to place several search areas Thumbnail Tools actions/Tools/videoEditor.html.twig - + workzone:datepicker:april - workzone:datepicker:april + April prod/WorkZone/Basket.html.twig - + workzone:datepicker:august - workzone:datepicker:august + August prod/WorkZone/Basket.html.twig @@ -13420,99 +13420,99 @@ It is possible to place several search areas workzone:datepicker:currentText prod/WorkZone/Basket.html.twig - + workzone:datepicker:december - workzone:datepicker:december + December prod/WorkZone/Basket.html.twig - + workzone:datepicker:february - workzone:datepicker:february + February prod/WorkZone/Basket.html.twig - + workzone:datepicker:friday - workzone:datepicker:friday + Friday prod/WorkZone/Basket.html.twig - + workzone:datepicker:january - workzone:datepicker:january + January prod/WorkZone/Basket.html.twig - + workzone:datepicker:july - workzone:datepicker:july + July prod/WorkZone/Basket.html.twig - + workzone:datepicker:june - workzone:datepicker:june + June prod/WorkZone/Basket.html.twig - + workzone:datepicker:march - workzone:datepicker:march + March prod/WorkZone/Basket.html.twig - + workzone:datepicker:may - workzone:datepicker:may + May prod/WorkZone/Basket.html.twig - + workzone:datepicker:monday - workzone:datepicker:monday + Monday prod/WorkZone/Basket.html.twig - + workzone:datepicker:nextText - workzone:datepicker:nextText + Next prod/WorkZone/Basket.html.twig - + workzone:datepicker:november - workzone:datepicker:november + November prod/WorkZone/Basket.html.twig - + workzone:datepicker:october - workzone:datepicker:october + October prod/WorkZone/Basket.html.twig - + workzone:datepicker:prevText - workzone:datepicker:prevText + Previous prod/WorkZone/Basket.html.twig - + workzone:datepicker:saturday - workzone:datepicker:saturday + Saturday prod/WorkZone/Basket.html.twig - + workzone:datepicker:september - workzone:datepicker:september + September prod/WorkZone/Basket.html.twig - + workzone:datepicker:sunday - workzone:datepicker:sunday + Sunday prod/WorkZone/Basket.html.twig - + workzone:datepicker:thursday - workzone:datepicker:thursday + Thursday prod/WorkZone/Basket.html.twig - + workzone:datepicker:tuesday - workzone:datepicker:tuesday + Tuesday prod/WorkZone/Basket.html.twig - + workzone:datepicker:wednesday - workzone:datepicker:wednesday + Wednesday prod/WorkZone/Basket.html.twig @@ -13521,9 +13521,9 @@ It is possible to place several search areas prod/WorkZone/Basket.html.twig prod/Tooltip/Basket.html.twig - + workzone:feedback:update - workzone:feedback:update + Update Date prod/WorkZone/Basket.html.twig From 4881e4c402c038485c74f2c843ceb69dab239c12 Mon Sep 17 00:00:00 2001 From: Nicolas Maillat Date: Mon, 16 Mar 2020 23:08:34 +0000 Subject: [PATCH 22/23] Translated using Weblate (French) Currently translated at 99.1% (2451 of 2471 strings) --- resources/locales/messages.fr.xlf | 114 +++++++++++++++--------------- 1 file changed, 57 insertions(+), 57 deletions(-) diff --git a/resources/locales/messages.fr.xlf b/resources/locales/messages.fr.xlf index 1b43accabe..a8166562ca 100644 --- a/resources/locales/messages.fr.xlf +++ b/resources/locales/messages.fr.xlf @@ -1,4 +1,4 @@ - +
@@ -7,8 +7,8 @@
- - + + Form/Login/PhraseaAuthenticationForm.php Form/Configuration/EmailFormType.php @@ -10058,14 +10058,14 @@ Si vous recevez cet e-mail sans l'avoir sollicité, merci de l'ignorer ou de le Facettes masquées web/prod/index.html.twig
- + index::advance_search: order-by-hits - Par occurrences + Par occurrences web/prod/index.html.twig - + index::advance_search: order-by-hits-asc - Par occurrences asc + Par occurrences asc web/prod/index.html.twig @@ -11724,9 +11724,9 @@ Si vous recevez cet e-mail sans l'avoir sollicité, merci de l'ignorer ou de le Supprimer la selection prod/actions/Push.html.twig - + prod:workzone:basket:creation-date - prod:workzone:basket:creation-date + Date de création prod/Tooltip/Basket.html.twig @@ -13403,119 +13403,119 @@ Si vous recevez cet e-mail sans l'avoir sollicité, merci de l'ignorer ou de le Outils vidéos actions/Tools/videoEditor.html.twig - + workzone:datepicker:april - workzone:datepicker:april + Avril prod/WorkZone/Basket.html.twig - + workzone:datepicker:august - workzone:datepicker:august + Aout prod/WorkZone/Basket.html.twig - + workzone:datepicker:closeText - workzone:datepicker:closeText + Clore prod/WorkZone/Basket.html.twig - + workzone:datepicker:currentText - workzone:datepicker:currentText + courant prod/WorkZone/Basket.html.twig - + workzone:datepicker:december - workzone:datepicker:december + Décembre prod/WorkZone/Basket.html.twig - + workzone:datepicker:february - workzone:datepicker:february + Février prod/WorkZone/Basket.html.twig - + workzone:datepicker:friday - workzone:datepicker:friday + Vendredi prod/WorkZone/Basket.html.twig - + workzone:datepicker:january - workzone:datepicker:january + Janvier prod/WorkZone/Basket.html.twig - + workzone:datepicker:july - workzone:datepicker:july + Juillet prod/WorkZone/Basket.html.twig - + workzone:datepicker:june - workzone:datepicker:june + Juin prod/WorkZone/Basket.html.twig - + workzone:datepicker:march - workzone:datepicker:march + Mars prod/WorkZone/Basket.html.twig - + workzone:datepicker:may - workzone:datepicker:may + Mai prod/WorkZone/Basket.html.twig - + workzone:datepicker:monday - workzone:datepicker:monday + Lundi prod/WorkZone/Basket.html.twig - + workzone:datepicker:nextText - workzone:datepicker:nextText + Suivant prod/WorkZone/Basket.html.twig - + workzone:datepicker:november - workzone:datepicker:november + Novembre prod/WorkZone/Basket.html.twig - + workzone:datepicker:october - workzone:datepicker:october + Octobre prod/WorkZone/Basket.html.twig - + workzone:datepicker:prevText - workzone:datepicker:prevText + Précédent prod/WorkZone/Basket.html.twig - + workzone:datepicker:saturday - workzone:datepicker:saturday + Samedi prod/WorkZone/Basket.html.twig - + workzone:datepicker:september - workzone:datepicker:september + Septembre prod/WorkZone/Basket.html.twig - + workzone:datepicker:sunday - workzone:datepicker:sunday + Dimanche prod/WorkZone/Basket.html.twig - + workzone:datepicker:thursday - workzone:datepicker:thursday + Jeudi prod/WorkZone/Basket.html.twig - + workzone:datepicker:tuesday - workzone:datepicker:tuesday + Mardi prod/WorkZone/Basket.html.twig - + workzone:datepicker:wednesday - workzone:datepicker:wednesday + Mercredi prod/WorkZone/Basket.html.twig @@ -13524,9 +13524,9 @@ Si vous recevez cet e-mail sans l'avoir sollicité, merci de l'ignorer ou de le prod/WorkZone/Basket.html.twig prod/Tooltip/Basket.html.twig - + workzone:feedback:update - workzone:feedback:update + Valider prod/WorkZone/Basket.html.twig From 057b690fb6e8062c1b546ed3c0b39b2ae1c716bc Mon Sep 17 00:00:00 2001 From: Nicolas Maillat Date: Mon, 16 Mar 2020 23:25:14 +0000 Subject: [PATCH 23/23] Translated using Weblate (English) Currently translated at 99.1% (2451 of 2471 strings) --- resources/locales/messages.en.xlf | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/resources/locales/messages.en.xlf b/resources/locales/messages.en.xlf index e1294aa797..301050bb79 100644 --- a/resources/locales/messages.en.xlf +++ b/resources/locales/messages.en.xlf @@ -11723,7 +11723,7 @@ It is possible to place several search areas prod:workzone:basket:creation-date - Creation Date + Creation prod/Tooltip/Basket.html.twig @@ -13420,9 +13420,9 @@ It is possible to place several search areas workzone:datepicker:currentText prod/WorkZone/Basket.html.twig - + workzone:datepicker:december - December + December prod/WorkZone/Basket.html.twig