From db331447e1c908d54112e7e94e978d3e8fa90353 Mon Sep 17 00:00:00 2001 From: gregoirenovel Date: Tue, 11 Apr 2017 16:36:03 +0200 Subject: [PATCH 01/45] Use hex codes for colors --- app/assets/stylesheets/_card.scss | 2 +- app/assets/stylesheets/admin_procedures_modal.scss | 2 +- app/assets/stylesheets/admin_type_de_champ.scss | 2 +- app/assets/stylesheets/application.scss | 6 +++--- app/assets/stylesheets/carte.scss | 6 +++--- app/assets/stylesheets/description.scss | 4 ++-- app/assets/stylesheets/landing.scss | 8 ++++---- app/assets/stylesheets/left_panel.scss | 2 +- app/assets/stylesheets/navbar.scss | 4 ++-- app/assets/stylesheets/notification_alert.scss | 2 +- app/assets/stylesheets/pref_list_menu.scss | 2 +- app/assets/stylesheets/stats.scss | 4 ++-- app/assets/stylesheets/support_navigator_banner.scss | 2 +- 13 files changed, 23 insertions(+), 23 deletions(-) diff --git a/app/assets/stylesheets/_card.scss b/app/assets/stylesheets/_card.scss index 813406a9f..118715fba 100644 --- a/app/assets/stylesheets/_card.scss +++ b/app/assets/stylesheets/_card.scss @@ -1,5 +1,5 @@ .card { - background: white; + background: #FFFFFF; padding: 15px; box-shadow: 0 1px 3px rgba(0, 0, 0, .15); border-radius: 2px; diff --git a/app/assets/stylesheets/admin_procedures_modal.scss b/app/assets/stylesheets/admin_procedures_modal.scss index 2ef9d03b0..4a5d9f24e 100644 --- a/app/assets/stylesheets/admin_procedures_modal.scss +++ b/app/assets/stylesheets/admin_procedures_modal.scss @@ -1,5 +1,5 @@ .path_mine_false { - color: red + color: #FF0000 } #path_messages { diff --git a/app/assets/stylesheets/admin_type_de_champ.scss b/app/assets/stylesheets/admin_type_de_champ.scss index bc2613075..c5129f144 100644 --- a/app/assets/stylesheets/admin_type_de_champ.scss +++ b/app/assets/stylesheets/admin_type_de_champ.scss @@ -7,7 +7,7 @@ text-align:center; padding-bottom: 8px; - color: white; + color: #FFFFFF; .form-control.libelle { font-weight: bold; diff --git a/app/assets/stylesheets/application.scss b/app/assets/stylesheets/application.scss index dd10a3f2b..d1d4a830f 100644 --- a/app/assets/stylesheets/application.scss +++ b/app/assets/stylesheets/application.scss @@ -94,7 +94,7 @@ form { } .text-default { - color: grey; + color: #808080; } .progress-bar-purple { @@ -125,13 +125,13 @@ form { filter: alpha(opacity=0); opacity: 0; outline: none; - background: white; + background: #FFFFFF; cursor: inherit; display: block; } .vr { - border-left: 1px solid grey; + border-left: 1px solid #808080; } .center { diff --git a/app/assets/stylesheets/carte.scss b/app/assets/stylesheets/carte.scss index 486e98b64..e840168c9 100644 --- a/app/assets/stylesheets/carte.scss +++ b/app/assets/stylesheets/carte.scss @@ -83,7 +83,7 @@ #map div.polygon-elbow { -webkit-transition: opacity .25s; - box-shadow: 0 0 0 2px white, 0 0 10px rgba(0, 0, 0, .35); + box-shadow: 0 0 0 2px #FFFFFF, 0 0 10px rgba(0, 0, 0, .35); border: 5px solid #D7217E; border-radius: 10px; transition: opacity 0.25s; @@ -98,7 +98,7 @@ #map div.polygon-elbow.non-polygon { opacity: 0 !important; pointer-events: none !important; - border: 5px solid darkgray; + border: 5px solid #A9A9A9; } #map.mode-edit div.polygon-elbow { @@ -119,7 +119,7 @@ .info { padding: 6px 8px; font: 14px/16px Arial, Helvetica, sans-serif; - background: white; + background: #FFFFFF; background: rgba(255, 255, 255, 0.8); box-shadow: 0 0 15px rgba(0, 0, 0, 0.2); border-radius: 5px; diff --git a/app/assets/stylesheets/description.scss b/app/assets/stylesheets/description.scss index c471c10c1..f978697ec 100644 --- a/app/assets/stylesheets/description.scss +++ b/app/assets/stylesheets/description.scss @@ -23,8 +23,8 @@ } .input-error { - color: darkred !important; - border-color: darkred !important + color: #8B0000 !important; + border-color: #8B0000 !important } .type_champ-text { diff --git a/app/assets/stylesheets/landing.scss b/app/assets/stylesheets/landing.scss index 249e37743..4b91e713b 100644 --- a/app/assets/stylesheets/landing.scss +++ b/app/assets/stylesheets/landing.scss @@ -10,7 +10,7 @@ background-repeat: no-repeat; h5{ - color: grey; + color: #808080; } .logos { @@ -29,14 +29,14 @@ text-shadow: none; } - color: white; + color: #FFFFFF; text-shadow: 0px 0px 10px rgb(0, 0, 0); } } .background-tps{ background-color: #668AEA; - color: white; + color: #FFFFFF; } .latest_release{ @@ -51,7 +51,7 @@ margin-top: 40px; margin-bottom: 20px; - border-color: grey; + border-color: #808080; width: 40%; } diff --git a/app/assets/stylesheets/left_panel.scss b/app/assets/stylesheets/left_panel.scss index 0b250ab77..01bc8e223 100644 --- a/app/assets/stylesheets/left_panel.scss +++ b/app/assets/stylesheets/left_panel.scss @@ -7,7 +7,7 @@ top: 0; left: 0; bottom: 0; - color: white; + color: #FFFFFF; overflow-y: scroll; #first-block { diff --git a/app/assets/stylesheets/navbar.scss b/app/assets/stylesheets/navbar.scss index 1ed38032d..4f9a75bc9 100644 --- a/app/assets/stylesheets/navbar.scss +++ b/app/assets/stylesheets/navbar.scss @@ -9,7 +9,7 @@ border-radius: 0; height: 60px; #title_navbar{ - color: white; + color: #FFFFFF; font-weight: bold; font-size: 1.8em; z-index: 10; @@ -118,7 +118,7 @@ } .btn-nav { - color: white; + color: #FFFFFF; background-color: transparent; margin-top: 6px; height: 36px; diff --git a/app/assets/stylesheets/notification_alert.scss b/app/assets/stylesheets/notification_alert.scss index 6ba4e8f0b..fbcd63efd 100644 --- a/app/assets/stylesheets/notification_alert.scss +++ b/app/assets/stylesheets/notification_alert.scss @@ -8,5 +8,5 @@ width: 250px; height: 80px; - border: solid black 1px; + border: solid #000000 1px; } diff --git a/app/assets/stylesheets/pref_list_menu.scss b/app/assets/stylesheets/pref_list_menu.scss index af4a430a7..ebea47305 100644 --- a/app/assets/stylesheets/pref_list_menu.scss +++ b/app/assets/stylesheets/pref_list_menu.scss @@ -6,7 +6,7 @@ top: 10px; right: -470px; background-color: rgba(255, 255, 255, 0.95); - border-left: solid 1px lightgrey; + border-left: solid 1px #D3D3D3; box-shadow: 0 6px 12px rgba(0, 0, 0, 0.2); width: 470px; height: calc(100% - 25px); diff --git a/app/assets/stylesheets/stats.scss b/app/assets/stylesheets/stats.scss index 48d602275..a633cddf1 100644 --- a/app/assets/stylesheets/stats.scss +++ b/app/assets/stylesheets/stats.scss @@ -84,14 +84,14 @@ $segmented-control-item-border-radius: 2 * $default-space; &:hover { background-color: $blue-hover; - color: white; + color: #FFFFFF; cursor: pointer; } } .segmented-control-item-active { background-color: $blue; - color: white; + color: #FFFFFF; } .chart-container { diff --git a/app/assets/stylesheets/support_navigator_banner.scss b/app/assets/stylesheets/support_navigator_banner.scss index bb6651142..b72953590 100644 --- a/app/assets/stylesheets/support_navigator_banner.scss +++ b/app/assets/stylesheets/support_navigator_banner.scss @@ -2,7 +2,7 @@ position: fixed; text-align:center; line-height: 2em; - color: white; + color: #FFFFFF; background-color: #990000; width: 100%; margin: 0; From bb0233918337defc48052256b34cd2ff757d59bd Mon Sep 17 00:00:00 2001 From: gregoirenovel Date: Tue, 11 Apr 2017 16:37:27 +0200 Subject: [PATCH 02/45] Use border: none instead of border: 0 --- app/assets/stylesheets/login.scss | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/assets/stylesheets/login.scss b/app/assets/stylesheets/login.scss index 364a3176b..195eacc23 100644 --- a/app/assets/stylesheets/login.scss +++ b/app/assets/stylesheets/login.scss @@ -22,7 +22,7 @@ hr { margin-bottom: 40px; - border: 0; + border: none; height: 1px; background-image: linear-gradient(to right, rgba(100, 100, 100, 0), rgba(100, 100, 100, 0.75), rgba(100, 100, 100, 0)); } From c5fc77b606047a783b6cb81bdb118225d6e5fb15 Mon Sep 17 00:00:00 2001 From: gregoirenovel Date: Tue, 11 Apr 2017 16:38:26 +0200 Subject: [PATCH 03/45] Change the comments style --- app/assets/stylesheets/application.scss | 44 ++++++++++++------------- 1 file changed, 22 insertions(+), 22 deletions(-) diff --git a/app/assets/stylesheets/application.scss b/app/assets/stylesheets/application.scss index d1d4a830f..9afcca471 100644 --- a/app/assets/stylesheets/application.scss +++ b/app/assets/stylesheets/application.scss @@ -1,27 +1,27 @@ //= depend_on_asset "layers.png" //= depend_on_asset "layers-2x.png" -/* - * This is a manifest file that'll be compiled into application.css, which will include all the files - * listed below. - * - * Any CSS and SCSS file within this directory, lib/assets/stylesheets, vendor/assets/stylesheets, - * or any plugin's vendor/assets/stylesheets directory can be referenced here using a relative path. - * - * You're free to add application-wide styles to this file and they'll appear at the bottom of the - * compiled file so the styles you add here take precedence over styles defined in any styles - * defined in the other CSS/SCSS files in this directory. It is generally better to create a new - * file per style scope. - * - *= require_tree . - *= require_self - *= require bootstrap-datepicker3 - *= require leaflet - *= require font-awesome - *= require franceconnect - *= require bootstrap-wysihtml5 - *= require select2 - *= require select2-bootstrap - */ + +// This is a manifest file that'll be compiled into application.css, which will include all the files +// listed below. +// +// Any CSS and SCSS file within this directory, lib/assets/stylesheets, vendor/assets/stylesheets, +// or any plugin's vendor/assets/stylesheets directory can be referenced here using a relative path. +// +// You're free to add application-wide styles to this file and they'll appear at the bottom of the +// compiled file so the styles you add here take precedence over styles defined in any styles +// defined in the other CSS/SCSS files in this directory. It is generally better to create a new +// file per style scope. +// +// = require_tree . +// = require_self +// = require bootstrap-datepicker3 +// = require leaflet +// = require font-awesome +// = require franceconnect +// = require bootstrap-wysihtml5 +// = require select2 +// = require select2-bootstrap + @import "variables"; @import "bootstrap-sprockets"; @import "bootstrap"; From 0ed13c9fe704a9ead827a8edb2b776c80f104fc1 Mon Sep 17 00:00:00 2001 From: gregoirenovel Date: Tue, 11 Apr 2017 16:41:43 +0200 Subject: [PATCH 04/45] Remove duplicated properties --- app/assets/stylesheets/carte.scss | 1 - app/assets/stylesheets/left_panel.scss | 1 - app/assets/stylesheets/stats.scss | 1 - app/assets/stylesheets/typeahead.scss | 1 - 4 files changed, 4 deletions(-) diff --git a/app/assets/stylesheets/carte.scss b/app/assets/stylesheets/carte.scss index e840168c9..4c41854fc 100644 --- a/app/assets/stylesheets/carte.scss +++ b/app/assets/stylesheets/carte.scss @@ -119,7 +119,6 @@ .info { padding: 6px 8px; font: 14px/16px Arial, Helvetica, sans-serif; - background: #FFFFFF; background: rgba(255, 255, 255, 0.8); box-shadow: 0 0 15px rgba(0, 0, 0, 0.2); border-radius: 5px; diff --git a/app/assets/stylesheets/left_panel.scss b/app/assets/stylesheets/left_panel.scss index 01bc8e223..e85b91cb6 100644 --- a/app/assets/stylesheets/left_panel.scss +++ b/app/assets/stylesheets/left_panel.scss @@ -158,7 +158,6 @@ .dossier-state { text-align: center; font-size: 25px; - width: 200px; margin-top: 20px; width: 200px; margin-left: auto; diff --git a/app/assets/stylesheets/stats.scss b/app/assets/stylesheets/stats.scss index a633cddf1..bea15d74d 100644 --- a/app/assets/stylesheets/stats.scss +++ b/app/assets/stylesheets/stats.scss @@ -64,7 +64,6 @@ $segmented-control-margin-top: $default-space; $segmented-control-item-horizontal-padding: $default-space; $segmented-control-item-border-radius: 2 * $default-space; .segmented-control-item { - color: $blue; display: inline-block; font-size: 15px; border: 2px solid $blue; diff --git a/app/assets/stylesheets/typeahead.scss b/app/assets/stylesheets/typeahead.scss index c22dbf622..568c10453 100644 --- a/app/assets/stylesheets/typeahead.scss +++ b/app/assets/stylesheets/typeahead.scss @@ -5,7 +5,6 @@ .tt-menu { padding: 8px 0; background-color: #fff; - border: 1px solid #ccc; border: 1px solid rgba(0, 0, 0, 0.2); -webkit-border-radius: 8px; -moz-border-radius: 8px; From 6a13e481fd62558d7e1ba6463d3bdc6f47d5d1cd Mon Sep 17 00:00:00 2001 From: gregoirenovel Date: Tue, 11 Apr 2017 16:42:14 +0200 Subject: [PATCH 05/45] Fix the declaration order --- app/assets/stylesheets/landing.scss | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/app/assets/stylesheets/landing.scss b/app/assets/stylesheets/landing.scss index 4b91e713b..6d68c655b 100644 --- a/app/assets/stylesheets/landing.scss +++ b/app/assets/stylesheets/landing.scss @@ -20,6 +20,8 @@ #title { padding-bottom: 2%; padding-top: 1%; + color: #FFFFFF; + text-shadow: 0px 0px 10px rgb(0, 0, 0); h2 { font-size: 35px; @@ -28,9 +30,6 @@ .btn { text-shadow: none; } - - color: #FFFFFF; - text-shadow: 0px 0px 10px rgb(0, 0, 0); } } From 0d5dd9d492d4b66c4e104eb8b4bb12bf85d926ed Mon Sep 17 00:00:00 2001 From: gregoirenovel Date: Tue, 11 Apr 2017 17:02:15 +0200 Subject: [PATCH 06/45] Remove empty rules --- app/assets/stylesheets/dossier_show.scss | 4 ---- app/assets/stylesheets/users.scss | 3 --- 2 files changed, 7 deletions(-) diff --git a/app/assets/stylesheets/dossier_show.scss b/app/assets/stylesheets/dossier_show.scss index f840b193a..94a343aa5 100644 --- a/app/assets/stylesheets/dossier_show.scss +++ b/app/assets/stylesheets/dossier_show.scss @@ -62,8 +62,6 @@ text-align: end; } } - #carto { - } #private-fields { .text-primary { color: #337ab7; @@ -101,8 +99,6 @@ font-weight: bold; text-align: end; } - .depositaire-info { - } .btn-action{ border: none; margin: 20px 0 40px 0; diff --git a/app/assets/stylesheets/users.scss b/app/assets/stylesheets/users.scss index bdf586ad3..cca4eb4eb 100644 --- a/app/assets/stylesheets/users.scss +++ b/app/assets/stylesheets/users.scss @@ -20,9 +20,6 @@ margin: 20px; } -#description_page { -} - #carto_page { margin: 20px; } From 2cae8e751eda072a0d9d2ac01d2d6e897a5e9ed8 Mon Sep 17 00:00:00 2001 From: gregoirenovel Date: Tue, 11 Apr 2017 17:06:30 +0200 Subject: [PATCH 07/45] Blocks must be separated by an empty line --- .../stylesheets/admin_procedures_modal.scss | 1 + .../stylesheets/admin_type_de_champ.scss | 1 + app/assets/stylesheets/application.scss | 3 ++ app/assets/stylesheets/backoffice.scss | 3 ++ app/assets/stylesheets/carte.scss | 1 + .../stylesheets/default_data_block.scss | 10 +++++ app/assets/stylesheets/description.scss | 3 ++ app/assets/stylesheets/dossier_show.scss | 33 ++++++++++++++++ app/assets/stylesheets/dossiers.scss | 5 +++ app/assets/stylesheets/etapes.scss | 1 + app/assets/stylesheets/left_panel.scss | 38 +++++++++++++++++++ app/assets/stylesheets/navbar.scss | 18 +++++++++ app/assets/stylesheets/stats.scss | 7 ++++ .../stylesheets/support_navigator_banner.scss | 1 + app/assets/stylesheets/users.scss | 7 ++++ 15 files changed, 132 insertions(+) diff --git a/app/assets/stylesheets/admin_procedures_modal.scss b/app/assets/stylesheets/admin_procedures_modal.scss index 4a5d9f24e..0f6180a0d 100644 --- a/app/assets/stylesheets/admin_procedures_modal.scss +++ b/app/assets/stylesheets/admin_procedures_modal.scss @@ -12,6 +12,7 @@ .twitter-typeahead { width: 300px; } + .tt-menu { width: 300px; } diff --git a/app/assets/stylesheets/admin_type_de_champ.scss b/app/assets/stylesheets/admin_type_de_champ.scss index c5129f144..3baa6f6ce 100644 --- a/app/assets/stylesheets/admin_type_de_champ.scss +++ b/app/assets/stylesheets/admin_type_de_champ.scss @@ -42,6 +42,7 @@ .description { padding: 0; + textarea { padding: 6px 12px; } diff --git a/app/assets/stylesheets/application.scss b/app/assets/stylesheets/application.scss index 9afcca471..5a236ae5a 100644 --- a/app/assets/stylesheets/application.scss +++ b/app/assets/stylesheets/application.scss @@ -66,12 +66,15 @@ form { background-color: $light-blue; text-align: center; padding: 0; + a, p { color: #000000; } + a:hover { color: #000000; } + p { line-height: 40px; padding: 0; diff --git a/app/assets/stylesheets/backoffice.scss b/app/assets/stylesheets/backoffice.scss index 4956cfeb4..b6ead167c 100644 --- a/app/assets/stylesheets/backoffice.scss +++ b/app/assets/stylesheets/backoffice.scss @@ -5,13 +5,16 @@ .default_data_block { background-color: #FFFFFF; margin-top: 20px; + .show-block { width: 100%; } + .body { height: auto; } } + .fixed-right { position: fixed; right: 20px; diff --git a/app/assets/stylesheets/carte.scss b/app/assets/stylesheets/carte.scss index 4c41854fc..e83aa97eb 100644 --- a/app/assets/stylesheets/carte.scss +++ b/app/assets/stylesheets/carte.scss @@ -133,6 +133,7 @@ .twitter-typeahead { width: 555px; } + .tt-menu { width: 555px; } diff --git a/app/assets/stylesheets/default_data_block.scss b/app/assets/stylesheets/default_data_block.scss index 9590ce8ff..316ceac4a 100644 --- a/app/assets/stylesheets/default_data_block.scss +++ b/app/assets/stylesheets/default_data_block.scss @@ -9,6 +9,7 @@ box-shadow: 0 0 1px 0 rgba(0, 0, 0, 0.5); margin-bottom: 40px; } + .carret-right { float: left; width: 0; @@ -18,6 +19,7 @@ border-left: 14px solid #FFFFFF; margin: 12px 12px 0 15px; } + .carret-down { float: left; width: 0; @@ -28,24 +30,29 @@ border-top: 14px solid #FFFFFF; margin: 12px 12px 0 15px; } + .header { background-color: #003C92; height: 40px; color: #FFFFFF; font-size: 18px; font-weight: bold; + .title, .title-no-expanse, .action, .count { height: 100%; line-height: 40px; padding: 0px; text-transform: uppercase; } + .title-no-expanse { cursor: not-allowed; } + .title, .action, .count { cursor: pointer; } + .action { background-color: #E45B51; text-align: center; @@ -54,14 +61,17 @@ text-decoration: none; color: #FFFFFF; } + .action:hover { color: $light-blue; } + .count { font-size: 16px; text-align: center; } } + .body { background-color: #FFFFFF; display: none; diff --git a/app/assets/stylesheets/description.scss b/app/assets/stylesheets/description.scss index f978697ec..5669c8462 100644 --- a/app/assets/stylesheets/description.scss +++ b/app/assets/stylesheets/description.scss @@ -6,6 +6,7 @@ .default_data_block { .show-block { width: 90%; + .body{ padding: 15px; } @@ -47,11 +48,13 @@ .twitter-typeahead { width: 100%; + input { width: 100%; display: block !important; } } + .tt-menu { width: 100%; } diff --git a/app/assets/stylesheets/dossier_show.scss b/app/assets/stylesheets/dossier_show.scss index 94a343aa5..74ff23cb6 100644 --- a/app/assets/stylesheets/dossier_show.scss +++ b/app/assets/stylesheets/dossier_show.scss @@ -4,24 +4,29 @@ .last-commentaire { display: block; background-color: #FFFFFF; + .content, .new-action { margin-bottom: 20px; } } + .body { .commentaires { max-height: 350px; overflow-y: scroll; background: linear-gradient(to bottom, rgba(0, 0, 0, 0.075) 0%, rgba(219, 219, 219, 0) 50%, rgba(250, 251, 253, 0.18) 51%, #ffffff 100%); } + .no-commentaires { text-align: center; font-size: 18px; padding-top: 20px; } } + .last-commentaire, .commentaire { padding: 20px 0 0 20px; + .comment-header { font-family: Arial; font-size: 14px; @@ -30,10 +35,12 @@ color: #000000; margin-bottom: 10px; } + .file { padding-right: 70px; text-align: center; margin-bottom: 20px; + .link { span { width: 100%; @@ -42,39 +49,48 @@ } } } + .split-hr { margin: 20px 20px 0 20px; border-bottom: 1px solid #979797; } + #new-commentaire { padding: 15px; } } + .infos { .split-row { margin: 0 0 20px 0; } + .entreprise-info { font-size: 14px; } + .entreprise-label { font-weight: bold; text-align: end; } } + #private-fields { .text-primary { color: #337ab7; } } + #pieces-jointes { .piece-row { margin: 20px; + .piece-label { text-align: right; font-weight: bold; } } + .modal-title { color: #000000; } @@ -91,24 +107,30 @@ .body { padding: 20px 20px 0 20px; color: #000000; + .libelle-procedure { font-style: italic; padding: 10px; } + .depositaire-label { font-weight: bold; text-align: end; } + .btn-action{ border: none; margin: 20px 0 40px 0; } + .btn-action:hover { color: #EEEEEE; } + .action { margin: 50px 0 0 15px; } + .action, .btn-action { background-color: #E45B51; text-align: center; @@ -121,43 +143,54 @@ font-size: 16px; font-weight: bold; text-decoration: none; + a:hover { color: #EEEEEE; } } + .historique { color: #000000; margin-left: 20px; } + .comments { margin-right: -10px; } + .comments-off { margin-right: -35px; } + .dossier-title { font-size: 16px; min-height: 40px; text-align: center; } + .split-hr { border-bottom: 1px solid #979797; height: 12px; min-height: 10px; } + .title-row { margin: 20px 10px 10px 10px; } + .margin-top-40 { margin-top: 40px; } + .margin-top-20 { margin-top: 20px; } + .margin-bot-40 { margin-bottom: 40px; } } + #pieces_justificatives { .piece-row { margin: 0 0 0 0; diff --git a/app/assets/stylesheets/dossiers.scss b/app/assets/stylesheets/dossiers.scss index c6a493da8..73499621d 100644 --- a/app/assets/stylesheets/dossiers.scss +++ b/app/assets/stylesheets/dossiers.scss @@ -45,21 +45,26 @@ h5 span { #procedure_list, #notifications_list { margin-left: -10px; margin-top: 20px; + a, a:hover { color: #FFFFFF; text-decoration: none; } + .procedure_list_element.active, .notification.active { background-color: #668ABD; } + .procedure_list_element, .notification { padding: 15px 40px 15px 20px; cursor: pointer; line-height: 1.8em; + .progress-bar-warning { background-color: #E4594F; } } + .procedure_list_element:hover, .notification:hover { background-color: #668ABD; cursor: pointer; diff --git a/app/assets/stylesheets/etapes.scss b/app/assets/stylesheets/etapes.scss index 4bef8c51a..637ea23f8 100644 --- a/app/assets/stylesheets/etapes.scss +++ b/app/assets/stylesheets/etapes.scss @@ -8,6 +8,7 @@ margin-top: 8px; } } + .etapes_informations{ padding-top: 15px; } diff --git a/app/assets/stylesheets/left_panel.scss b/app/assets/stylesheets/left_panel.scss index e85b91cb6..df1816f05 100644 --- a/app/assets/stylesheets/left_panel.scss +++ b/app/assets/stylesheets/left_panel.scss @@ -15,16 +15,19 @@ font-size: 16px; line-height: 18px; margin-top: 20px; + .infos { font-size: 25px; text-align: center; margin: 10px 10px 30px 0; + .projet-name { font-size: 25px; line-height: normal; padding: 5px; } } + .count { display: inline-block; padding: 3px; @@ -33,37 +36,45 @@ text-align: center; line-height: 23px; } + .text { display: inline-block; width: 30px; margin: 0 0 0 8px; } + .dossiers-en-cours, .en-cours { margin-top: 20px; } + .dossiers-en-cours { .count { border: 1px solid #FFFFFF; } } + .nouveaux-dossiers { .count { background-color: #5CB85C; } } + .nouvelles-notifications { .count { background-color: #E4594F; } } + .dossiers-en-cours, .nouveaux-dossiers, .nouvelles-notifications, .en-cours { margin: 5px auto 0 20px; width: 150px; } } + #action-block { text-align: center; margin: 10px; + .action { background-color: #E45B51; text-align: center; @@ -78,6 +89,7 @@ border: none; width: 100%; } + .close-dossier, .refuse-dossier, .forget-dossier { border: 1px solid #FFFFFF; border-radius: 25px; @@ -86,20 +98,25 @@ margin-right: auto; width: 60px; } + .close-dossier:hover, .refuse-dossier:hover, .forget-dossier:hover { color: #000000; border-color: #000000; } + .close-dossier { background-color: #2A9E2A; } + .refuse-dossier { background-color: #E4594F; } + .forget-dossier { background-color: #FF8300; } } + #menu-block { #switch-buttons { height: 30px; @@ -113,19 +130,23 @@ padding: 0 0 0 10px; border-radius: 25px; cursor: pointer; + .active { background-color: #668ABD !important; cursor: default; } + .separator { height: 26px; width: 1px; display: inline-block; background-color: #FFFFFF; } + #switch-procedures:hover, #switch-notifications:hover { background-color: #668AEA; } + #switch-procedures { height: 28px; margin: 0 0 0 -10px; @@ -134,6 +155,7 @@ display: inline-block; border-radius: 25px 0 0 25px; } + #switch-notifications { width: 103px; display: inline-block; @@ -143,18 +165,21 @@ padding: 0 0 0 5px; } } + .split-hr { border-bottom: 1px solid #FFFFFF; width: 200px; margin: 20px 0 20px 0; } } + #infos-block { .split-hr { border-bottom: 1px solid #FFFFFF; width: 200px; margin: 20px 0 20px 0; } + .dossier-state { text-align: center; font-size: 25px; @@ -163,24 +188,29 @@ margin-left: auto; margin-right: auto; } + #notifications_list { .no-notification { margin: 0 30px 0 30px; } + .notification { padding: 10px 2px 10px 15px; + .dossier, .updated-at { display: inline-block; color: #CCCCCC; font-size: 12px; text-align: left; } + .dossier-index, .updated-at-index, .count { display: inline-block; color: #FFFFFF; font-size: 14px; text-align: left; } + .count { background-color: #F0AD4E; border-radius: 25px; @@ -188,33 +218,41 @@ width: 25px; text-align: center; } + .type-notif { font-size: 16px; } } } + .notifications { margin: 20px 10px 0 5px; + .fa { font-size: 25px; width: 100%; margin: 0 0 15px 0; } + .type-notif { font-size: 16px; float: right; width: 30px; } + .notification { margin: 10px 0 10px 10px; + .type { margin-bottom: 20px; } + .updated-at { color: #CCCCCC; font-size: 12px; text-align: left; } + .split-hr { width: 40px; margin: auto; diff --git a/app/assets/stylesheets/navbar.scss b/app/assets/stylesheets/navbar.scss index 4f9a75bc9..5b2a454f4 100644 --- a/app/assets/stylesheets/navbar.scss +++ b/app/assets/stylesheets/navbar.scss @@ -8,6 +8,7 @@ z-index: 10; border-radius: 0; height: 60px; + #title_navbar{ color: #FFFFFF; font-weight: bold; @@ -15,18 +16,22 @@ z-index: 10; overflow: hidden; } + #title_navbar:hover{ text-decoration: none; } + #home { text-align: center; box-shadow: 0 1px 2px 0 rgba(0,0,0,0.5); background-color: #003189; height: 60px; + .logo { margin-top: 10px; height: 40px; } + #tps-title { font-family: Arial; font-size: 24px; @@ -35,11 +40,13 @@ margin-top: 17px; } } + #navbar-body { min-height: 60px; background-color: #FFFFFF; box-shadow: 0 1px 2px 0 rgba(50,50,50,0.5); padding-left: 50px; + .main-info { font-family: Arial; font-size: 18px; @@ -51,6 +58,7 @@ white-space: nowrap; text-overflow: ellipsis; } + .options { font-family: Arial; font-size: 14px; @@ -60,18 +68,22 @@ padding: 8px; border-right: 1px solid #C8C6C8; min-height: 60px; + .dropdown-toggle { cursor: pointer; } + .dropdown-pannel { min-height: 100px; width: 400px; padding-left: 10px; } + .centered-option { line-height: 40px; height: 40px; } + .caret-right { border-bottom: 4px solid transparent; border-top: 4px solid transparent; @@ -86,6 +98,7 @@ #sign_in{ margin-top: 7px; + .btn { float: right; margin-right: 15px; @@ -103,6 +116,7 @@ margin-right: 0.5em; font-size: 40px; } + .fa:hover { color: #668ABD; } @@ -145,6 +159,7 @@ .navbar { border: 0 !important; + .sign_in_FC { margin-top: -18px; height: 70px; @@ -181,11 +196,13 @@ text-align: center; padding: 2px; float: right; + .fa { font-size: 20px; margin-right: 10px; } } + .button-navbar-action:hover { color: $light-blue; } @@ -200,6 +217,7 @@ padding: 10px; left: -130px; text-align: center; + .description { font-weight: bold; font-size: 20px; diff --git a/app/assets/stylesheets/stats.scss b/app/assets/stylesheets/stats.scss index bea15d74d..7c58d62bb 100644 --- a/app/assets/stylesheets/stats.scss +++ b/app/assets/stylesheets/stats.scss @@ -8,6 +8,7 @@ $blue-hover: rgba(61, 149, 236, 0.8); $default-space: 15px; $new-h1-margin-bottom: 4 * $default-space; + .new-h1 { color: $dark-grey; text-align: center; @@ -16,6 +17,7 @@ $new-h1-margin-bottom: 4 * $default-space; } $statistiques-padding-top: $default-space * 2; + .statistiques { width: 1040px; margin: 0 auto; @@ -29,6 +31,7 @@ $statistiques-padding-top: $default-space * 2; } $stat-card-margin-bottom: 3 * $default-space; + .stat-card { @extend .card; margin-bottom: $stat-card-margin-bottom; @@ -38,6 +41,7 @@ $stat-card-margin-bottom: 3 * $default-space; } $stat-card-half-horizontal-spacing: 4 * $default-space; + .stat-card-half { width: calc((100% - #{$stat-card-half-horizontal-spacing}) / 2); margin-right: 3 * $default-space; @@ -51,6 +55,7 @@ $stat-card-half-horizontal-spacing: 4 * $default-space; } $segmented-control-margin-top: $default-space; + .segmented-control { border-radius: 36px; height: 36px; @@ -63,6 +68,7 @@ $segmented-control-margin-top: $default-space; $segmented-control-item-horizontal-padding: $default-space; $segmented-control-item-border-radius: 2 * $default-space; + .segmented-control-item { display: inline-block; font-size: 15px; @@ -102,6 +108,7 @@ $segmented-control-item-border-radius: 2 * $default-space; } $big-number-card-padding: 2 * $segmented-control-item-border-radius; + .big-number-card { padding: $big-number-card-padding; } diff --git a/app/assets/stylesheets/support_navigator_banner.scss b/app/assets/stylesheets/support_navigator_banner.scss index b72953590..aade2e1f2 100644 --- a/app/assets/stylesheets/support_navigator_banner.scss +++ b/app/assets/stylesheets/support_navigator_banner.scss @@ -9,6 +9,7 @@ bottom: 0; left: 0; z-index: 1000; + a{ color: #c3d9ff; } diff --git a/app/assets/stylesheets/users.scss b/app/assets/stylesheets/users.scss index cca4eb4eb..595095334 100644 --- a/app/assets/stylesheets/users.scss +++ b/app/assets/stylesheets/users.scss @@ -7,9 +7,11 @@ .default_data_block { margin-top: 20px; background-color: #FFFFFF; + .show-block { width: 100%; } + .body { height: auto; } @@ -26,6 +28,7 @@ .white-back { margin: 20px !important; + #previsualisation { margin-top: 30px; } @@ -35,6 +38,7 @@ background-color: #FFFFFF; box-shadow: 0 0 1px 0 rgba(0, 0, 0, 0.5); padding: 20px; + .action { background-color: #E45B51; text-align: center; @@ -46,12 +50,15 @@ border: none; padding: 10px; } + .action:hover { color: $light-blue; } + .padding-left-30 { padding-left: 30px; } + h3 { margin-bottom: 20px; } From f519896e54308fca79a6acbcb7f844af2fbdafad Mon Sep 17 00:00:00 2001 From: gregoirenovel Date: Tue, 11 Apr 2017 18:37:02 +0200 Subject: [PATCH 08/45] Hex colors must be 6 characters long --- app/assets/stylesheets/carte.scss | 2 +- app/assets/stylesheets/custom-mails.scss | 2 +- app/assets/stylesheets/navbar.scss | 4 ++-- app/assets/stylesheets/typeahead.scss | 6 +++--- 4 files changed, 7 insertions(+), 7 deletions(-) diff --git a/app/assets/stylesheets/carte.scss b/app/assets/stylesheets/carte.scss index e83aa97eb..d04a0b78d 100644 --- a/app/assets/stylesheets/carte.scss +++ b/app/assets/stylesheets/carte.scss @@ -126,7 +126,7 @@ .info h4 { margin: 0 0 5px; - color: #777; + color: #777777; } #search_by_address { diff --git a/app/assets/stylesheets/custom-mails.scss b/app/assets/stylesheets/custom-mails.scss index 6552f757f..c17eaeffa 100644 --- a/app/assets/stylesheets/custom-mails.scss +++ b/app/assets/stylesheets/custom-mails.scss @@ -2,7 +2,7 @@ padding: 20px; .wrapper { - background-color: #FFF; + background-color: #FFFFFF; box-shadow: 0 0 1px 0 rgba(0, 0, 0, 0.5); margin: 15px auto; max-width: 800px; diff --git a/app/assets/stylesheets/navbar.scss b/app/assets/stylesheets/navbar.scss index 5b2a454f4..f8b0576e7 100644 --- a/app/assets/stylesheets/navbar.scss +++ b/app/assets/stylesheets/navbar.scss @@ -140,7 +140,7 @@ .btn-nav:hover { background-color: #eeeeee; - border-color: #eeeeee #eeeeee #ddd; + border-color: #eeeeee #eeeeee #dddddd; border-bottom-left-radius: 0; border-bottom-right-radius: 0; } @@ -175,7 +175,7 @@ transform: rotate(-45deg); width: 150px; background-color: #008cba; - color: #fff; + color: #ffffff; padding: 5px; font-size: 15px; font-weight: 700; diff --git a/app/assets/stylesheets/typeahead.scss b/app/assets/stylesheets/typeahead.scss index 568c10453..c13455f48 100644 --- a/app/assets/stylesheets/typeahead.scss +++ b/app/assets/stylesheets/typeahead.scss @@ -4,7 +4,7 @@ .tt-menu { padding: 8px 0; - background-color: #fff; + background-color: #ffffff; border: 1px solid rgba(0, 0, 0, 0.2); -webkit-border-radius: 8px; -moz-border-radius: 8px; @@ -22,12 +22,12 @@ .tt-suggestion:hover { cursor: pointer; - color: #fff; + color: #ffffff; background-color: #0097cf; } .tt-suggestion.tt-cursor { - color: #fff; + color: #ffffff; background-color: #0097cf; } From c9ff601b28c999cda125817e6160d9630dfc4264 Mon Sep 17 00:00:00 2001 From: gregoirenovel Date: Tue, 11 Apr 2017 18:40:01 +0200 Subject: [PATCH 09/45] Hex colors must be written with uppercase letters --- app/assets/stylesheets/carte.scss | 2 +- app/assets/stylesheets/description.scss | 2 +- app/assets/stylesheets/dossier_show.scss | 4 ++-- app/assets/stylesheets/dossiers.scss | 2 +- app/assets/stylesheets/navbar.scss | 14 +++++++------- .../stylesheets/support_navigator_banner.scss | 2 +- app/assets/stylesheets/typeahead.scss | 10 +++++----- 7 files changed, 18 insertions(+), 18 deletions(-) diff --git a/app/assets/stylesheets/carte.scss b/app/assets/stylesheets/carte.scss index d04a0b78d..91f44ff18 100644 --- a/app/assets/stylesheets/carte.scss +++ b/app/assets/stylesheets/carte.scss @@ -78,7 +78,7 @@ } #map.mode-delete path:hover { - fill: #4d4d4d !important; + fill: #4D4D4D !important; } #map div.polygon-elbow { diff --git a/app/assets/stylesheets/description.scss b/app/assets/stylesheets/description.scss index 5669c8462..a658d1cb7 100644 --- a/app/assets/stylesheets/description.scss +++ b/app/assets/stylesheets/description.scss @@ -95,7 +95,7 @@ } .datepicker-switch { - color: #0086b3; + color: #0086B3; text-decoration: underline; } diff --git a/app/assets/stylesheets/dossier_show.scss b/app/assets/stylesheets/dossier_show.scss index 74ff23cb6..48992a25a 100644 --- a/app/assets/stylesheets/dossier_show.scss +++ b/app/assets/stylesheets/dossier_show.scss @@ -14,7 +14,7 @@ .commentaires { max-height: 350px; overflow-y: scroll; - background: linear-gradient(to bottom, rgba(0, 0, 0, 0.075) 0%, rgba(219, 219, 219, 0) 50%, rgba(250, 251, 253, 0.18) 51%, #ffffff 100%); + background: linear-gradient(to bottom, rgba(0, 0, 0, 0.075) 0%, rgba(219, 219, 219, 0) 50%, rgba(250, 251, 253, 0.18) 51%, #FFFFFF 100%); } .no-commentaires { @@ -77,7 +77,7 @@ #private-fields { .text-primary { - color: #337ab7; + color: #337AB7; } } diff --git a/app/assets/stylesheets/dossiers.scss b/app/assets/stylesheets/dossiers.scss index 73499621d..8c6ff80f9 100644 --- a/app/assets/stylesheets/dossiers.scss +++ b/app/assets/stylesheets/dossiers.scss @@ -38,7 +38,7 @@ h5 span { } #dossiers_list tr:hover{ - background-color: #eeeeee; + background-color: #EEEEEE; cursor: pointer; } diff --git a/app/assets/stylesheets/navbar.scss b/app/assets/stylesheets/navbar.scss index f8b0576e7..9ee68238f 100644 --- a/app/assets/stylesheets/navbar.scss +++ b/app/assets/stylesheets/navbar.scss @@ -139,22 +139,22 @@ } .btn-nav:hover { - background-color: #eeeeee; - border-color: #eeeeee #eeeeee #dddddd; + background-color: #EEEEEE; + border-color: #EEEEEE #EEEEEE #DDDDDD; border-bottom-left-radius: 0; border-bottom-right-radius: 0; } .btn-nav.text-info:hover { - color: #23527c; + color: #23527C; } .btn-nav.text-success:hover { - color: #3c763d; + color: #3C763D; } .btn-nav.text-danger:hover { - color: #a94442; + color: #A94442; } .navbar { @@ -174,8 +174,8 @@ right: -35px; transform: rotate(-45deg); width: 150px; - background-color: #008cba; - color: #ffffff; + background-color: #008CBA; + color: #FFFFFF; padding: 5px; font-size: 15px; font-weight: 700; diff --git a/app/assets/stylesheets/support_navigator_banner.scss b/app/assets/stylesheets/support_navigator_banner.scss index aade2e1f2..01e3e8154 100644 --- a/app/assets/stylesheets/support_navigator_banner.scss +++ b/app/assets/stylesheets/support_navigator_banner.scss @@ -11,6 +11,6 @@ z-index: 1000; a{ - color: #c3d9ff; + color: #C3D9FF; } } diff --git a/app/assets/stylesheets/typeahead.scss b/app/assets/stylesheets/typeahead.scss index c13455f48..454b9d01e 100644 --- a/app/assets/stylesheets/typeahead.scss +++ b/app/assets/stylesheets/typeahead.scss @@ -4,7 +4,7 @@ .tt-menu { padding: 8px 0; - background-color: #ffffff; + background-color: #FFFFFF; border: 1px solid rgba(0, 0, 0, 0.2); -webkit-border-radius: 8px; -moz-border-radius: 8px; @@ -22,12 +22,12 @@ .tt-suggestion:hover { cursor: pointer; - color: #ffffff; - background-color: #0097cf; + color: #FFFFFF; + background-color: #0097CF; } .tt-suggestion.tt-cursor { - color: #ffffff; - background-color: #0097cf; + color: #FFFFFF; + background-color: #0097CF; } From af7b611dd0ad2ad82bdff7c32faceeaeb72a7766 Mon Sep 17 00:00:00 2001 From: gregoirenovel Date: Tue, 11 Apr 2017 18:45:35 +0200 Subject: [PATCH 10/45] < 1 numbers must all have a leading zero --- app/assets/stylesheets/_card.scss | 2 +- app/assets/stylesheets/carte.scss | 8 ++++---- app/assets/stylesheets/typeahead.scss | 6 +++--- 3 files changed, 8 insertions(+), 8 deletions(-) diff --git a/app/assets/stylesheets/_card.scss b/app/assets/stylesheets/_card.scss index 118715fba..02cd722cc 100644 --- a/app/assets/stylesheets/_card.scss +++ b/app/assets/stylesheets/_card.scss @@ -1,6 +1,6 @@ .card { background: #FFFFFF; padding: 15px; - box-shadow: 0 1px 3px rgba(0, 0, 0, .15); + box-shadow: 0 1px 3px rgba(0, 0, 0, 0.15); border-radius: 2px; } diff --git a/app/assets/stylesheets/carte.scss b/app/assets/stylesheets/carte.scss index 91f44ff18..8f1499eb4 100644 --- a/app/assets/stylesheets/carte.scss +++ b/app/assets/stylesheets/carte.scss @@ -51,7 +51,7 @@ top: 0; left: 0; pointer-events: none; - box-shadow: inset -100px 0 100px -100px rgba(0, 0, 0, .25); + box-shadow: inset -100px 0 100px -100px rgba(0, 0, 0, 0.25); width: 100%; height: 100%; z-index: 2001; @@ -69,7 +69,7 @@ position: absolute; z-index: 1001; fill: #D7217E; - fill-opacity: .75; + fill-opacity: 0.75; -webkit-filter: none; } @@ -82,8 +82,8 @@ } #map div.polygon-elbow { - -webkit-transition: opacity .25s; - box-shadow: 0 0 0 2px #FFFFFF, 0 0 10px rgba(0, 0, 0, .35); + -webkit-transition: opacity 0.25s; + box-shadow: 0 0 0 2px #FFFFFF, 0 0 10px rgba(0, 0, 0, 0.35); border: 5px solid #D7217E; border-radius: 10px; transition: opacity 0.25s; diff --git a/app/assets/stylesheets/typeahead.scss b/app/assets/stylesheets/typeahead.scss index 454b9d01e..e10668176 100644 --- a/app/assets/stylesheets/typeahead.scss +++ b/app/assets/stylesheets/typeahead.scss @@ -9,9 +9,9 @@ -webkit-border-radius: 8px; -moz-border-radius: 8px; border-radius: 8px; - -webkit-box-shadow: 0 5px 10px rgba(0, 0, 0, .2); - -moz-box-shadow: 0 5px 10px rgba(0, 0, 0, .2); - box-shadow: 0 5px 10px rgba(0, 0, 0, .2); + -webkit-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2); + -moz-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2); + box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2); } .tt-suggestion { From f3ec7f1d42970cea524a13c43ff928403a043070 Mon Sep 17 00:00:00 2001 From: gregoirenovel Date: Wed, 12 Apr 2017 09:37:06 +0200 Subject: [PATCH 11/45] Indent with two spaces --- app/assets/stylesheets/typeahead.scss | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/assets/stylesheets/typeahead.scss b/app/assets/stylesheets/typeahead.scss index e10668176..61ba54b83 100644 --- a/app/assets/stylesheets/typeahead.scss +++ b/app/assets/stylesheets/typeahead.scss @@ -1,5 +1,5 @@ .twitter-typeahead { - width: 100%; // http://stackoverflow.com/questions/17957513/extending-the-width-of-bootstrap-typeahead-to-match-input-field + width: 100%; // http://stackoverflow.com/questions/17957513/extending-the-width-of-bootstrap-typeahead-to-match-input-field } .tt-menu { From 4b39e76c8add20f85a4faf64678b87630e8c68f3 Mon Sep 17 00:00:00 2001 From: gregoirenovel Date: Wed, 12 Apr 2017 10:02:20 +0200 Subject: [PATCH 12/45] Use extend only with placeholders --- app/assets/stylesheets/carte.scss | 8 -------- app/assets/stylesheets/stats.scss | 1 - app/views/stats/index.html.haml | 8 ++++---- app/views/users/carte/_map.html.haml | 6 +++--- 4 files changed, 7 insertions(+), 16 deletions(-) diff --git a/app/assets/stylesheets/carte.scss b/app/assets/stylesheets/carte.scss index 8f1499eb4..72cfa3a86 100644 --- a/app/assets/stylesheets/carte.scss +++ b/app/assets/stylesheets/carte.scss @@ -5,24 +5,16 @@ #carte_page { #map { - @extend .col-md-12; - @extend .col-lg-12; - margin-left: 15px; width: 90%; height: 600px; } #map.qp, #map.cadastre { - @extend .col-md-9; - @extend .col-lg-9; - width: 70%; } .list { - @extend .col-md-3; - @extend .col-lg-3; margin-bottom: 20px; h3 { diff --git a/app/assets/stylesheets/stats.scss b/app/assets/stylesheets/stats.scss index 7c58d62bb..42fef6ac1 100644 --- a/app/assets/stylesheets/stats.scss +++ b/app/assets/stylesheets/stats.scss @@ -33,7 +33,6 @@ $statistiques-padding-top: $default-space * 2; $stat-card-margin-bottom: 3 * $default-space; .stat-card { - @extend .card; margin-bottom: $stat-card-margin-bottom; border-radius: 5px; box-shadow: none; diff --git a/app/views/stats/index.html.haml b/app/views/stats/index.html.haml index 19048dfe1..88e596ab4 100644 --- a/app/views/stats/index.html.haml +++ b/app/views/stats/index.html.haml @@ -6,7 +6,7 @@ .stat-cards - .stat-card.stat-card-half.pull-left + .card.stat-card.stat-card-half.pull-left %ul.segmented-control.pull-right %li.segmented-control-item.segmented-control-item-active{ :onclick => "TPS.toggleChart(event, '.cumulative-procedures-chart');" } Cumul @@ -23,7 +23,7 @@ = line_chart @procedures_30_days_flow, :colors => ["rgba(61, 149, 236, 1)"] - .stat-card.stat-card-half.pull-left + .card.stat-card.stat-card-half.pull-left %ul.segmented-control.pull-right %li.segmented-control-item.segmented-control-item-active{ :onclick => "TPS.toggleChart(event, '.cumulative-dossiers-chart');" } Cumul @@ -40,12 +40,12 @@ = line_chart @dossiers_30_days_flow, :colors => ["rgba(61, 149, 236, 1)"] - .stat-card.stat-card-half.big-number-card.pull-left + .card.stat-card.stat-card-half.big-number-card.pull-left %span.big-number-card-title TOTAL DÉMARCHES DÉMATÉRIALISÉES %span.big-number-card-number = number_with_delimiter(@procedures_count) - .stat-card.stat-card-half.big-number-card.pull-left + .card.stat-card.stat-card-half.big-number-card.pull-left %span.big-number-card-title TOTAL DOSSIERS DÉPOSÉS %span.big-number-card-number = number_with_delimiter(@dossiers_count) diff --git a/app/views/users/carte/_map.html.haml b/app/views/users/carte/_map.html.haml index 8915c35d0..ffd2b3343 100644 --- a/app/views/users/carte/_map.html.haml +++ b/app/views/users/carte/_map.html.haml @@ -1,12 +1,12 @@ #carte_page.row - #map{ class: dossier.procedure.module_api_carto.classes } + .col-md-12.col-lg-12#map{ class: dossier.procedure.module_api_carto.classes } - if dossier.procedure.module_api_carto.quartiers_prioritaires - #qp.list + .col-md-9.col-lg-9#qp.col-md-3.col-lg-3.list %h3.text-info Quartiers prioritaites %ul - if dossier.procedure.module_api_carto.cadastre - #cadastre.list + .col-md-9.col-lg-9#cadastre.col-md-3.col-lg-3.list %h3.text-warning Cadastres %ul From 4f0de677abd15ec52158c428f9cdc5c45b1c035a Mon Sep 17 00:00:00 2001 From: gregoirenovel Date: Wed, 12 Apr 2017 10:02:22 +0200 Subject: [PATCH 13/45] Begin pseudo elements with double colons --- app/assets/stylesheets/application.scss | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/app/assets/stylesheets/application.scss b/app/assets/stylesheets/application.scss index 5a236ae5a..e0c15dd3e 100644 --- a/app/assets/stylesheets/application.scss +++ b/app/assets/stylesheets/application.scss @@ -53,12 +53,12 @@ form { overflow: hidden; } -#wrap:after { +#wrap::after { content: ""; display: block; } -#footer, #wrap:after { +#footer, #wrap::after { height: 50px; } @@ -202,11 +202,11 @@ div.pagination { right: 50px; } -#fconnect-access:before { +#fconnect-access::before { left: 22.7% !important; } -#fconnect-access:after { +#fconnect-access::after { left: 23% !important; } From 4b575bd386cefc7592cd0951c58f44cbe4d44983 Mon Sep 17 00:00:00 2001 From: gregoirenovel Date: Wed, 12 Apr 2017 10:29:46 +0200 Subject: [PATCH 14/45] Commas are followed by a space --- app/assets/stylesheets/navbar.scss | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/assets/stylesheets/navbar.scss b/app/assets/stylesheets/navbar.scss index 9ee68238f..2d6024f5d 100644 --- a/app/assets/stylesheets/navbar.scss +++ b/app/assets/stylesheets/navbar.scss @@ -23,7 +23,7 @@ #home { text-align: center; - box-shadow: 0 1px 2px 0 rgba(0,0,0,0.5); + box-shadow: 0 1px 2px 0 rgba(0, 0, 0, 0.5); background-color: #003189; height: 60px; @@ -44,7 +44,7 @@ #navbar-body { min-height: 60px; background-color: #FFFFFF; - box-shadow: 0 1px 2px 0 rgba(50,50,50,0.5); + box-shadow: 0 1px 2px 0 rgba(50, 50, 50, 0.5); padding-left: 50px; .main-info { From 8906801d6ccdab665481b1408bc50d3fad5366b0 Mon Sep 17 00:00:00 2001 From: gregoirenovel Date: Wed, 12 Apr 2017 10:31:31 +0200 Subject: [PATCH 15/45] Comment literals must be followed by a space --- app/assets/stylesheets/application.scss | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/assets/stylesheets/application.scss b/app/assets/stylesheets/application.scss index e0c15dd3e..36c5f6332 100644 --- a/app/assets/stylesheets/application.scss +++ b/app/assets/stylesheets/application.scss @@ -1,5 +1,5 @@ -//= depend_on_asset "layers.png" -//= depend_on_asset "layers-2x.png" +// = depend_on_asset "layers.png" +// = depend_on_asset "layers-2x.png" // This is a manifest file that'll be compiled into application.css, which will include all the files // listed below. From 0789cfd311bda85ce174e86c3c72be9e70cad12d Mon Sep 17 00:00:00 2001 From: gregoirenovel Date: Wed, 12 Apr 2017 10:33:16 +0200 Subject: [PATCH 16/45] Colons must be followed by a single space --- app/assets/stylesheets/admin_type_de_champ.scss | 4 ++-- app/assets/stylesheets/france_connect_particulier.scss | 4 ++-- app/assets/stylesheets/login.scss | 10 +++++----- app/assets/stylesheets/support_navigator_banner.scss | 2 +- 4 files changed, 10 insertions(+), 10 deletions(-) diff --git a/app/assets/stylesheets/admin_type_de_champ.scss b/app/assets/stylesheets/admin_type_de_champ.scss index 3baa6f6ce..b21fae2a1 100644 --- a/app/assets/stylesheets/admin_type_de_champ.scss +++ b/app/assets/stylesheets/admin_type_de_champ.scss @@ -4,7 +4,7 @@ margin-bottom: 10px; margin-left: 0; margin-right: 0; - text-align:center; + text-align: center; padding-bottom: 8px; color: #FFFFFF; @@ -37,7 +37,7 @@ .form-group { vertical-align: top; - margin-right: 15px; + margin-right: 15px; } .description { diff --git a/app/assets/stylesheets/france_connect_particulier.scss b/app/assets/stylesheets/france_connect_particulier.scss index 98cb7738e..61bafa91a 100644 --- a/app/assets/stylesheets/france_connect_particulier.scss +++ b/app/assets/stylesheets/france_connect_particulier.scss @@ -1,5 +1,5 @@ #france_connect_particulier_email{ width: 300px; - margin-left:auto; - margin-right:auto; + margin-left: auto; + margin-right: auto; } diff --git a/app/assets/stylesheets/login.scss b/app/assets/stylesheets/login.scss index 195eacc23..ae31e1ed6 100644 --- a/app/assets/stylesheets/login.scss +++ b/app/assets/stylesheets/login.scss @@ -1,9 +1,9 @@ #form_login{ text-align: center; - max-width:500px; + max-width: 500px; - margin-left:auto; - margin-right:auto; + margin-left: auto; + margin-right: auto; padding: 20px; @@ -16,8 +16,8 @@ #new_user{ width: 80%; - margin-left:auto; - margin-right:auto; + margin-left: auto; + margin-right: auto; } hr { diff --git a/app/assets/stylesheets/support_navigator_banner.scss b/app/assets/stylesheets/support_navigator_banner.scss index 01e3e8154..b10939527 100644 --- a/app/assets/stylesheets/support_navigator_banner.scss +++ b/app/assets/stylesheets/support_navigator_banner.scss @@ -1,6 +1,6 @@ #support_navigator_banner{ position: fixed; - text-align:center; + text-align: center; line-height: 2em; color: #FFFFFF; background-color: #990000; From 8cad7361cfbf667ce9cf6141c6f0f786827ad556 Mon Sep 17 00:00:00 2001 From: gregoirenovel Date: Wed, 12 Apr 2017 10:42:11 +0200 Subject: [PATCH 17/45] An operator must be surrounded by single spaces --- app/assets/stylesheets/application.scss | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/assets/stylesheets/application.scss b/app/assets/stylesheets/application.scss index 36c5f6332..d5be7f827 100644 --- a/app/assets/stylesheets/application.scss +++ b/app/assets/stylesheets/application.scss @@ -125,7 +125,7 @@ form { min-height: 100%; font-size: 100px; text-align: right; - filter: alpha(opacity=0); + filter: alpha(opacity = 0); opacity: 0; outline: none; background: #FFFFFF; From 5e1c99d6421b9c949c6f9bb0019853e1436fb72a Mon Sep 17 00:00:00 2001 From: gregoirenovel Date: Wed, 12 Apr 2017 10:42:48 +0200 Subject: [PATCH 18/45] Opening curly braces must be preceded by one single space --- app/assets/stylesheets/admin_index.scss | 2 +- app/assets/stylesheets/admin_type_de_champ.scss | 6 +++--- app/assets/stylesheets/description.scss | 4 ++-- app/assets/stylesheets/dossier_show.scss | 2 +- app/assets/stylesheets/dossiers.scss | 2 +- app/assets/stylesheets/etapes.scss | 10 +++++----- app/assets/stylesheets/france_connect_particulier.scss | 2 +- app/assets/stylesheets/landing.scss | 10 +++++----- app/assets/stylesheets/login.scss | 4 ++-- app/assets/stylesheets/navbar.scss | 8 ++++---- app/assets/stylesheets/pref_list_menu.scss | 2 +- app/assets/stylesheets/print.scss | 2 +- app/assets/stylesheets/procedure.scss | 2 +- app/assets/stylesheets/search.scss | 4 ++-- app/assets/stylesheets/support_navigator_banner.scss | 4 ++-- app/assets/stylesheets/switch_menu.scss | 2 +- app/assets/stylesheets/users.scss | 2 +- 17 files changed, 34 insertions(+), 34 deletions(-) diff --git a/app/assets/stylesheets/admin_index.scss b/app/assets/stylesheets/admin_index.scss index 8a4d10b22..fe6c3d73c 100644 --- a/app/assets/stylesheets/admin_index.scss +++ b/app/assets/stylesheets/admin_index.scss @@ -1,4 +1,4 @@ -#admin_index{ +#admin_index { margin-left: 2em; margin-right: 2em; diff --git a/app/assets/stylesheets/admin_type_de_champ.scss b/app/assets/stylesheets/admin_type_de_champ.scss index b21fae2a1..6c8a5ffcb 100644 --- a/app/assets/stylesheets/admin_type_de_champ.scss +++ b/app/assets/stylesheets/admin_type_de_champ.scss @@ -1,4 +1,4 @@ -.header_section{ +.header_section { background-color: rgb(0, 49, 137); margin-top: 20px; margin-bottom: 10px; @@ -22,7 +22,7 @@ } } -#liste_champ{ +#liste_champ { .form-inline { margin-bottom: 30px; } @@ -31,7 +31,7 @@ display: inline-block !important; } - .form-group.drop_down_list{ + .form-group.drop_down_list { display: none; } diff --git a/app/assets/stylesheets/description.scss b/app/assets/stylesheets/description.scss index a658d1cb7..66b3f5e9d 100644 --- a/app/assets/stylesheets/description.scss +++ b/app/assets/stylesheets/description.scss @@ -7,7 +7,7 @@ .show-block { width: 90%; - .body{ + .body { padding: 15px; } } @@ -19,7 +19,7 @@ } } -.page-header{ +.page-header { border-bottom: 1px solid #CCCCCC !important; } diff --git a/app/assets/stylesheets/dossier_show.scss b/app/assets/stylesheets/dossier_show.scss index 48992a25a..b453da366 100644 --- a/app/assets/stylesheets/dossier_show.scss +++ b/app/assets/stylesheets/dossier_show.scss @@ -118,7 +118,7 @@ text-align: end; } - .btn-action{ + .btn-action { border: none; margin: 20px 0 40px 0; } diff --git a/app/assets/stylesheets/dossiers.scss b/app/assets/stylesheets/dossiers.scss index 8c6ff80f9..3793159f2 100644 --- a/app/assets/stylesheets/dossiers.scss +++ b/app/assets/stylesheets/dossiers.scss @@ -37,7 +37,7 @@ h5 span { } } -#dossiers_list tr:hover{ +#dossiers_list tr:hover { background-color: #EEEEEE; cursor: pointer; } diff --git a/app/assets/stylesheets/etapes.scss b/app/assets/stylesheets/etapes.scss index 637ea23f8..58ed601f4 100644 --- a/app/assets/stylesheets/etapes.scss +++ b/app/assets/stylesheets/etapes.scss @@ -1,15 +1,15 @@ -.etape_2{ - .etapes_menu{ - #dossier_siret{ +.etape_2 { + .etapes_menu { + #dossier_siret { width: 200px; } - button{ + button { margin-top: 8px; } } - .etapes_informations{ + .etapes_informations { padding-top: 15px; } } diff --git a/app/assets/stylesheets/france_connect_particulier.scss b/app/assets/stylesheets/france_connect_particulier.scss index 61bafa91a..03d671366 100644 --- a/app/assets/stylesheets/france_connect_particulier.scss +++ b/app/assets/stylesheets/france_connect_particulier.scss @@ -1,4 +1,4 @@ -#france_connect_particulier_email{ +#france_connect_particulier_email { width: 300px; margin-left: auto; margin-right: auto; diff --git a/app/assets/stylesheets/landing.scss b/app/assets/stylesheets/landing.scss index 6d68c655b..a36884f41 100644 --- a/app/assets/stylesheets/landing.scss +++ b/app/assets/stylesheets/landing.scss @@ -9,7 +9,7 @@ background-position: top center; background-repeat: no-repeat; - h5{ + h5 { color: #808080; } @@ -33,16 +33,16 @@ } } -.background-tps{ +.background-tps { background-color: #668AEA; color: #FFFFFF; } -.latest_release{ +.latest_release { margin-left: 1% } -#landing_body{ +#landing_body { .split-hr-left { margin-left: auto; margin-right: auto; @@ -54,7 +54,7 @@ width: 40%; } - #etapes, #request_access{ + #etapes, #request_access { margin-top: 20px; margin-bottom: 20px; } diff --git a/app/assets/stylesheets/login.scss b/app/assets/stylesheets/login.scss index ae31e1ed6..c3d162d47 100644 --- a/app/assets/stylesheets/login.scss +++ b/app/assets/stylesheets/login.scss @@ -1,4 +1,4 @@ -#form_login{ +#form_login { text-align: center; max-width: 500px; @@ -14,7 +14,7 @@ } } - #new_user{ + #new_user { width: 80%; margin-left: auto; margin-right: auto; diff --git a/app/assets/stylesheets/navbar.scss b/app/assets/stylesheets/navbar.scss index 2d6024f5d..72f6aa02c 100644 --- a/app/assets/stylesheets/navbar.scss +++ b/app/assets/stylesheets/navbar.scss @@ -9,7 +9,7 @@ border-radius: 0; height: 60px; - #title_navbar{ + #title_navbar { color: #FFFFFF; font-weight: bold; font-size: 1.8em; @@ -17,7 +17,7 @@ overflow: hidden; } - #title_navbar:hover{ + #title_navbar:hover { text-decoration: none; } @@ -96,7 +96,7 @@ } } - #sign_in{ + #sign_in { margin-top: 7px; .btn { @@ -105,7 +105,7 @@ } } - #sign_out{ + #sign_out { height: 60px; .fa { diff --git a/app/assets/stylesheets/pref_list_menu.scss b/app/assets/stylesheets/pref_list_menu.scss index ebea47305..84dee03a5 100644 --- a/app/assets/stylesheets/pref_list_menu.scss +++ b/app/assets/stylesheets/pref_list_menu.scss @@ -1,4 +1,4 @@ -#pref_list_menu{ +#pref_list_menu { z-index: 100; display: none; position: fixed; diff --git a/app/assets/stylesheets/print.scss b/app/assets/stylesheets/print.scss index bdbc39347..acae37478 100644 --- a/app/assets/stylesheets/print.scss +++ b/app/assets/stylesheets/print.scss @@ -3,7 +3,7 @@ margin: 0; } - #main_div{ + #main_div { margin-left: 50px; margin-right: 0; } diff --git a/app/assets/stylesheets/procedure.scss b/app/assets/stylesheets/procedure.scss index bb353956f..2bc5b4e87 100644 --- a/app/assets/stylesheets/procedure.scss +++ b/app/assets/stylesheets/procedure.scss @@ -2,7 +2,7 @@ display: none; } -#procedure_lien_demarche{ +#procedure_lien_demarche { display: none; } diff --git a/app/assets/stylesheets/search.scss b/app/assets/stylesheets/search.scss index ce3219ac5..af9a8e362 100644 --- a/app/assets/stylesheets/search.scss +++ b/app/assets/stylesheets/search.scss @@ -1,4 +1,4 @@ -#search-block{ +#search-block { margin: 15px 10px 0 10px; height: 30px; } @@ -7,7 +7,7 @@ height: 34px; } -#mask_search{ +#mask_search { display: none; position: fixed; background-color: rgba(0, 0, 0, 0.4); diff --git a/app/assets/stylesheets/support_navigator_banner.scss b/app/assets/stylesheets/support_navigator_banner.scss index b10939527..9371dd4d2 100644 --- a/app/assets/stylesheets/support_navigator_banner.scss +++ b/app/assets/stylesheets/support_navigator_banner.scss @@ -1,4 +1,4 @@ -#support_navigator_banner{ +#support_navigator_banner { position: fixed; text-align: center; line-height: 2em; @@ -10,7 +10,7 @@ left: 0; z-index: 1000; - a{ + a { color: #C3D9FF; } } diff --git a/app/assets/stylesheets/switch_menu.scss b/app/assets/stylesheets/switch_menu.scss index a7c66e6c1..49fb5289c 100644 --- a/app/assets/stylesheets/switch_menu.scss +++ b/app/assets/stylesheets/switch_menu.scss @@ -1,4 +1,4 @@ -#switch_menu{ +#switch_menu { position: fixed; left: 10px; bottom: 10px; diff --git a/app/assets/stylesheets/users.scss b/app/assets/stylesheets/users.scss index 595095334..4e94a6e28 100644 --- a/app/assets/stylesheets/users.scss +++ b/app/assets/stylesheets/users.scss @@ -1,6 +1,6 @@ @import "variables"; -#users_index, #admins_index{ +#users_index, #admins_index { margin-left: 2rem; margin-right: 2rem; From 11e59439897125706048530ef0429087009a5691 Mon Sep 17 00:00:00 2001 From: gregoirenovel Date: Wed, 12 Apr 2017 10:51:35 +0200 Subject: [PATCH 19/45] Only one selector per line --- app/assets/stylesheets/application.scss | 9 ++++--- app/assets/stylesheets/backoffice.scss | 6 +++-- app/assets/stylesheets/carte.scss | 3 ++- .../stylesheets/default_data_block.scss | 9 +++++-- app/assets/stylesheets/description.scss | 5 +++- app/assets/stylesheets/dossier_show.scss | 18 +++++++++---- app/assets/stylesheets/dossiers.scss | 15 +++++++---- app/assets/stylesheets/landing.scss | 3 ++- app/assets/stylesheets/left_panel.scss | 26 ++++++++++++++----- app/assets/stylesheets/navbar.scss | 3 ++- app/assets/stylesheets/print.scss | 3 ++- app/assets/stylesheets/users.scss | 8 ++++-- 12 files changed, 77 insertions(+), 31 deletions(-) diff --git a/app/assets/stylesheets/application.scss b/app/assets/stylesheets/application.scss index d5be7f827..645c0c2a3 100644 --- a/app/assets/stylesheets/application.scss +++ b/app/assets/stylesheets/application.scss @@ -30,7 +30,8 @@ body { background-color: $light-blue; } -html, body { +html, +body { height: 100%; } @@ -58,7 +59,8 @@ form { display: block; } -#footer, #wrap::after { +#footer, +#wrap::after { height: 50px; } @@ -67,7 +69,8 @@ form { text-align: center; padding: 0; - a, p { + a, + p { color: #000000; } diff --git a/app/assets/stylesheets/backoffice.scss b/app/assets/stylesheets/backoffice.scss index b6ead167c..3aa7b1b80 100644 --- a/app/assets/stylesheets/backoffice.scss +++ b/app/assets/stylesheets/backoffice.scss @@ -1,4 +1,5 @@ -#backoffice_index, #backoffice_search { +#backoffice_index, +#backoffice_search { margin-left: 2rem; margin-right: 2rem; @@ -30,7 +31,8 @@ #onglets { ul { - li, li.active { + li, + li.active { a { margin-top: 12px; height: 45px; diff --git a/app/assets/stylesheets/carte.scss b/app/assets/stylesheets/carte.scss index 72cfa3a86..968b53e2f 100644 --- a/app/assets/stylesheets/carte.scss +++ b/app/assets/stylesheets/carte.scss @@ -10,7 +10,8 @@ height: 600px; } - #map.qp, #map.cadastre { + #map.qp, + #map.cadastre { width: 70%; } diff --git a/app/assets/stylesheets/default_data_block.scss b/app/assets/stylesheets/default_data_block.scss index 316ceac4a..237eaaf17 100644 --- a/app/assets/stylesheets/default_data_block.scss +++ b/app/assets/stylesheets/default_data_block.scss @@ -38,7 +38,10 @@ font-size: 18px; font-weight: bold; - .title, .title-no-expanse, .action, .count { + .title, + .title-no-expanse, + .action, + .count { height: 100%; line-height: 40px; padding: 0px; @@ -49,7 +52,9 @@ cursor: not-allowed; } - .title, .action, .count { + .title, + .action, + .count { cursor: pointer; } diff --git a/app/assets/stylesheets/description.scss b/app/assets/stylesheets/description.scss index 66b3f5e9d..24aabdac8 100644 --- a/app/assets/stylesheets/description.scss +++ b/app/assets/stylesheets/description.scss @@ -69,7 +69,10 @@ } } -.type_champ-drop_down_list, .type_champ-regions, .type_champ-departements, .type_champ-pays { +.type_champ-drop_down_list, +.type_champ-regions, +.type_champ-departements, +.type_champ-pays { @extend .col-md-4; @extend .col-lg-4; diff --git a/app/assets/stylesheets/dossier_show.scss b/app/assets/stylesheets/dossier_show.scss index b453da366..d7c77f88e 100644 --- a/app/assets/stylesheets/dossier_show.scss +++ b/app/assets/stylesheets/dossier_show.scss @@ -1,11 +1,13 @@ -#backoffice_dossier_show, #users_recapitulatif_dossier_show { +#backoffice_dossier_show, +#users_recapitulatif_dossier_show { #messages { .last-commentaire { display: block; background-color: #FFFFFF; - .content, .new-action { + .content, + .new-action { margin-bottom: 20px; } } @@ -24,7 +26,8 @@ } } - .last-commentaire, .commentaire { + .last-commentaire, + .commentaire { padding: 20px 0 0 20px; .comment-header { @@ -103,7 +106,11 @@ } } - #dossier, #pieces-jointes, .infos, #carto, #private-fields { + #dossier, + #pieces-jointes, + .infos, + #carto, + #private-fields { .body { padding: 20px 20px 0 20px; color: #000000; @@ -131,7 +138,8 @@ margin: 50px 0 0 15px; } - .action, .btn-action { + .action, + .btn-action { background-color: #E45B51; text-align: center; cursor: pointer; diff --git a/app/assets/stylesheets/dossiers.scss b/app/assets/stylesheets/dossiers.scss index 3793159f2..c0a817739 100644 --- a/app/assets/stylesheets/dossiers.scss +++ b/app/assets/stylesheets/dossiers.scss @@ -42,20 +42,24 @@ h5 span { cursor: pointer; } -#procedure_list, #notifications_list { +#procedure_list, +#notifications_list { margin-left: -10px; margin-top: 20px; - a, a:hover { + a, + a:hover { color: #FFFFFF; text-decoration: none; } - .procedure_list_element.active, .notification.active { + .procedure_list_element.active, + .notification.active { background-color: #668ABD; } - .procedure_list_element, .notification { + .procedure_list_element, + .notification { padding: 15px 40px 15px 20px; cursor: pointer; line-height: 1.8em; @@ -65,7 +69,8 @@ h5 span { } } - .procedure_list_element:hover, .notification:hover { + .procedure_list_element:hover, + .notification:hover { background-color: #668ABD; cursor: pointer; } diff --git a/app/assets/stylesheets/landing.scss b/app/assets/stylesheets/landing.scss index a36884f41..767ffec5c 100644 --- a/app/assets/stylesheets/landing.scss +++ b/app/assets/stylesheets/landing.scss @@ -54,7 +54,8 @@ width: 40%; } - #etapes, #request_access { + #etapes, + #request_access { margin-top: 20px; margin-bottom: 20px; } diff --git a/app/assets/stylesheets/left_panel.scss b/app/assets/stylesheets/left_panel.scss index df1816f05..8d17f86a7 100644 --- a/app/assets/stylesheets/left_panel.scss +++ b/app/assets/stylesheets/left_panel.scss @@ -43,7 +43,8 @@ margin: 0 0 0 8px; } - .dossiers-en-cours, .en-cours { + .dossiers-en-cours, + .en-cours { margin-top: 20px; } @@ -65,7 +66,10 @@ } } - .dossiers-en-cours, .nouveaux-dossiers, .nouvelles-notifications, .en-cours { + .dossiers-en-cours, + .nouveaux-dossiers, + .nouvelles-notifications, + .en-cours { margin: 5px auto 0 20px; width: 150px; } @@ -90,7 +94,9 @@ width: 100%; } - .close-dossier, .refuse-dossier, .forget-dossier { + .close-dossier, + .refuse-dossier, + .forget-dossier { border: 1px solid #FFFFFF; border-radius: 25px; margin: 5px; @@ -99,7 +105,9 @@ width: 60px; } - .close-dossier:hover, .refuse-dossier:hover, .forget-dossier:hover { + .close-dossier:hover, + .refuse-dossier:hover, + .forget-dossier:hover { color: #000000; border-color: #000000; } @@ -143,7 +151,8 @@ background-color: #FFFFFF; } - #switch-procedures:hover, #switch-notifications:hover { + #switch-procedures:hover, + #switch-notifications:hover { background-color: #668AEA; } @@ -197,14 +206,17 @@ .notification { padding: 10px 2px 10px 15px; - .dossier, .updated-at { + .dossier, + .updated-at { display: inline-block; color: #CCCCCC; font-size: 12px; text-align: left; } - .dossier-index, .updated-at-index, .count { + .dossier-index, + .updated-at-index, + .count { display: inline-block; color: #FFFFFF; font-size: 14px; diff --git a/app/assets/stylesheets/navbar.scss b/app/assets/stylesheets/navbar.scss index 72f6aa02c..455d5eb5a 100644 --- a/app/assets/stylesheets/navbar.scss +++ b/app/assets/stylesheets/navbar.scss @@ -207,7 +207,8 @@ color: $light-blue; } -.button_navbar:hover, .button-navbar-action:hover { +.button_navbar:hover, +.button-navbar-action:hover { text-decoration: none; } diff --git a/app/assets/stylesheets/print.scss b/app/assets/stylesheets/print.scss index acae37478..51fe5ca57 100644 --- a/app/assets/stylesheets/print.scss +++ b/app/assets/stylesheets/print.scss @@ -1,5 +1,6 @@ @media print { - html, body { + html, + body { margin: 0; } diff --git a/app/assets/stylesheets/users.scss b/app/assets/stylesheets/users.scss index 4e94a6e28..e4988dbb3 100644 --- a/app/assets/stylesheets/users.scss +++ b/app/assets/stylesheets/users.scss @@ -1,6 +1,7 @@ @import "variables"; -#users_index, #admins_index { +#users_index, +#admins_index { margin-left: 2rem; margin-right: 2rem; @@ -34,7 +35,10 @@ } } -.white-back, #users_siret_index, #description_page, #carto_page { +.white-back, +#users_siret_index, +#description_page, +#carto_page { background-color: #FFFFFF; box-shadow: 0 0 1px 0 rgba(0, 0, 0, 0.5); padding: 20px; From 0316bac137da78939e82af88335f4805c7b60c17 Mon Sep 17 00:00:00 2001 From: gregoirenovel Date: Wed, 12 Apr 2017 10:52:14 +0200 Subject: [PATCH 20/45] Use double-quoted strings --- app/assets/stylesheets/carte.scss | 4 ++-- app/assets/stylesheets/landing.scss | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/app/assets/stylesheets/carte.scss b/app/assets/stylesheets/carte.scss index 968b53e2f..de89ef3ee 100644 --- a/app/assets/stylesheets/carte.scss +++ b/app/assets/stylesheets/carte.scss @@ -29,7 +29,7 @@ } .leaflet-container path { - cursor: url('/assets/edit.png'), default !important; + cursor: url("/assets/edit.png"), default !important; } #infos_dossier { @@ -51,7 +51,7 @@ } #map.mode-create { - cursor: url('/assets/pencil.png'), crosshair !important; + cursor: url("/assets/pencil.png"), crosshair !important; } #map g path.tracer { diff --git a/app/assets/stylesheets/landing.scss b/app/assets/stylesheets/landing.scss index 767ffec5c..19acc16b2 100644 --- a/app/assets/stylesheets/landing.scss +++ b/app/assets/stylesheets/landing.scss @@ -3,7 +3,7 @@ } #landing { - background-image: image-url('landing_background.png'); + background-image: image-url("landing_background.png"); background-attachment: fixed; background-size: 130% auto; background-position: top center; From e2bd606e494fb3e569dab5b09a6ac0a024449aa7 Mon Sep 17 00:00:00 2001 From: gregoirenovel Date: Wed, 12 Apr 2017 10:53:00 +0200 Subject: [PATCH 21/45] Declarations must be terminated by a semicolon --- app/assets/stylesheets/admin_procedures_modal.scss | 4 ++-- app/assets/stylesheets/application.scss | 2 +- app/assets/stylesheets/description.scss | 2 +- app/assets/stylesheets/dossiers.scss | 2 +- app/assets/stylesheets/landing.scss | 2 +- 5 files changed, 6 insertions(+), 6 deletions(-) diff --git a/app/assets/stylesheets/admin_procedures_modal.scss b/app/assets/stylesheets/admin_procedures_modal.scss index 0f6180a0d..901d68c27 100644 --- a/app/assets/stylesheets/admin_procedures_modal.scss +++ b/app/assets/stylesheets/admin_procedures_modal.scss @@ -1,10 +1,10 @@ .path_mine_false { - color: #FF0000 + color: #FF0000; } #path_messages { .message { - display: none + display: none; } } diff --git a/app/assets/stylesheets/application.scss b/app/assets/stylesheets/application.scss index 645c0c2a3..2f56b4d44 100644 --- a/app/assets/stylesheets/application.scss +++ b/app/assets/stylesheets/application.scss @@ -96,7 +96,7 @@ form { } .text-purple { - color: #8B008B + color: #8B008B; } .text-default { diff --git a/app/assets/stylesheets/description.scss b/app/assets/stylesheets/description.scss index 24aabdac8..5eea3b4c7 100644 --- a/app/assets/stylesheets/description.scss +++ b/app/assets/stylesheets/description.scss @@ -25,7 +25,7 @@ .input-error { color: #8B0000 !important; - border-color: #8B0000 !important + border-color: #8B0000 !important; } .type_champ-text { diff --git a/app/assets/stylesheets/dossiers.scss b/app/assets/stylesheets/dossiers.scss index c0a817739..10a5ebed2 100644 --- a/app/assets/stylesheets/dossiers.scss +++ b/app/assets/stylesheets/dossiers.scss @@ -3,7 +3,7 @@ // You can use Sass (SCSS) here: http://sass-lang.com/ h5 span { - font-weight: normal + font-weight: normal; } #insee_infogreffe { diff --git a/app/assets/stylesheets/landing.scss b/app/assets/stylesheets/landing.scss index 19acc16b2..b9960d22a 100644 --- a/app/assets/stylesheets/landing.scss +++ b/app/assets/stylesheets/landing.scss @@ -39,7 +39,7 @@ } .latest_release { - margin-left: 1% + margin-left: 1%; } #landing_body { From c32a2432c73d43193cb4c7183366041d45718053 Mon Sep 17 00:00:00 2001 From: gregoirenovel Date: Wed, 12 Apr 2017 11:00:25 +0200 Subject: [PATCH 22/45] =?UTF-8?q?Don=E2=80=99t=20use=20vendor=20prefixes?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/assets/stylesheets/carte.scss | 2 -- app/assets/stylesheets/typeahead.scss | 4 ---- 2 files changed, 6 deletions(-) diff --git a/app/assets/stylesheets/carte.scss b/app/assets/stylesheets/carte.scss index de89ef3ee..7f492169a 100644 --- a/app/assets/stylesheets/carte.scss +++ b/app/assets/stylesheets/carte.scss @@ -63,7 +63,6 @@ z-index: 1001; fill: #D7217E; fill-opacity: 0.75; - -webkit-filter: none; } #map.mode-delete path { @@ -75,7 +74,6 @@ } #map div.polygon-elbow { - -webkit-transition: opacity 0.25s; box-shadow: 0 0 0 2px #FFFFFF, 0 0 10px rgba(0, 0, 0, 0.35); border: 5px solid #D7217E; border-radius: 10px; diff --git a/app/assets/stylesheets/typeahead.scss b/app/assets/stylesheets/typeahead.scss index 61ba54b83..1c6d87816 100644 --- a/app/assets/stylesheets/typeahead.scss +++ b/app/assets/stylesheets/typeahead.scss @@ -6,11 +6,7 @@ padding: 8px 0; background-color: #FFFFFF; border: 1px solid rgba(0, 0, 0, 0.2); - -webkit-border-radius: 8px; - -moz-border-radius: 8px; border-radius: 8px; - -webkit-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2); - -moz-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2); box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2); } From 73caee0ff3f4019298c145e985ce1c36a9ebb191 Mon Sep 17 00:00:00 2001 From: gregoirenovel Date: Wed, 12 Apr 2017 11:11:42 +0200 Subject: [PATCH 23/45] Remove unused declarations --- app/assets/stylesheets/admin_index.scss | 22 ---------------------- app/assets/stylesheets/application.scss | 11 ----------- app/assets/stylesheets/backoffice.scss | 7 ------- app/assets/stylesheets/dossiers.scss | 6 ------ app/assets/stylesheets/landing.scss | 4 ---- app/assets/stylesheets/navbar.scss | 5 ----- app/assets/stylesheets/pref_list_menu.scss | 5 ----- app/assets/stylesheets/print.scss | 13 ------------- app/assets/stylesheets/ul.scss | 14 -------------- 9 files changed, 87 deletions(-) delete mode 100644 app/assets/stylesheets/admin_index.scss delete mode 100644 app/assets/stylesheets/ul.scss diff --git a/app/assets/stylesheets/admin_index.scss b/app/assets/stylesheets/admin_index.scss deleted file mode 100644 index fe6c3d73c..000000000 --- a/app/assets/stylesheets/admin_index.scss +++ /dev/null @@ -1,22 +0,0 @@ -#admin_index { - margin-left: 2em; - margin-right: 2em; - - .table { - #id { - width: 5%; - } - - #libelle { - width: 40%; - } - - #organisation { - width: 28%; - } - - #direction { - width: 22%; - } - } -} diff --git a/app/assets/stylesheets/application.scss b/app/assets/stylesheets/application.scss index 2f56b4d44..3646321b5 100644 --- a/app/assets/stylesheets/application.scss +++ b/app/assets/stylesheets/application.scss @@ -88,13 +88,6 @@ form { background-color: #B00100 !important; } -.staging_warning { - position: absolute; - top: 50%; - left: 50%; - transform: translate(-50%, -50%); -} - .text-purple { color: #8B008B; } @@ -148,10 +141,6 @@ textarea#description { width: 100%; } -.logo_fc_small { - max-width: 27px; -} - div.pagination { padding-top: 20px; display: block; diff --git a/app/assets/stylesheets/backoffice.scss b/app/assets/stylesheets/backoffice.scss index 3aa7b1b80..503233dcd 100644 --- a/app/assets/stylesheets/backoffice.scss +++ b/app/assets/stylesheets/backoffice.scss @@ -22,13 +22,6 @@ } } -#pref_list { - .dropdown-menu { - padding: 10px; - width: 500px; - } -} - #onglets { ul { li, diff --git a/app/assets/stylesheets/dossiers.scss b/app/assets/stylesheets/dossiers.scss index 10a5ebed2..755323661 100644 --- a/app/assets/stylesheets/dossiers.scss +++ b/app/assets/stylesheets/dossiers.scss @@ -23,12 +23,6 @@ h5 span { } } -#recap_dossier { - #validate_button { - float: right; - } -} - #dossiers_list { .filter { cursor: pointer; diff --git a/app/assets/stylesheets/landing.scss b/app/assets/stylesheets/landing.scss index b9960d22a..703464480 100644 --- a/app/assets/stylesheets/landing.scss +++ b/app/assets/stylesheets/landing.scss @@ -38,10 +38,6 @@ color: #FFFFFF; } -.latest_release { - margin-left: 1%; -} - #landing_body { .split-hr-left { margin-left: auto; diff --git a/app/assets/stylesheets/navbar.scss b/app/assets/stylesheets/navbar.scss index 455d5eb5a..88cd3dbcd 100644 --- a/app/assets/stylesheets/navbar.scss +++ b/app/assets/stylesheets/navbar.scss @@ -159,11 +159,6 @@ .navbar { border: 0 !important; - - .sign_in_FC { - margin-top: -18px; - height: 70px; - } } #beta { diff --git a/app/assets/stylesheets/pref_list_menu.scss b/app/assets/stylesheets/pref_list_menu.scss index 84dee03a5..d087da79c 100644 --- a/app/assets/stylesheets/pref_list_menu.scss +++ b/app/assets/stylesheets/pref_list_menu.scss @@ -13,8 +13,3 @@ padding: 15px; overflow-y: scroll; } - -.open_pref_list { - right: 0 !important; - display: block !important; -} diff --git a/app/assets/stylesheets/print.scss b/app/assets/stylesheets/print.scss index 51fe5ca57..583676e89 100644 --- a/app/assets/stylesheets/print.scss +++ b/app/assets/stylesheets/print.scss @@ -4,19 +4,6 @@ margin: 0; } - #main_div { - margin-left: 50px; - margin-right: 0; - } - - #commentaire_new { - display: none; - } - - #commentaires_flux { - margin-top: -50px; - } - #infos_dossier .row:last-child { display: none; } diff --git a/app/assets/stylesheets/ul.scss b/app/assets/stylesheets/ul.scss deleted file mode 100644 index 25f26e3a5..000000000 --- a/app/assets/stylesheets/ul.scss +++ /dev/null @@ -1,14 +0,0 @@ -.dynamic_ul { - margin-left: 20px; - margin-top: 13%; - - li { - font: 200 20px/1.5 Helvetica, Verdana, sans-serif; - margin-top: 15px; - margin-bottom: 15px; - } - - li:last-child { - border: none; - } -} From c10c2fc31b2ea62c6358baf74271917a65d9846c Mon Sep 17 00:00:00 2001 From: gregoirenovel Date: Wed, 12 Apr 2017 11:12:05 +0200 Subject: [PATCH 24/45] Selectors must be written in lowercase with hyphens --- app/assets/javascripts/admin.js | 12 +++---- .../javascripts/admin_procedures_modal.js | 16 ++++----- app/assets/javascripts/carte/carte.js | 4 +-- .../javascripts/channels/notifications.js | 6 ++-- app/assets/javascripts/default_data_block.js | 12 +++---- app/assets/javascripts/dossiers.js | 16 ++++----- app/assets/javascripts/dossiers_list_link.js | 2 +- .../javascripts/gestionnaire_dossier_modal.js | 8 ++--- app/assets/javascripts/pref_list_dossier.js | 18 +++++----- app/assets/javascripts/procedure.js | 16 ++++----- app/assets/javascripts/search.js | 18 +++++----- .../stylesheets/admin_procedures_modal.scss | 6 ++-- .../stylesheets/admin_type_de_champ.scss | 8 ++--- app/assets/stylesheets/application.scss | 4 +-- app/assets/stylesheets/backoffice.scss | 6 ++-- app/assets/stylesheets/carte.scss | 6 ++-- .../stylesheets/default_data_block.scss | 2 +- app/assets/stylesheets/description.scss | 34 +++++++++---------- app/assets/stylesheets/dossier_show.scss | 6 ++-- app/assets/stylesheets/dossiers.scss | 16 ++++----- app/assets/stylesheets/etapes.scss | 8 ++--- .../france_connect_particulier.scss | 2 +- app/assets/stylesheets/landing.scss | 4 +-- app/assets/stylesheets/left_panel.scss | 2 +- app/assets/stylesheets/login.scss | 6 ++-- app/assets/stylesheets/navbar.scss | 12 +++---- .../stylesheets/notification_alert.scss | 2 +- .../pieces_justificatives_fields.scss | 2 +- app/assets/stylesheets/pj_modal.scss | 4 +-- app/assets/stylesheets/pref_list_menu.scss | 2 +- app/assets/stylesheets/print.scss | 6 ++-- app/assets/stylesheets/procedure.scss | 6 ++-- app/assets/stylesheets/recapitulatif.scss | 2 +- app/assets/stylesheets/search.scss | 4 +-- app/assets/stylesheets/siret.scss | 2 +- .../stylesheets/support_navigator_banner.scss | 2 +- app/assets/stylesheets/switch_menu.scss | 2 +- app/assets/stylesheets/users.scss | 16 ++++----- .../accompagnateurs/_list_assign.html.haml | 2 +- .../_list_not_assign.html.haml | 2 +- app/views/admin/gestionnaires/_list.html.haml | 2 +- .../pieces_justificatives/_fields.html.haml | 2 +- .../admin/pieces_justificatives/show.js.erb | 2 +- .../admin/procedures/_informations.html.haml | 6 ++-- app/views/admin/procedures/_list.html.haml | 2 +- .../admin/procedures/_modal_publish.html.haml | 6 ++-- app/views/admin/procedures/index.html.haml | 4 +-- app/views/admin/procedures/show.html.haml | 6 ++-- .../admin/types_de_champ/_fields.html.haml | 6 ++-- app/views/admin/types_de_champ/show.html.haml | 2 +- app/views/admin/types_de_champ/show.js.erb | 6 ++-- .../administrateurs/sessions/new.html.haml | 4 +-- app/views/backoffice/dossiers/_list.html.haml | 2 +- .../backoffice/dossiers/_pref_list.html.haml | 2 +- .../backoffice/dossiers/_pref_list.js.erb | 2 +- .../dossiers/formulaire_private.js.erb | 2 +- app/views/backoffice/dossiers/index.html.haml | 12 +++---- .../backoffice/dossiers/search.html.haml | 6 ++-- app/views/backoffice/dossiers/show.html.haml | 2 +- app/views/dossiers/_dossier_show.html.haml | 12 +++---- .../dossiers/_download_dossiers.html.haml | 2 +- .../dossiers/_edit_pieces_jointes.html.haml | 2 +- app/views/dossiers/_infos_dossier.html.haml | 16 ++++----- .../dossiers/_infos_pieces_jointes.html.haml | 6 ++-- app/views/dossiers/_messagerie.html.haml | 2 +- .../dossiers/_pieces_justificatives.html.haml | 6 ++-- app/views/dossiers/_show.html.haml | 4 +-- app/views/dossiers/add_siret.js.erb | 6 ++-- app/views/dossiers/etapes/_etape1.html.haml | 4 +-- app/views/dossiers/etapes/_etape3.html.haml | 4 +-- app/views/dossiers/etapes/_etape4.html.haml | 4 +-- .../etapes/etape_2/_entreprise.html.haml | 10 +++--- .../etapes/etape_2/_individual.html.haml | 2 +- app/views/dossiers/new_siret.js.erb | 6 ++-- .../particulier/check_email.html.haml | 2 +- .../france_connect/particulier/new.html.haml | 2 +- .../gestionnaires/passwords/edit.html.haml | 4 +-- .../gestionnaires/passwords/new.html.haml | 4 +-- .../gestionnaires/sessions/new.html.haml | 4 +-- app/views/layouts/_navbar.html.haml | 2 +- .../layouts/_notifications_alert.html.haml | 2 +- .../_support_navigator_banner.html.haml | 2 +- .../_switch_devise_profile_module.html.haml | 2 +- app/views/layouts/application.html.haml | 4 +-- ...admin_procedurescontroller_index.html.haml | 8 ++--- ...dmin_procedurescontroller_navbar.html.haml | 18 +++++----- ...koffice_dossierscontroller_index.html.haml | 6 ++-- .../_left_panel_cgucontroller_index.html.haml | 30 ++++++++-------- ...l_users_dossierscontroller_index.html.haml | 12 +++---- .../left_panels/_search_area.html.haml | 4 +-- ...ssiers_procedurecontroller_index.html.haml | 2 +- .../navbars/_navbar_log_options.html.haml | 8 ++--- app/views/root/landing.html.haml | 4 +-- app/views/users/carte/_map.html.haml | 2 +- app/views/users/carte/show.html.haml | 4 +-- app/views/users/description/_champs.html.haml | 2 +- app/views/users/description/_show.html.haml | 4 +-- .../champs/_header_section.html.haml | 2 +- app/views/users/dossiers/_list.html.haml | 2 +- .../users/dossiers/add_siret/show.html.haml | 2 +- app/views/users/dossiers/index.html.haml | 4 +-- app/views/users/passwords/edit.html.haml | 4 +-- app/views/users/passwords/new.html.haml | 4 +-- .../recapitulatif/_modal_upload_pj.html.haml | 2 +- app/views/users/recapitulatif/show.html.haml | 2 +- app/views/users/registrations/new.html.haml | 4 +-- .../sessions/_resume_procedure.html.haml | 2 +- app/views/users/sessions/new.html.haml | 21 ++++++------ app/views/users/siret/_pro.html.haml | 2 +- app/views/users/siret/index.html.haml | 2 +- spec/features/admin/connection_spec.rb | 8 ++--- spec/features/backoffice/connection_spec.rb | 2 +- .../backoffice/index_show_procedure_spec.rb | 14 ++++---- ..._page_pref_list_dossier_backoffice_spec.rb | 12 +++---- ...st_dossier_by_procedure_backoffice_spec.rb | 12 +++---- .../backoffice/navigate_to_dossier_spec.rb | 4 +-- spec/features/backoffice/search_file_spec.rb | 4 +-- .../upload_piece_justificative_spec.rb | 4 +-- .../france_connect_particulier_spec.rb | 10 +++--- spec/features/users/complete_demande_spec.rb | 18 +++++----- spec/features/users/dossier_creation_spec.rb | 6 ++-- spec/features/users/dossier_edition_spec.rb | 2 +- spec/features/users/dossier_index_spec.rb | 20 +++++------ .../drawing_a_zone_with_freedraw_spec.rb | 6 ++-- spec/features/users/list_dossiers_spec.rb | 4 +-- spec/features/users/onglets_link_spec.rb | 8 ++--- spec/features/users/start_demande_spec.rb | 8 ++--- .../dossiers/show.html.html_spec.rb | 4 +-- .../recapitulatif/show.html.haml_spec.rb | 4 +-- .../users/sessions/new.html.haml_spec.rb | 6 ++-- .../views/users/siret/index.html.haml_spec.rb | 2 +- 131 files changed, 405 insertions(+), 404 deletions(-) diff --git a/app/assets/javascripts/admin.js b/app/assets/javascripts/admin.js index 435a42006..5284d467d 100644 --- a/app/assets/javascripts/admin.js +++ b/app/assets/javascripts/admin.js @@ -16,27 +16,27 @@ function destroy_action(){ $(this).closest('td').find(".confirm").hide(); }); - $("#liste_gestionnaire #libelle").on('click', function(){ + $("#liste-gestionnaire #libelle").on('click', function(){ setTimeout(destroy_action, 500); }); } function on_change_type_de_champ_select (){ - $("select.form-control.type_champ").on('change', function(e){ + $("select.form-control.type-champ").on('change', function(e){ parent = $(this).parent().parent(); - parent.removeClass('header_section'); - parent.children(".drop_down_list").removeClass('show_inline'); + parent.removeClass('header-section'); + parent.children(".drop-down-list").removeClass('show-inline'); $('.mandatory', parent).show(); switch(this.value){ case 'header_section': - parent.addClass('header_section'); + parent.addClass('header-section'); break; case 'drop_down_list': case 'multiple_drop_down_list': - parent.children(".drop_down_list").addClass('show_inline'); + parent.children(".drop-down-list").addClass('show-inline'); break; case 'explication': $('.mandatory', parent).hide(); diff --git a/app/assets/javascripts/admin_procedures_modal.js b/app/assets/javascripts/admin_procedures_modal.js index b5059bf29..342cc64f5 100644 --- a/app/assets/javascripts/admin_procedures_modal.js +++ b/app/assets/javascripts/admin_procedures_modal.js @@ -8,16 +8,16 @@ function init_path_modal() { } function path_modal_action() { - $('#publishModal').on('show.bs.modal', function (event) { - $("#publishModal .modal-body .table .tr_content").hide(); + $('#publish-modal').on('show.bs.modal', function (event) { + $("#publish-modal .modal-body .table .tr-content").hide(); var button = $(event.relatedTarget) // Button that triggered the modal var modal_title = button.data('modal_title'); // Extract info from data-* attributes var modal_index = button.data('modal_index'); // Extract info from data-* attributes var modal = $(this) - modal.find('#publishModal_title').html(modal_title); - $("#publishModal .modal-body .table #"+modal_index).show(); + modal.find('#publish-modal-title').html(modal_title); + $("#publish-modal .modal-body .table #"+modal_index).show(); }) } @@ -29,7 +29,7 @@ function path_validation_action() { } function togglePathMessage(valid, mine) { - $('#path_messages .message').hide(); + $('#path-messages .message').hide(); if (valid === true && mine === true) { $('#path_is_mine').show(); @@ -40,9 +40,9 @@ function togglePathMessage(valid, mine) { } if ((valid && mine === null) || mine === true) - $('#publishModal #publish').removeAttr('disabled') + $('#publish-modal #publish').removeAttr('disabled') else - $('#publishModal #publish').attr('disabled', 'disabled') + $('#publish-modal #publish').attr('disabled', 'disabled') } function path_validation(el) { @@ -77,7 +77,7 @@ function path_type_init() { source: bloodhound, templates: { empty: 'Ce lien est disponible !', - suggestion: Handlebars.compile("
{{label}}
") + suggestion: Handlebars.compile("
{{label}}
") }, limit: 5 }); diff --git a/app/assets/javascripts/carte/carte.js b/app/assets/javascripts/carte/carte.js index 6966e3791..5ce16d28f 100644 --- a/app/assets/javascripts/carte/carte.js +++ b/app/assets/javascripts/carte/carte.js @@ -152,11 +152,11 @@ function jsObject_to_array(qp_list) { } function add_event_search_address() { - $("#search_by_address input[type='address']").bind('typeahead:select', function (ev, seggestion) { + $("#search-by-address input[type='address']").bind('typeahead:select', function (ev, seggestion) { get_address_point(seggestion['label']); }); - $("#search_by_address input[type='address']").keypress(function (e) { + $("#search-by-address input[type='address']").keypress(function (e) { if (e.keyCode == 13) get_address_point($(this).val()); }); diff --git a/app/assets/javascripts/channels/notifications.js b/app/assets/javascripts/channels/notifications.js index 7a76c26b6..f1f2d519d 100644 --- a/app/assets/javascripts/channels/notifications.js +++ b/app/assets/javascripts/channels/notifications.js @@ -1,7 +1,7 @@ //App.messages = App.cable.subscriptions.create('NotificationsChannel', { // received: function (data) { // if (window.location.href.indexOf('backoffice') !== -1) { -// $("#notification_alert").html(data['message']); +// $("#notification-alert").html(data['message']); // // slideIn_notification_alert(); // } @@ -9,7 +9,7 @@ //}); function slideIn_notification_alert (){ - $("#notification_alert").animate({ + $("#notification-alert").animate({ right: '20px' }, 250); @@ -17,7 +17,7 @@ function slideIn_notification_alert (){ } function slideOut_notification_alert (){ - $("#notification_alert").animate({ + $("#notification-alert").animate({ right: '-250px' }, 200); } diff --git a/app/assets/javascripts/default_data_block.js b/app/assets/javascripts/default_data_block.js index 107681782..071d07bb0 100644 --- a/app/assets/javascripts/default_data_block.js +++ b/app/assets/javascripts/default_data_block.js @@ -1,20 +1,20 @@ $(document).on('turbolinks:load', init_default_data_block); function init_default_data_block() { - $('.default_data_block #dossier .body').toggle(); - $('.default_data_block #dossier .carret-right').toggle(); - $('.default_data_block #dossier .carret-down').toggle(); + $('.default-data-block #dossier .body').toggle(); + $('.default-data-block #dossier .carret-right').toggle(); + $('.default-data-block #dossier .carret-down').toggle(); - $('.default_data_block .title').click(function () { + $('.default-data-block .title').click(function () { toggle_default_data_bloc(this, 400); }); $('.new-action').click(function () { - var messages_block = $(this).parents().closest('.default_data_block').find('.title') + var messages_block = $(this).parents().closest('.default-data-block').find('.title') toggle_default_data_bloc(messages_block, 400); }); - $('.default_data_block.default_visible').each(function() { + $('.default-data-block.default_visible').each(function() { toggle_default_data_bloc($(this).find('.title'), 0); }); diff --git a/app/assets/javascripts/dossiers.js b/app/assets/javascripts/dossiers.js index 4e0d1836c..401eca7f8 100644 --- a/app/assets/javascripts/dossiers.js +++ b/app/assets/javascripts/dossiers.js @@ -3,14 +3,14 @@ $(document).on('turbolinks:load', pannel_switch); function pannel_switch() { $('#switch-notifications').click(function () { - $('#procedure_list').addClass('hidden'); - $('#notifications_list').removeClass('hidden'); + $('#procedure-list').addClass('hidden'); + $('#notifications-list').removeClass('hidden'); $(this).addClass('active'); $('#switch-procedures').removeClass('active'); }) $('#switch-procedures').click(function () { - $('#notifications_list').addClass('hidden'); - $('#procedure_list').removeClass('hidden'); + $('#notifications-list').addClass('hidden'); + $('#procedure-list').removeClass('hidden'); $(this).addClass('active'); $('#switch-notifications').removeClass('active'); }) @@ -44,16 +44,16 @@ function error_form_siret(invalid_siret) { $("input[type='submit']").removeClass('btn-success').addClass('btn-danger'); - $("#dossier_siret").addClass('input-error').val(invalid_siret).on('input', reset_form_siret); + $("#dossier-siret").addClass('input-error').val(invalid_siret).on('input', reset_form_siret); } function reset_form_siret() { $("input[type='submit']").removeClass('btn-danger').addClass('btn-success').val('Valider'); - $("#dossier_siret").removeClass('input-error'); + $("#dossier-siret").removeClass('input-error'); } function toggle_etape_1() { - $('.row.etape.etape_1 .etapes_menu #logos').toggle(100); - $('.row.etape.etape_1 .etapes_informations #description_procedure').toggle(100); + $('.row.etape.etape_1 .etapes-menu #logos').toggle(100); + $('.row.etape.etape_1 .etapes-informations #description_procedure').toggle(100); } diff --git a/app/assets/javascripts/dossiers_list_link.js b/app/assets/javascripts/dossiers_list_link.js index 147e109a3..cf2d74859 100644 --- a/app/assets/javascripts/dossiers_list_link.js +++ b/app/assets/javascripts/dossiers_list_link.js @@ -1,7 +1,7 @@ $(document).on('turbolinks:load', link_init); function link_init() { - $('#dossiers_list tr').on('click', function () { + $('#dossiers-list tr').on('click', function () { $(location).attr('href', $(this).data('dossier_url')) }); } diff --git a/app/assets/javascripts/gestionnaire_dossier_modal.js b/app/assets/javascripts/gestionnaire_dossier_modal.js index bb02ca501..65ca00dbb 100644 --- a/app/assets/javascripts/gestionnaire_dossier_modal.js +++ b/app/assets/javascripts/gestionnaire_dossier_modal.js @@ -1,15 +1,15 @@ $(document).on('turbolinks:load', modal_action); function modal_action() { - $('#PJmodal').on('show.bs.modal', function (event) { - $("#PJmodal .modal-body .table .tr_content").hide(); + $('#pj-modal').on('show.bs.modal', function (event) { + $("#pj-modal .modal-body .table .tr-content").hide(); var button = $(event.relatedTarget) // Button that triggered the modal var modal_title = button.data('modal_title'); // Extract info from data-* attributes var modal_index = button.data('modal_index'); // Extract info from data-* attributes var modal = $(this) - modal.find('#PJmodal_title').html(modal_title); - $("#PJmodal .modal-body .table #"+modal_index).show(); + modal.find('#pj-modal-title').html(modal_title); + $("#pj-modal .modal-body .table #"+modal_index).show(); }) } diff --git a/app/assets/javascripts/pref_list_dossier.js b/app/assets/javascripts/pref_list_dossier.js index 21e7966df..1e81e3eee 100644 --- a/app/assets/javascripts/pref_list_dossier.js +++ b/app/assets/javascripts/pref_list_dossier.js @@ -6,25 +6,25 @@ function pref_list_dossier_actions() { } function pref_list_dossier_open_action() { - $("#pref_list_dossier_open_action").on('click', function () { - $("#pref_list_menu").css('display', 'block'); - $("#pref_list_menu").css('visibility', 'visible'); + $("#pref-list-dossier-open-action").on('click', function () { + $("#pref-list-menu").css('display', 'block'); + $("#pref-list-menu").css('visibility', 'visible'); - $("#pref_list_menu").animate({ + $("#pref-list-menu").animate({ right: 0 }, 250); }); } function pref_list_dossier_close_action() { - $("#pref_list_dossier_close_action").on('click', function () { - $("#pref_list_menu").animate({ - right: parseInt($("#pref_list_menu").css('width'), 10)*(-1)+'px' + $("#pref-list-dossier-close-action").on('click', function () { + $("#pref-list-menu").animate({ + right: parseInt($("#pref-list-menu").css('width'), 10)*(-1)+'px' },{ duration: 250, complete: function () { - $("#pref_list_menu").css('display', 'none'); - $("#pref_list_menu").css('visibility', 'hidden'); + $("#pref-list-menu").css('display', 'none'); + $("#pref-list-menu").css('visibility', 'hidden'); } } ) diff --git a/app/assets/javascripts/procedure.js b/app/assets/javascripts/procedure.js index d4f89f012..c2bcffb54 100644 --- a/app/assets/javascripts/procedure.js +++ b/app/assets/javascripts/procedure.js @@ -8,30 +8,30 @@ function button_edit_procedure_init(){ function buttons_api_carto () { - $("#procedure_module_api_carto_use_api_carto").on('change', function() { - $("#modules_api_carto").toggle() + $("#procedure-module-api-carto-use-api-carto").on('change', function() { + $("#modules-api-carto").toggle() }); - if ($('#procedure_module_api_carto_use_api_carto').is(':checked')) - $("#modules_api_carto").show(); + if ($('#procedure-module-api-carto-use-api-carto').is(':checked')) + $("#modules-api-carto").show(); } function button_cerfa () { $("#procedure_cerfa_flag").on('change', function() { - $("#procedure_lien_demarche").toggle() + $("#procedure-lien-demarche").toggle() }); if ($('#procedure_cerfa_flag').is(':checked')) - $("#procedure_lien_demarche").show(); + $("#procedure-lien-demarche").show(); } function button_individual () { $("#procedure_for_individual").on('change', function() { - $("#individual_with_siret").toggle() + $("#individual-with-siret").toggle() }); if ($('#procedure_for_individual').is(':checked')) - $("#individual_with_siret").show(); + $("#individual-with-siret").show(); } diff --git a/app/assets/javascripts/search.js b/app/assets/javascripts/search.js index bfbc7aded..eb61ae055 100644 --- a/app/assets/javascripts/search.js +++ b/app/assets/javascripts/search.js @@ -1,11 +1,11 @@ $(document).on('turbolinks:load', init_search_anim); function init_search_anim(){ - $("#search_area").on('click', search_fadeIn); + $("#search-area").on('click', search_fadeIn); } function search_fadeIn(){ - var search_area = $("#search_area"); + var search_area = $("#search-area"); var body_dom = $('body'); var positions = search_area.position(); var width = search_area.width(); @@ -16,10 +16,10 @@ function search_fadeIn(){ search_area.css('z-index', 300); search_area.css('width', width); search_area.find('#q').animate({ height: '50px' }); - search_area.find('#search_button').animate({ height: '50px' }); + search_area.find('#search-button').animate({ height: '50px' }); body_dom.append(search_area); - $('#mask_search').fadeIn(200); + $('#mask-search').fadeIn(200); var body_width = body_dom.width(); @@ -30,16 +30,16 @@ function search_fadeIn(){ left: (body_width/2 - search_area_width/2 + 40) }, 400, function() { search_area.off(); - $("#search_area input").focus(); + $("#search-area input").focus(); - $('#mask_search').on('click', search_fadeOut) + $('#mask-search').on('click', search_fadeOut) }); } function search_fadeOut(){ - var search_area = $("#search_area"); + var search_area = $("#search-area"); - $('#mask_search').fadeOut(200); + $('#mask-search').fadeOut(200); search_area.fadeOut(200, function(){ search_area.css('position', 'static'); @@ -48,7 +48,7 @@ function search_fadeOut(){ search_area.css('z-index', ''); search_area.css('width', 'auto'); search_area.find('#q').css('height', 34); - search_area.find('#search_button').css('height', 34); + search_area.find('#search-button').css('height', 34); $('#search-block').append(search_area); search_area.fadeIn(200); diff --git a/app/assets/stylesheets/admin_procedures_modal.scss b/app/assets/stylesheets/admin_procedures_modal.scss index 901d68c27..6c1cf1497 100644 --- a/app/assets/stylesheets/admin_procedures_modal.scss +++ b/app/assets/stylesheets/admin_procedures_modal.scss @@ -1,14 +1,14 @@ -.path_mine_false { +.path-mine-false { color: #FF0000; } -#path_messages { +#path-messages { .message { display: none; } } -#publishModal { +#publish-modal { .twitter-typeahead { width: 300px; } diff --git a/app/assets/stylesheets/admin_type_de_champ.scss b/app/assets/stylesheets/admin_type_de_champ.scss index 6c8a5ffcb..5fc7aa54b 100644 --- a/app/assets/stylesheets/admin_type_de_champ.scss +++ b/app/assets/stylesheets/admin_type_de_champ.scss @@ -1,4 +1,4 @@ -.header_section { +.header-section { background-color: rgb(0, 49, 137); margin-top: 20px; margin-bottom: 10px; @@ -22,16 +22,16 @@ } } -#liste_champ { +#liste-champ { .form-inline { margin-bottom: 30px; } - .show_inline { + .show-inline { display: inline-block !important; } - .form-group.drop_down_list { + .form-group.drop-down-list { display: none; } diff --git a/app/assets/stylesheets/application.scss b/app/assets/stylesheets/application.scss index 3646321b5..135e0a776 100644 --- a/app/assets/stylesheets/application.scss +++ b/app/assets/stylesheets/application.scss @@ -84,7 +84,7 @@ form { } } -.beta_staging { +.beta-staging { background-color: #B00100 !important; } @@ -151,7 +151,7 @@ div.pagination { margin-bottom: 0px; } -.alert.alert-success.move_up, +.alert.alert-success.move-up, .alert.alert-danger.siret { position: fixed; top: 0px; diff --git a/app/assets/stylesheets/backoffice.scss b/app/assets/stylesheets/backoffice.scss index 503233dcd..cdbe3fa52 100644 --- a/app/assets/stylesheets/backoffice.scss +++ b/app/assets/stylesheets/backoffice.scss @@ -1,9 +1,9 @@ -#backoffice_index, -#backoffice_search { +#backoffice-index, +#backoffice-search { margin-left: 2rem; margin-right: 2rem; - .default_data_block { + .default-data-block { background-color: #FFFFFF; margin-top: 20px; diff --git a/app/assets/stylesheets/carte.scss b/app/assets/stylesheets/carte.scss index 7f492169a..8220729ad 100644 --- a/app/assets/stylesheets/carte.scss +++ b/app/assets/stylesheets/carte.scss @@ -3,7 +3,7 @@ // You can use Sass (SCSS) here: http://sass-lang.com/ @import "bootstrap"; -#carte_page { +#carte-page { #map { margin-left: 15px; width: 90%; @@ -32,7 +32,7 @@ cursor: url("/assets/edit.png"), default !important; } -#infos_dossier { +#infos-dossiers { #map.mini { height: 300px; width: 100%; @@ -120,7 +120,7 @@ color: #777777; } -#search_by_address { +#search-by-address { .twitter-typeahead { width: 555px; } diff --git a/app/assets/stylesheets/default_data_block.scss b/app/assets/stylesheets/default_data_block.scss index 237eaaf17..339af02f8 100644 --- a/app/assets/stylesheets/default_data_block.scss +++ b/app/assets/stylesheets/default_data_block.scss @@ -1,6 +1,6 @@ @import "variables"; -.default_data_block { +.default-data-block { font-family: Arial; .show-block { diff --git a/app/assets/stylesheets/description.scss b/app/assets/stylesheets/description.scss index 5eea3b4c7..6ad2f4339 100644 --- a/app/assets/stylesheets/description.scss +++ b/app/assets/stylesheets/description.scss @@ -1,9 +1,9 @@ @import "bootstrap"; @import "bootstrap-datepicker3"; -#description_page #liste_champs { +#description-page #liste-champs { - .default_data_block { + .default-data-block { .show-block { width: 90%; @@ -28,7 +28,7 @@ border-color: #8B0000 !important; } -.type_champ-text { +.type-champ-text { @extend .col-md-6; @extend .col-lg-6; @@ -37,12 +37,12 @@ } } -.type_champ-header_section { +.type-champ-header-section { @extend .col-md-12; @extend .col-lg-12; } -.type_champ-address { +.type-champ-address { @extend .col-md-6; @extend .col-lg-6; @@ -60,7 +60,7 @@ } } -.type_champ-email { +.type-champ-email { @extend .col-md-4; @extend .col-lg-4; @@ -69,26 +69,26 @@ } } -.type_champ-drop_down_list, -.type_champ-regions, -.type_champ-departements, -.type_champ-pays { +.type-champ-drop-down-list, +.type-champ-regions, +.type-champ-departements, +.type-champ-pays { @extend .col-md-4; @extend .col-lg-4; } -.type_champ-civilite { +.type-champ-civilite { @extend .col-md-3; @extend .col-lg-3; } -.type_champ-yes_no { +.type-champ-yes-no { @extend .col-md-3; @extend .col-lg-3; } -.type_champ-phone { +.type-champ-phone { @extend .col-md-2; @extend .col-lg-2; @@ -102,7 +102,7 @@ text-decoration: underline; } -.type_champ-textarea { +.type-champ-textarea { @extend .col-md-8; @extend .col-lg-8; @@ -112,7 +112,7 @@ } } -.type_champ-number { +.type-champ-number { @extend .col-md-3; @extend .col-lg-3; @@ -121,7 +121,7 @@ } } -.type_champ-date { +.type-champ-date { @extend .col-md-2; @extend .col-lg-2; @@ -130,7 +130,7 @@ } } -.type_champ-datetime { +.type-champ-datetime { @extend .col-md-5; @extend .col-lg-5; diff --git a/app/assets/stylesheets/dossier_show.scss b/app/assets/stylesheets/dossier_show.scss index d7c77f88e..93f8ba5a5 100644 --- a/app/assets/stylesheets/dossier_show.scss +++ b/app/assets/stylesheets/dossier_show.scss @@ -1,5 +1,5 @@ -#backoffice_dossier_show, -#users_recapitulatif_dossier_show { +#backoffice-dossier-show, +#users-recapitulatif-dossier-show { #messages { .last-commentaire { @@ -199,7 +199,7 @@ } } - #pieces_justificatives { + #pieces-justificatives { .piece-row { margin: 0 0 0 0; } diff --git a/app/assets/stylesheets/dossiers.scss b/app/assets/stylesheets/dossiers.scss index 755323661..5a59dd7a8 100644 --- a/app/assets/stylesheets/dossiers.scss +++ b/app/assets/stylesheets/dossiers.scss @@ -6,7 +6,7 @@ h5 span { font-weight: normal; } -#insee_infogreffe { +#insee-infogreffe { font-size: 17px; } @@ -23,7 +23,7 @@ h5 span { } } -#dossiers_list { +#dossiers-list { .filter { cursor: pointer; font-size: 1.1em; @@ -31,13 +31,13 @@ h5 span { } } -#dossiers_list tr:hover { +#dossiers-list tr:hover { background-color: #EEEEEE; cursor: pointer; } -#procedure_list, -#notifications_list { +#procedure-list, +#notifications-list { margin-left: -10px; margin-top: 20px; @@ -47,12 +47,12 @@ h5 span { text-decoration: none; } - .procedure_list_element.active, + .procedure-list-element.active, .notification.active { background-color: #668ABD; } - .procedure_list_element, + .procedure-list-element, .notification { padding: 15px 40px 15px 20px; cursor: pointer; @@ -63,7 +63,7 @@ h5 span { } } - .procedure_list_element:hover, + .procedure-list-element:hover, .notification:hover { background-color: #668ABD; cursor: pointer; diff --git a/app/assets/stylesheets/etapes.scss b/app/assets/stylesheets/etapes.scss index 58ed601f4..2ff84fa6f 100644 --- a/app/assets/stylesheets/etapes.scss +++ b/app/assets/stylesheets/etapes.scss @@ -1,6 +1,6 @@ -.etape_2 { - .etapes_menu { - #dossier_siret { +.etape-2 { + .etapes-menu { + #dossier-siret { width: 200px; } @@ -9,7 +9,7 @@ } } - .etapes_informations { + .etapes-informations { padding-top: 15px; } } diff --git a/app/assets/stylesheets/france_connect_particulier.scss b/app/assets/stylesheets/france_connect_particulier.scss index 03d671366..72025e3a3 100644 --- a/app/assets/stylesheets/france_connect_particulier.scss +++ b/app/assets/stylesheets/france_connect_particulier.scss @@ -1,4 +1,4 @@ -#france_connect_particulier_email { +#france-connect-particulier-email { width: 300px; margin-left: auto; margin-right: auto; diff --git a/app/assets/stylesheets/landing.scss b/app/assets/stylesheets/landing.scss index 703464480..de55f5732 100644 --- a/app/assets/stylesheets/landing.scss +++ b/app/assets/stylesheets/landing.scss @@ -38,7 +38,7 @@ color: #FFFFFF; } -#landing_body { +#landing-body { .split-hr-left { margin-left: auto; margin-right: auto; @@ -51,7 +51,7 @@ } #etapes, - #request_access { + #request-access { margin-top: 20px; margin-bottom: 20px; } diff --git a/app/assets/stylesheets/left_panel.scss b/app/assets/stylesheets/left_panel.scss index 8d17f86a7..02658aab1 100644 --- a/app/assets/stylesheets/left_panel.scss +++ b/app/assets/stylesheets/left_panel.scss @@ -198,7 +198,7 @@ margin-right: auto; } - #notifications_list { + #notifications-list { .no-notification { margin: 0 30px 0 30px; } diff --git a/app/assets/stylesheets/login.scss b/app/assets/stylesheets/login.scss index c3d162d47..6be7b6cb3 100644 --- a/app/assets/stylesheets/login.scss +++ b/app/assets/stylesheets/login.scss @@ -1,4 +1,4 @@ -#form_login { +#form-login { text-align: center; max-width: 500px; @@ -7,14 +7,14 @@ padding: 20px; - .btn_fc { + .btn-fc { img { height: 100px; } } - #new_user { + #new-user { width: 80%; margin-left: auto; margin-right: auto; diff --git a/app/assets/stylesheets/navbar.scss b/app/assets/stylesheets/navbar.scss index 88cd3dbcd..612532c27 100644 --- a/app/assets/stylesheets/navbar.scss +++ b/app/assets/stylesheets/navbar.scss @@ -9,7 +9,7 @@ border-radius: 0; height: 60px; - #title_navbar { + #title-navbar { color: #FFFFFF; font-weight: bold; font-size: 1.8em; @@ -17,7 +17,7 @@ overflow: hidden; } - #title_navbar:hover { + #title-navbar:hover { text-decoration: none; } @@ -96,7 +96,7 @@ } } - #sign_in { + #sign-in { margin-top: 7px; .btn { @@ -105,7 +105,7 @@ } } - #sign_out { + #sign-out { height: 60px; .fa { @@ -177,7 +177,7 @@ z-index: 10; } -.button_navbar { +.button-navbar { color: #666666; cursor: pointer; } @@ -202,7 +202,7 @@ color: $light-blue; } -.button_navbar:hover, +.button-navbar:hover, .button-navbar-action:hover { text-decoration: none; } diff --git a/app/assets/stylesheets/notification_alert.scss b/app/assets/stylesheets/notification_alert.scss index fbcd63efd..49e7d4893 100644 --- a/app/assets/stylesheets/notification_alert.scss +++ b/app/assets/stylesheets/notification_alert.scss @@ -1,4 +1,4 @@ -#notification_alert { +#notification-alert { position: fixed; top: 20px; right: -250px; diff --git a/app/assets/stylesheets/pieces_justificatives_fields.scss b/app/assets/stylesheets/pieces_justificatives_fields.scss index 12a88199c..7cf6d8719 100644 --- a/app/assets/stylesheets/pieces_justificatives_fields.scss +++ b/app/assets/stylesheets/pieces_justificatives_fields.scss @@ -1,3 +1,3 @@ -.pieces_justificatives_fields { +.pieces-justificatives-fields { .form-inline > .form-group { vertical-align: top; } } diff --git a/app/assets/stylesheets/pj_modal.scss b/app/assets/stylesheets/pj_modal.scss index 4f3ab1c4b..deba37dfc 100644 --- a/app/assets/stylesheets/pj_modal.scss +++ b/app/assets/stylesheets/pj_modal.scss @@ -1,7 +1,7 @@ -#PJmodal { +#pj-modal { .modal-body { .table { - .tr_content { + .tr-content { display: none; } } diff --git a/app/assets/stylesheets/pref_list_menu.scss b/app/assets/stylesheets/pref_list_menu.scss index d087da79c..11920ade8 100644 --- a/app/assets/stylesheets/pref_list_menu.scss +++ b/app/assets/stylesheets/pref_list_menu.scss @@ -1,4 +1,4 @@ -#pref_list_menu { +#pref-list-menu { z-index: 100; display: none; position: fixed; diff --git a/app/assets/stylesheets/print.scss b/app/assets/stylesheets/print.scss index 583676e89..4d0ef86b3 100644 --- a/app/assets/stylesheets/print.scss +++ b/app/assets/stylesheets/print.scss @@ -4,15 +4,15 @@ margin: 0; } - #infos_dossier .row:last-child { + #infos-dossiers .row:last-child { display: none; } - #infos_dossier { + #infos-dossiers { margin-bottom: -70px; } - #backoffice_dossier_show .nav-tabs { + #backoffice-dossier-show .nav-tabs { display: none; } diff --git a/app/assets/stylesheets/procedure.scss b/app/assets/stylesheets/procedure.scss index 2bc5b4e87..b1e5194f5 100644 --- a/app/assets/stylesheets/procedure.scss +++ b/app/assets/stylesheets/procedure.scss @@ -1,12 +1,12 @@ -#modules_api_carto { +#modules-api-carto { display: none; } -#procedure_lien_demarche { +#procedure-lien-demarche { display: none; } -#individual_with_siret { +#individual-with-siret { display: none; } diff --git a/app/assets/stylesheets/recapitulatif.scss b/app/assets/stylesheets/recapitulatif.scss index 7d81a7c46..7a07fbd75 100644 --- a/app/assets/stylesheets/recapitulatif.scss +++ b/app/assets/stylesheets/recapitulatif.scss @@ -1,4 +1,4 @@ -#UploadPJmodal { +#upload-pj-modal { text-align: left; table { diff --git a/app/assets/stylesheets/search.scss b/app/assets/stylesheets/search.scss index af9a8e362..26e91409a 100644 --- a/app/assets/stylesheets/search.scss +++ b/app/assets/stylesheets/search.scss @@ -3,11 +3,11 @@ height: 30px; } -#search_button { +#search-button { height: 34px; } -#mask_search { +#mask-search { display: none; position: fixed; background-color: rgba(0, 0, 0, 0.4); diff --git a/app/assets/stylesheets/siret.scss b/app/assets/stylesheets/siret.scss index c5eac6f02..e5bdf2050 100644 --- a/app/assets/stylesheets/siret.scss +++ b/app/assets/stylesheets/siret.scss @@ -6,7 +6,7 @@ display: none; } -#titre_procedure { +#titre-procedure { margin-top: 3%; margin-bottom: 2%; } diff --git a/app/assets/stylesheets/support_navigator_banner.scss b/app/assets/stylesheets/support_navigator_banner.scss index 9371dd4d2..bfb8a21fe 100644 --- a/app/assets/stylesheets/support_navigator_banner.scss +++ b/app/assets/stylesheets/support_navigator_banner.scss @@ -1,4 +1,4 @@ -#support_navigator_banner { +#support-navigator-banner { position: fixed; text-align: center; line-height: 2em; diff --git a/app/assets/stylesheets/switch_menu.scss b/app/assets/stylesheets/switch_menu.scss index 49fb5289c..e9c18733c 100644 --- a/app/assets/stylesheets/switch_menu.scss +++ b/app/assets/stylesheets/switch_menu.scss @@ -1,4 +1,4 @@ -#switch_menu { +#switch-menu { position: fixed; left: 10px; bottom: 10px; diff --git a/app/assets/stylesheets/users.scss b/app/assets/stylesheets/users.scss index e4988dbb3..393083a74 100644 --- a/app/assets/stylesheets/users.scss +++ b/app/assets/stylesheets/users.scss @@ -1,11 +1,11 @@ @import "variables"; -#users_index, -#admins_index { +#users-index, +#admins-index { margin-left: 2rem; margin-right: 2rem; - .default_data_block { + .default-data-block { margin-top: 20px; background-color: #FFFFFF; @@ -19,11 +19,11 @@ } } -#users_siret_index { +#users-siret-index { margin: 20px; } -#carto_page { +#carto-page { margin: 20px; } @@ -36,9 +36,9 @@ } .white-back, -#users_siret_index, -#description_page, -#carto_page { +#users-siret-index, +#description-page, +#carto-page { background-color: #FFFFFF; box-shadow: 0 0 1px 0 rgba(0, 0, 0, 0.5); padding: 20px; diff --git a/app/views/admin/accompagnateurs/_list_assign.html.haml b/app/views/admin/accompagnateurs/_list_assign.html.haml index faeec752d..d685264e4 100644 --- a/app/views/admin/accompagnateurs/_list_assign.html.haml +++ b/app/views/admin/accompagnateurs/_list_assign.html.haml @@ -1,7 +1,7 @@ .row{ style: 'height: 34px;' } - unless smart_listing.empty? - %table.table#liste_gestionnaire + %table.table#liste-gestionnaire %thead %th Enlever %th#email{ style: 'text-align: right;' } Email diff --git a/app/views/admin/accompagnateurs/_list_not_assign.html.haml b/app/views/admin/accompagnateurs/_list_not_assign.html.haml index d016ffe90..d310c1360 100644 --- a/app/views/admin/accompagnateurs/_list_not_assign.html.haml +++ b/app/views/admin/accompagnateurs/_list_not_assign.html.haml @@ -7,7 +7,7 @@ - unless smart_listing.empty? - %table.table#liste_gestionnaire + %table.table#liste-gestionnaire %thead %th#email Email %th Ajouter diff --git a/app/views/admin/gestionnaires/_list.html.haml b/app/views/admin/gestionnaires/_list.html.haml index 259f3c31f..bb93b043e 100644 --- a/app/views/admin/gestionnaires/_list.html.haml +++ b/app/views/admin/gestionnaires/_list.html.haml @@ -1,5 +1,5 @@ - unless smart_listing.empty? - %table.table#liste_gestionnaire + %table.table#liste-gestionnaire %thead %th#libelle= smart_listing.sortable 'Email', 'email' %th diff --git a/app/views/admin/pieces_justificatives/_fields.html.haml b/app/views/admin/pieces_justificatives/_fields.html.haml index 82ec1d409..e51a2676e 100644 --- a/app/views/admin/pieces_justificatives/_fields.html.haml +++ b/app/views/admin/pieces_justificatives/_fields.html.haml @@ -1,4 +1,4 @@ -.pieces_justificatives_fields +.pieces-justificatives-fields = f.fields_for :types_de_piece_justificative, types_de_piece_justificative, remote: true do |ff| .form-inline .form-group diff --git a/app/views/admin/pieces_justificatives/show.js.erb b/app/views/admin/pieces_justificatives/show.js.erb index 094e982cb..34ce0066b 100644 --- a/app/views/admin/pieces_justificatives/show.js.erb +++ b/app/views/admin/pieces_justificatives/show.js.erb @@ -1,4 +1,4 @@ <% flash.each do |type, message| %> -$("#flash_message").html("
<%= message.html_safe %>
").children().fadeOut(5000) +$("#flash_message").html("
<%= message.html_safe %>
").children().fadeOut(5000) <% end %> $('#piece_justificative_form').html("<%= escape_javascript(render partial: 'form', locals: { procedure: @procedure } ) %>"); diff --git a/app/views/admin/procedures/_informations.html.haml b/app/views/admin/procedures/_informations.html.haml index 476b8d250..553457b48 100644 --- a/app/views/admin/procedures/_informations.html.haml +++ b/app/views/admin/procedures/_informations.html.haml @@ -37,10 +37,10 @@ = f.fields_for :module_api_carto, @procedure.module_api_carto do |ff| .checkbox %label - = ff.check_box :use_api_carto, id: :procedure_module_api_carto_use_api_carto + = ff.check_box :use_api_carto, id: "procedure-module-api-carto-use-api-carto" Utilisation de la cartographie - %ul#modules_api_carto + %ul#modules-api-carto %li .checkbox %label @@ -73,7 +73,7 @@ ne possède pas (ou pas encore) de numéro SIRET, qui doivent donc s'identifier en tant que personne physique. - %ul#individual_with_siret + %ul#individual-with-siret %li .checkbox %label diff --git a/app/views/admin/procedures/_list.html.haml b/app/views/admin/procedures/_list.html.haml index cc2f21c65..5cf85a729 100644 --- a/app/views/admin/procedures/_list.html.haml +++ b/app/views/admin/procedures/_list.html.haml @@ -1,5 +1,5 @@ - unless smart_listing.empty? - %table.table#dossiers_list + %table.table#dossiers-list %thead %th#ID= smart_listing.sortable 'ID', 'id' %th#libelle= smart_listing.sortable 'Libellé', 'libelle' diff --git a/app/views/admin/procedures/_modal_publish.html.haml b/app/views/admin/procedures/_modal_publish.html.haml index 2619ca5e5..b5c282d34 100644 --- a/app/views/admin/procedures/_modal_publish.html.haml +++ b/app/views/admin/procedures/_modal_publish.html.haml @@ -1,4 +1,4 @@ -#publishModal.modal.fade{ "aria-labelledby" => "myModalLabel", :role => "dialog", :tabindex => "-1" } +#publish-modal.modal.fade{ "aria-labelledby" => "myModalLabel", :role => "dialog", :tabindex => "-1" } .modal-dialog.modal-lg{ :role => "document" } = form_tag admin_procedure_publish_path(procedure_id: @procedure.id), method: :put, remote: true do .modal-content @@ -8,7 +8,7 @@ %h4#myModalLabel.modal-title = @procedure.archived? ? 'Réactiver' : 'Publier' la procédure - %span#publishModal_title + %span#publish-modal-title .modal-body Vous vous apprêtez à = @procedure.archived? ? 'republier' : 'publier' @@ -30,7 +30,7 @@ class: 'form-control', maxlength: 30, style: 'width: 300px; display: inline;') - #path_messages + #path-messages #path_is_mine.text-warning.center.message Ce lien est déjà utilisé par une de vos procédure. %br diff --git a/app/views/admin/procedures/index.html.haml b/app/views/admin/procedures/index.html.haml index 570a8cb9b..7b2e1370c 100644 --- a/app/views/admin/procedures/index.html.haml +++ b/app/views/admin/procedures/index.html.haml @@ -1,5 +1,5 @@ -#admins_index - .default_data_block.default_visible +#admins-index + .default-data-block.default_visible .row.show-block#new_dossiers .header .col-lg-10.col-md-10.col-sm-10.col-xs-10.title diff --git a/app/views/admin/procedures/show.html.haml b/app/views/admin/procedures/show.html.haml index 3913a4235..79d3090d9 100644 --- a/app/views/admin/procedures/show.html.haml +++ b/app/views/admin/procedures/show.html.haml @@ -6,7 +6,7 @@ %i.fa.fa-eraser Publier - else - %a.btn.btn-success{ "data-target" => "#publishModal", "data-toggle" => "modal", :type => "button", style: 'float: right; margin-top: 10px;', id: 'publish-procedure' } + %a.btn.btn-success{ "data-target" => "#publish-modal", "data-toggle" => "modal", :type => "button", style: 'float: right; margin-top: 10px;', id: 'publish-procedure' } %i.fa.fa-eraser Publier @@ -19,7 +19,7 @@ = render partial: '/admin/procedures/modal_transfer' - if @facade.procedure.archived? - %a#reenable.btn.btn-small.btn-default.text-info{ "data-target" => "#publishModal", "data-toggle" => "modal", :type => "button", style: 'float: right; margin-top: 10px;' } + %a#reenable.btn.btn-small.btn-default.text-info{ "data-target" => "#publish-modal", "data-toggle" => "modal", :type => "button", style: 'float: right; margin-top: 10px;' } %i.fa.fa-eraser Réactiver @@ -80,7 +80,7 @@ - @facade.procedure.types_de_champ_private.order(:order_place).each do |champ| %li= champ.libelle - .pieces_justificatives.col-xs-6.col-md-3 + .pieces-justificatives.col-xs-6.col-md-3 %h4.text-info Pièces jointes .badge.progress-bar-info diff --git a/app/views/admin/types_de_champ/_fields.html.haml b/app/views/admin/types_de_champ/_fields.html.haml index 3e84b68d7..aaf0a5ea6 100644 --- a/app/views/admin/types_de_champ/_fields.html.haml +++ b/app/views/admin/types_de_champ/_fields.html.haml @@ -1,20 +1,20 @@ = f.fields_for @types_de_champ_facade.fields_for_var, types_de_champ, remote: true do |ff| - type_champ = ff.object.object.type_champ - .form-inline{ class: (type_champ == 'header_section' ? 'header_section' : nil) } + .form-inline{ class: (type_champ == 'header_section' ? 'header-section' : nil) } .form-group.libelle %h4 Libellé = ff.text_field :libelle, class: 'form-control libelle', placeholder: 'Libellé' .form-group.type %h4 Type - = ff.select :type_champ, TypeDeChamp.type_de_champs_list_fr, {}, { class: 'form-control type_champ' } + = ff.select :type_champ, TypeDeChamp.type_de_champs_list_fr, {}, { class: 'form-control type-champ' } .form-group.description %h4 Description = ff.text_area :description, class: 'form-control description', placeholder: 'Description', rows: 3 - .form-group.drop_down_list{ class: (%w(drop_down_list multiple_drop_down_list).include?(type_champ) ? 'show_inline' : nil), style: 'margin-right: 5px;' } + .form-group.drop-down-list{ class: (%w(drop_down_list multiple_drop_down_list).include?(type_champ) ? 'show-inline' : nil), style: 'margin-right: 5px;' } %h4 Liste déroulante = ff.fields_for :drop_down_list_attributes, ff.object.object.drop_down_list do |fff| ~ fff.text_area :value, class: 'form-control drop_down_list', placeholder: "Ecrire une valeur par ligne et --valeur-- pour un séparateur.", rows: 3, cols: 30 diff --git a/app/views/admin/types_de_champ/show.html.haml b/app/views/admin/types_de_champ/show.html.haml index 1ec8b0871..6b3522fa1 100644 --- a/app/views/admin/types_de_champ/show.html.haml +++ b/app/views/admin/types_de_champ/show.html.haml @@ -1,3 +1,3 @@ .row.white-back - #liste_champ + #liste-champ = render partial: 'admin/types_de_champ/form' diff --git a/app/views/admin/types_de_champ/show.js.erb b/app/views/admin/types_de_champ/show.js.erb index 1406b46c8..1e156d1bb 100644 --- a/app/views/admin/types_de_champ/show.js.erb +++ b/app/views/admin/types_de_champ/show.js.erb @@ -1,5 +1,5 @@ <% flash.each do |type, message| %> -$("#flash_message").html("
<%= message.html_safe %>
").children().fadeOut(5000) +$("#flash_message").html("
<%= message.html_safe %>
").children().fadeOut(5000) <% end %> -$('#liste_champ').html("<%= escape_javascript(render partial: 'admin/types_de_champ/form', locals: { procedure: @procedure, types_de_champ: @types_de_champ } ) %>"); -on_change_type_de_champ_select (); \ No newline at end of file +$('#liste-champ').html("<%= escape_javascript(render partial: 'admin/types_de_champ/form', locals: { procedure: @procedure, types_de_champ: @types_de_champ } ) %>"); +on_change_type_de_champ_select (); diff --git a/app/views/administrateurs/sessions/new.html.haml b/app/views/administrateurs/sessions/new.html.haml index 7ebe37ba9..1a480db6f 100644 --- a/app/views/administrateurs/sessions/new.html.haml +++ b/app/views/administrateurs/sessions/new.html.haml @@ -1,4 +1,4 @@ -#form_login +#form-login %br = image_tag(image_url(LOGO_NAME)) %br @@ -7,7 +7,7 @@ %br %br - #new_user + #new-user = form_for @administrateur, url: { controller: 'administrateurs/sessions', action: :create } do |f| %h4 = f.label :email diff --git a/app/views/backoffice/dossiers/_list.html.haml b/app/views/backoffice/dossiers/_list.html.haml index 1aebea3ba..3316aa0c8 100644 --- a/app/views/backoffice/dossiers/_list.html.haml +++ b/app/views/backoffice/dossiers/_list.html.haml @@ -1,4 +1,4 @@ -%table#dossiers_list.table +%table#dossiers-list.table %thead - if smart_listing.name.to_s == 'follow_dossiers' %th.col-xs-1.center diff --git a/app/views/backoffice/dossiers/_pref_list.html.haml b/app/views/backoffice/dossiers/_pref_list.html.haml index b92e4a41c..31d6c1fed 100644 --- a/app/views/backoffice/dossiers/_pref_list.html.haml +++ b/app/views/backoffice/dossiers/_pref_list.html.haml @@ -1,4 +1,4 @@ -%button#pref_list_dossier_close_action.btn.btn-danger.btn-xs.fixed-right +%button#pref-list-dossier-close-action.btn.btn-danger.btn-xs.fixed-right %i.fa.fa-close %h3 = t('dynamics.backoffice.pref_list.title') diff --git a/app/views/backoffice/dossiers/_pref_list.js.erb b/app/views/backoffice/dossiers/_pref_list.js.erb index e15e3f068..00a569dd4 100644 --- a/app/views/backoffice/dossiers/_pref_list.js.erb +++ b/app/views/backoffice/dossiers/_pref_list.js.erb @@ -9,6 +9,6 @@ $.ajax({ url: '/backoffice/preference_list_dossier/reload_pref_list?procedure_id=<%= @procedure_id %>', async: true }).done(function (data) { - $("#pref_list_menu").html(data); + $("#pref-list-menu").html(data); pref_list_dossier_actions(); }); diff --git a/app/views/backoffice/dossiers/formulaire_private.js.erb b/app/views/backoffice/dossiers/formulaire_private.js.erb index a4a9f595b..44b5a576a 100644 --- a/app/views/backoffice/dossiers/formulaire_private.js.erb +++ b/app/views/backoffice/dossiers/formulaire_private.js.erb @@ -1,4 +1,4 @@ <% flash.each do |type, message| %> -$("#flash_message").html("
<%= message.html_safe %>
").children().fadeOut(5000) +$("#flash_message").html("
<%= message.html_safe %>
").children().fadeOut(5000) <% end %> <% flash.clear %> diff --git a/app/views/backoffice/dossiers/index.html.haml b/app/views/backoffice/dossiers/index.html.haml index f10570616..54d14c648 100644 --- a/app/views/backoffice/dossiers/index.html.haml +++ b/app/views/backoffice/dossiers/index.html.haml @@ -1,8 +1,8 @@ -#backoffice_index - #pref_list_menu +#backoffice-index + #pref-list-menu = render partial: 'backoffice/dossiers/pref_list' - .default_data_block + .default-data-block .row.show-block#new_dossiers .header .col-xs-10.title @@ -24,7 +24,7 @@ .col-xs-3 = link_to 'Terminés', '?liste=termine', class: 'text-success', style: "text-decoration: #{@facade_data_view.liste == 'termine'? 'underline' : ''}" - .default_data_block.default_visible + .default-data-block.default_visible .row.show-block#follow_dossiers .header .col-xs-10.title @@ -36,7 +36,7 @@ .body = smart_listing_render :follow_dossiers - .default_data_block + .default-data-block .row.show-block#all_dossiers .header .col-xs-10.title @@ -50,7 +50,7 @@ - if @archived_dossiers - .default_data_block + .default-data-block .row.show-block#archived_dossiers .header .col-xs-10.title diff --git a/app/views/backoffice/dossiers/search.html.haml b/app/views/backoffice/dossiers/search.html.haml index 34ffd639d..6a17e254c 100644 --- a/app/views/backoffice/dossiers/search.html.haml +++ b/app/views/backoffice/dossiers/search.html.haml @@ -1,8 +1,8 @@ -#backoffice_search - #pref_list_menu +#backoffice-search + #pref-list-menu = render partial: 'backoffice/dossiers/pref_list' - .default_data_block.default_visible + .default-data-block.default_visible .row.show-block#new_dossiers .header .col-lg-10.col-md-10.col-sm-10.col-xs-10.title diff --git a/app/views/backoffice/dossiers/show.html.haml b/app/views/backoffice/dossiers/show.html.haml index be9e5d17d..de5a91238 100644 --- a/app/views/backoffice/dossiers/show.html.haml +++ b/app/views/backoffice/dossiers/show.html.haml @@ -1,2 +1,2 @@ -#backoffice_dossier_show.col-xs-12 +#backoffice-dossier-show.col-xs-12 = render partial: "dossiers/dossier_show" diff --git a/app/views/dossiers/_dossier_show.html.haml b/app/views/dossiers/_dossier_show.html.haml index be5f83190..2a96ccc76 100644 --- a/app/views/dossiers/_dossier_show.html.haml +++ b/app/views/dossiers/_dossier_show.html.haml @@ -1,7 +1,7 @@ = render partial: 'dossiers/messagerie', locals: { dossier_facade: @facade } - if @facade.procedure.individual_with_siret - .default_data_block + .default-data-block .row.show-block.infos .header .col-xs-8.title-no-expanse @@ -13,7 +13,7 @@ Renseigner un SIRET - unless @facade.entreprise.nil? - .default_data_block + .default-data-block .row.show-block.infos#infos_entreprise .header .col-xs-12.title @@ -23,8 +23,8 @@ .body.display-block-on-print = render partial: '/dossiers/infos_entreprise' -.default_data_block.default_visible - .row.show-block.infos#infos_dossier +.default-data-block.default_visible + .row.show-block.infos#infos-dossiers .header .col-xs-10.title .carret-right @@ -35,7 +35,7 @@ = render partial: '/dossiers/infos_dossier' - if @facade.dossier.procedure.module_api_carto.use_api_carto - .default_data_block.default_visible.no-page-break-inside + .default-data-block.default_visible.no-page-break-inside .row.show-block#carto .header .col-xs-10.title @@ -53,7 +53,7 @@ - if @current_gestionnaire && gestionnaire_signed_in? && @champs_private.count > 0 - .default_data_block.default_visible + .default-data-block.default_visible .row.show-block#private-fields .header .col-xs-10.title diff --git a/app/views/dossiers/_download_dossiers.html.haml b/app/views/dossiers/_download_dossiers.html.haml index 369bd4327..26abe6925 100644 --- a/app/views/dossiers/_download_dossiers.html.haml +++ b/app/views/dossiers/_download_dossiers.html.haml @@ -1,5 +1,5 @@ .dropdown.pull-right#download-menu - %a.dropdown-toggle.button_navbar{ type: :button, 'data-toggle' => 'dropdown', 'aria-haspopup' => true, 'aria-expanded' => false } + %a.dropdown-toggle.button-navbar{ type: :button, 'data-toggle' => 'dropdown', 'aria-haspopup' => true, 'aria-expanded' => false } %i.fa.fa-download Télécharger tous les dossiers %span.caret diff --git a/app/views/dossiers/_edit_pieces_jointes.html.haml b/app/views/dossiers/_edit_pieces_jointes.html.haml index 61a8dc794..3584221a3 100644 --- a/app/views/dossiers/_edit_pieces_jointes.html.haml +++ b/app/views/dossiers/_edit_pieces_jointes.html.haml @@ -2,7 +2,7 @@ - if user_signed_in? && (@facade.dossier.owner?(current_user.email) || @facade.dossier.invite_by_user?(current_user.email)) - if @facade.procedure.cerfa_flag? || @facade.dossier.types_de_piece_justificative.size > 0 .col-lg-4.col-md-4.col-sm-4.col-xs-4.action - %a#maj_pj.action{ "data-target" => "#UploadPJmodal", + %a#maj_pj.action{ "data-target" => "#upload-pj-modal", "data-toggle" => "modal", :type => "button", style: 'margin-bottom: 15px; margin-top: -30px;' } diff --git a/app/views/dossiers/_infos_dossier.html.haml b/app/views/dossiers/_infos_dossier.html.haml index 954aa6856..00b37b627 100644 --- a/app/views/dossiers/_infos_dossier.html.haml +++ b/app/views/dossiers/_infos_dossier.html.haml @@ -62,7 +62,7 @@ .col-xs-4.dossier-title= t('utils.pieces').upcase .col-xs-4.split-hr - .col-xs-12#pieces_justificatives.margin-bot-40 + .col-xs-12#pieces-justificatives.margin-bot-40 .row - if @facade.procedure.cerfa_flag? .col-xs-12#piece_justificative_0 @@ -74,7 +74,7 @@ %a{ href: "#{@facade.dossier.cerfa.last.content_url}", target: '_blank' } Consulter %span{ style: 'margin-left: 12px;' } \- - = link_to "", class: "historique", "data-toggle" => "modal", "data-target" => "#PJmodal", :type => "button", "data-modal_title" => 'formulaires', "data-modal_index" => 'cerfa' do + = link_to "", class: "historique", "data-toggle" => "modal", "data-target" => "#pj-modal", :type => "button", "data-modal_title" => 'formulaires', "data-modal_index" => 'cerfa' do %span.fa.fa-clock-o - else Pièce non fournie @@ -94,7 +94,7 @@ %span{ style: 'margin-left: 12px;' } \- - if @facade.dossier.pieces_justificatives.where(type_de_piece_justificative_id: type_de_piece_justificative.id).count > 1 - = link_to "", class: "historique", "data-toggle" => "modal", "data-target" => "#PJmodal", :type => "button", "data-modal_title" => 'formulaires', "data-modal_index" => "type_de_pj_#{type_de_piece_justificative.id}" do + = link_to "", class: "historique", "data-toggle" => "modal", "data-target" => "#pj-modal", :type => "button", "data-modal_title" => 'formulaires', "data-modal_index" => "type_de_pj_#{type_de_piece_justificative.id}" do %span.fa.fa-clock-o - else Pièce non fournie @@ -104,7 +104,7 @@ - if @facade.procedure.cerfa_flag? || @facade.dossier.types_de_piece_justificative.size > 0 .row .col-xs-4 - %a#maj_pj.action{ "data-target" => "#UploadPJmodal", "data-toggle" => "modal", :type => "button" } + %a#maj_pj.action{ "data-target" => "#upload-pj-modal", "data-toggle" => "modal", :type => "button" } .col-xs-4.action Modifier les documents %br @@ -112,7 +112,7 @@ .col-xs-4 - if gestionnaire_signed_in? - #PJmodal.modal.fade{ "aria-labelledby" => "myModalLabel", :role => "dialog", :tabindex => "-1" } + #pj-modal.modal.fade{ "aria-labelledby" => "myModalLabel", :role => "dialog", :tabindex => "-1" } .modal-dialog.modal-lg{ :role => "document" } .modal-content .modal-header @@ -120,7 +120,7 @@ %span{ "aria-hidden" => "true" } × %h4#myModalLabel.modal-title Historique des - %span#PJmodal_title + %span#pj-modal-title .modal-body %table.table %thead @@ -130,7 +130,7 @@ Date d'envoi %th Lien - %thead.tr_content#cerfa + %thead.tr-content#cerfa - if @facade.procedure.cerfa_flag? - if @facade.dossier.cerfa_available? - @facade.cerfas_ordered.each do |cerfa| @@ -142,7 +142,7 @@ %td.col-md-6.col-sm-6.col-xs-6.col-lg-4 = link_to 'Récupérer', cerfa.content_url, { target: :blank } - @facade.dossier.types_de_piece_justificative.each do |type_de_piece_justificative| - %tbody.tr_content{ id: "type_de_pj_#{type_de_piece_justificative.id}" } + %tbody.tr-content{ id: "type_de_pj_#{type_de_piece_justificative.id}" } - @facade.dossier.retrieve_all_piece_justificative_by_type(type_de_piece_justificative.id).each do |piece_justificative| %tr %td.col-md-6.col-sm-6.col-xs-6.col-lg-4 diff --git a/app/views/dossiers/_infos_pieces_jointes.html.haml b/app/views/dossiers/_infos_pieces_jointes.html.haml index 78d1df89f..05faa1417 100644 --- a/app/views/dossiers/_infos_pieces_jointes.html.haml +++ b/app/views/dossiers/_infos_pieces_jointes.html.haml @@ -1,4 +1,4 @@ -#pieces_justificatives +#pieces-justificatives .row - if @facade.procedure.cerfa_flag? .col-xs-12#piece_justificative_0 @@ -11,7 +11,7 @@ %span{ style: 'margin-left: 12px;' } \- %a.btn.fa.fa-timer{ style: 'color: black; padding-top: 0;', - "data-target" => "#PJmodal", + "data-target" => "#pj-modal", "data-toggle" => "modal", :type => "button", "data-modal_title" => 'formulaires', @@ -37,7 +37,7 @@ %span{ style: 'margin-left: 12px;' } \- %a.btn.fa.fa-timer{ style: 'color: black; padding-top: 0;', - "data-target" => "#PJmodal", + "data-target" => "#pj-modal", "data-toggle" => "modal", :type => "button", "data-modal_title" => type_de_piece_justificative.libelle, diff --git a/app/views/dossiers/_messagerie.html.haml b/app/views/dossiers/_messagerie.html.haml index eb8b59324..ca223136d 100644 --- a/app/views/dossiers/_messagerie.html.haml +++ b/app/views/dossiers/_messagerie.html.haml @@ -1,4 +1,4 @@ -.default_data_block{ style: 'margin-top: 40px;' } +.default-data-block{ style: 'margin-top: 40px;' } .row.show-block.clearfix#messages .header .col-xs-10.title diff --git a/app/views/dossiers/_pieces_justificatives.html.haml b/app/views/dossiers/_pieces_justificatives.html.haml index f547b1a4d..74d837d30 100644 --- a/app/views/dossiers/_pieces_justificatives.html.haml +++ b/app/views/dossiers/_pieces_justificatives.html.haml @@ -1,4 +1,4 @@ -#pieces_justificatives +#pieces-justificatives %table.table - if @facade.procedure.cerfa_flag? %tr{ id: "piece_justificative_0" } @@ -10,7 +10,7 @@ %span{ style: 'margin-left: 12px;' } \- %a.btn.fa.fa-timer{ style: 'color: black; padding-top: 0;', - "data-target" => "#PJmodal", + "data-target" => "#pj-modal", "data-toggle" => "modal", :type => "button", "data-modal_title" => 'formulaires', @@ -33,7 +33,7 @@ %span{ style: 'margin-left: 12px;' } \- %a.btn.fa.fa-timer{ style: 'color: black; padding-top: 0;', - "data-target" => "#PJmodal", + "data-target" => "#pj-modal", "data-toggle" => "modal", :type => "button", "data-modal_title" => type_de_piece_justificative.libelle, diff --git a/app/views/dossiers/_show.html.haml b/app/views/dossiers/_show.html.haml index 61ab17978..a63cafa14 100644 --- a/app/views/dossiers/_show.html.haml +++ b/app/views/dossiers/_show.html.haml @@ -1,9 +1,9 @@ -#users_siret_index +#users-siret-index .row.etape.etape_1 = render partial: '/dossiers/etapes/etape1' - .row.etape.etape_2 + .row.etape.etape-2 = render partial: '/dossiers/etapes/etape2' -# - if @facade.procedure.module_api_carto.use_api_carto? diff --git a/app/views/dossiers/add_siret.js.erb b/app/views/dossiers/add_siret.js.erb index 72bb92d20..fe0cdc53c 100644 --- a/app/views/dossiers/add_siret.js.erb +++ b/app/views/dossiers/add_siret.js.erb @@ -1,6 +1,6 @@ <% if flash.empty? %> -$('.row.etape.etape_2').hide(300, render_new_siret); -$('.row.etape.etape_2').slideDown(400, the_terms); +$('.row.etape.etape-2').hide(300, render_new_siret); +$('.row.etape.etape-2').slideDown(400, the_terms); <% else %> error_form_siret('<%= invalid_siret %>'); <% end %> @@ -8,5 +8,5 @@ error_form_siret('<%= invalid_siret %>'); <% flash.clear %> function render_new_siret(){ - $('.row.etape.etape_2').html("<%= escape_javascript(render partial: '/dossiers/etapes/etape_2/entreprise', locals: { facade: @facade } ) %>"); + $('.row.etape.etape-2').html("<%= escape_javascript(render partial: '/dossiers/etapes/etape_2/entreprise', locals: { facade: @facade } ) %>"); } \ No newline at end of file diff --git a/app/views/dossiers/etapes/_etape1.html.haml b/app/views/dossiers/etapes/_etape1.html.haml index 5e1d46dbc..036cdce6b 100644 --- a/app/views/dossiers/etapes/_etape1.html.haml +++ b/app/views/dossiers/etapes/_etape1.html.haml @@ -9,10 +9,10 @@ #logo_procedure.flag = image_tag( @facade.procedure.decorate.logo_img ) -.etape.etapes_informations.col-xs-9 +.etape.etapes-informations.col-xs-9 .row .col-xs-12.padding-left-30 - %h2#titre_procedure.text-info + %h2#titre-procedure.text-info = @facade.procedure.libelle %p#description_procedure{ style: 'width: 95%;', class: (@facade.entreprise.nil? ? '' : 'mask') } diff --git a/app/views/dossiers/etapes/_etape3.html.haml b/app/views/dossiers/etapes/_etape3.html.haml index a163bbe81..4a0e54e99 100644 --- a/app/views/dossiers/etapes/_etape3.html.haml +++ b/app/views/dossiers/etapes/_etape3.html.haml @@ -1,6 +1,6 @@ -.etape.etapes_menu.col-xs-3 +.etape.etapes-menu.col-xs-3 %h3 Ma zone d'intervention -.etape.etapes_informations.col-xs-9 +.etape.etapes-informations.col-xs-9 .row diff --git a/app/views/dossiers/etapes/_etape4.html.haml b/app/views/dossiers/etapes/_etape4.html.haml index 68a4c0fc4..70456b83f 100644 --- a/app/views/dossiers/etapes/_etape4.html.haml +++ b/app/views/dossiers/etapes/_etape4.html.haml @@ -1,6 +1,6 @@ -.etape.etapes_menu.col-xs-3 +.etape.etapes-menu.col-xs-3 %h3 Mon dossier -.etape.etapes_informations.col-xs-9 +.etape.etapes-informations.col-xs-9 .row diff --git a/app/views/dossiers/etapes/etape_2/_entreprise.html.haml b/app/views/dossiers/etapes/etape_2/_entreprise.html.haml index c817a95a9..7e6e6f05c 100644 --- a/app/views/dossiers/etapes/etape_2/_entreprise.html.haml +++ b/app/views/dossiers/etapes/etape_2/_entreprise.html.haml @@ -1,4 +1,4 @@ -.etape.etapes_menu.col-xs-3 +.etape.etapes-menu.col-xs-3 %h3 Mes informations %br @@ -12,21 +12,21 @@ = f.submit 'Changer de SIRET', class: %w(btn btn-xs btn-primary) -.etape.etapes_informations.col-xs-9 +.etape.etapes-informations.col-xs-9 .row - if @facade.entreprise.nil? #new_siret{ style: 'margin-left: 20%; margin-top: 5%;' } = form_for @facade.dossier, html: { class: 'form-inline' }, url: users_dossier_siret_informations_path(dossier_id: @facade.dossier.id), method: :post, remote: true do |f| .form-group.form-group-lg - = f.text_field :siret, class: "form-control", placeholder: "Entrez votre Siret", value: @siret + = f.text_field :siret, id: "dossier-siret", class: "form-control", placeholder: "Entrez votre Siret", value: @siret = f.hidden_field :dossier_id, value: @facade.dossier.id = f.submit 'Valider', class: %w(btn btn-lg btn-success), id: 'submit-siret', data: { disable_with: "Recherche en cours ..." } - else %br - #recap_info_entreprise + #recap-info-entreprise = render partial: '/dossiers/infos_entreprise' - %p#insee_infogreffe{ style: 'color: grey; float: right;' } + %p#insee-infogreffe{ style: 'color: grey; float: right;' } %i Informations récupérées auprès de l'INSEE et d'INFOGREFFE diff --git a/app/views/dossiers/etapes/etape_2/_individual.html.haml b/app/views/dossiers/etapes/etape_2/_individual.html.haml index 2e2298c33..ce87a50fc 100644 --- a/app/views/dossiers/etapes/etape_2/_individual.html.haml +++ b/app/views/dossiers/etapes/etape_2/_individual.html.haml @@ -5,7 +5,7 @@ %br vous concernant. -.etape.etapes_informations.col-xs-9 +.etape.etapes-informations.col-xs-9 = form_for @facade.dossier, url: { controller: '/users/dossiers', action: :update } do |f| .row .col-xs-12.padding-left-30 diff --git a/app/views/dossiers/new_siret.js.erb b/app/views/dossiers/new_siret.js.erb index dcb6ce2b2..a84df50d7 100644 --- a/app/views/dossiers/new_siret.js.erb +++ b/app/views/dossiers/new_siret.js.erb @@ -1,6 +1,6 @@ <% if flash.empty? %> -$('.row.etape.etape_2').hide(300, render_new_siret); -$('.row.etape.etape_2').slideDown(400, the_terms); +$('.row.etape.etape-2').hide(300, render_new_siret); +$('.row.etape.etape-2').slideDown(400, the_terms); toggle_etape_1(); <% else %> error_form_siret('<%= invalid_siret %>'); @@ -9,5 +9,5 @@ error_form_siret('<%= invalid_siret %>'); <% flash.clear %> function render_new_siret(){ - $('.row.etape.etape_2').html("<%= escape_javascript(render partial: '/dossiers/etapes/etape2', locals: { facade: @facade } ) %>"); + $('.row.etape.etape-2').html("<%= escape_javascript(render partial: '/dossiers/etapes/etape2', locals: { facade: @facade } ) %>"); } \ No newline at end of file diff --git a/app/views/france_connect/particulier/check_email.html.haml b/app/views/france_connect/particulier/check_email.html.haml index da4efd5be..9922adda2 100644 --- a/app/views/france_connect/particulier/check_email.html.haml +++ b/app/views/france_connect/particulier/check_email.html.haml @@ -12,7 +12,7 @@ Afin d'associer ce compte à votre identifiant France Connect, merci de saisir votre mot de passe TPS. %br .center - #france_connect_particulier_email + #france-connect-particulier-email = form_for @user, url: { controller: 'france_connect/particulier', action: :check_email }, method: :post do |f| .form-group.form-group-lg = f.text_field :email_france_connect, class: "form-control", readonly: 'readonly' diff --git a/app/views/france_connect/particulier/new.html.haml b/app/views/france_connect/particulier/new.html.haml index 22f6c8e72..ddb7a5b0b 100644 --- a/app/views/france_connect/particulier/new.html.haml +++ b/app/views/france_connect/particulier/new.html.haml @@ -23,7 +23,7 @@ %br .center - #france_connect_particulier_email + #france-connect-particulier-email = form_for @user, url: { controller: 'france_connect/particulier', action: :check_email }, method: :post do |f| .form-group.form-group-lg = f.text_field :email_france_connect, class: "form-control", placeholder: "Entrez votre email" diff --git a/app/views/gestionnaires/passwords/edit.html.haml b/app/views/gestionnaires/passwords/edit.html.haml index 13888a958..64acc3d70 100644 --- a/app/views/gestionnaires/passwords/edit.html.haml +++ b/app/views/gestionnaires/passwords/edit.html.haml @@ -1,13 +1,13 @@ = devise_error_messages! -#form_login +#form-login = image_tag(image_url(LOGO_NAME)) %br %h2#gestionnaire_login Changement de mot de passe %br %br - #new_user + #new-user = form_for(resource, as: resource_name, url: password_path(resource_name), html: { method: :put }) do |f| = f.hidden_field :reset_password_token %h4 diff --git a/app/views/gestionnaires/passwords/new.html.haml b/app/views/gestionnaires/passwords/new.html.haml index 5cb58e0b1..63b9cf09c 100644 --- a/app/views/gestionnaires/passwords/new.html.haml +++ b/app/views/gestionnaires/passwords/new.html.haml @@ -1,14 +1,14 @@ = devise_error_messages! %br -#form_login +#form-login = image_tag(image_url(LOGO_NAME)) %br %h2#gestionnaire_login Mot de passe oublié %br %br - #new_user + #new-user = form_for(resource, as: resource_name, url: password_path(resource_name), html: { method: :post }) do |f| %h4 = f.label :email diff --git a/app/views/gestionnaires/sessions/new.html.haml b/app/views/gestionnaires/sessions/new.html.haml index 051112da6..005803443 100644 --- a/app/views/gestionnaires/sessions/new.html.haml +++ b/app/views/gestionnaires/sessions/new.html.haml @@ -1,4 +1,4 @@ -#form_login +#form-login %br = image_tag(image_url(LOGO_NAME)) %br @@ -6,7 +6,7 @@ %br %br - #new_user + #new-user = form_for @gestionnaire, url: gestionnaire_session_path, method: :post do |f| %h4 = f.label :email diff --git a/app/views/layouts/_navbar.html.haml b/app/views/layouts/_navbar.html.haml index 226fa8396..d3d3e9db5 100644 --- a/app/views/layouts/_navbar.html.haml +++ b/app/views/layouts/_navbar.html.haml @@ -1,5 +1,5 @@ .col-xs-2 - %a#title_navbar{ href: '/' } + %a#title-navbar{ href: '/' } .row#home .col-lg-6.no-padding = image_tag('marianne_small.png', class: 'logo') diff --git a/app/views/layouts/_notifications_alert.html.haml b/app/views/layouts/_notifications_alert.html.haml index 372fe7497..99c4a4682 100644 --- a/app/views/layouts/_notifications_alert.html.haml +++ b/app/views/layouts/_notifications_alert.html.haml @@ -1 +1 @@ -#notification_alert.alert.alert-success +#notification-alert.alert.alert-success diff --git a/app/views/layouts/_support_navigator_banner.html.haml b/app/views/layouts/_support_navigator_banner.html.haml index 8f892a3b8..ff3485071 100644 --- a/app/views/layouts/_support_navigator_banner.html.haml +++ b/app/views/layouts/_support_navigator_banner.html.haml @@ -1,5 +1,5 @@ - unless BrowserService.recommended_browser? - #support_navigator_banner.row + #support-navigator-banner.row .col-xs-12 = BROWSER.value.name = BROWSER.value.version diff --git a/app/views/layouts/_switch_devise_profile_module.html.haml b/app/views/layouts/_switch_devise_profile_module.html.haml index 53d3f2134..6b718ca0a 100644 --- a/app/views/layouts/_switch_devise_profile_module.html.haml +++ b/app/views/layouts/_switch_devise_profile_module.html.haml @@ -1,5 +1,5 @@ - if SwitchDeviseProfileService.new(warden).multiple_devise_profile_connect? - #switch_menu.dropdown.dropup + #switch-menu.dropdown.dropup %button.btn.btn-default.dropdown-toggle{ type: :button, 'data-toggle' => 'dropdown', 'aria-haspopup' => true, 'aria-expanded' => false } %i.fa.fa-toggle-on %span.caret diff --git a/app/views/layouts/application.html.haml b/app/views/layouts/application.html.haml index 0508e568c..225169964 100644 --- a/app/views/layouts/application.html.haml +++ b/app/views/layouts/application.html.haml @@ -18,7 +18,7 @@ = action_cable_meta_tag %body = render partial: 'layouts/support_navigator_banner' - #beta{ class: (Rails.env == 'production' ? '' : 'beta_staging') } + #beta{ class: (Rails.env == 'production' ? '' : 'beta-staging') } - if Rails.env == 'production' Beta - else @@ -49,7 +49,7 @@ - main_container_size = 12 = render partial: 'layouts/main_container', locals: { main_container_size: main_container_size } - #mask_search + #mask-search %h1 %i.fa.fa-times{ style: 'position: fixed; top: 10; right: 30; color: white;' } diff --git a/app/views/layouts/left_panels/_left_panel_admin_procedurescontroller_index.html.haml b/app/views/layouts/left_panels/_left_panel_admin_procedurescontroller_index.html.haml index 53fcb38c2..865c47868 100644 --- a/app/views/layouts/left_panels/_left_panel_admin_procedurescontroller_index.html.haml +++ b/app/views/layouts/left_panels/_left_panel_admin_procedurescontroller_index.html.haml @@ -8,21 +8,21 @@ %div#menu-block .split-hr-left - #procedure_list + #procedure-list %a{ :href => "#{url_for :admin_procedures_draft}", id: "draft-procedures" } - .procedure_list_element{ class: @draft_class } + .procedure-list-element{ class: @draft_class } Brouillons .badge.progress-bar-default = current_administrateur.procedures.where(published: false, archived: false).count %a{ :href => "#{url_for :admin_procedures}", id: "active-procedures" } - .procedure_list_element{ class: @active_class } + .procedure-list-element{ class: @active_class } Actives .badge.progress-bar-success = current_administrateur.procedures.where(published: true, archived: false).count %a{ :href => "#{url_for :admin_procedures_archived}", id: "archived-procedures" } - .procedure_list_element{ class: @archived_class } + .procedure-list-element{ class: @archived_class } Archivées .badge.progress-bar-purple = current_administrateur.procedures.where(archived: true).count diff --git a/app/views/layouts/left_panels/_left_panel_admin_procedurescontroller_navbar.html.haml b/app/views/layouts/left_panels/_left_panel_admin_procedurescontroller_navbar.html.haml index 60036b2a5..e23c96832 100644 --- a/app/views/layouts/left_panels/_left_panel_admin_procedurescontroller_navbar.html.haml +++ b/app/views/layouts/left_panels/_left_panel_admin_procedurescontroller_navbar.html.haml @@ -9,40 +9,40 @@ %div#menu-block .split-hr-left - #procedure_list + #procedure-list %a{ :href => "#{url_for admin_procedure_path(@procedure)}", id: 'onglet-infos' } - .procedure_list_element{ class: ('active' if active == 'Informations') } + .procedure-list-element{ class: ('active' if active == 'Informations') } Informations %a{ :href => "#{url_for admin_procedure_accompagnateurs_path(@procedure)}", id: 'onglet-accompagnateurs' } - .procedure_list_element{ class: ('active' if active == 'Accompagnateurs') } + .procedure-list-element{ class: ('active' if active == 'Accompagnateurs') } = t('dynamics.admin.procedure.onglets.accompagnateurs') %a{ :href => "#{url_for edit_admin_procedure_path(@procedure)}", id: 'onglet-description' } - .procedure_list_element{ class: ('active' if active == 'Description') } + .procedure-list-element{ class: ('active' if active == 'Description') } Description - unless @procedure.locked? %a{ :href => "#{url_for admin_procedure_types_de_champ_path(@procedure)}", id: 'onglet-champs' } - .procedure_list_element{ class: ('active' if active == 'Champs') } + .procedure-list-element{ class: ('active' if active == 'Champs') } Champs - unless @procedure.locked? %a{ :href => "#{url_for admin_procedure_pieces_justificatives_path(@procedure)}", id: 'onglet-pieces' } - .procedure_list_element{ class: ('active' if active == 'Pieces') } + .procedure-list-element{ class: ('active' if active == 'Pieces') } Pièces jointes - unless @procedure.locked? %a{ :href => "#{url_for admin_procedure_types_de_champ_private_path(@procedure)}", id: 'onglet-private-champs' } - .procedure_list_element{ class: ('active' if active == 'Champs privés') } + .procedure-list-element{ class: ('active' if active == 'Champs privés') } Champs privés %a{ :href => "#{url_for admin_procedure_mail_templates_path(@procedure)}", id: 'onglet-inemailsfos' } - .procedure_list_element{ class: ('active' if active == 'E-mails') } + .procedure-list-element{ class: ('active' if active == 'E-mails') } E-mails %a{ :href => "#{url_for admin_procedure_previsualisation_path(@procedure)}", id: 'onglet-preview' } - .procedure_list_element{ class: ('active' if active == 'Prévisualisation') } + .procedure-list-element{ class: ('active' if active == 'Prévisualisation') } Prévisualisation .split-hr-left diff --git a/app/views/layouts/left_panels/_left_panel_backoffice_dossierscontroller_index.html.haml b/app/views/layouts/left_panels/_left_panel_backoffice_dossierscontroller_index.html.haml index d99573c44..c990c6836 100644 --- a/app/views/layouts/left_panels/_left_panel_backoffice_dossierscontroller_index.html.haml +++ b/app/views/layouts/left_panels/_left_panel_backoffice_dossierscontroller_index.html.haml @@ -19,11 +19,11 @@ %div#infos-block .split-hr-left - #procedure_list + #procedure-list - @facade_data_view.gestionnaire_procedures_name_and_id_list.each do |procedure| = link_to backoffice_dossiers_procedure_path(procedure[:id]), { title: procedure[:libelle] } do - .procedure_list_element{ class: ('active' if procedure[:id] == @facade_data_view.procedure.id rescue '') } + .procedure-list-element{ class: ('active' if procedure[:id] == @facade_data_view.procedure.id rescue '') } = truncate(procedure[:libelle], length: 50) - total_new = @facade_data_view.new_dossier_number procedure[:id] - if total_new > 0 @@ -32,7 +32,7 @@ - if procedure[:unread_notifications] > 0 .badge.progress-bar-warning{ title: 'Notifications' } = procedure[:unread_notifications] - #notifications_list.hidden + #notifications-list.hidden - if @facade_data_view.dossiers_with_unread_notifications.empty? .no-notification Aucune notification pour le moment. - else diff --git a/app/views/layouts/left_panels/_left_panel_cgucontroller_index.html.haml b/app/views/layouts/left_panels/_left_panel_cgucontroller_index.html.haml index 1d386a756..6fce145f3 100644 --- a/app/views/layouts/left_panels/_left_panel_cgucontroller_index.html.haml +++ b/app/views/layouts/left_panels/_left_panel_cgucontroller_index.html.haml @@ -1,53 +1,53 @@ %div#cgu_menu_block - #procedure_list{ style: 'margin-top: 0;' } + #procedure-list{ style: 'margin-top: 0;' } = link_to cgu_path(:anchor => "editeur") do - .procedure_list_element + .procedure-list-element Editeur = link_to cgu_path(:anchor => "ingenieurie_hebergement") do - .procedure_list_element + .procedure-list-element Ingénierie et hébergement informatique = link_to cgu_path(:anchor => "object_website") do - .procedure_list_element + .procedure-list-element Object du site internet = link_to cgu_path(:anchor => "acteurs") do - .procedure_list_element + .procedure-list-element Acteurs de TPS = link_to cgu_path(:anchor => "CNIL") do - .procedure_list_element + .procedure-list-element Déclaration CNIL = link_to cgu_path(:anchor => "data_collects") do - .procedure_list_element + .procedure-list-element Données collectées et responsabilité des organismes utilisateurs = link_to cgu_path(:anchor => "individual_data") do - .procedure_list_element + .procedure-list-element Traitement des données à caractère personnel = link_to cgu_path(:anchor => "entreprise_information") do - .procedure_list_element + .procedure-list-element Règles relatives aux informations sur les entreprises mises à disposibition = link_to cgu_path(:anchor => "reproduction") do - .procedure_list_element + .procedure-list-element Droit de reproduction = link_to cgu_path(:anchor => "propriete_intellectuelle") do - .procedure_list_element + .procedure-list-element Propriété intellectuelle = link_to cgu_path(:anchor => "navigateurs") do - .procedure_list_element + .procedure-list-element Logiciels nécessaires à la consultation = link_to cgu_path(:anchor => "conception") do - .procedure_list_element + .procedure-list-element Conception et Réalisation - .procedure_list_element + .procedure-list-element - .procedure_list_element + .procedure-list-element diff --git a/app/views/layouts/left_panels/_left_panel_users_dossierscontroller_index.html.haml b/app/views/layouts/left_panels/_left_panel_users_dossierscontroller_index.html.haml index 06d8817d7..3e0bebb2f 100644 --- a/app/views/layouts/left_panels/_left_panel_users_dossierscontroller_index.html.haml +++ b/app/views/layouts/left_panels/_left_panel_users_dossierscontroller_index.html.haml @@ -9,34 +9,34 @@ %div#menu-block .split-hr-left - #procedure_list + #procedure-list - unless current_user.dossiers.count == 0 %a{ :href => "#{url_for users_dossiers_path(liste: 'brouillon')}", 'data-toggle' => :tooltip, title: 'Les dossiers jamais proposés à la relecture.' } - .procedure_list_element{ class: @dossiers_list_facade.brouillon_class, id: 'brouillon' } + .procedure-list-element{ class: @dossiers_list_facade.brouillon_class, id: 'brouillon' } Brouillons .badge.progress-bar-default = @dossiers_list_facade.brouillon_total %a{ :href => "#{url_for users_dossiers_path(liste: 'a_traiter')}", 'data-toggle' => :tooltip, title: 'Les dossiers qui requièrent une action de votre part.' } - .procedure_list_element{ class: @dossiers_list_facade.en_construction_class, id: 'a_traiter' } + .procedure-list-element{ class: @dossiers_list_facade.en_construction_class, id: 'a_traiter' } En construction .badge.progress-bar-danger = @dossiers_list_facade.en_construction_total %a{ :href => "#{url_for users_dossiers_path(liste: 'en_instruction')}", 'data-toggle' => :tooltip, title: 'Les dossiers en cours d\'examen par l\'administration compétante.' } - .procedure_list_element{ class: @dossiers_list_facade.en_instruction_class, id: 'en_instruction' } + .procedure-list-element{ class: @dossiers_list_facade.en_instruction_class, id: 'en_instruction' } En instruction .badge.progress-bar-default = @dossiers_list_facade.en_instruction_total %a{ :href => "#{url_for users_dossiers_path(liste: 'termine')}", 'data-toggle' => :tooltip, title: 'Les dossiers cloturés qui peuvent être "Accepté", "Refusé" ou "Sans suite".' } - .procedure_list_element{ class: @dossiers_list_facade.termine_class, id: 'termine' } + .procedure-list-element{ class: @dossiers_list_facade.termine_class, id: 'termine' } Terminé .badge.progress-bar-success = @dossiers_list_facade.termine_total %a{ :href => "#{url_for users_dossiers_path(liste: 'invite')}" } - .procedure_list_element{ class: @dossiers_list_facade.invite_class, id: 'invite' } + .procedure-list-element{ class: @dossiers_list_facade.invite_class, id: 'invite' } Invitation .badge.progress-bar-warning = @dossiers_list_facade.invite_total diff --git a/app/views/layouts/left_panels/_search_area.html.haml b/app/views/layouts/left_panels/_search_area.html.haml index c4a49ea26..6532566e1 100644 --- a/app/views/layouts/left_panels/_search_area.html.haml +++ b/app/views/layouts/left_panels/_search_area.html.haml @@ -1,7 +1,7 @@ -#search_area +#search-area = form_tag(backoffice_dossiers_search_url, method: :get) do .input-group = text_field_tag('q', "#{@search_terms unless @search_terms.nil?}", id: 'q', placeholder: "Recherchez parmi tous vos dossiers", class: 'form-control') %span.input-group-btn - %button.btn.btn-default{ id: 'search_button' } + %button.btn.btn-default{ id: 'search-button' } %i.fa.fa-search diff --git a/app/views/layouts/navbars/_navbar_backoffice_dossiers_procedurecontroller_index.html.haml b/app/views/layouts/navbars/_navbar_backoffice_dossiers_procedurecontroller_index.html.haml index 64e5e776d..cc23e5ca2 100644 --- a/app/views/layouts/navbars/_navbar_backoffice_dossiers_procedurecontroller_index.html.haml +++ b/app/views/layouts/navbars/_navbar_backoffice_dossiers_procedurecontroller_index.html.haml @@ -3,7 +3,7 @@ .col-lg-3.col-md-3.col-sm-3.col-xs-3.options .row .col-lg-12.col-md-12.col-sm-12.col-xs-12 - %a.button_navbar#pref_list_dossier_open_action{ href: '#', type: :button, 'data-toggle' => 'dropdown', 'aria-haspopup' => true, 'aria-expanded' => false } + %a.button-navbar#pref-list-dossier-open-action{ href: '#', type: :button, 'data-toggle' => 'dropdown', 'aria-haspopup' => true, 'aria-expanded' => false } %i.fa.fa-pencil Modifier le tableau %span.caret-right diff --git a/app/views/layouts/navbars/_navbar_log_options.html.haml b/app/views/layouts/navbars/_navbar_log_options.html.haml index 6d04a698a..467e9b443 100644 --- a/app/views/layouts/navbars/_navbar_log_options.html.haml +++ b/app/views/layouts/navbars/_navbar_log_options.html.haml @@ -1,15 +1,15 @@ - if user_signed_in? - #sign_out.col-xs-2.no-padding + #sign-out.col-xs-2.no-padding = render partial: 'users/login_banner' = render partial: 'layouts/credentials' - elsif gestionnaire_signed_in? - #sign_out.col-xs-2.no-padding + #sign-out.col-xs-2.no-padding = render partial: 'gestionnaires/login_banner' = render partial: 'layouts/credentials' - elsif administrateur_signed_in? - #sign_out.col-xs-2.no-padding + #sign-out.col-xs-2.no-padding = render partial: 'administrateurs/login_banner' = render partial: 'layouts/credentials' - else - #sign_in.col-xs-2 + #sign-in.col-xs-2 = link_to "Connexion", new_user_session_path, :class => 'btn btn-lg btn-primary' diff --git a/app/views/root/landing.html.haml b/app/views/root/landing.html.haml index 513517202..f41400e64 100644 --- a/app/views/root/landing.html.haml +++ b/app/views/root/landing.html.haml @@ -16,7 +16,7 @@ %p.mt-1 Vous êtes intéressés ? %p= link_to 'Programmer une démo', "mailto:#{t('dynamics.contact_email')}?subject=Demande de démo TPS", target: '_blank', class: 'btn btn-danger btn-lg' -#landing_body.max-size +#landing-body.max-size .row#etapes.center #create_1.col-lg-3.col-md-3.col-sm-3.col-xs-3 %img{ src: image_url('etapes/create_1.png') } @@ -78,7 +78,7 @@ .split-hr-left - #request_access.row.center + #request-access.row.center .col-xs-12.col-sm-12.col-md-12.col-lg-12 %h3 Envie de commencer à créer votre démarche ? diff --git a/app/views/users/carte/_map.html.haml b/app/views/users/carte/_map.html.haml index ffd2b3343..80f1bbf36 100644 --- a/app/views/users/carte/_map.html.haml +++ b/app/views/users/carte/_map.html.haml @@ -1,4 +1,4 @@ -#carte_page.row +#carte-page.row .col-md-12.col-lg-12#map{ class: dossier.procedure.module_api_carto.classes } - if dossier.procedure.module_api_carto.quartiers_prioritaires diff --git a/app/views/users/carte/show.html.haml b/app/views/users/carte/show.html.haml index de4a0505f..db8d0115e 100644 --- a/app/views/users/carte/show.html.haml +++ b/app/views/users/carte/show.html.haml @@ -1,4 +1,4 @@ -.row#carto_page +.row#carto-page .col-lg-12.col-md-12.col-sm-12.col-xs-12 %h2 Localisation @@ -11,7 +11,7 @@ %i.fa.fa-pencil Ajouter une zone - %span#search_by_address{ style: 'margin-left: 20px;' } + %span#search-by-address{ style: 'margin-left: 20px;' } %input.form-control{ type: :address, placeholder: 'Rechercher une adresse' } %br %br diff --git a/app/views/users/description/_champs.html.haml b/app/views/users/description/_champs.html.haml index d6c5184b7..ab43c5923 100644 --- a/app/views/users/description/_champs.html.haml +++ b/app/views/users/description/_champs.html.haml @@ -7,7 +7,7 @@ = render partial: render_partial_url, locals: { libelle: 'Dossier', order_place: -1, champs: @champs } - @headers.each do |header| .row - %div{ class: "type_champ-#{header.type_champ}" } + %div{ class: "type-champ-#{header.type_champ.gsub('_', '-')}" } = render partial: render_partial_url, locals: { libelle: header.libelle, order_place: header.order_place, champs: @champs } - else .row diff --git a/app/views/users/description/_show.html.haml b/app/views/users/description/_show.html.haml index 627773625..d83503308 100644 --- a/app/views/users/description/_show.html.haml +++ b/app/views/users/description/_show.html.haml @@ -1,4 +1,4 @@ -.container#description_page +.container#description-page - unless @dossier.procedure.lien_notice.blank? #lien_notice_panel.row{ style: 'width: 280px; position: fixed; background-color: white; right: 5%; top: 80px; z-index: 200;' } .panel.panel-info{ style: 'margin-bottom: 0;' } @@ -17,7 +17,7 @@ -# TODO use form_for = form_tag(url_for({ controller: 'users/description', action: :update, dossier_id: @dossier.id }), class: 'form', method: 'POST', multipart: true) do - unless @champs.nil? - #liste_champs + #liste-champs = render partial: 'users/description/champs', locals: { private: false } - if !@procedure.lien_demarche.blank? || @procedure.cerfa_flag || @dossier.types_de_piece_justificative.size > 0 diff --git a/app/views/users/description/champs/_header_section.html.haml b/app/views/users/description/champs/_header_section.html.haml index 410563165..b75094c2a 100644 --- a/app/views/users/description/champs/_header_section.html.haml +++ b/app/views/users/description/champs/_header_section.html.haml @@ -1,4 +1,4 @@ -.default_data_block.default_visible +.default-data-block.default_visible .row.show-block.infos .header .col-xs-12.title diff --git a/app/views/users/dossiers/_list.html.haml b/app/views/users/dossiers/_list.html.haml index 89d902533..969e680f2 100644 --- a/app/views/users/dossiers/_list.html.haml +++ b/app/views/users/dossiers/_list.html.haml @@ -1,5 +1,5 @@ - unless smart_listing.empty? - %table#dossiers_list.table + %table#dossiers-list.table %thead %th#sort-id.col-md-1.col-lg-1.col-sm-1.col-xs-1= smart_listing.sortable 'Numéro', 'id' %th#sort-libelle.col-xs-5= smart_listing.sortable 'Procédure', 'procedure.libelle' diff --git a/app/views/users/dossiers/add_siret/show.html.haml b/app/views/users/dossiers/add_siret/show.html.haml index 9cf12e4a3..134d78a16 100644 --- a/app/views/users/dossiers/add_siret/show.html.haml +++ b/app/views/users/dossiers/add_siret/show.html.haml @@ -1,2 +1,2 @@ -.row.etape.etape_2 +.row.etape.etape-2 = render partial: 'dossiers/etapes/etape_2/entreprise' diff --git a/app/views/users/dossiers/index.html.haml b/app/views/users/dossiers/index.html.haml index 3811c1ed8..0c0de17f4 100644 --- a/app/views/users/dossiers/index.html.haml +++ b/app/views/users/dossiers/index.html.haml @@ -1,5 +1,5 @@ -#users_index - .default_data_block.default_visible +#users-index + .default-data-block.default_visible .row.show-block#new_dossiers .header .col-lg-10.col-md-10.col-sm-10.col-xs-10.title diff --git a/app/views/users/passwords/edit.html.haml b/app/views/users/passwords/edit.html.haml index 2e6a246f4..d1688e75c 100644 --- a/app/views/users/passwords/edit.html.haml +++ b/app/views/users/passwords/edit.html.haml @@ -28,7 +28,7 @@ = devise_error_messages! -#form_login +#form-login .flag = image_tag(image_url(LOGO_NAME)) %br @@ -36,7 +36,7 @@ %br %br - #new_user + #new-user = form_for(resource, as: resource_name, url: password_path(resource_name), html: { method: :put }) do |f| = f.hidden_field :reset_password_token %h4 diff --git a/app/views/users/passwords/new.html.haml b/app/views/users/passwords/new.html.haml index 8a62b7652..fa5410532 100644 --- a/app/views/users/passwords/new.html.haml +++ b/app/views/users/passwords/new.html.haml @@ -29,7 +29,7 @@ = devise_error_messages! %br -#form_login +#form-login .flag = image_tag(image_url(LOGO_NAME)) %br @@ -37,7 +37,7 @@ %br %br - #new_user + #new-user = form_for(resource, as: resource_name, url: password_path(resource_name), html: { method: :post }) do |f| %h4 = f.label :email diff --git a/app/views/users/recapitulatif/_modal_upload_pj.html.haml b/app/views/users/recapitulatif/_modal_upload_pj.html.haml index 63c3e5322..58adcae3f 100644 --- a/app/views/users/recapitulatif/_modal_upload_pj.html.haml +++ b/app/views/users/recapitulatif/_modal_upload_pj.html.haml @@ -1,4 +1,4 @@ -#UploadPJmodal.modal.fade{ "aria-labelledby" => "myModalLabel", :role => "dialog", :tabindex => "-1" } +#upload-pj-modal.modal.fade{ "aria-labelledby" => "myModalLabel", :role => "dialog", :tabindex => "-1" } .modal-dialog{ :role => "document" } .modal-content - @dossier = @facade.dossier diff --git a/app/views/users/recapitulatif/show.html.haml b/app/views/users/recapitulatif/show.html.haml index 672ab5867..f04ac5a43 100644 --- a/app/views/users/recapitulatif/show.html.haml +++ b/app/views/users/recapitulatif/show.html.haml @@ -1,2 +1,2 @@ -.col-lg-12.col-md-12.col-sm-12.col-xs-12#users_recapitulatif_dossier_show +.col-lg-12.col-md-12.col-sm-12.col-xs-12#users-recapitulatif-dossier-show = render partial: "dossiers/dossier_show" diff --git a/app/views/users/registrations/new.html.haml b/app/views/users/registrations/new.html.haml index 82da47322..a81def70b 100644 --- a/app/views/users/registrations/new.html.haml +++ b/app/views/users/registrations/new.html.haml @@ -28,7 +28,7 @@ = devise_error_messages! -#form_login +#form-login %br .flag = image_tag(image_url(LOGO_NAME)) @@ -37,7 +37,7 @@ %br %br - #new_user + #new-user = form_for(resource, as: resource_name, url: registration_path(resource_name)) do |f| %h4 = f.label :email diff --git a/app/views/users/sessions/_resume_procedure.html.haml b/app/views/users/sessions/_resume_procedure.html.haml index 236bf7a10..bf385234e 100644 --- a/app/views/users/sessions/_resume_procedure.html.haml +++ b/app/views/users/sessions/_resume_procedure.html.haml @@ -10,7 +10,7 @@ #logo_procedure.flag = image_tag( @dossier.procedure.decorate.logo_img ) - %h2#titre_procedure.text-info + %h2#titre-procedure.text-info = @dossier.procedure.libelle %p.procedure-description = h @dossier.procedure.description.html_safe diff --git a/app/views/users/sessions/new.html.haml b/app/views/users/sessions/new.html.haml index add5365c3..51ba7cda6 100644 --- a/app/views/users/sessions/new.html.haml +++ b/app/views/users/sessions/new.html.haml @@ -1,11 +1,11 @@ -#form_login.user_connexion_page +#form-login.user_connexion_page %br = render partial: 'users/sessions/resume_procedure' - %h2#login_user + %h2#login-user = t('dynamics.users.connexion_title') - %a.btn_fc#btn_fcp{ href: '/france_connect/particulier' } + %a.btn-fc#btn-fcp{ href: '/france_connect/particulier' } = image_tag 'franceconnect_logo.png' %br @@ -15,13 +15,14 @@ %hr .text-left - = simple_form_for @user, url: user_session_path do |f| - = f.input :email - = f.input :password, label: 'Mot de passe', input_html: { value: @user.password } - - if devise_mapping.rememberable? - = f.input :remember_me, as: :boolean, label: 'Se souvenir de moi' - .text-center - = f.submit "Se connecter", class: 'btn btn-primary' + #new-user + = simple_form_for @user, url: user_session_path do |f| + = f.input :email + = f.input :password, label: 'Mot de passe', input_html: { value: @user.password } + - if devise_mapping.rememberable? + = f.input :remember_me, as: :boolean, label: 'Se souvenir de moi' + .text-center + = f.submit "Se connecter", class: 'btn btn-primary' - if @user.email != DemoEmails[:gestionnaire] && @user.email != DemoEmails[:admin] = render "users/shared/links" diff --git a/app/views/users/siret/_pro.html.haml b/app/views/users/siret/_pro.html.haml index 34fe7aaaf..b5686009e 100644 --- a/app/views/users/siret/_pro.html.haml +++ b/app/views/users/siret/_pro.html.haml @@ -2,7 +2,7 @@ .flag = image_tag(image_url(LOGO_NAME)) %br - %h2#titre_procedure.text-info + %h2#titre-procedure.text-info = @procedure.libelle %p diff --git a/app/views/users/siret/index.html.haml b/app/views/users/siret/index.html.haml index a56f21779..c189ce64e 100644 --- a/app/views/users/siret/index.html.haml +++ b/app/views/users/siret/index.html.haml @@ -1,3 +1,3 @@ -.container.center#users_siret_index +.container.center#users-siret-index .row = render partial: 'pro' diff --git a/spec/features/admin/connection_spec.rb b/spec/features/admin/connection_spec.rb index 58b256be7..9915669c1 100644 --- a/spec/features/admin/connection_spec.rb +++ b/spec/features/admin/connection_spec.rb @@ -6,7 +6,7 @@ feature 'Administrator connection' do visit new_administrateur_session_path end scenario 'administrator is on admin loggin page' do - expect(page).to have_css('#form_login.user_connexion_page') + expect(page).to have_css('#form-login.user_connexion_page') end context "admin fills form and log in" do @@ -25,15 +25,15 @@ feature 'Administrator connection' do end scenario 'it displays the menu' do expect(page).to have_css('a#profile') - expect(page).to have_css('#sign_out') + expect(page).to have_css('#sign-out') expect(page).to have_css('a.fa-sign-out') end - context 'when clicking on sign_out' do + context 'when clicking on sign-out' do before do stub_request(:get, "https://api.github.com/repos/sgmap/tps/releases/latest"). to_return(:status => 200, :body => '{"tag_name": "plip", "body": "blabla", "published_at": "2016-02-09T16:46:47Z"}', :headers => {}) - page.find_by_id('sign_out').find('a.fa-sign-out').click + page.find_by_id('sign-out').find('a.fa-sign-out').click end scenario 'admin is redireted to home page' do expect(page).to have_css('#landing') diff --git a/spec/features/backoffice/connection_spec.rb b/spec/features/backoffice/connection_spec.rb index 419e14853..603546fb5 100644 --- a/spec/features/backoffice/connection_spec.rb +++ b/spec/features/backoffice/connection_spec.rb @@ -30,7 +30,7 @@ feature 'when gestionnaire come to /backoffice and is not authenticated' do page.click_on 'Se connecter' end scenario 'he is redirected to /backoffice' do - expect(page).to have_css('#backoffice_index') + expect(page).to have_css('#backoffice-index') end end end diff --git a/spec/features/backoffice/index_show_procedure_spec.rb b/spec/features/backoffice/index_show_procedure_spec.rb index 33add73bd..d24910eca 100644 --- a/spec/features/backoffice/index_show_procedure_spec.rb +++ b/spec/features/backoffice/index_show_procedure_spec.rb @@ -22,28 +22,28 @@ feature 'As an Accompagnateur I can navigate and use each functionnality around context 'On index' do scenario 'Switching between procedures' do - page.all('#procedure_list a').first.click + page.all('#procedure-list a').first.click expect(page).to have_current_path(backoffice_dossiers_procedure_path(id: procedure_1.id.to_s), only_path: true) expect(page.find('#all_dossiers .count').text).to eq('30 dossiers') - page.all('#procedure_list a').last.click + page.all('#procedure-list a').last.click expect(page).to have_current_path(backoffice_dossiers_procedure_path(id: procedure_2.id.to_s), only_path: true) expect(page.find('#all_dossiers .count').text).to eq('22 dossiers') end scenario 'Searching with search bar', js: true do - page.find_by_id('search_area').trigger('click') + page.find_by_id('search-area').trigger('click') fill_in 'q', with: (procedure_1.dossiers.first.id + 14) - page.find_by_id('search_button').click + page.find_by_id('search-button').click page.find_by_id("tr_dossier_#{(procedure_1.dossiers.first.id + 14)}").click expect(page).to have_current_path("/backoffice/dossiers/#{(procedure_1.dossiers.first.id + 14)}") end scenario 'Following dossier' do - page.all('#procedure_list a').first.click + page.all('#procedure-list a').first.click expect(page.all('#follow_dossiers .smart-listing')[0]['data-item-count']).to eq ("0") page.find_by_id('all_dossiers').click - expect(page.all('#dossiers_list a').first.text).to eq('Suivre') - page.all('#dossiers_list a').first.click + expect(page.all('#dossiers-list a').first.text).to eq('Suivre') + page.all('#dossiers-list a').first.click expect(page.all('#follow_dossiers .smart-listing')[0]['data-item-count']).to eq ("1") end diff --git a/spec/features/backoffice/lateral_page_pref_list_dossier_backoffice_spec.rb b/spec/features/backoffice/lateral_page_pref_list_dossier_backoffice_spec.rb index 13c176b46..9a36bf116 100644 --- a/spec/features/backoffice/lateral_page_pref_list_dossier_backoffice_spec.rb +++ b/spec/features/backoffice/lateral_page_pref_list_dossier_backoffice_spec.rb @@ -17,20 +17,20 @@ feature 'usage of pref list dossier lateral panel', js: true do context 'when user enter good credentials' do scenario 'he is redirected to /backoffice' do - expect(page).to have_css('#backoffice_index') + expect(page).to have_css('#backoffice-index') end scenario 'lateral panel is masked' do - expect(page).to have_css('#pref_list_menu', visible: false) + expect(page).to have_css('#pref-list-menu', visible: false) end context 'when on click on pref list button' do before do - page.click_on 'pref_list_dossier_open_action' + page.click_on 'pref-list-dossier-open-action' end scenario 'lateral panel is appeared' do - expect(page).to have_css('#pref_list_menu') + expect(page).to have_css('#pref-list-menu') end context 'when on click on add attribut button' do @@ -65,12 +65,12 @@ feature 'usage of pref list dossier lateral panel', js: true do context 'when on click on close pref list button' do before do - page.click_on 'pref_list_dossier_close_action' + page.click_on 'pref-list-dossier-close-action' end scenario 'lateral panel is masked' do wait_for_ajax - expect(page).to have_css('#pref_list_menu', visible: false) + expect(page).to have_css('#pref-list-menu', visible: false) end end end diff --git a/spec/features/backoffice/lateral_page_pref_list_dossier_by_procedure_backoffice_spec.rb b/spec/features/backoffice/lateral_page_pref_list_dossier_by_procedure_backoffice_spec.rb index 0255d9a46..9ed134a75 100644 --- a/spec/features/backoffice/lateral_page_pref_list_dossier_by_procedure_backoffice_spec.rb +++ b/spec/features/backoffice/lateral_page_pref_list_dossier_by_procedure_backoffice_spec.rb @@ -17,7 +17,7 @@ feature 'usage of pref list dossier lateral panel by procedure', js: true do context 'when user enter good credentials' do scenario 'he is redirected to /backoffice/dossiers/' do - expect(page).to have_css('#backoffice_index') + expect(page).to have_css('#backoffice-index') end describe 'user navigate to dossiers list by procedure' do @@ -26,17 +26,17 @@ feature 'usage of pref list dossier lateral panel by procedure', js: true do end scenario 'lateral panel is masked' do - expect(page).to have_css('#pref_list_menu', visible: false) + expect(page).to have_css('#pref-list-menu', visible: false) end context 'when on click on pref list button' do before do - page.click_on 'pref_list_dossier_open_action' + page.click_on 'pref-list-dossier-open-action' end scenario 'lateral panel is appeared' do wait_for_ajax - expect(page).to have_css('#pref_list_menu') + expect(page).to have_css('#pref-list-menu') end context 'when on click on add attribut specific at the procedure button' do @@ -66,12 +66,12 @@ feature 'usage of pref list dossier lateral panel by procedure', js: true do context 'when on click on close pref list button' do before do - page.click_on 'pref_list_dossier_close_action' + page.click_on 'pref-list-dossier-close-action' end scenario 'lateral panel is masked' do wait_for_ajax - expect(page).to have_css('#pref_list_menu', visible: false) + expect(page).to have_css('#pref-list-menu', visible: false) end end end diff --git a/spec/features/backoffice/navigate_to_dossier_spec.rb b/spec/features/backoffice/navigate_to_dossier_spec.rb index b7f30467c..b9c2222fa 100644 --- a/spec/features/backoffice/navigate_to_dossier_spec.rb +++ b/spec/features/backoffice/navigate_to_dossier_spec.rb @@ -29,7 +29,7 @@ feature 'on backoffice page', js: true do end scenario 'it redirect to dossier page' do - expect(page).to have_css('#backoffice_dossier_show') + expect(page).to have_css('#backoffice-dossier-show') end end end @@ -45,7 +45,7 @@ feature 'on backoffice page', js: true do end scenario 'it redirect to dossier page' do - expect(page).to have_css('#backoffice_dossier_show') + expect(page).to have_css('#backoffice-dossier-show') end end end diff --git a/spec/features/backoffice/search_file_spec.rb b/spec/features/backoffice/search_file_spec.rb index d91ea8bbf..dc6baeb85 100644 --- a/spec/features/backoffice/search_file_spec.rb +++ b/spec/features/backoffice/search_file_spec.rb @@ -18,10 +18,10 @@ feature 'search file on gestionnaire backoffice' do visit backoffice_dossiers_url page.find_by_id(:q).set terms - page.find_by_id(:search_button).click + page.find_by_id("search-button").click end - it { expect(page).to have_css('#backoffice_search') } + it { expect(page).to have_css('#backoffice-search') } context 'when terms input is empty' do it { expect(page).to have_content('Aucun dossier') } diff --git a/spec/features/description_page/upload_piece_justificative_spec.rb b/spec/features/description_page/upload_piece_justificative_spec.rb index 4f999037c..bd8cffc8a 100644 --- a/spec/features/description_page/upload_piece_justificative_spec.rb +++ b/spec/features/description_page/upload_piece_justificative_spec.rb @@ -9,14 +9,14 @@ feature 'user is on description page' do visit users_dossier_description_path dossier - within('#new_user') do + within('#new-user') do page.find_by_id('user_email').set dossier.user.email page.find_by_id('user_password').set dossier.user.password page.click_on 'Se connecter' end end - it { expect(page).to have_css('#description_page') } + it { expect(page).to have_css('#description-page') } context 'he fill description fields' do before do diff --git a/spec/features/france_connect/france_connect_particulier_spec.rb b/spec/features/france_connect/france_connect_particulier_spec.rb index 01592e8af..1ed8ca15f 100644 --- a/spec/features/france_connect/france_connect_particulier_spec.rb +++ b/spec/features/france_connect/france_connect_particulier_spec.rb @@ -26,7 +26,7 @@ feature 'France Connect Particulier Connexion' do end scenario 'link to France Connect is present' do - expect(page).to have_css('a#btn_fcp') + expect(page).to have_css('a#btn-fcp') end context 'and click on france connect link' do @@ -49,7 +49,7 @@ feature 'France Connect Particulier Connexion' do context 'when is the first connexion' do before do - page.find_by_id('btn_fcp').click + page.find_by_id('btn-fcp').click end scenario 'he is redirected to france connect particulier page' do expect(page).to have_content('Nouvelle connexion') @@ -70,7 +70,7 @@ feature 'France Connect Particulier Connexion' do context 'when is not the first connexion' do before do create(:user, france_connect_information: france_connect_information) - page.find_by_id('btn_fcp').click + page.find_by_id('btn-fcp').click end scenario 'he is redirected to user dossiers page' do @@ -83,11 +83,11 @@ feature 'France Connect Particulier Connexion' do before do allow_any_instance_of(FranceConnectParticulierClient).to receive(:authorization_uri).and_return(france_connect_particulier_callback_path(code: code)) allow(FranceConnectService).to receive(:retrieve_user_informations_particulier) { raise Rack::OAuth2::Client::Error.new(500, error: 'Unknown') } - page.find_by_id('btn_fcp').click + page.find_by_id('btn-fcp').click end scenario 'he is redirected to login page' do - expect(page).to have_css('a#btn_fcp') + expect(page).to have_css('a#btn-fcp') end scenario 'error message is displayed' do diff --git a/spec/features/users/complete_demande_spec.rb b/spec/features/users/complete_demande_spec.rb index 6554a4004..2f1eb1d42 100644 --- a/spec/features/users/complete_demande_spec.rb +++ b/spec/features/users/complete_demande_spec.rb @@ -12,21 +12,21 @@ feature 'user path for dossier creation' do end scenario 'he is redirected on login page' do - expect(page).to have_css('#login_user') + expect(page).to have_css('#login-user') expect(page).to have_css('#logo_procedure') - expect(page).to have_css('#titre_procedure') + expect(page).to have_css('#titre-procedure') end context 'user sign_in' do before do - within('#new_user') do + within('#new-user') do page.find_by_id('user_email').set user.email page.find_by_id('user_password').set user.password page.click_on 'Se connecter' end end scenario 'redirects to siret page' do - expect(page).to have_css('#dossier_siret') + expect(page).to have_css('#dossier-siret') end context 'sets siret' do before do @@ -40,12 +40,12 @@ feature 'user path for dossier creation' do stub_request(:get, "https://api-dev.apientreprise.fr/v1/associations/#{siret}?token=#{SIADETOKEN}") .to_return(status: 404, body: '') - page.find_by_id('dossier_siret').set siret + page.find_by_id('dossier-siret').set siret page.click_on 'Valider' end scenario 'user is on page recap info entreprise' do - expect(page).to have_css('#recap_info_entreprise') + expect(page).to have_css('#recap-info-entreprise') end context 'when user would like change siret' do @@ -54,7 +54,7 @@ feature 'user path for dossier creation' do end scenario 'redirects to siret page' do - expect(page).to have_css('#dossier_siret') + expect(page).to have_css('#dossier-siret') end end @@ -64,7 +64,7 @@ feature 'user path for dossier creation' do page.find_by_id('etape_suivante').trigger('click') end scenario 'user is on description page' do - expect(page).to have_css('#description_page') + expect(page).to have_css('#description-page') end context 'user fill and validate description page' do before do @@ -72,7 +72,7 @@ feature 'user path for dossier creation' do page.find_by_id('suivant').trigger('click') end scenario 'user is on recap page' do - expect(page).to have_css('#users_recapitulatif_dossier_show') + expect(page).to have_css('#users-recapitulatif-dossier-show') end end end diff --git a/spec/features/users/dossier_creation_spec.rb b/spec/features/users/dossier_creation_spec.rb index 4adf0e190..34715a567 100644 --- a/spec/features/users/dossier_creation_spec.rb +++ b/spec/features/users/dossier_creation_spec.rb @@ -45,7 +45,7 @@ feature 'As a User I wanna create a dossier' do login_as user, scope: :user visit commencer_path(procedure_path: procedure_with_siret.path) expect(page).to have_current_path(users_dossier_path(procedure_with_siret.dossiers.last.id.to_s), only_path: true) - fill_in 'dossier_siret', with: siret + fill_in 'dossier-siret', with: siret stub_request(:get, "https://api-dev.apientreprise.fr/v2/etablissements/#{siret}?token=#{SIADETOKEN}") .to_return(status: 200, body: File.read('spec/support/files/etablissement.json')) stub_request(:get, "https://api-dev.apientreprise.fr/v2/entreprises/#{siren}?token=#{SIADETOKEN}") @@ -54,9 +54,9 @@ feature 'As a User I wanna create a dossier' do .to_return(status: 200, body: File.read('spec/support/files/exercices.json')) stub_request(:get, "https://api-dev.apientreprise.fr/v1/associations/#{siret}?token=#{SIADETOKEN}") .to_return(status: 404, body: '') - page.find_by_id('dossier_siret').set siret + page.find_by_id('dossier-siret').set siret page.find_by_id('submit-siret').trigger('click') - expect(page).to have_css('#recap_info_entreprise') + expect(page).to have_css('#recap-info-entreprise') find(:css, "#dossier_autorisation_donnees[value='1']").set(true) page.find_by_id('etape_suivante').trigger('click') expect(page).to have_current_path(users_dossier_carte_path(procedure_with_siret.dossiers.last.id.to_s), only_path: true) diff --git a/spec/features/users/dossier_edition_spec.rb b/spec/features/users/dossier_edition_spec.rb index 4dc3ccee7..13bbf29a0 100644 --- a/spec/features/users/dossier_edition_spec.rb +++ b/spec/features/users/dossier_edition_spec.rb @@ -14,7 +14,7 @@ feature 'As a User I want to edit a dossier I own' do context 'After sign_in, I can navigate through dossiers indexes and edit a dossier' do scenario 'After sign_in, I can see dossiers "à traiter" (default), and other indexes' do - expect(page.find('#a_traiter')['class'] ).to eq('active procedure_list_element') + expect(page.find('#a_traiter')['class'] ).to eq('active procedure-list-element') page.find_by_id('brouillon').click page.find_by_id('a_traiter').click page.find_by_id('en_instruction').click diff --git a/spec/features/users/dossier_index_spec.rb b/spec/features/users/dossier_index_spec.rb index 4d6ec1464..9db5bd1e3 100644 --- a/spec/features/users/dossier_index_spec.rb +++ b/spec/features/users/dossier_index_spec.rb @@ -24,30 +24,30 @@ xfeature 'As a User I want to sort and paginate dossiers', js: true do scenario 'Using sort' do visit "/users/dossiers?dossiers_smart_listing[sort][id]=asc" - expect(page.all(:css, '#dossiers_list tr')[1].text.split(" ").first).to eq(user.dossiers.first.id.to_s) - expect(page.all(:css, '#dossiers_list tr')[2].text.split(" ").first).to eq(user.dossiers.second.id.to_s) + expect(page.all(:css, '#dossiers-list tr')[1].text.split(" ").first).to eq(user.dossiers.first.id.to_s) + expect(page.all(:css, '#dossiers-list tr')[2].text.split(" ").first).to eq(user.dossiers.second.id.to_s) visit "/users/dossiers?dossiers_smart_listing[sort][id]=desc" - expect(page.all(:css, '#dossiers_list tr')[1].text.split(" ").first).to eq((user.dossiers.first.id + 50).to_s) - expect(page.all(:css, '#dossiers_list tr')[2].text.split(" ").first).to eq((user.dossiers.first.id + 49).to_s) + expect(page.all(:css, '#dossiers-list tr')[1].text.split(" ").first).to eq((user.dossiers.first.id + 50).to_s) + expect(page.all(:css, '#dossiers-list tr')[2].text.split(" ").first).to eq((user.dossiers.first.id + 49).to_s) visit "/users/dossiers?dossiers_smart_listing[sort][id]=asc" - expect(page.all(:css, '#dossiers_list tr')[1].text.split(" ").first).to eq(user.dossiers.first.id.to_s) - expect(page.all(:css, '#dossiers_list tr')[2].text.split(" ").first).to eq(user.dossiers.second.id.to_s) + expect(page.all(:css, '#dossiers-list tr')[1].text.split(" ").first).to eq(user.dossiers.first.id.to_s) + expect(page.all(:css, '#dossiers-list tr')[2].text.split(" ").first).to eq(user.dossiers.second.id.to_s) end scenario 'Using pagination' do visit "/users/dossiers?dossiers_smart_listing[sort][id]=asc" - expect(page.all(:css, '#dossiers_list tr')[1].text.split(" ").first).to eq(user.dossiers.first.id.to_s) + expect(page.all(:css, '#dossiers-list tr')[1].text.split(" ").first).to eq(user.dossiers.first.id.to_s) page.find('.next_page a').trigger('click') wait_for_ajax - expect(page.all(:css, '#dossiers_list tr')[1].text.split(" ").first).to eq((user.dossiers.first.id + 10).to_s) + expect(page.all(:css, '#dossiers-list tr')[1].text.split(" ").first).to eq((user.dossiers.first.id + 10).to_s) page.find('.next_page a').trigger('click') wait_for_ajax - expect(page.all(:css, '#dossiers_list tr')[1].text.split(" ").first).to eq((user.dossiers.first.id + 20).to_s) + expect(page.all(:css, '#dossiers-list tr')[1].text.split(" ").first).to eq((user.dossiers.first.id + 20).to_s) page.find('.prev a').trigger('click') wait_for_ajax page.find('.prev a').trigger('click') wait_for_ajax - expect(page.all(:css, '#dossiers_list tr')[1].text.split(" ").first).to eq((user.dossiers.first.id).to_s) + expect(page.all(:css, '#dossiers-list tr')[1].text.split(" ").first).to eq((user.dossiers.first.id).to_s) end end diff --git a/spec/features/users/drawing_a_zone_with_freedraw_spec.rb b/spec/features/users/drawing_a_zone_with_freedraw_spec.rb index 57633a08b..1ecc5a0ee 100644 --- a/spec/features/users/drawing_a_zone_with_freedraw_spec.rb +++ b/spec/features/users/drawing_a_zone_with_freedraw_spec.rb @@ -12,11 +12,11 @@ feature 'drawing a zone with freedraw' do end scenario 'he is redirected to login page' do - expect(page).to have_css('#login_user') + expect(page).to have_css('#login-user') end scenario 'he logs in and he is redirected to carte page', vcr: { cassette_name: 'drawing_a_zone_with_freedraw_redirected_to_carte_page' } do - within('#new_user') do + within('#new-user') do page.find_by_id('user_email').set user.email page.find_by_id('user_password').set user.password page.click_on 'Se connecter' @@ -45,7 +45,7 @@ feature 'drawing a zone with freedraw' do let(:module_api_carto) { create(:module_api_carto) } scenario 'he is redirect to user dossiers index' do - expect(page).to have_css('#users_index') + expect(page).to have_css('#users-index') end scenario 'alert message is present' do diff --git a/spec/features/users/list_dossiers_spec.rb b/spec/features/users/list_dossiers_spec.rb index 1ae783994..7419a03d4 100644 --- a/spec/features/users/list_dossiers_spec.rb +++ b/spec/features/users/list_dossiers_spec.rb @@ -12,7 +12,7 @@ feature 'user access to the list of his dossier' do last_updated_dossier.procedure.update_column(:libelle, 'PLIP') visit new_user_session_path - within('#new_user') do + within('#new-user') do page.find_by_id('user_email').set user.email page.find_by_id('user_password').set user.password page.click_on 'Se connecter' @@ -36,7 +36,7 @@ feature 'user access to the list of his dossier' do page.find("#tr_dossier_#{dossier1.id}").click end scenario 'user is redirected to dossier page' do - expect(page).to have_css('#users_recapitulatif_dossier_show') + expect(page).to have_css('#users-recapitulatif-dossier-show') end end end diff --git a/spec/features/users/onglets_link_spec.rb b/spec/features/users/onglets_link_spec.rb index 7454df1e4..a3fef2dc3 100644 --- a/spec/features/users/onglets_link_spec.rb +++ b/spec/features/users/onglets_link_spec.rb @@ -27,7 +27,7 @@ feature 'on click on tabs button' do end scenario 'it redirect to users dossier termine' do - expect(page).to have_css('#users_index') + expect(page).to have_css('#users-index') end end @@ -38,7 +38,7 @@ feature 'on click on tabs button' do end scenario 'it redirect to users dossier termine' do - expect(page).to have_css('#users_index') + expect(page).to have_css('#users-index') end end @@ -49,7 +49,7 @@ feature 'on click on tabs button' do end scenario 'it redirect to users dossier termine' do - expect(page).to have_css('#users_index') + expect(page).to have_css('#users-index') end end @@ -60,7 +60,7 @@ feature 'on click on tabs button' do end scenario 'it redirect to users dossier invites' do - expect(page).to have_css('#users_index') + expect(page).to have_css('#users-index') end end end diff --git a/spec/features/users/start_demande_spec.rb b/spec/features/users/start_demande_spec.rb index e3b8014b0..a908412a8 100644 --- a/spec/features/users/start_demande_spec.rb +++ b/spec/features/users/start_demande_spec.rb @@ -11,11 +11,11 @@ feature 'user arrive on siret page' do visit new_users_dossiers_path(procedure_id: procedure.id) end scenario 'he is redirected to login page' do - expect(page).to have_css('#login_user') + expect(page).to have_css('#login-user') end context 'when he enter login information' do before do - within('#new_user') do + within('#new-user') do page.find_by_id('user_email').set user.email page.find_by_id('user_password').set user.password page.click_on 'Se connecter' @@ -35,12 +35,12 @@ feature 'user arrive on siret page' do stub_request(:get, "https://api-dev.apientreprise.fr/v1/associations/#{siret}?token=#{SIADETOKEN}") .to_return(status: 404, body: '') - page.find_by_id('dossier_siret').set siret + page.find_by_id('dossier-siret').set siret page.click_on 'Valider' end scenario 'he is redirected to recap info entreprise page' do wait_for_ajax - expect(page).to have_css('#recap_info_entreprise') + expect(page).to have_css('#recap-info-entreprise') end end end diff --git a/spec/views/backoffice/dossiers/show.html.html_spec.rb b/spec/views/backoffice/dossiers/show.html.html_spec.rb index 4003a65ef..865cb28ef 100644 --- a/spec/views/backoffice/dossiers/show.html.html_spec.rb +++ b/spec/views/backoffice/dossiers/show.html.html_spec.rb @@ -20,7 +20,7 @@ describe 'backoffice/dossiers/show.html.haml', type: :view do it 'button Modifier les document est present' do expect(rendered).not_to have_content('Modifier les documents') - expect(rendered).not_to have_css('#UploadPJmodal') + expect(rendered).not_to have_css('#upload-pj-modal') end it 'enterprise informations are present' do @@ -28,7 +28,7 @@ describe 'backoffice/dossiers/show.html.haml', type: :view do end it 'dossier informations are present' do - expect(rendered).to have_selector('#infos_dossier') + expect(rendered).to have_selector('#infos-dossiers') end context 'edit link are present' do diff --git a/spec/views/users/recapitulatif/show.html.haml_spec.rb b/spec/views/users/recapitulatif/show.html.haml_spec.rb index 3503fad53..ce0e52275 100644 --- a/spec/views/users/recapitulatif/show.html.haml_spec.rb +++ b/spec/views/users/recapitulatif/show.html.haml_spec.rb @@ -17,7 +17,7 @@ describe 'users/recapitulatif/show.html.haml', type: :view do end it 'la section infos dossier est présente' do - expect(rendered).to have_selector('#infos_dossier') + expect(rendered).to have_selector('#infos-dossiers') end it 'le flux de commentaire est présent' do @@ -73,7 +73,7 @@ describe 'users/recapitulatif/show.html.haml', type: :view do it 'button Modifier les document est present' do expect(rendered).to have_content('Modifier les documents') - expect(rendered).to have_css('#UploadPJmodal') + expect(rendered).to have_css('#upload-pj-modal') end end diff --git a/spec/views/users/sessions/new.html.haml_spec.rb b/spec/views/users/sessions/new.html.haml_spec.rb index 6e1dbeec9..cc7880f45 100644 --- a/spec/views/users/sessions/new.html.haml_spec.rb +++ b/spec/views/users/sessions/new.html.haml_spec.rb @@ -18,8 +18,8 @@ describe 'users/sessions/new.html.haml', type: :view do render end - it { expect(rendered).to have_selector('#form_login #logo_procedure') } - it { expect(rendered).to have_selector('#form_login #titre_procedure') } + it { expect(rendered).to have_selector('#form-login #logo_procedure') } + it { expect(rendered).to have_selector('#form-login #titre-procedure') } it { expect(rendered).to have_content(dossier.procedure.libelle) } it { expect(rendered).to have_content(dossier.procedure.description) } end @@ -29,6 +29,6 @@ describe 'users/sessions/new.html.haml', type: :view do render end - it { expect(rendered).to have_selector('#form_login #logo_tps') } + it { expect(rendered).to have_selector('#form-login #logo_tps') } end end diff --git a/spec/views/users/siret/index.html.haml_spec.rb b/spec/views/users/siret/index.html.haml_spec.rb index 49de45ecc..e489bec08 100644 --- a/spec/views/users/siret/index.html.haml_spec.rb +++ b/spec/views/users/siret/index.html.haml_spec.rb @@ -21,7 +21,7 @@ describe 'users/siret/index.html.haml', type: :view do end it 'le titre de la procédure' do - expect(rendered).to have_selector('#titre_procedure') + expect(rendered).to have_selector('#titre-procedure') end context 'stockage de l\'ID de la procédure dans un champs hidden' do From 5d4dcf8ec775b5549581a561031db157b2c82eba Mon Sep 17 00:00:00 2001 From: gregoirenovel Date: Wed, 19 Apr 2017 11:35:34 +0200 Subject: [PATCH 25/45] Don't use line blocks --- app/assets/stylesheets/pieces_justificatives_fields.scss | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/app/assets/stylesheets/pieces_justificatives_fields.scss b/app/assets/stylesheets/pieces_justificatives_fields.scss index 7cf6d8719..144c0fbe2 100644 --- a/app/assets/stylesheets/pieces_justificatives_fields.scss +++ b/app/assets/stylesheets/pieces_justificatives_fields.scss @@ -1,3 +1,5 @@ .pieces-justificatives-fields { - .form-inline > .form-group { vertical-align: top; } + .form-inline > .form-group { + vertical-align: top; + } } From d8cc41140ba24c3d008a53f9ae9684bcfee55482 Mon Sep 17 00:00:00 2001 From: gregoirenovel Date: Wed, 12 Apr 2017 14:40:39 +0200 Subject: [PATCH 26/45] Remove an unexpected blank line --- app/assets/stylesheets/application.scss | 1 - 1 file changed, 1 deletion(-) diff --git a/app/assets/stylesheets/application.scss b/app/assets/stylesheets/application.scss index 135e0a776..6e074f1ba 100644 --- a/app/assets/stylesheets/application.scss +++ b/app/assets/stylesheets/application.scss @@ -212,7 +212,6 @@ div.pagination { font-size: 16px !important; margin-right: 0px !important; } - } .no-padding { From 5937e2a35fa7ada120931d66727d24e08b535cda Mon Sep 17 00:00:00 2001 From: gregoirenovel Date: Tue, 11 Apr 2017 16:31:05 +0200 Subject: [PATCH 27/45] Add the scss_lint gem --- Gemfile | 1 + Gemfile.lock | 4 ++++ 2 files changed, 5 insertions(+) diff --git a/Gemfile b/Gemfile index 24f75ba73..945efbb3a 100644 --- a/Gemfile +++ b/Gemfile @@ -124,6 +124,7 @@ group :development do gem 'rack-handlers' gem 'xray-rails' gem 'haml-lint' + gem 'scss_lint', require: false end group :development, :test do diff --git a/Gemfile.lock b/Gemfile.lock index b6a8ceacf..d2da50210 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -550,6 +550,9 @@ GEM scenic (1.3.0) activerecord (>= 4.0.0) railties (>= 4.0.0) + scss_lint (0.53.0) + rake (>= 0.9, < 13) + sass (~> 3.4.20) sdoc (0.4.2) json (~> 1.7, >= 1.7.7) rdoc (~> 4.0) @@ -715,6 +718,7 @@ DEPENDENCIES rspec-rails (~> 3.0) sass-rails (~> 5.0) scenic + scss_lint sdoc (~> 0.4.0) select2-rails sentry-raven From 525d23528d5966858a5d5e50f0e490318c4a5c30 Mon Sep 17 00:00:00 2001 From: gregoirenovel Date: Wed, 12 Apr 2017 14:56:32 +0200 Subject: [PATCH 28/45] Add .scss-lint.yml --- .scss-lint.yml | 256 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 256 insertions(+) create mode 100644 .scss-lint.yml diff --git a/.scss-lint.yml b/.scss-lint.yml new file mode 100644 index 000000000..918c14c70 --- /dev/null +++ b/.scss-lint.yml @@ -0,0 +1,256 @@ +linters: + BangFormat: + enabled: true + space_before_bang: true + space_after_bang: false + + BemDepth: + enabled: false + max_elements: 1 + + BorderZero: + enabled: true + convention: none + + # To enable later + ChainedClasses: + enabled: false + + ColorKeyword: + enabled: true + + # To enable later + ColorVariable: + enabled: false + + Comment: + enabled: true + style: silent + + DebugStatement: + enabled: true + + DeclarationOrder: + enabled: true + + DisableLinterReason: + enabled: false + + DuplicateProperty: + enabled: true + + ElsePlacement: + enabled: true + style: same_line + + EmptyLineBetweenBlocks: + enabled: true + ignore_single_line_blocks: false + + EmptyRule: + enabled: true + + ExtendDirective: + enabled: false + + FinalNewline: + enabled: true + present: true + + HexLength: + enabled: true + style: long + + HexNotation: + enabled: true + style: uppercase + + HexValidation: + enabled: true + + # To enable later + IdSelector: + enabled: false + + # To enable later + ImportantRule: + enabled: false + + ImportPath: + enabled: false + leading_underscore: false + filename_extension: false + + Indentation: + enabled: true + allow_non_nested_indentation: false + character: space + width: 2 + + LeadingZero: + enabled: true + style: include_zero + + MergeableSelector: + enabled: false + force_nesting: true + + NameFormat: + enabled: true + allow_leading_underscore: false + convention: hyphenated_lowercase + + # To enable later + NestingDepth: + enabled: false + max_depth: 3 + ignore_parent_selectors: false + + # To enable later + PlaceholderInExtend: + enabled: false + + PrivateNamingConvention: + enabled: false + prefix: _ + + PropertyCount: + enabled: false + include_nested: false + max_properties: 10 + + PropertySortOrder: + enabled: false + ignore_unspecified: false + min_properties: 2 + separate_groups: false + + PropertySpelling: + enabled: true + extra_properties: [] + disabled_properties: [] + + # To enable later + PropertyUnits: + enabled: false + global: [ + 'ch', 'em', 'ex', 'rem', # Font-relative lengths + 'cm', 'in', 'mm', 'pc', 'pt', 'px', 'q', # Absolute lengths + 'vh', 'vw', 'vmin', 'vmax', # Viewport-percentage lengths + 'deg', 'grad', 'rad', 'turn', # Angle + 'ms', 's', # Duration + 'Hz', 'kHz', # Frequency + 'dpi', 'dpcm', 'dppx', # Resolution + '%'] # Other + properties: {} + + PseudoElement: + enabled: true + + # To enable later + QualifyingElement: + enabled: false + allow_element_with_attribute: false + allow_element_with_class: false + allow_element_with_id: false + + # To enable later + SelectorDepth: + enabled: false + max_depth: 3 + + SelectorFormat: + enabled: true + convention: hyphenated_lowercase + + Shorthand: + enabled: false + allowed_shorthands: [1, 2, 3, 4] + + SingleLinePerProperty: + enabled: true + allow_single_line_rule_sets: false + + SingleLinePerSelector: + enabled: true + + SpaceAfterComma: + enabled: true + style: one_space + + SpaceAfterComment: + enabled: true + style: one_space + allow_empty_comments: true + + SpaceAfterPropertyColon: + enabled: true + style: one_space + + SpaceAfterPropertyName: + enabled: true + + SpaceAfterVariableColon: + enabled: true + style: one_space + + SpaceAfterVariableName: + enabled: true + + SpaceAroundOperator: + enabled: true + style: one_space + + SpaceBeforeBrace: + enabled: true + style: space + allow_single_line_padding: false + + SpaceBetweenParens: + enabled: true + spaces: 0 + + StringQuotes: + enabled: true + style: double_quotes + + TrailingSemicolon: + enabled: true + + TrailingWhitespace: + enabled: true + + TrailingZero: + enabled: true + + # To enable later + TransitionAll: + enabled: false + + UnnecessaryMantissa: + enabled: true + + UnnecessaryParentReference: + enabled: true + + UrlFormat: + enabled: true + + UrlQuotes: + enabled: true + + VariableForProperty: + enabled: false + properties: [] + + VendorPrefix: + enabled: true + identifier_list: base + additional_identifiers: [] + excluded_identifiers: [] + + ZeroUnit: + enabled: false + + Compass::*: + enabled: false From 301f12618b071df321f67d8b233d713c7ad1668c Mon Sep 17 00:00:00 2001 From: gregoirenovel Date: Tue, 11 Apr 2017 17:20:23 +0200 Subject: [PATCH 29/45] Add scss-lint to .circleci/config.yml --- .circleci/config.yml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.circleci/config.yml b/.circleci/config.yml index 6d340f0ef..90725ad32 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -56,6 +56,9 @@ jobs: - run: name: Run haml-lint command: bundle exec haml-lint app/views/ + - run: + name: Run scss-lint + command: bundle exec scss-lint app/assets/stylesheets/ - add_ssh_keys: fingerprints: - "0a:67:42:7d:7e:b7:e1:3c:48:8f:bf:68:10:51:a8:44" From 01f894316cd0002c2547465a1894fc749279930a Mon Sep 17 00:00:00 2001 From: gregoirenovel Date: Wed, 5 Apr 2017 13:46:04 +0200 Subject: [PATCH 30/45] Rename _variables.scss to _constants.scss --- app/assets/stylesheets/{_variables.scss => _constants.scss} | 2 +- app/assets/stylesheets/_turbolinks.scss | 2 +- app/assets/stylesheets/application.scss | 2 +- app/assets/stylesheets/default_data_block.scss | 2 +- app/assets/stylesheets/navbar.scss | 2 +- app/assets/stylesheets/users.scss | 2 +- 6 files changed, 6 insertions(+), 6 deletions(-) rename app/assets/stylesheets/{_variables.scss => _constants.scss} (70%) diff --git a/app/assets/stylesheets/_variables.scss b/app/assets/stylesheets/_constants.scss similarity index 70% rename from app/assets/stylesheets/_variables.scss rename to app/assets/stylesheets/_constants.scss index 701b59ca1..119b9eaea 100644 --- a/app/assets/stylesheets/_variables.scss +++ b/app/assets/stylesheets/_constants.scss @@ -1,5 +1,5 @@ // colors $light-blue: #F2F6FA; -// Bootstrap variables +// Bootstrap constants $font-size-base: 16px; diff --git a/app/assets/stylesheets/_turbolinks.scss b/app/assets/stylesheets/_turbolinks.scss index 3a6401063..436f0541c 100644 --- a/app/assets/stylesheets/_turbolinks.scss +++ b/app/assets/stylesheets/_turbolinks.scss @@ -1,4 +1,4 @@ -@import "variables"; +@import "constants"; .turbolinks-progress-bar { background-color: $light-blue; diff --git a/app/assets/stylesheets/application.scss b/app/assets/stylesheets/application.scss index 6e074f1ba..adf15f626 100644 --- a/app/assets/stylesheets/application.scss +++ b/app/assets/stylesheets/application.scss @@ -22,7 +22,7 @@ // = require select2 // = require select2-bootstrap -@import "variables"; +@import "constants"; @import "bootstrap-sprockets"; @import "bootstrap"; diff --git a/app/assets/stylesheets/default_data_block.scss b/app/assets/stylesheets/default_data_block.scss index 339af02f8..1f37e839f 100644 --- a/app/assets/stylesheets/default_data_block.scss +++ b/app/assets/stylesheets/default_data_block.scss @@ -1,4 +1,4 @@ -@import "variables"; +@import "constants"; .default-data-block { font-family: Arial; diff --git a/app/assets/stylesheets/navbar.scss b/app/assets/stylesheets/navbar.scss index 612532c27..857b64d8f 100644 --- a/app/assets/stylesheets/navbar.scss +++ b/app/assets/stylesheets/navbar.scss @@ -1,4 +1,4 @@ -@import "variables"; +@import "constants"; #header { top: 0; diff --git a/app/assets/stylesheets/users.scss b/app/assets/stylesheets/users.scss index 393083a74..08f0c5f10 100644 --- a/app/assets/stylesheets/users.scss +++ b/app/assets/stylesheets/users.scss @@ -1,4 +1,4 @@ -@import "variables"; +@import "constants"; #users-index, #admins-index { From 8f2ef4e25459f8dd9ede327ff6f7f0356d3bba36 Mon Sep 17 00:00:00 2001 From: gregoirenovel Date: Tue, 4 Apr 2017 14:38:26 +0200 Subject: [PATCH 31/45] Add the colors stylesheet --- app/assets/stylesheets/_colors.scss | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 app/assets/stylesheets/_colors.scss diff --git a/app/assets/stylesheets/_colors.scss b/app/assets/stylesheets/_colors.scss new file mode 100644 index 000000000..0d72dde62 --- /dev/null +++ b/app/assets/stylesheets/_colors.scss @@ -0,0 +1,5 @@ +$blue: #4393F3; +$light-blue: rgba(61, 149, 236, 0.8); +$black: #333333; +$grey: #999999; +$light-grey: #F8F8F8; From 40d49aee1fb2fef45f38c691be882b6f059a7b2f Mon Sep 17 00:00:00 2001 From: gregoirenovel Date: Tue, 4 Apr 2017 14:37:50 +0200 Subject: [PATCH 32/45] Add the Muli Regular and Bold fonts --- app/assets/fonts/Muli-Bold.woff | Bin 0 -> 43716 bytes app/assets/fonts/Muli-Regular.woff | Bin 0 -> 43636 bytes app/assets/stylesheets/fonts.scss | 13 +++++++++++++ config/application.rb | 2 ++ 4 files changed, 15 insertions(+) create mode 100644 app/assets/fonts/Muli-Bold.woff create mode 100644 app/assets/fonts/Muli-Regular.woff create mode 100644 app/assets/stylesheets/fonts.scss diff --git a/app/assets/fonts/Muli-Bold.woff b/app/assets/fonts/Muli-Bold.woff new file mode 100644 index 0000000000000000000000000000000000000000..fc7a6fa82b97136d149d5d96113463724b25199e GIT binary patch literal 43716 zcmZU4Q*>rcwCxvlI=0=hZQDu59rKHA+qP{R9UC3nwr$@0XPkRqZjG8%wdS6MhrP$D zRin0xyqFjO1n`~82LQ<56^OMf0Q5im|4$-HlH%Wj#P26R{}&+QBBEm7T;{i}`V9m8 z3_@q|-||Y|+&ut*(gXmoiFrXoJBur+2mt_Sl>oqxZyDTkm+PL6yb?VV0D$w&0lxJB zJqv=OK0_;gTL1v}+x&3~06^ov3LRA&Iy({q0Kd+^Nri8ua=$=e8rzy!0RY4T-#VV} z@z9-(eB4d+9lrZgdVXvE@A?o;EZvO1xj+EGj2-~kNuKAPb~FX*8vy|Ejo&)9{{RE^ zz-IbQesllLLG%q0$c`T|rdE!w06+pF005=~0KnLP)Uuyj+8BQ8lE3GH$o|HtQ7;vh zmA>n@o%yW;5dH^nHndc$=@j8WRtV`u0g&5aLvRU6@(V}4G7#xb2HfEh~BZMF{)6@KLVfB7p;r+ zz%;&Dm`4DmxT*4wCEkO--G;i^1uIuI)U5is>PY;T`kh;%^9K%VTPn+1p%KQ?t3~IN zATs}d<92GoxF#;7eNLtsk^Ps`zH$gtVr`*_27m6{nu>@FjwvC=0T-OgL2qshoC*ul z%>Css+41Ev`7-IkZ$c7|9GB~vuZzrkTF;0=!t*iIZX#8-?@Jd=%;$+Fp=D0`m48N0 zn=nS#YATc#*=@x0iX*1$=#?hZd0Wm1w4YjLEEp}cepgXT{|2S7I8NipAChJsySNd zxjNx8naFz1Z}f%qW_A8l`<4EoKS!;fGu)Nxm4d~-$tjyuSEI-8>jn4buo9!kAO7L8 z5@YBC_ZG%nJds*V){ry#iT{XDpEL1^aqctWjr3M@ezwvL^Jc;F!2YZX<@nkeqcis5 zBj_z6g;5rdJ+M2tu03Y^!1u~?Q$g%5v)QL-XzKGfxvrwG#W(z_D`PO`UwQug$0fVE zd3q8Z!f z;ext%ZQL7;o;Yhk;32hc)eu5jcyrL8AATa1F0#X7X)T7gi*)JXdJsauD=SK_prO}v zg%0jHC^IJWNHpGYncQs>`n(z4DjW8P4t;<=e@5B622#+GU9tP~*iDqG`)Dfcv=@LE_i zj1~Lpk!jm5h?MBquUt+Djxq zcF@S5C=pwK>#_#Oc5#Q>cUKn&=s<2c#d2Ehlk%MIocR&~I`AA7Jx=`R(P$%yxR<}d zU-2c-Y@7Y$5t+LHP5?K8o(AZNky!}lcoL==uvdj6fUcAO>Z&ob!;d0kNwPN%A5jZN zIOkWUL37=-x^aS|(2z$bmXHF-`Y19lDI|!uj&S?s3EktZ(4*8a-Q^DT(H)$z6*+pg z3@NaSj07r~qB};h)6A*NubyRLQwu~V$Ski()qT-rb$?SHGL>bEv^%?YvgxJ?xgq1I zLK_3G=k=BOVldh>=7OQ%$dbc9Li*6oIY4$`}D| zf~L zXO9)pr^87r3(G)^eAR5NyGWXcl(d#dP1lwgol{GUHEvw5}; zt!Kk_UMa+;a7~QCNrNk0QS1k{3mEP-c0C0NJ}7qzQs%q@wc!cjqsiA&MIxV58u3-C48&yYIF{)T!)~Bv12TgU|Z~v_ERGwtmRp&hPEEC4cT;?Jtx0%dAX=DpX z&PP7f&V&!R?M#3VD!XJcwL>lFv3h=yxk2!nQ`cKz+zOOrfLt6DoZ*(IH(tPDeQbRAWZCZbksfuQnCY+X9)oIN)~1G0(<1ci`Abq`-# z-qF_lgn7a%~{Xdf*NAhV|o;N5T!dpHB4;0;H;;5wic38hc^>U z4|2AUXaW>Ya>TYf_2K9h+hT8AA|D> z1uH?Zc-@_K(l$Ity+SFj3q>qI*@1Qbx>Lh}9*pZ-!PO^#*L0tf=K5xW9)|o?XlpmN z8;2o%DeWfZ?y9(p*VevpOz`Fi+$KlLt{AEyZK%F1qW4}LSQelSyn%0+Kvsi^rzRA#JVL4cpZMcXA5f{=M9QT&*%_q9OfmN#)#tN6Ch7K z#7eIvGNsF{!8Q^{HA9;6e|x>@xaad!Ow_vqH1|eRs&FT>jFd2RYSFW~osRP5+U4uz zp5;LiHAm2>i~Wx1=|C11whHhi;h~+x`CRHyGGH!HsDuVatu?bk@i&?GiF;##CWDK+ z#=a}Xzg?Hzi;zOBdjV{Bj($_;bTfIkV>NttHn0nJyy`!RNzEe#ANUt&`Rvo1QJq-= zR~{opRwLnj;jBZ>yKmC@HS$obCb|*c8W5`hgat>?ERRuYvD~QJX%}vhy$-h}k+aIM>ZhuIi&psQD@3cYPK^!6 zU(wPgMw8){?K8%1$AYhLCZ!KQ&G>~qR)z1Fa?cCs`Zh-0|E1e}FhX^vgX}yS(UN29 zSJm;^e*9>>VVU{M{3m1dU>^8Ff_6ij1#@Y;Xr1q63d!sE%rbNHY{_l9hi;0|LNvQu z#?s!tF?MJbR=O&jR1z6nIAbm!Aq|?>RB+0Ied+iJ6fxwPmt(%GZWvx;N0hyZm9CJ* zk}Z*iXd{ktMwtHC*IEiT{Wr|R(n5@Vu}(BG#5?6(-0wEE5^+)VDD=jf56lvv=H{#+ zo{tSyHBJFA(K(TdYKk>7fzc9ksi^-oH`9D1$&-1XeJ~X#Ft{v!SbM&_mk+g5~P`bt^T)5-BE zjKDihSCH0$=s&p(CWx6eweD@HgW#T zVZ3zQ?j*Q-oRRrJY4RnpASeD#WuG&7z4}*+hN8C!-dlo>#j!hO(;ulQo&8J<&evaR z6Tc4lgm1j`YOlbeH;1*2XUO;oKOpz7IgX|d>9%H>VjMngR`@4XViNB58mBB>_(&=9 zNJuj|!|tz8d~zzt>=p(KV}5y|UeqqS?XA@aqYXZm~Hkl1rr?zZv>WBwVe2l=G&S{KRoR*C0+?;UB?~P|O z;6&FF^-HEBY6z9G{vo*f-@`)bxr=3iF4j5T(-x%lB!jaPwuwLgqUJ~U0e*Sf`6%<0Qi{5+6H`+_qN zP^^%2dy-x%B(JJx;&MLx>mz(${gQ&U@Byn)!)$6YuEcI`0 zOR$M%I^aPs>@?3kap2y_E8#vk%kvfKqcj_)aG;Vd78eT!%Q_y5N#j%UGS=ca=WHLu zEZ*n0Nm;`_?}N!h9ZM;#c|@hs+Jf`TZ~jt(#D`b?52cl!?%XvSCTaE2pqj6}XHShKk2YF1NDl4vuR0?28s;uRzPHO!Nm$|4>O` z$RrO-jDp(4mU0R5LvpVwjr6_Bx={aWcM;})AenxadMgXXs@!Rxw2lL4(ScJX=jrv3 z6zwsJM+)WyMU#2+t%+O$Wgm&F;$^Hws)-s3=1bY>vo91WG4^Joz|Yf0MR!7U&smh1 zc&0Ky6+t$km`vtVN`s#)ZRi-MJ(jUfG`V=SK-b|f-I8t8Hg)Sb9+9uAc>0zdC_)%x zKnBmG2|i@(@D~){)XvSnJ6Gs^cGvKI2p++-n01Q8!I6~Mcc>TwbwlgUnlVk}}cZ$9+kJq#FNOZM1U19#-g? zf**UT3jt20T2V@S)A9nWRN~fKp`T>y?_&!rtdI_e<*hyPWhK5o)rTNo?e2mGBX5HS z6)6kQl!H;nyp#%X<$`UcUxIMddD$jq@(af2z*99O3q$tBW_vN!*f=y}qXz>cG-m2i zO!dLY%Abbi7>1(;GHA@jeUW9^|2H!*6Aj25kIMXHL}_DM3{Qhn5Yu8LrW+4!_+v44 zf*|Yjw-wREI+dq7&t_c$c7~nkRc!9NAQRaVImw8{AkIL98Di&qB@5~LS7h^kFN^Pm zq5x42u+!&B6i0wK&f}Tigb`%-u3r#+hC?f9v2<#B<<{H#e)Buie_HaG%sH^}rif3i zoJu~Bh(&$f9`k2>!j!+1F4(!(`RX(t4+^>0h3e20Vnmz_`kE_8rP_F=$?HZ8=NMDa@FfyXfw@P>Da_s>;q9L)sdKFCE zEWT%y(iNIoPFxUIw{kBIjz$=jcGrc=x1k&-fIN@*Mzv&;Ok75uQ{0eZpwvvL(R}b+)D?(m@s}-enGU2bblX){&#Md zY-XvVf;jxe{M5B{fu@nHSi4C6%V01(v@|ra9wx}Z>#wqiR2~IwQM2y=qR_M6s~@7j z03uQZqbzGu5uvjG2qZ}`qVUglh*4zWpQ`iWp-Eg%TM>L=Ii?KsN9;%0X)crF>W8>L zeO=wijVT=mN;7|QC8Cbgit7Gdj9ye7$dC|#zHDkHXMm^A1(0F}{yl$>(-#Rg5$~hG z$u`mAqT}X|OuuR6)IZOPW&Ra8)Uke}-zYLJrbz6z*T>XzrGzNNem~Ifip=SXG{=yU z4o-m_7ycF-R>A_ZQj&$S+1sUnXJA)kGB|*!Ilo{GE=ImL>?TF+2kJzhV+f{=w{%-a@-2SyEEb zQ#dBU#!(ujjuS%03Xd=v;d7?ZP`Mcz`)P_zl4Hb6k4V{LwZ>~ntHv!DS^dlGLvD$# zBzH;h`1i3dcuTP&kWHP%-oD-`!4@~M?-T+X^_1=*W|Rm-Am ztBsH3huqF}U> z)4MFR11FL-iWh_POFT}4G#A=NtnaoBWX9C3m03m;`AQicoik)MVwGx@TILCsN_YK( zs-Bc8w_#p*(XYt7MkVU^fYz9G;mdooc9E7997)H5&JYm`n)cAeW*xTb26USN^BPij z;JqQW#n*zO+}m+-nX2l01Cz$Taf6!^CJx2QPTEoJTU~mS>^T*BW|V+jw)DS;uqeI)xhw|_`{{Bc3#CrYRwFsGluIH!AhHO z#e>pjw{@dVcfHqw0>avf)M3`?h2@Akr%l?V^`ASVl9km^;|0Av5(o0inWn=P)$G8Z zWGf>psu-G*1;rkXPaP#2{@V3A=A{$$_@Z4Y1g-5IXg8^+P309~9Vj$DW^0|7FS8=8 z65%U`5FRHs<18D$YHU~}t5H3O{~&$Pk81RTj)kSYL6jSI5xR`WWRiL z9fTq{c6yhpwDm@8<@4u@KcwO>p}5bEF=vj^IP~2u+z}e>xnbGIeGGJ%-_qjZ@GdR3 zEc3uJ1m{MjMUzb0F&%LPIp7}RKE1{(GcpPgMZRl)gu%vM<>sRvT+B9aEBMP`deDlu5JkF@1W;g z19Bu-)#(<1_1->=iDGWb!#p&@XgtIZ2>VO~AIDQnl>_#$h7Mv4q?!&i!_3JjoB`CX zp~G&0!$w6k3DHb{&?Pz5M>gt3(8m;8so0HRM-3um62h1ShsJ)V(K?Wb8Q)N+O+t?E z3LhRZL8U-5i5e8O%fzS6N?=E5<|}CNHo$Q|C(kEw&1z{#NSl!s81c=;(H0eEu*4O= z`#%Ab{+Q8D7~w}a;}%tguf>F}c$y=p6#A$!RHjd| zoPodL|N7*@pdpB9reeP}LXWf+-N{s;_54eSA zt)6{3_wS;|oYz!b#7FZMX+MVK(a=;x4`i2XP!Ae{EOX(SqpS3YEmbs^#8%Lo11?M; zS8mvbhSnC?W=c#$64cNjIEpg$hHog#Pgt%g(=P`q^0g=NRUCUb%fsb3|J6{87KDeF z=jZxRV_zzXsEABGeYLq~OP#J@R9$~{#b@WPkE^{}@IYk)vt8vgO`6Gvn2B2qt>@ND z*RR*7w;cO#YX8W^woHcoj<|2G_xX2{%1l8n|JZp>;ze#kFkiQ~Lhy3P_Bx8`6=LEt ziJyrEV-%%&R=CJa%~fHb>b?DGx3&1~|54=sDnGv1DsG9SiD|SjvB6Ix4!mU8fE(OmfD)=iy z={Yi{U!?3`Ux%taTE|Zu>W0|Y_YMP9mKPL0#}8U?vr9CVk;|0&phV z329>Wc;xlC$NhL{=(sN!b4U)e5B_)%9dk7Lc*+=avKsT><+&f@d63 z+)ymsaCO}1G|zy3hKzz*zX-%Bs6WFHI{ACNWCrw0`Up$Age}{cTfGWoI}9yEX>Yc{ z9(L&-*HHAk@KZa#5ccrtx7iYI7?rL)bcE4uh;X*9m3V-~o7q#f=?=D8hBZU15<^}L1A?VJFY5sy zzUYssUE#|f^~(^*rdogI8+bK+Qj;Ad{>4AGVu~#Ig_7l3@eTHZlI}Oa#DCMF33O*h zotE)d_1euN8j^`5D^xf}%v7~MsTxSiYf&}os5I)K&FAt_aB{gba;b6h2-fsK-}I3o z^{60;gNYHx;!?*LmnV}Xb~Ba-NS8+jm#5%3dSp2!vp9NP>_Ro|0@v)~+ijyEZLFvxmKOhL1YJ=~KgTH-}o@as9#zkWr&Br*>j;euMKDPxdn!xB9(NGtgP@Ae$8>m#5 zI9D5*5ZBY{nsFC5!cht2S+vEkz7;OK1)qIJvc5&NzG0bl`@#Oq{T}CX9gFoG?sCI= zC5dB3eX;LkR--VUK|TKjgqdKWS1-bnL^z?d_vv_8t5Y-<9OfdXHsEtFDTF|VBL-GltZN^LYy2j0Z)!~@kTjL66 zh0HH7`;mp<{c^mW*(R$bHV+)@%$pR^;G~+du|uSF!GbTV-jwWTi>Sj!i89e^#nLe= zHe9Rz!JQGfk*j?jFf|yX4L&Vg1 zO6{;nY4-g2A+|I)SHTta5cfnqHOP*kjmSEp=N}qB!HNSTRu^;@PO%s|!nrf94!h(p zsziP4Bh30C5bQ$oXA_Z@M32U5IZ8-qI96_u7vg3N3=Fn?_gI3If}QvqH$vbk@qSz6 z@<$nHG7*d);$bV>QK{rjn9k%8LF6Mkj1#3PEB%V~`*A)S zixF;2Vfs_j!Bm8{>c!63fiX3|m)319Pob&toW6=ILlytc(EY16JWAhYBPJw-mx(wf z*y>Wo!xpzRY!*hLVpEsketbl5=u2Fft{}u}Esoqm@(2FKV zp+3Q7G-#w2Rg}r*8qChrImN!dq9cvsLVNV2`c^fcrx+Hy@k`iKo~X<4TAGkA*==C> zmSfkD5{Y1pa$vaL_xX<;F<-L$H<&|XiWKuJ*X9)%xUr!Tn&5b~rFeJ;J2jN|m-n~P zvU|Wv!@$ZZ3gY*}o+W|@XQrH_E#zjyRyZu=ls#dY;ICIU(%k-dDTd9hZXNY7QzPK? zo~!cTmmpy90pK48raWY9$v z=ARFUQ`FKY(ku0qpPxna>J4zmGY$th6gB!n(+iQNnNrgsWDEGFHqFtC5D&;Mx!Y5I zh5yq|?1fMD7sAJe8T*uzDhz5$NS7mk)50(8O#P?W07R2t_PFK^<{6K_5*vkKpYhUZ zgmM~qi+27~iyQ&8edWX%-w2D6YfD9;W>F0o6=nZ0x^ZvEZ~=>B;jNH(^AC8nmf`<# znnqUc;tO6MM*(RIv2-sM9XT*xQ=>*5yX=a6^u|GfRYax?_4Q^YAG5p zq}@Bu#@FfExvdXpc=AXXQ> z8QqoM29IekFbZ0lbR#!sz6rH&g7=$viraJ80QJsQb40rC2iF084^606gZZ;DVA43z znj~=OS;=XfaR&vTbG7+ergMUlLmDgZnJrMfHN$u&c5k;g*ulYGP9BhO@P7}S%!5KhD`;^ndS$y@DgJ@@#T#12X ziSfVFW)-UnO!Z_OwjsoH7(IrG*c9}P-zZ>EP+6(*9Xql@gux_!^x#6x~x zX;DK{Ygt}bb>s38UA+eE3m1e~+bL7!({WV?r%~_~0|9*5%2jR}!r1Ru=AEnB=a#^N zVu)Wvo)nM$x|=Jj&T5*PYv+Agh!@aqdJZc9UQ6RAU86EnSskvvOceKJFJ&ByyrB^aW5 zhueQ;{8Y1LdcPp~D-`_2Q}Ub3Ob?k>!&Pv=k^Kcw zLoF?Rna+$D&4(%fL_yn(!3Cb366Xut>LjfgK`n@t8VykiJ@9t4t0Yeu_@oW1ABUR>$PlpBl-{sm zTN}(`JFaE6x)PwNA4e>=M8tw{#zC@*^k;iQlqi1RGcvDKMm+e%f~b!MiyYK9JEhMi z7Ae*;cFe-{p6tt~TR=y1H^&BHdMDI`-XK{t#Dko!Mo(~1mP`-V|{);qpM<@};aECk1nIPXlg zW#upL1b-!JNnL!^9hDy3OTu5%W~2(VeH3DU;AqvTXa$rO?JE|BH9J*fw#Kd=ap04;tln7V~(v491B8{mu z$F=B`oK^OM0Z5AS#7(R72*2`ERrQ1VDltcdZ*3_a+wj!}*$xIiO+Fbusq6;DEFrdtO?bOsnkJN!2DxrT&Ot|^@i$0wIT(nU>wYh4pBO?Oz8V?^m{49a0-q}-{Io@vh_15wwLP-Y|$L4i`kt;yYD)yF|_ zs%`aLK3ny8dZ!^#kfgE?b2=D3hjI*_f(PSbX+Nn*McJ^31tid#8M$cG7fmYcv`M-2 zS`ahrm@rY1lJhqcc9c6h7Yy&B`9EC5Az9WA1N3`fo{&LLT9RX7BF!tp7FLy%ngo=v zGGk6LjXo}w5QVam0{S%?+8>#hR<0%~C{a$YMw z_9`YLJx+#Z4J8fF#jrjRaSQ`bs*eO*%ml`Ms*W5D&OQ>u$)bOELK_46b7 zT@Z6GTzuuNVP{zL`qR=#lsZ33%KWJ=eH%g#hrOzI{@#Ky5=X)6aGx;IaKi70Z}3!r zfx3IAJY>3*V(zxp8Sjr(hTc4~psn}A{<@gr;@Z=xt1FL3^~FBOPn;#2z9e$~ryKDp zo7b*ox!cTjx$=Np^|zu&r0X{<{AZOZ#%?N#R~2_8zIbpS0e|8`*OWPlkKvkxm{Jh3 z7RpNjb%{I75P}JJ7UiLPJS$VAwS z{Apmry$#|Q&7)ff)sJAm%w?I2)cJ1Y#cnFWr`?iL z#irRP6=?9x3T3i?%Hr3#PgC^#DInuCihk1@>u1Sv!x4`SoWmMYxq9ZS(kS;WSIW?W z!6z#gWy)(Nf{{-T1cp7iN6Ps1sj;QH6-a>c_2=&U$!wuX+*uvegOqxqeaSGqlS&3y z0Y)ey(Nr_>SP@)zi7O<=3OAbOoAD~4{K`940V0J{)VyIGu%NiqE zIk>qkuz|oZ*ad~)M``TR-*EGxMl`Vf%2f(eB~`*uMmGnCzY;YQG?lbf)D<*vuUoSi zXn}^L{0OUA7gJypK@QQ0R>VIe`_}kC`)&ze_PW+&fDb!T&O{UVvj>*Z*9pn< z1Jipi$#WFbd)~k!Qx;)Q46yWThvd1F>Aeir@IH;?SqJOWNU@vCh>MZq7?Z;HfHPHoa_=AR>}h_K zqQLs|bE<^ePcXLO1Q(%82A?+4!Y&=-hNP6!tz0~KR5&iFcUf)MeQKZnh9f*PCS9|< zzoQf!48NV2UEwl%)RCL+gw2;b&qqTU8IESDTT0&@#K$5|bxMc`!fpb___}GC_%G=X zRlS>5+Pak8&!>&;el7)%Mpgvlz840RW_|c#o!>qLr4H9;&TOlN` zBot1#?T9<&F~iPq6h_)vHH_AV1mo!tEVeBMuwp8*F4O%74qE;%hGz$KF#U>!Z$ zGWiwnQ>F*`Sg+x=j@|Zl(ol_zw0G}@OtU-0hrHBpT<;iIA0DuGMkxF@n6nb_?igkA z?JbIa0;zJ7@0~<^pC~?0zhy4@Dfm+)pcNf8byhdi1g3!tZCue#0$~)Y%MYsXW>(se zoq)r4%6O;5_Pm|J<&81k6E-?pnD`lU##Fjlb%N3f+P^;0lnC;krdJ)DEP*QN9Uf&F zBVhr&90eNdVOEVUODf&%rfSdoaY^9CRF~m}7*UypIbx!K4!;cmNC`q;^Dxx6KpJ_&uok6QG=VXU!7j(IP}V z(K95_f#{2p&#PB@N!JxwTZTLy5W38RTnutfUbj&Y>`qw+5{0=oPa4CtbsD z90jMbo_Sw**?g%_JiwPQ44L|&kOV{w{iQl}K$MWEcD8SHf*}P*`MaZDOgA#KlUVa5 z8s#9?nG8rFQFmhFl_p`z0~bo-Pnq|ReB}_$RmPgg5@0qJlF;hsuTx@d%F2vwq>D19 zt;Jdf2X088#Qh0+bPpnI^Z4u6T3THNuEZzXBz>aHzo4O!IvcxI zgsE7HaE@@V7fmjDOOl(?#1m_}VQ!12i<4>wocUwtrwW+f zIWEW}c)bL?q4`Ac>u2x<*9NZ(k&C@tlf^3VTnP!t4quwze?>qcI)G6zINnf@W_6c7 zyQ8zBB~m|bHakyPX*RDnyHCu}-f_E3&e>eddmWv(+1TH9X&Aa*>0Qv zqko~?Tk(!dfkzD?h})4T>D_ydA?=kPy>>Bjl?LV0rnk?mU#Cajv4kh?*^>1)8M}UB zYCQX2k5cHKY2S{C`}|7sUd*Nur&pk4MC)C9<;J zCcxx>Y-#Kjg93{@V^Yv9$SMm(wi3-Tju)uTm|X<6PB*YF>a&XO1QU~nUBE$s2Bb>2 zXjuz*6zDmILv0x8kfIGwI(OGhGXo6Ako?4cG4t39S4FHJTwAREI9F}yUdE-{y79>$ zh|{fFRM~V#56vKSmlAbK==HD{bzf;G5`EP8vqk#MxGQpUoicYF%mD{{R>1P+0i(yC zAiSF*>HS_Rd4f@?aB>8>Xsatpl~&=f7YCYJq@)s-eJ=97vT{kEBObhWD3U2V9NMJ6 zIuge}&>L&xA_@nT#3SQ$N>xcmAYJ6uhtmEG73E5?Olgnc3bNK7pnSu+|>%jNP)`(+j= zsq@6#rBgkjoj{EZm=7w$nq9ByNocdWte(b4SH2L0cs&b4-N7r3vA>6t1}Jdj@d6CGcDRc~wRYB(ony+?YY# z2Es`MNvh*l15Vu3{8ZJy4B01oC@8Qi@yfg0euxR}2wdn{ij#XYd`a$CjscVilPJ(=}MmYQf@+it0K8#Gwh^P?DWX}g&KGY6-f=s$LAl|G*z2vtsr%W z63}Ft-UdDu#YkDl^+I!@Vg@HUmT3cmDU#+z@e&niV<)v*u>Xo;#fZ_;4Q~F#jOl=H z&@q5_I96vCHTP<%!$t?9B$3M`BjLfglX34;M6AdRkFK#zZPXi2&^l;pT*vTvTOYl* zy}mkSOrrm)A7sV3+^YNdd|2q6sH3i-9F$Md=|qq`!#HZ-3`0s13)rR-OPw2%hGU%blSPZf*3gT`$oB)r!514R|&o56wr+`cA>zsA$*AH=R zw)=32_g$8$m-C_)dftAhQgU^jm_qgs zwBL8Sz}mZz2&>oEGTA>K7*ObJ1=ZYgES%bpxaI zPYIxAh-b|FiO#9v!OKi4^y2dM430z1@NyaxaxX~rM3o*P8K=yq<(wcmB*?DJH>DUVV;Fl3nYqN>cb$m@YCiVuT(Xj>7PF`}Vj zSe0Rm$(~YcfHGu2+*UUd{R3$E6M(Ec5?8TgvV^YdOj+G(>f_^*@gZKJ>ipz&DW9Fc zoUuR9{F3eFAoqoFM*OhDzIRtkEMv1yJ=y=6jsE!;9Mb3g=bh3O+L8X3M8sEPAi^UD z($^p4Pb93*$VmS9z%RfcWM876P8z89k1`TZ@gs75#G7$28Ya-2n z5vW6uOb{pq{{EzOTu^hXKJSiJZX1`AT?-$3A#|6kEyZ8u_4O;f8^pYON=KE)ZH_{k zI!q|{ODbq7Sa>*OYm?@s6xmp&m6WvX=@vgS@*A8g5h|-9(GkK~yqMuKA)g7-tUZ6) zfInqUK;Dw@rfUrEg*j0O+2g@Zp1L}y!?wYCf=D%>uOl_71-w?;Ar`Gh$KA4Ug5>rY z3kIzmC>P9U0yfHKlpH|o`PDC4b1EP6Hc3iyZyZNIn)LHp0yt zlGufmZB;PPXZxk>Ohv<<)!;fuSj#HR=oNCqR=yX-7ZdX|*T}J=3lsW{aMi`69E7px!Y;d1l^VTW{9D+xuDY14 z-dWZX;`0%>WUZ;jZXk5Ke$FkR26In^ZN&&m3o8I4WQYV!Y8-)s%RxOauS!1NRH+(R z3187!iWr{WS?sGvu$NF(8&Yjs8bIh7{2B@gj{LQKc@vjm+=8nvYhORL;X32!w(wBl zJY`{cWYG+2QF6J_wD$>z@^k@Zv%1KSQpw}?F=?ggqJTf^^sb(Kb{fW2hJ>tCFVX@< z#MqfcwHTWXNf5O3wbx>FaWyjDY(>r=gM2npa3(BezSA>D2vc6j!crD z*90ghZRqCqe7-%a4k-UO-oiep)Ax|k)d}~n^+$uuWDe59UPPaV;L*%e+cd-s4@@eg z13V%Njs#6r>l+r|E;^-~sG4jA5p+Xhfv%o>q^GVvF&O$tmI^hw#!vo44Ip6BJ&FfehOdHhx=AI4_){_}PBcL~eep@M5U zRrbAM_JNm>^d?c?|F=m1`toOick2Z6Q}k>8$su{JgMHx11n*W0<`>-owff6b4TF{! zZc6!+ddQ0byKa|I`+$kGE&RISC)!O1;|OS=GIMRM3v#dNNWhpy8Nd791nA294pa5m z8c#f4`@>Md{{ehJgTIONt8Oxg?Sl8y_P&@xzZTXm37*iuB>aby;P=Y#r;^}DW%%(7 zbb2%c-=0Z=@0H0u2Kro zScM{E)FBloCE`#hMjTSHXtW`k%dCK#H=6ijVWAips7j7F1QK~k?wDD>Qi?OI^nUtg z#!qr0HhJ!+i;Rt8h@r|&j{H}gs|mFFp-iiAw3{T<(o0ES-oI9(TeLt$v-SGq5zQ8U*mra@BMh|6UVpy`{3ixY&g#9L@@-v|3r)@f5-a5>Sl8F zrYO(fP78l534Xl{e=r07!xS#|{|jvG+ZDBIRa~0&HG@IV7Ar7qIL0AsB!rLRyd&TI z<`JA1`{>BiU;PZ;7W)j=#oou;@ie>)>ir4Sdk4$$4DF;Lg7FNN= zu@v_ZR=>owNNMSaE`Now2Q1+?@g*n!iFd|sB4}}OhH#54$AZ<#+WcFQR?nk!@W+$j zH_GsbBskDy1*6GtMVfqDoL_d6hvYSIURZZTJetQgQBJRAep>O;ha^Z;Y+u9Y`X4od z*3s#)0-PA6B;du;51jB}N_bqz^o$B*g}6l5O_W42&g7t8omEyxsYp>z>T@b@42h{W zH)g>jqY)vxb)wKp*Qo-$o;rdchT-IVmvBcD2WZc@-)z#M8-Q9-& z6;rP+t%`nXXy~HOs?vej#_^$%@u}gVQNhPzG+_Cde`b2r zL<6aw1R5MY0~-9~4Epz0Mx1sT=ci{tgS#`~khf%h?o7pD`k|hzfp+q!3Wo&+kY~jz0#gI5=Gn|v9QG8< zC4yy$LWE3-b6_t_E?`oF>Dbp`wOU-pP1^7!yed7WI|Y-zJ%E@_q3Gz;*gn86O~FQV zRwNWbsU@Pp_?EL%l))^R63zGdd{w^6fX`zL6nnIZ`_WQ0S3<5&;$jb3Q(hnGaoQ6# z*(K`YTCdCId{fkDU$L~+y6O#`rB&_cOG-^$?6JG@UXfIrEGIgdzqhB#DpH6zyV?4B zC2GQ)$YY(FC{P8~s$E#AW6YEw8UZ3&gK8vfpvVR@foQNP3llX*7Lit~p3Tt^wc6F6 zi*-6-VZyAG_*IvoTn^S~to^JsT3$BVaE8TLFoc$6!4bELnv`HwmEBG=1*)2=8p9!b zrM3JV7I+>jlur2E~>Hkuow&oNNpJ|spO9ReQ$b;Cg!3rIw+kzLfwM3~@&8o3V z-x4kEz@lcQ=!IvTLNXZlM{T&h4mL!x+dzPbK%(Y=3goss$ws7TT9-FeZRCSHaa;xG&VjwGRFLQ7(@6sFg|Q(0@Paa{zswT7AcPEO4%7+X3x?_!oV>f2?;7au=6l_|dvk*(dj9b6g`HmKWRY!b zWMtG{H0kt8V;=v8@itrZPoHJH#mTlj3Fo#{9M%D|s^{-3xhU>k{c{jbB7acS8H2$cPn}4q#N9Vj*EtdKGj}Pf~!wnJU%=;J~lKg%jJiplKdXo zQ8Ai~8uM6W*KR8+v|8v+FCFd`#L+}|%!Bb;Oib*tr2*3+7|n4w9L0_x?+N(mE>9%N zfRwcnV97rq5!6*ma)Umuz4p?+J#8&Jdp3s5O%ECOHTF0zTX)bfy%{6IwWR?D5e}Xjpkde?9>CWKRiA5z{YZbQy69p zsrjVderaD4({As#Rll8yaWBN8an1>RI|%(NLIJdw_D(~4rV@1?@XI}0VK++%CCcZ)4M~0d*0=U; zi2YLPY{SVD37x%qYIykMiwSZn&wJm2v1t_Ny)TLIktFy7GW`+eSg zH9O72B81b$DIU|3V5q1Uh-0yP6{~vJ_V|2T>-XN!dQQ)li(-Fi)BZu#So{9!!FurR z4qrTYVdqt!I@a9K*d*z#80%}1Xy+eGH)n@Fek9|3HWN-lJ-4OeuyNJQ>d8V8)QUcg zIt^@Bgn}!_YDF1ORBA6)s+4^iwYYE6o?hTGtpre+}-OzwgLu*4zb5l4ZZGF|}NE&DPG@C z($@DO$)@o)5$CP+I8aZ!jPuisIPw17oe77=-$b07GUB`~=9Ia;7*Q*zod7P3BtDG{j6LQV>_oeJNbgdg=wsC1Vt z;pWqoV0oqafk2= zOOI)CvkS@`c2{1TrLCsMBdP2ak;E}c<1r!+?^vd52?_$v$3R;%cxOAPjVGL*<-!Ow zbuCMYaV4e1*iMbX95s{00=|viVk<0w*Os-{|^ie4}>bV0|V3ydS6o1A>Czqz5Ina&|;M(ZZ>E3mPR(Rw}1Aq^O* zNFR-|FlIT~c3HvKvc|U>nUImE`7Z{Ix~R-xPRM^@kv4OHe|PupeRFf`$Ew_RGuby) zHWORGx6jn9+n7DCX7cGK>H%BQ`UmDueFMcS-5R2nm5D-azwN5KDQJ za^F~Fi4^UttZrPncW=>nn5bTjy@ab*L{_bcy-VJSy;{P~N5o6N6W>>anxhR?a7I{0 zvzn&la|`SMHF&dTR*R_<6Mu6NDrEUz@OGLzmHc+m%{KGqgjTFyzxTQ4mbIh-T2X?^9gQ+O%5cQCQ#&f+CfVN8 z(vRXSwZw6tUWS7y4=6R0`$G5CeI@5?y%q`~<$JaMq` z78S=^D(?x(TB=9CC+`BE3((f6j;_NL(DM)b1l8$gsSw~jU`sy|SNYjVj`8T9gP!1^ zB=hMoX{w%gs>>VJJ07lhMqFjnX<=;wJeM*F97jiu5?_d(|b?UZ>4T-rc+R z<879af9uKzP$l&D`$2(D%$Dg{eN!BEAnL|lk77bD*HJ!Zzc!q3)mW( z3xctg#(-E@%|ixwqnqX>sS>w~hrJeG`QG)T6`l)9tBCdFd+X-1Hi_>QWqKsNOpAK1 z5yq>IzL)K@=h)V3k$B7Y+6(dWNJvc@@A%)ndtW{B-tT?~daUW~zl!5A_7_&47q3A= zuH_fv?}7d;+s~ir9p>bB;D7xbULooTc1EtCBP*nf-M zhO;F&+h_l2v`J{grUc!|`X-e!lGGYw?sl8z_teW&@!)S!ysHFe#;M#_K+{udDjJeckxZuGkl_J~-Be zr(=ICW;ToJB(8(4;g3J*wh^qPhxAaF$U=QJ<*Y`n;*?5jzXFIUgg1*2{Y;;#;3=Ui zXwpOQzgZ%Ymp2-D_@@)G#ZBW)uU)pHdgB?1yBUq47mi4M~QXHg|1hEs|^i*k3xH z=R{lgt>rd=wfiLUlCM#@rkH8V-j=Q`jNKwei#bttzm-tu+j7~P)0Jg*KVFvEeM-kA zFM~VKmS}Df%=*B8=2UDegFsL_qB{arO2Qmnw%ae!6{Z_xnZGYA*1MLW2pOpkWH%c9 z!uD67v5BfhA^mhYu^%Z3*ew3C6q0}K742qCO$%;JAw27wm-9;fXXg;C7wEw4Ugle_ zSQ<&9!vje){EbY*J5p&V#%znBEX|o166SDLDRJ7Bd@zA6{S&r6U`TUnf#npZ7X0k| zwzl&J2hMA2J8z(^v#YhOtFui56Sa{GqQcL!)~;DSHnw`rS}`V5%;adhD1%>58!IYi z{?>NU-^zfKP|wi}I2|lTv|WrjeLZc?ms}5vIek5;zSNwr;)MEslD0mI(*IPLovT=F~E2V>>NO_JlH= zK*u!wxFsVmvt*pRQgKAtZXkQvJo_fL2C@811?}=P6#DJ^a>-1Z6xv z;1s1w5p+s%LSA=xm!OtsuCT0?#7bCq`4050UOb0kA?i5gISf)Zinw3P)t|g-o9+P% z2WEewqZ%yYQ4RQCRWM@es{?KR@+#k;gJ%T}U zNVBwQ(&tW#%Cg`pBrJM1gM`G6WJre(%C(@hl;=ysrFGSnd=CKs_bv zt=1yvx~ZgOH+g(;dt+Z#ceRi8`1x(&uFWpjeEYy2s(#z&UCxcI(T(BQ-=eDDagDXH z=Q=uDTRS`2e!Z%ju7uWBSJ$>*Fg$!gdu?@9sO{W=V_mJ$j@ZNTkwf*uilt)G$$Wh` zx{2m&C>1&}XG2IaA>lc*$mSLx7lSY6ebO+ z$!c*oHYr{0zJ8)eD)uP3z3sHS&g&6>CpEi~S|#LLP5j)p$}KuP|@LhlmpC z(boP)&2;~GE~eU?S~(b{y|!pB-ODQhnbx3a21>bEg&@C3O#ZM4LMt5#;SwJRS&4M7 ztC44RK-{YzmrlIfjNRU7CzVIznmVG?oSW0v68k?otD35*6XrwsUZ%%y6!rMNbaPpJ zLjuli>2P9yVf|$|3Go)XsB|cy?A=n?1pfu*tVw01cuN>c+`;^s8%4in*?U=>C9$j+ zXF>eZhxlcXJs-^hHGy6>!!!*jP0!g_W_4xCiaDUmAILeNKE(UV7_}{IVTT=-5L|v( zf|U&^{=C)v>Ma#D-jdO4>t3l*UNBNy+?%jxM(wpY%?j{n;G4k=~*3>SgoqE6Q$aA#%Fc7KG|6vu1|JW zN9Nkop4E}L_OxepWU4*mSskvlXLSV6Bq#Q?!iQg;pG=dcve=$cAct0`q^PXS3S}11 zG%|EFoeY6qc$v*-Zxi*x4RP6Gv7Fn)SXMguYe_15OfK6JFUw*LHzd`Ow0;PF-__uQ z2GKRbq%|jK&}$XKF&;E2KK>aTC&_oSAn|xCrx4=ek`m(6J#`CV)%b(N@EGInQ@pXv z=Tpk}{&*937_LuyP)ETzyJngfd0+o{dBxe6uIY$`diwTWd->K2qO0-b;>h3zk853X zslR%ad)mITrlM+OBxc5MU2)CKSnIS`utUnFf8nj1-c>{F^A0Wt+m=b zRpT2rZrpbW-~R5DWTE$DC^JBPWjfT+c`dzJL4 zDRy)j%%@Z;^)$^YvC4@jZcggO=`fk*KZEL~*a8+b$!=uJyFve$iMseorcarU;Kl?v z=+OspY=1qMWU@?I4oBFP*SXX8BRhyN6!F9iZ>_vyTZHP zl5uWIi_^mB$8Zv2kE!+FlCce0GR|G8I3j-zu{iLCs1EcuQ3I2ttn>mEj6vl=1zyf6 zd(xw2?4nxVhHO0W%gjzCVaLiW;~9(Sl0$8gIO}}jO0w76vNkK$p3K3z7K7L)VIJ}1 zDR|hz`owTjXqH$u6U`1Wnmw7GW)cpIXFZt|&pH+VKa-LF@5?y%WR%AjWt=-RzUvNA zM&hwoDGnz4=Opf*w=dO`CXg#0eM8`N7Twa#@mR&YA^J%vev(!KWHG>VN?{+jN|mxZ zI~B*Bg2PfrL>zXEnItnwcre*lA^1O^4pY#gI-keL8;X-J0$nCu@%$0eL{mRq4q43h zYl>^UF1wxXuy)rQTa!dh++!W5txl%@?HT#_8yP3FJiH|HC^f#BW)8I!182aCKTJIn z$C`R34m-vM-@o^N&wlIRjrhZu2EIQ-{U#9pEx_aD=iyjSeI5?^^TjWmz3<|kFI;;0 z!F30zGR6I|kq4&$@lZZI3$D1`kab$G!qWffdbA=5)R2+&n>C-0Il8! zT2(<`mz|$uU3Pwskq@eQW00Mnv;If7UVZf~Kl;usmt1lyR>VI3@|UsVpLgDg1o|)8 zf&MfH$Q~`s)+!YW)I%^OAItU2K{-V;8RxEy?R-(jxicfqZ)BW1QgMVcdhl7Z`C@glKE5vU;`7VoG!^HzOgN0ruZwg}g9HB4ZyB9m z7j4sRQce-+kn;an?1tus#dC{pWw}LhJ(0K{3NT27ya!@wLpud!UBW^OG@sc*cY#WO zQiY19l}w3n(w4F~t}~A7Oot10-Bx7s_=F=4b<}fZmm$e1-u0mny_`#Bj==Bt@W8%T z_HEo)I=jYSP*tA)o$Ie>s^oT-@g3?K_HD>3t9pLF;6KvwOMV6Yr^z)O9;5fpED7fu zMdEk=2gBnPRm3gP_;cnDCF(59m1q9TNfd_}y=0dFhdeY{btEhsZs z%w};D9?gqSIAXvOKU3hZ-J7y192Lz28%)-snre%!)2DIjs=a0d`F^zf!RjJgW1ylW z$80EEm6QKhM}aOsKZiw)kpcR*p3od>E9&om)SZ~O(#7)UxLKN`(nh&&QnCxlIB2?r z!nO`(XCstt&9)fw*(NHLmTsbw@3T%ySXmq!8yOxO8+N$e4*HFcOm=lnOmuclt_|?K z-_P>_)-D(P_%6GjM}suS)hdEWbr}d23{ETO!C%Du$x+PLy@Kx|Cr*BPVuI|xAy&iA z{p}+a>|8h16KaI3>Dl5&HAhFakqeWG*v)U?ALFx6#{T_pa$;-jhpS^h*gB2R!e>nj zu@8_aLeFJ)LHQyM%KOyx?yiI`Sm{+>@%3Qx&--qR{budRr?zhU)atdd-yFSf@}6zm z?wR=T(_0t%Z(Fl*=h-ArpzOH}Z+G*xb6*E8G1nL*r{1{rm2;opgm=8KZD!`ZstS&+!F)if$tz4IGT*O~%5;{gl%DAiU3uk! z1MuD5*49nGwO@PU(XT%9*yI1baNydj_wBp-+5@aF=K$@4?2L9k>ZS>ZET2_64P3fQ z$fOrEwV&OoMz0eJ;lsDbR^4&q3;kQSZpGi7*mGf=mwt8*dMH|*gE7el(WMhhcBM57 zwThP+h?mA9YObxmAUoaFPen%Tg>a+?3$Uq)Kj!^gS#e`{X1=WSiq7r(!mW>N-8zev zRYQTA+P;}U#n!2o9i3kl+7JZ(*r5%6v^8q6V}+95>E};47Fa2-Y{gISm9BvnLxB## z&&~LpE$?f6yvOJB(fjU}#R}Q6zDXSc>A*kfyym>#E6d7fw{&%O^~?-jyP|$>uB_}} z_tt&5IgF>*bxiLl56<+}N9se1TWjiQ*A~Z{CroVr68wlVUggkp+;gykgV~^h^nr$B zwh3l@H!~YvA z#(9)}EkHkd$CMLY6wS3`qRImOqZ4xwwZb7!gr2XvUrqPja4ND$&pwz2Dw&cAcqWL9 zlJH)5okOoT_=baw4%dFp{reQ8};@l4;LeHG!@ExpanJ-tm$tC&pJ0q=e6{7vwm zsgujH&ZTPHc5-6w`0 zuvrlQZm9F3;o*xqhq_mEM|b!3?v8e^c%rMjsj0iGxodE^qholm3r}xoZ&_bmy}qS= zgWfdW*fdd9HPO^GVTje&RyAw2%~iGaC;!?|SF=K^T~SllK*vo0_+Ay~dmbiA9cThA zlW2N51ii>|QC^TwRszX<_xUvmi9DigMiSPhllXqe%_}L#%gbiRhbM@2y19)BLfguf z4GqA1@|w)?tM*sc3qlaPmGYeOp7~MMrH}CfegvBM5&OKBDrNj-`2277*$tnk*z=Fs zXB*%PpHH&SMtHuP;m6o#A3Q&ceO{9B=P5oB)-k^Whd3*hrc z_L*ZogVa81w@Rb*9&Nf+VKHvC%%8|=?V6k%9)@q1!|8Ovf5omH+jj2UzJ1r~=&GLf z_MYB$7z+{&QfwCD4raDlVP>=PhGYL6?%O&vK0f|V=|U6KCDG4{YNC}X_6i0W42;F) z*2*7{tyM(QObONsPsLupw#05LTH&xdM@u`0`SP{n<0Cg$y3AIyVaQa_QSa|4SeG{`gX&(#xz5Gz?dlj188KIV`Qw zuFm%Q4u`F&)#@1a_m1$c*TTVYSAl6LSXI5Y+GGt584Ei?p4u$RV@ZZiV|S!!U3$C2 zhm9dU9}45$Eoc4DcgJ7YbabS*cL3&kf4YX!L6S=w9ifF_bD;m6aD=~PL!|48OZYC9|g)2oU{?UtriU(oL}(n2suB}7@>E&bVS>7!EWRMBTUS0NC&pa_CvNB(5!+21ha|)uhR~NEv#);xoyG- zh?@*cqUx{?Omq#;Y#I0TIxWq0CFP3z8k@@FwmZEZ2iC7_>m1y=_3ZPk=Al5i*u`EJP6t~ilE<(LIif|Pt)P1w5LrmI6kO2AdvW8V7k}kB{N;(*moeLh1d=9=dn?TB zDk;~C?ba-2Cy;oy{-SIIprbrrP{3F66$Rb`PpOYu0AIY9g8mnUkZS*Q%D<^{!_d%% z%2I#vL~rjzv45Ah&E@hqynf#2=L6o?8Um4MG*TSV<%B%pmX@$LtUFXxP^{P3ECofe zU)u`{92$+IpwKSxOwvMIwj8%6+Z1#63@6ezbZK3SL5Jhm!0?8 z9bS(eKO*s~9{AM_{CmmkaCqsrpyzQRULfDYYO3e418E;aro>d|f%`whd_Q;8 zA?ZA(?hrnUI(?k1@NgQ1hxdpYkJ${UYl^+=W9eNu@m)4(3p@wPT^+Tg*GWQ}M^RiQ z(Q@;Wn`~ldXPH^*dCC)cjn+ljLVU&wrUdueo5sEV57Zm}b0+;pZ6wfRH#q_Hh%Ki* zwV6PVv)J>c<@BO96rRshdQuyjro0#1VZIOL8NZg7H$nL=tUQsPbBWIj;Q2=OoJ(8( zDP@QH41(;y^M9v(|0(4`?4R)bWZLKdzos9;OAAZC#Ouf}=`n3j5E>g$2eGwh6n}oL zy_&o#+?Bp|>6hHCfa4`fmdjFr_p&(H$7F^4{Gl|@W8!n0{9L{KIU959@I&NHluKjT zx%6URtwu@pZ8p1h+kyrxm~OxgMuHJ*FrD@&2H+Yr zh5rZt56YwW`!f6qw%E>EK(9=vyRGQE>Qi=Gy*XN2JsPSWt*sfYnW|b_Q@OUbYE5m; znrcC}(+l*T!+&ObPge->KziFZ^UUs7C^tTFXdx^Zr>Ip`D z3aK%s#J;BNw~cVnLa1$``1atA!-s#2|Bhq1eTNzSs+RiDOCtSx1^O94nB{$gB<-)se$H2797?Q7FcOki$O2l-J@s6q|x4~ z`3U-Tcd~THUiXCiQuyw9v-HwZ{DU8^c?iDN{BZSs z@D=;n4}Zwy8!^6f$jCO=%Ig$Nv?G$Bus%(~<8P2xVN&Qs4bgBBP^nP7SBU_7x&847 z9t}B9)6{=6m_?h-X>*!Nirh3y!XQnFY2c8jo{|*%3R7|(9c!Hn*VL4hDiwXj0f(ce zY~{-6_2kvkzMAkrZE3ULUeYjF;jMM?!Ln^9Cz!0{Ep^}v7;jzlj2k-`R|oj1M2wr; zskwy~?nj&oz=}=EB!+wC$4DtMo`Y%e1nt5cD=;z@H7OJz7cPa%hO4k=iDO-;zML!hQneZ|6Er7Fq?eg$6CGBfBav^TD`$i{J;g9`P z)E#teGy3G9j<4vngzNcFG>A1>gNSN?iie;Gs4@|CfnZ~(9v)+QI3VcZEZU1J=x%aK zc&&JzHac(WD}uOLc^n$qin;Bee%U=!$MK(7-vW=RHg$>mRM5XnpAIH;{4o{kqE~rl z<6rdmvlTbc#otD6!@l+K%OIt^$>^{HWXJ5ajwbWUR2V2zYmdekR zR?e;&y0NBAm(`S|E33J2Xw7V8>1PC=G#lEpL28eYCMpr>KJ|IYr8JQNPr1+@Y^Jiu zZu4ZftBJD^DK5*JYQ-C%2~(r3WsYLjFh^PIn)P-c4kW(5GNocvnQjoVt>#FtPZgELO(Xj7nzU&$wFCqdOUqN z^Z}Iq!;`b*8?%788Q$LuWpkLGioe%lrfg)Pl}LyUJu82AV^hcGNNH(!Q`?WuKmUz$ zuY7s?wpXqaXljQxoMiPZA454P$HLqIrjddnK~FitrKRqfsNg=bPO0_D2#kA5qT zga5Rh-RNidTpT^q_f`CC(O#9i2#_><^w?MzOGX2(yUKM;+fWO7yZ4BN< z;m{6>uLZag`J-NXZy1~0FK><#DGjVSL9mF{yRN!w`{kF8AAjn}C)qtr<51tilctJt-xY78uGGLTvj@g7nmr?{m?z=s1P^@n`)sEqM*J$;XXwKO)i47kcPJI^sad*m};H=VOnQ|6j!$U7O! zYnZsyivMA`bY8H3YnQGe267(Ak(0K`R%A7s4Eo$GB}v~VqtK>PH_1@7X7l{{pE_%E zu+z$yh3ZOUzp5xLt!OCAKW}%=wcEGdkhgn}+G&~e=ER=M;cJKUaU_34nD^+Ht{|I% zM#VJl=jYu{g@OdkY7Qw3`8gVTl5U^Ln3t=-J)rTyi2`-I$R-g&Zae&0jDlW|!|r2I zCnRqomiF1QAIvL(fnc$+AL;;)^)oXQgX_zJ7c>>SY6h!ag^{8D^7e~I%cjb`uDW$y z3Uk@|L9+F#efzGVw^gbyc3iA4yw36L*d<%;oYtIujw<`|FLQ>Oe#YkyNC4*EcJOpp zMmr0wM!kaIqI{YYPO`KLqM+gA0t4Mm%q86FZjJ922Dx%L9OaI(igI>vy^qfB+_5Johpgj=mfS<+p zb~e;D6cp7&Y8yM(tnF;5YpAJisBh?6eWawjq+})g-(3QV%nNec2t1+tX{%8+KdXsk_IE&;Ulb8uAF*B5(Lq!%NjV<~_k)elDhbswVfGj#@Cov;{ zL;HmopqVu8p55HJr>uNpp>soP{l>P!+GEyLPHe-7_n)f1(c#wP8zH-Z!;%!PxeipevB`1oWk1X&V^^oj})q zO3^LJCp*(Uy_E?EHtTY5mM&|faGSb#aI>{PJNbm?+S3+bCp~8;o%CE34BBkL(qL&x zangy;xu-tyIdPYx8Vm~=Ub)vYT-7{X7n)vCHE6l%ru{2pD^`T-T3SOt!7q@KlWzbjTIVt%qX{@#YBg37QqYB5x{onQ&v{OwUia89QqT~8~k3q34Z24XMFM<9X!j} zp!2fCqv`3ajYfds7d`v(^TU28?y1z`wYcELz?QDOGTr!K1~o(cL^t{TZMEXp2P)kEdZxztUXSkBM}=`>Ga4;M}H zXPdZ8{lesyWlUjqnr8}zJsCqdVTq;%=?xzEW+yDEX$Lr!;8#ZIiB=IIs|r7%SD$yq zI@9jK_O{;qb$hN*o6Z^Rh?1?7uA$iE?Bx6;zITY9o!TV$6Erq30&;0V_a6s$R)s}z zq^GaalPnh!7Rte$oYm4ReBw!A!kncf4YIhUK{)y_DT^#!#S$76!_!h0nQ+al1(}8U zw!uS>O2pv9o5f@@x&}|>lO7K=qP_OQTQ0^=#J+ROE<<-c{^#a{v47xj?7QT|)^CnX zM}+elQ4n-WE$9?Cjm8`Eb2z$wf;cBuDCtq4FgvE}ZImHYy(<++xjUl#jPAd6YaTc4#? z5_CuZq5TK0F&w9319-B5-B()`Ezg0L3Au|fCOEdpwV57@B41UhrvV9rbd#`==Y%Xf zdd^vh3z6#YesIIz_YM#5{re3ceh;_Ap2JPC7jVlUZjF5hH^#mN?<-;X9It@|8;Gtd z#A;O$R;pEOm$3#bwV1B@E$A@4TM5x5l=#iz@z_LhFyQy`MnBE@GwTi6Fa+yWYLAdU zCGT!Zz8%6WhP^&6u;bk)|5D{2g|GVg_Rb3{%POZ!tLwf5Utf=!woX`^L&lN*k?Q94 zHDx6;{y=>w2p=gwo0dK#UF3CSLu;c>n;4+UV_{3RN~x!3)qw8n%g54%2l+_4*LDtx z83oB8no4lIw8%rPho4$Lnr1{-F@V1jvzmVES*m!~%dtrzE4 zZm8<7+)(-1)iWDr24<&cVjpJp3bN+|I)_2_taQF+HD!TYAuJfvY2<=<^qARfHnN$l z#h~Zw2-{(wOU!(}fk_zt!gS4kW6(3_2^ja+Z0Oxgo;?(MHTL1V812cAy^c%s&s+Kh zR^ys0b9e6+Wr^N(T1ao*)?lPDV|oI97S^aimNfKid#n`hsHS%U$d_HyV3*0rh8>*) zW;6T17)Aw5W@yN$r{-bR#KgqnSGSMD*WxofCh&EABY(yJ6KntLNZ-hxVpaIHKT)5r zcj-gLaq=cwiH7lu!n%xc1tzK%oJUHqj-yAM=oHfZaquW-*`uf>5elNI)6t`lCl{lrfECm(*ypa;%+3Z zGIgA;c=jyH&UQ&v(frvoHPOzuouVd`lOxsxwlPyR(auj?13Q{is7Ac2iS00U_Vn}& z_Y4j8M_Zd3%1eWOx`)x=(R+=2fJQ*&rTf;TCGbEnuxtym z#p)B1)$}1n?|`Rnre((n=PcZ|sm*lZWYfNc z+IgREZ4X~=C@VV|Zf9lWajNf($MIz8>|MM zp}Vb58eyY<+_s@%GaJw8u1$1TEBZjlH!F~waQsv>T7vsWwP*~;U-}}NBSkwMGaCXD~ zJ?F2xWo6GsT;4Zw(@ikY@j%`B6=&@lIk&A@(02xC*Gg!Y2dSQLWz$?&iU4g9w9 zAO=EIEaG9Ok<)Zl{4JYqcAa{CpR?M0>t{b>s__5U>rGvn*nM~+t0Vk6sUsIU%SU== za@9W1+wZw;3zZcke*ee_d!J;-JoGGPGkC`q%qaysroxc(hYaHW~+L-R#wfqR|=Z>%~-LZ znFsJ!V#D~cKMAp6s-(9wU$8aWY{p27!TuvP6Ch|Fp&8(WlbR>UJaf>*)`?;St>Z+? z9v3CHUc7d7;fVah(qAHQhWwZ{l81 z!%vtD(F9-+-!Yn=07_e_P!4J|bQMICr2&sep;kzDb!o+w5Sp+~fB)ak=VPX4cH#$j z?V6pMioJf$IiNS{(Wjv=kF)nxM=Pk83F-nZDCxF&ZcNGcchjlKAX{mP*G@C%Xup+G z-~R~Tk55g#1SDWI(m_8Okdfx4t0)bqw0eLD(gK+kgw%Vy>X)$(B5O(xezEF}j~iB( z{1=|uJ$0pb9)2F;=UF{&s0XwM)Wb13P@0utzrUWnZ-4A^;(2xMwYksTlY*-d_@Y#r z{j_p{i*ow(X zl&-9T?M)EgMa#nbZib>JT6Frn^Jb3C#x9){@8lB7Qkl%7S$+x1S&0ZpC!OI6yTQ%s zf$Z$;yzD$-u~EEuDlVIts!A%H@IUr8{v+NydB+`-x1anSyo#VYbT)D0*HHngfi?zh zxrDY+m<($p=I^l0uW3k7lxBId?Gd;lf)HGPk`rK$4 z{5Iw1xm^E91u$Oy0Oal*@JYjL4XLyc1TH6=uviYwd7Pjrk1$JIL_%1KL&HA5&r986 zx}=oQ6;(=;y>iRMX1bb#!Ux8E=xLHFYYD< zu@p12T4)F@h%KQl)sf+AMn_i-hepb(N3K~t)HzazudG|qy3p)%zrJ}zQ|yD9@cF@= z?E_Z~mu?Pj4sL51ynN8N=*1s68_#N~T%bTm9ZQ^YO z3IuJEGnnMuG2sk1ReeO7xw^&0Um6(s{or6H-)^SLjb&cO&GgetbNxN&Q3;&M13I;>m z`-132A26F2jzbsE{jCq-?|5zIp>?C>@QW{7H%ea3+N7B{`TNN^_+3&-ER%EpPjS~D z-SlMGdOuo!MzQ5(UJqnYX|60t{vlT z*ZzZ_|38Rv;!`o&Mw3LV^u_yl&?&Gww|%tj-ks0P{0mK9tK%+gNzU_8vCcxw(&m@6 zJS8eliThVmDVv&f7h<=Z!pJHA#J-f$xq76Zm259Qqsb?(yPqx!ijtDl2QT#E@+Y=!+cY#jJ~XwDdweG8 z^9O&4yWfd`rRuybsonVGP!NeHSu_{vr(5XsM0xJo3&yl2eVYh zOQmmGk8xhCEMR3`=6)=ZsHu^kK%zU*wSHYqa}5~OH+UMBTX-6tw9o#uGM?o>C9Vm7 zhY!iq^7DGx=f|0|j0d-W@1h4N7U@hN?x_HsQw2IlO>{6vb%KhcqTT^}h3Cz*>hk#I z%j5gcojb?blTPk^?tOSakbEHdfQXxnunONxN1(P9>YMZobH(E!z>!hG779gcZP9oE zm>ELIcYpgUSG#(zzS90`i_>K*b~?(+9Ne!S`W5{9a&u2S-gCUKkNJY7w)4m7C6K5M zd~>+_TKU1`Qrg{DUH_OpQ!s>eJr7& z^`jkwv5BVgmKMqfTcxM#^qw70+%|Z2Z{O|Cxs@+`kxO_hSC%z;B7v_>|L{xq zy*|D3nO&pv%@r$0CI;INtq*ydJ}$6&Tq{RA2k-73dFqbOKQX-0-!aUsj15;+*TjY* ztLj<4-H+(2^rx^kmjmYAm#|=L<*F)Iq0OLCQ8$H^idXLXq&(P9s(CRWhy{3i!E(73L8S#{R$_mSU8o^es1_YH6S0;IX+mK0u)ke~y%P8&_V}Jquv*D((xsI8} zj=oa=^hp1BbH{^asy#w`!(g&EQdCk~Ug~{h-Rj=v=c>ZG;<}+#o9ow3hQnQj-F_pFLY;j+v$S5aOI&qUtW3T z;pf-egW=6Pnm5;#hld+I%P(N&T1pg-T8UtDNq9>)gBLvHbWY@!*nF1WxV!}vZtGCR8?veD(Xu6D)Ntckf+TiwO|5%oBf{U+3y-1+2q zUH=2aLnr$CPYew|&_8nL&K-B!i+WAg*2d;mtEsop0rq|dFRDoc+0D2yR*h#uc*~iZ zSF8AWykMLP9I!(mTAiSs0?kC!DxG@Dz~Ls%h=EhAxM&o)5p9UBu8&8`%T|^GMQI$# zl{i8c<@7f#QbaL%_fXtrUdYStD~M8#v12D=O*&JK*jn!D6!LR@Ge7FySW^{ryS;5~ z^bL_6B5SViO6SVQrHAgzF`VQ6roFMUHK*O?a2D=j>roEp=65l?Zh`ek5BeDQ4=~ss z=2HOuD@n-j6bNa_RbZQ!+o1mM{PygI}Z)?jU|5Q;A-aY317K3-yELBaL5XvIYT zy4B6iYl@2<=781T(rk@ZGb!zqaUv3+JW@_Kx?$kVM)mBxLXRRogPLzGJAWT1M@6=p+>e*i=$df)}Tj1WE#apVe#iIPG|# zoDY~>xgt6pcB?UW7+UL5>DCA)D?GYv4sF`h*FQAWpZxONc=G7sar(<*w-bXSPjlgg z#3vWI-(0WbK1}A)pKQSVCzuB%Ie|W#XzPGuRvQK*3uHbEDsUNZDkro$XAyQlj?&6Fzj!?}H;g{rV(615tRb&V6?qYtG z9E(mrAZ3MH=rQ!KyXO1mcQs>wN68XxNV(;JWzbqi8&O#EqP8K{MuJ|K+xQ3CN!;`* z%$^8qqeQwuK3fhxx6*D^r=9XW=}bmbgho&cDsc}8YAV6jpdQXdS`*f;jk1qk;aR3fLQ4}q>xmw5%>st>Wm

0hB__WYeTNv%N!z-Pio3F6c9G=8x(c(;Zm}CIHd+s#z0QCIKhj6r zR^;d8xNI$LdHID-8{_etbeahC!t!G>@c1D4CKspE0|OvePM8yTo>oW(Sbe>ie*m}R z<@DCr;0)%&2Qyss8l_yHgUvc}_u}ujocEQc36~sC#LgF_1r~tZ?dvS2oScBeVOm*U z(_pn3O|;Tsapvn+Xbbf<<}$aIZ@OE=^xT7-+!r4rJ zy}r%9X_K7^CzmRtJ*j7T8_|(4YySqmu%=WHFFgWrjo=a0otidHKx9m z`u1{kD4sT7o}24E$nB5Y(DuqjQ=UX zZ27XJ=P{j|t5NgWm1aI!Q6_Un6BGqUxxng!_1*3H8@w)iu`yipPit01J9H)HCZ{W} zsQ~3aj2(SlV+MJ$n7H!F^i zFvI|>+sdCidv=V~y}+*^Mf{^A7td(*x+P^am*fPHYYaOmyCiRoTAD2JfIkj@wl?uA zVsVGZZudB1afTmwl6srJ!tg`Ytzw7e;s&0qiG-V)!jU!gP7C4&i-;S5E-QZqdJf(U zGx!*0knlowxFAD>w2%Czbqpo6tdqb3%qzZ(2>g+o$B)SvfiDv=0?6vS{5Jt3bYdd=z*ZDCzrPOtj5hI)#$$H39sb2* zsFPr<&+;!5Em~6=^-@?sOSIzTM;su+fch$zh94cN?yV_tc$iH$NUO=u0TbQg+PM&M z_H(-%phXkC-W+a~)gV+Draj~rw~kqqm^k4V*)hvCI?Y9I1*4)7t&$)r)PDzTkyn;w zw_(QSnRL62glPpi!{Z|>V|8&=!M$;qWFV6xQa(tI_F0S;1+tjMsazoXNSwiG9D!*~ zU&Gm35A(T^wS9(G;Pxi8UB%iCsJJEI0+X3s=t3Z$;7OybConJA z46Wn_Z(?(rLFc}r*qj{Mm%K_YroO*?UZaQDzQN?xH{KBI1FtXAYqwgTR!a55z>hPa zQ*&8d@=bWX1fTgcGM}47KJ(BDYqNB@JYIsoR}?+mkV-A^mp;OUQCw1~)cdrP>js;Z zr;jP${RYZ4vT|P)zk}|gsRl0p{}F3im%y6;z8tKXLDLz9&J-QxF#ju0ACkW#19UU_ zH{5HX4=d%A`AAPIDB^w{=Ogg#ymN%poHz zM4tu9_o-AWqbfg$hhZXY(PY4eneNHitD}~vd2J}T)*J=sKp#7qjK!^<;$n{#zynQw z7y2!d`fW_C&c(by*e|-Vp?1QYC0u&PYN=ybj-YFUE@L^$?EbqC%ueoD-2KV@8U0^i z{a3)693(RdBd*FN&K#I1J_i-=t;5CHgYyp)>?%HWawZMD2b5Q#{E0;{S;!J)K>mt~ zih@Of3Rt>P{-mW_&V9A8bZ3$=+sa~%Z9Y?^qO!gajQnkjh%%c@IzbS0IaMZ~(`?ph za`kg*RFX70i%5txC)W6VE~iQ(r5%&Nk{U0k=ckB95Hus`M!8MP2^yi#ZnuZ*!Jx^H z+b%3{F3XmS2%@YR15aLD9X6LZR=C*?O#0_9WD@XUgCR#SSWFet-?Qn1r)&@H9wsAt z(s5qTlHheezY3kFkmtuS4jtzFJSH_gCgx9bz~aV!!c3A(cJappTmIfCAKjwDSBpSf zyS9H{@~^f7V&2{g67u^~rv`}JZ&d1c4EyEeer;+F#gGGKLoi%~PRQMQrBI}KG3N?B zf`emvpN_GT8(1hJi>y**$gVV)yhHoClD}03b8;_^MjXplCZ}$4Um{OLk1Ed1EeNR{ zpCkw=0`6ldg(}LtdBhBEIBYzT6W#Y@%CgAp0mgWmya=>f`5239KY6~G(+F}#TelYe!)skh-58c3$aEHCG0ojemP&*GziW6wGmlX_$Fi6Wt5)$Nb2{q z*S*mF$(fA)k?ta3IqIakL~S0>ih8Li7qiDP+A-1P)F&tx6;g$-Or2r>+)RrW6=-u! zX0V4=R#(*(+DyhwHOlWdo6K5XqY`w6N>ho$Y|&|R^oP?%Oq4OJJ|jIUi_?wusL|t4 z`3pX&NBMtN^r+52O%~(X^ubfMe{c_b-g>qRAZ8QIq9$*qB;is1PLf@0Gb**YIuRF@ zJ{43rj1UTTo4ZfM#j{i@^~zr)ehs zGO8rAF}y}^Fj|aXN1FZ@*RiAw00031000620N)|7W?v6H^#B6{=l}o!0MrPbs{jB1 z0Mr~4cK)UQ?*%6WLI42(2LJ*9000000C=2ZU}Rume*2$|fq~Wc-_rkStm+Iv5oEx0 z6#$J722}t60C=3u*4uAPK^zD0@67C?wJt3}R8%Rgc4;XZR6+^X`ht*uK0+!30h7n0t?$Jc>1Jj0gzHE__28N&BVeN= zvf}h3dPYt3-h;XB+C9b@u1zcR!Hkc^Ivq3QA>=m zy0*@#PYHP@*Z&{zWpgjhy&m?~BpaFk&K?wY*%h{ram-qtn^c}+Ubnfe+kG_{l1v`a z?Q)xb&?PmP@QXdXuUh2)Eov=_4OxeB(T@C7Z2P6Z_V;aP%;(h!F)G@|7u7~HrJYTV&d-SvEE>0HvdA}bps;lHt?$J*8#a^V_ z*a^89v;Jsp3V-UCtz&8n(v!*2`lGqlC4KoFO~z+0H*@V<$$Wp)xjzvM5*v^yUm#m9 zL!rvUM7xId@X09mIEqcOl66t!IWwq$CQ%NJ5xe-mV;3Scg0g4;<+^+%4WuFesvR!s z)#@xFPL{Yv)AciSpj2icY@*HI+E`@BY6MN4xQQtB6IU?-@5$7$ulS6BC_-55Lm>sk zO4L$7til=^rrz;g<}=?lsximrXE5ixR<661>(61#VZ6XGo%mYpdaC(Sw3<4+_aa<} z{cz8VDMA@8A4%h=KMki+_pD5LEKQ?aQ}#8W!qpp@?mBb*im`=u&=hB8Lf*NEJqPi! zaA%_4oFjXdOg+yPqq66UYgOkF^oJ1S{f(Cgk)cj9Z?M19qvceLQl%)dPI5oDAV&=4 zJ{v1AkbRb#sP>`6SH&|NMWJ~v_W2-o2hd{}8yII(AF5-y$vMk1cQAH|ZZRLm*y!pD zsFsS{IHuf_`E~EQX>a=!B+PT#&6AceM`I^*9C!5vBFOU^#1awIU#XdSkPc8iZFCaq z^iz7ryu^!IGY`AIQ{6Zpy*~Pt>1XDOoukHBll{AtT>b_X^mc{-0C=2L!d*yO3jhG% zV?QT79gj|($Gij*~W@mL$=hUg0I_H|1*V~+#nKma8F(P7&agi7iAu(c%h!G=X zgba}gxrD^%j^RVZh%rKj#E2duM#PZ&a$hdr2LM3oKPx~EC<0|*4>$ylfpbz5iB1xc z)TAzwmEU?}H?K5rG@pS0 zNCsJ;2*klCmd!pbn9QO zA6hqCzrt)-3}Y|>yWjwvf~Vp4@E&|f1*r_GkgBBOR5R5>%~0P`*Qo{SInspC5dk7c zx)3YkMM6j%nMCH06(olgkunXZnQ0zckQSp&&}M0Kv?W@OwoMPxOY~j(KK=Mo!zIq8 z3WLnBF|v#UMvZaGs52oZn<-{u%$Ljs<{C54{KVR3ePJE2YOK@C4VM=$|6qe`oNZ?3 z*hO}kU18Tz2xX&U6hjHrhWgMU^ewuM7SL_<3wnUo&{MR|VR15?EN6vN;C$tRTn1Oj zRdR7|g!_v7n){Bs!QJA1;_h(|xyRgdo|uR62%e4Sn(kW?1x-88}OVWz8Dm{?_GKNed!)0Ds;yQSp zbA9&uraUMgm(R)<U#9p^B(dszp^!RZ>+|Cu%?qtHo+e9Z+wocQka3Sc7Ry8kc5BlhAzDR5d3U zfcdZ}Hic!dWo!f6#`drpcHR!POWKX?&h}7ys{K^kq@`=cTAkLW4QLbE8SRpGqeIxS z*zvBT&{665d86sZ)=lE(JDpfJrOW7+b!)n!uB_YFRXc5+fzFA}mz{6%EWU>4@iJb) zYqw&z%3b=dkKNw65og;;-Uxc5%y?%%su@* zDSd;UrI+bV`mlapzoO6U%ldr-V89F}gU=8(Oc`DnvW7K7(XeYcGlE8rQE9}D{lde{q6GYA11a*Z;F{#O}lsCJJ0Uq%pCKSdD+6UOjxEZFD!GGMa!~f)v|8M zTQ)7*mfu#fHDdi}t=-k#eRcPP4Y9>+Q?@s@oLyqq*{$||d(=K@e`(L!-`PLf%l19{ z5Br&;$-#0+9Js^g@H=9TMMu$5as2L8_j-FLd*Af#Ipt2HbIy6{toQNy{C!h>OMM^u ze!29nA=iv+#kJ$Ay6SG88+ZHML3hNRa!ibFQ@v-sm-8~b z%lEIy5mEz4geDZa2HJM8ml7AI z45})1*KMV$Z_(GN`Z!%yUA6y=C)_G3wXy7c^Pm5mIdg0xn)hCkN9At=cgY@AuqxRH zzj8cAPwBPe3RUTi<8hiH;dlai?s$@>>8;}`_=DpqnxjvSr@>zw&(KHu>Ub8t9breW zQpM`MCmnk<>3w(XgMT<4qXqAm;|e|TpF19>d4JXM1oWQcNqXiB$5rq<$5YhwKRccV ze{($JG5@FIS$a{K+meIpJn6@pHS3KPb{Gq`J4_R{pUZO*YStR+Smuf?gfi1S)EkOt zN?u*}MHYneV$qm4Wg0budcD4Wv~#kzZlqAUBL(L$zB7ULna;)`W ztyU|FBDlZVqk+RXQLK#ySx=tng6D!kNRv=xN|@TDRSKJVIL}X+YQb zxDx79Oqv)qsZI@A0UbgS_}`@=rEoCXhf~ry)X;ich-kPZbcOW-bV(UBZXFv?Io1m5 z753>PGo!$|E@<(l@+Q_PMc6yQ?&eyjBif-8+5?ST%QwE;jz-EcDw`e>yFa^A>Cf!a zn>l9-3P(5UQQgc%V@_*S!&TTT`0L63J;Tg8u`_JD2{P(|&Oin7a{DGqhdE7XvlX5Z zlp#2>-81_>gw5Wj4*t97L)a7DR_@%Zumt7d{2J)Y-0V(g_xBxj!|4)tf+(j`JWZs) z+Vo+fX5SVaSk{;bdoUe^n&$f(KvQ-~rdD9TsXpReR_j0C=2jR|R+! z=N3KZlFX89(o&=DZghRK^;HO@&;lui3SBlsvas2uD+H*!ySux)ySux)%X_b`Z+7Nx zGKB8;?RS2;|MmaO3!w|Rj$U>xdt|Z$u+qa*XBBS zg6ncUuFnm)AveNP+?bo-X>Q8RxH-pg3;O8C#@GbEGQc213^RgF8D$4!+!CAN8E%DV zxiy~SHu#;};(2bz?HOl+No>v(#xRX7nBiECV<*RR0=u{aK7x-E;pZgo$elQuQ#h5~ z+?mrb+serc+yyUkI%jZK?#A7@2YNY^doqicIg2^=(By3PvX6Pr;anEj&mvA_3Dt>TZ~+%0!bRL0pKu@i!F{I<=2mj<> z{G0z+%}gx7WGocH-ZDa(q*)B{$VluXEz&ApERr^9m!)KB870feva*~kFDuAsSy5KP zg|agCl~rU_Sq(R03ckZsbj#|phO8-T$=b4xtc#sxJy{>0$_DsTHk6HIW7$MD#gUjM zo5|)fMz#>2_$7c{u%85RfP`?Mgt5OwBq|*elPzT{*;=-dZDl*zUgDCFq@*w%GbAk; z87t$kD|W*-(uuodyiAZT*+C}CBwY8MXZFCu?kkjYBEE1mEB}_*+XW^o|2VWl9L`WWw!K6pX6nZ%$0)lOHoQPPxg|s zRHQ03nJ)vfKo-g(*<1FJePut{Uk;E1aSwjPPxu+_*bWclaIB7{aW$H7F$^q&b#M`y z(TX*&ED~}M_Q0Ol7Td#%Hr$Mx6xDB`C5jk9rkR#Xu@t_?54Zzs z;drc#HE}9V!O6HBSzIFL;Ut_R=gS2+3uod|xe#YyBp$<^auL==3y#2HI2uRc7#xh5 z_yPyX#dt_AkxLPm%j9yoLavmn_xA7s~!y7mb?;wfy@fJS7yLeOHk$2@id0#$|59K5ISU!!e1X45{~_*7Ra- zSVvV=q7it+lhyzo6ROf5@}!-BRX%BqwLS8V9SX8-Y_8PbpLO)NjvZzy;A2x#l&VNYH0q@GfEFy+sI~S>l6>uT<9ZrPSwiLz_yaG^c4_`=q{_)xYIh ze<53|s*SW~lDi4QdOGZLLP*EGlPZO5rO(ywA=Mm8tA9yjvXh<3PIe{_FGRqvu7@=g zf5S}LnBvkL(F{Z)-YKraPFW(`5!Dw_JrPZ1OfOSMrfI6xfX39JtK^U9#rA8WA{s^{ zZFIYO(XT$F8yIQs9?EiB4Q14UbR+AkES+xeUNXzp)#`R@cR;Iq^;#%0bJtp1fH$EBT5st+$+=Z+fQ>zf&Dr=uF6%Zj0ztyD6xt%5)erZ1t@( zhTYm&U{t5QGjsfyLMd06*p)J}ZsyG>Aw(7Zib2J&w!JzM4=bh=^;|rrn9v^dYaccC zRc}0~`$11uvzJvS&JHng)^sy*%$svDac(d|qi3)aEGc!!mr;i!hUrkR>5}rRR6@f} zs(VRwFR5WC!|Go;;teo(cmSAPo9LlJFDWmLUy6j}9yd*2D>tPMW z-!PLgDsEQR3`C;dimSqvC0SYZMO05D)>N&taMjJida3=In3!IHh`Jxi7&SK=tL=0H zqs=uJ8*8mHYB=4VUJ-TJ5uL zx;<=}U8FWWZkLET1upf>75$A&Yi z+py*8Hf%Y^hCOs_*n+l=`pAhV>b&Uq9ICc3ps0C?YF?t6m#F3?s(FcOUZSzl^UQL- z)KjmZ)f+u_agy<=t+VsJHEV9&R!7pWn*3_nc|2O*A*#_ASM1Pzt(?Qu7A71_gxhna zLaEqqWvH4hFKp^56?>b~wQ@=KwZidKQz2i@>Y^%dv_(8(%rh(2d0p1-NT^QATu4AjI-|#wwRTw_57%sJ-QMx`t!v)KUK_J zso3MRs|FqPMO*A!V{y!^7W*31N4l42w+W@bGA3K7>S{nSsTfg=x7gR&bw1SIS1QfT z&MM7!uR6RLbV$)c)#p#NSvPZ*Sttz*2?s)oYQ%YUu~6N2K4g5spehT7y((XKxJ^SH zlgn02okZ=)QiDM|)4|Byq6zmT;GQJilZbl~ck~Tr!o3%=C(ACD6Zd|`HSzo16UVs2 zXbJsVX}s$+UK^4+Pv~8W0hfGz9317+Z<}^4_=YdUhA#x&3xVM}0>gC#hU*9n>i9nxo~*x}1sfUIowm3e%QG`*ftcH^IMg_VIG8ygJQp?tHW@ZB zkIQKf-vQ18EC(2v890G_UZ*__4qyo8Gc&ksRAKB0jM(7N5wVdu#bu)!h_{QQfq{|5 wp(8mY0;D7o2)5gBXmE&dF!N~bVEo^@fu(mN6NAfU))Y1d7Z(5<11b^#0L{))7XSbN literal 0 HcmV?d00001 diff --git a/app/assets/fonts/Muli-Regular.woff b/app/assets/fonts/Muli-Regular.woff new file mode 100644 index 0000000000000000000000000000000000000000..f61ecf83245ef62d6c4a40beac2dee339734684f GIT binary patch literal 43636 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

enzuRujZ0+8*3jaG)2Rf?yii#&^q^@q7>Z~}GE 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 a-@1XNcOw&n%VyRTHU<|L02>1;5&!@W6soBJ literal 0 HcmV?d00001 diff --git a/app/assets/stylesheets/fonts.scss b/app/assets/stylesheets/fonts.scss new file mode 100644 index 000000000..edc222672 --- /dev/null +++ b/app/assets/stylesheets/fonts.scss @@ -0,0 +1,13 @@ +@font-face { + font-family: "Muli"; + src: asset-url("Muli-Regular.woff") format("woff"); + font-weight: normal; + font-style: normal; +} + +@font-face { + font-family: "Muli"; + src: asset-url("Muli-Bold.woff") format("woff"); + font-weight: bold; + font-style: normal; +} diff --git a/config/application.rb b/config/application.rb index b3c5dc10c..1c82112d2 100644 --- a/config/application.rb +++ b/config/application.rb @@ -23,6 +23,8 @@ module TPS config.autoload_paths += %W(#{config.root}/lib #{config.root}/app/validators #{config.root}/app/facades) config.assets.paths << Rails.root.join('app', 'assets', 'javascript') + config.assets.paths << Rails.root.join('app', 'assets', 'fonts') + config.assets.precompile += %w(.woff) if Rails.env.production? URL = "https://tps.apientreprise.fr/" From 3696d3613a1dd922c20ae1fb9a94b57c33c92d9f Mon Sep 17 00:00:00 2001 From: gregoirenovel Date: Tue, 4 Apr 2017 14:38:19 +0200 Subject: [PATCH 33/45] Add the typography stylesheet --- app/assets/stylesheets/_typography.scss | 6 ++++++ 1 file changed, 6 insertions(+) create mode 100644 app/assets/stylesheets/_typography.scss diff --git a/app/assets/stylesheets/_typography.scss b/app/assets/stylesheets/_typography.scss new file mode 100644 index 000000000..351aac902 --- /dev/null +++ b/app/assets/stylesheets/_typography.scss @@ -0,0 +1,6 @@ +@import "colors"; + +%new-type { + font-family: "Muli"; + color: $black; +} From 8dcf0af56d12997dbaf0d927630b2369f721102e Mon Sep 17 00:00:00 2001 From: gregoirenovel Date: Tue, 4 Apr 2017 14:38:42 +0200 Subject: [PATCH 34/45] Add the mixins stylesheet --- app/assets/stylesheets/_mixins.scss | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 app/assets/stylesheets/_mixins.scss diff --git a/app/assets/stylesheets/_mixins.scss b/app/assets/stylesheets/_mixins.scss new file mode 100644 index 000000000..6e40c4a78 --- /dev/null +++ b/app/assets/stylesheets/_mixins.scss @@ -0,0 +1,9 @@ +@mixin horizontal-padding($value) { + padding-left: $value; + padding-right: $value; +} + +@mixin vertical-padding($value) { + padding-top: $value; + padding-bottom: $value; +} From 5c1aad2e4fec360e36cc3428b778cadc4d123b4d Mon Sep 17 00:00:00 2001 From: gregoirenovel Date: Tue, 4 Apr 2017 14:38:50 +0200 Subject: [PATCH 35/45] Add the placeholders stylesheet --- app/assets/stylesheets/_placeholders.scss | 14 ++++++++++++++ 1 file changed, 14 insertions(+) create mode 100644 app/assets/stylesheets/_placeholders.scss diff --git a/app/assets/stylesheets/_placeholders.scss b/app/assets/stylesheets/_placeholders.scss new file mode 100644 index 000000000..71870ccec --- /dev/null +++ b/app/assets/stylesheets/_placeholders.scss @@ -0,0 +1,14 @@ +%horizontal-list { + list-style-type: none; + margin: 0; + padding: 0; + font-size: 0px; +} + +%horizontal-list-item { + display: inline-block; + + &:last-of-type { + margin-right: 0; + } +} From e605be924622a599237526450f01b582408dd602 Mon Sep 17 00:00:00 2001 From: gregoirenovel Date: Tue, 4 Apr 2017 14:36:06 +0200 Subject: [PATCH 36/45] Add the new_application layout --- app/views/layouts/new_application.html.haml | 35 +++++++++++++++++++++ 1 file changed, 35 insertions(+) create mode 100644 app/views/layouts/new_application.html.haml diff --git a/app/views/layouts/new_application.html.haml b/app/views/layouts/new_application.html.haml new file mode 100644 index 000000000..4241c648d --- /dev/null +++ b/app/views/layouts/new_application.html.haml @@ -0,0 +1,35 @@ +%html + %head + %meta{ "http-equiv" => "Content-Type", :content => "text/html; charset=UTF-8" } + %meta{ "http-equiv" => "X-UA-Compatible", :content => "IE=edge"} + %meta{ :name => "turbolinks-cache-control", :content => "no-cache" } + = csrf_meta_tags + = action_cable_meta_tag + + %title + = t("dynamics.page_title") + + = stylesheet_link_tag "application", :media => "all", "data-turbolinks-track" => true + = stylesheet_link_tag "print", :media => "print", "data-turbolinks-track" => true + + %body + = render :partial => "layouts/support_navigator_banner" + = render :partial => "layouts/ie_lt_10" + #beta{class:(Rails.env == "production" ? "" : "beta_staging")} + - if Rails.env == "production" + Beta + - else + Env Test + + = render partial: "layouts/flash_messages" + = yield + + = render :partial => "layouts/switch_devise_profile_module" + = render :partial => "layouts/notifications_alert" + + = render partial: "layouts/google_analytics" + + = javascript_include_tag "application", "data-turbolinks-track" => true + - if Rails.env == "test" + %script{ :type => "text/javascript"} + (typeof jQuery !== "undefined") && (jQuery.fx.off = true); From 336e6120a689c0b864a868dc70f95e4c6ffe1aa0 Mon Sep 17 00:00:00 2001 From: gregoirenovel Date: Tue, 4 Apr 2017 14:37:16 +0200 Subject: [PATCH 37/45] Add the new header --- app/assets/images/header/logo-tps.svg | 1 + app/assets/stylesheets/_constants.scss | 2 + app/assets/stylesheets/header.scss | 53 +++++++++++++++++++++ app/views/layouts/_new_header.haml | 7 +++ app/views/layouts/new_application.html.haml | 1 + 5 files changed, 64 insertions(+) create mode 100644 app/assets/images/header/logo-tps.svg create mode 100644 app/assets/stylesheets/header.scss create mode 100644 app/views/layouts/_new_header.haml diff --git a/app/assets/images/header/logo-tps.svg b/app/assets/images/header/logo-tps.svg new file mode 100644 index 000000000..fe6557db5 --- /dev/null +++ b/app/assets/images/header/logo-tps.svg @@ -0,0 +1 @@ +C03A1FFC-B3DD-48D2-8111-A47EEA63E68F \ No newline at end of file diff --git a/app/assets/stylesheets/_constants.scss b/app/assets/stylesheets/_constants.scss index 119b9eaea..1208ef340 100644 --- a/app/assets/stylesheets/_constants.scss +++ b/app/assets/stylesheets/_constants.scss @@ -3,3 +3,5 @@ $light-blue: #F2F6FA; // Bootstrap constants $font-size-base: 16px; + +$page-width: 1040px; diff --git a/app/assets/stylesheets/header.scss b/app/assets/stylesheets/header.scss new file mode 100644 index 000000000..fdc9e81c8 --- /dev/null +++ b/app/assets/stylesheets/header.scss @@ -0,0 +1,53 @@ +@import "constants"; +@import "colors"; +@import "mixins"; +@import "typography"; + +// FIXME: Rename when the header is generalized +.new-header { + @extend %new-type; + height: 72px; + background-color: #FFFFFF; + // FIXME: Delete when the header is generalized + margin-top: -60px; +} + +.header-inner-content { + width: $page-width; + margin: 0 auto; +} + +.header-logo { + margin-top: 17px; +} + +$header-login-button-height: 36px; +$header-login-button-border-size: 1px; + +.header-login-button { + @include horizontal-padding(16px); + + display: inline-block; + height: $header-login-button-height; + line-height: $header-login-button-height - (2 * $header-login-button-border-size); + border-radius: $header-login-button-height; + border: $header-login-button-border-size solid $blue; + color: $blue; + font-size: 14px; + margin-top: 18px; + + &:hover { + color: #FFFFFF; + text-decoration: none; + background-color: $light-blue; + } + + &:focus { + color: $blue; + text-decoration: none; + } + + &:hover:focus { + color: #FFFFFF; + } +} diff --git a/app/views/layouts/_new_header.haml b/app/views/layouts/_new_header.haml new file mode 100644 index 000000000..1f9049ce7 --- /dev/null +++ b/app/views/layouts/_new_header.haml @@ -0,0 +1,7 @@ +.new-header + .header-inner-content + %img{ src: image_url("header/logo-tps.svg"), class: "header-logo pull-left" } + + = link_to "Connexion", new_user_session_path, :class => "header-login-button pull-right" + + .clear-fix diff --git a/app/views/layouts/new_application.html.haml b/app/views/layouts/new_application.html.haml index 4241c648d..0dbeee052 100644 --- a/app/views/layouts/new_application.html.haml +++ b/app/views/layouts/new_application.html.haml @@ -21,6 +21,7 @@ - else Env Test + = render partial: "layouts/new_header" = render partial: "layouts/flash_messages" = yield From f9b446966032e7770439c785f22b7579ff653476 Mon Sep 17 00:00:00 2001 From: gregoirenovel Date: Tue, 4 Apr 2017 14:37:37 +0200 Subject: [PATCH 38/45] Add the new footer --- .../images/footer/logo-beta-gouv-fr.svg | 1 + app/assets/images/footer/logo-rf.svg | 1 + app/assets/stylesheets/new_footer.scss | 69 +++++++++++++++++++ app/views/layouts/_new_footer.html.haml | 35 ++++++++++ app/views/layouts/new_application.html.haml | 1 + 5 files changed, 107 insertions(+) create mode 100644 app/assets/images/footer/logo-beta-gouv-fr.svg create mode 100644 app/assets/images/footer/logo-rf.svg create mode 100644 app/assets/stylesheets/new_footer.scss create mode 100644 app/views/layouts/_new_footer.html.haml diff --git a/app/assets/images/footer/logo-beta-gouv-fr.svg b/app/assets/images/footer/logo-beta-gouv-fr.svg new file mode 100644 index 000000000..b393c3d34 --- /dev/null +++ b/app/assets/images/footer/logo-beta-gouv-fr.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/assets/images/footer/logo-rf.svg b/app/assets/images/footer/logo-rf.svg new file mode 100644 index 000000000..283fe4c57 --- /dev/null +++ b/app/assets/images/footer/logo-rf.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/assets/stylesheets/new_footer.scss b/app/assets/stylesheets/new_footer.scss new file mode 100644 index 000000000..ffdaa9e6b --- /dev/null +++ b/app/assets/stylesheets/new_footer.scss @@ -0,0 +1,69 @@ +@import "constants"; +@import "mixins"; +@import "placeholders"; +@import "typography"; + +.footer { + @extend %new-type; + @include vertical-padding(72px); + background-color: $light-grey; +} + +.footer-inner-content { + width: $page-width; + margin: 0 auto; +} + +.footer-columns { + @extend %horizontal-list; +} + +$footer-column-width: 320px; +$footer-column-count: 3; + +.footer-column { + @extend %horizontal-list-item; + width: $footer-column-width; + margin-right: calc((#{$page-width} - (#{$footer-column-width} * #{$footer-column-count})) / (#{$footer-column-count} - 1)); + font-size: 14px; + vertical-align: top; +} + +.footer-logos, +.footer-links { + list-style-type: none; + padding: 0; + margin: 0; +} + +.footer-link { + margin-bottom: 14px; + + &:last-of-type { + margin-bottom: 0; + } +} + +.footer-logo:hover { + opacity: 0.8; +} + +.footer-logo-rf { + width: 75px; + margin-bottom: 14px; +} + +.footer-logo-beta-gouv-fr { + width: 190px; +} + +.footer-link a { + color: $black; + text-decoration: none; + + &:hover, + &:focus { + color: $blue; + text-decoration: none; + } +} diff --git a/app/views/layouts/_new_footer.html.haml b/app/views/layouts/_new_footer.html.haml new file mode 100644 index 000000000..806541020 --- /dev/null +++ b/app/views/layouts/_new_footer.html.haml @@ -0,0 +1,35 @@ +.footer + .footer-inner-content + %ul.footer-columns + %li.footer-column + %ul.footer-logos + %li + = link_to image_tag("footer/logo-rf.svg", + :class => "footer-logo footer-logo-rf"), + "http://www.gouvernement.fr/" + %li + = link_to image_tag("footer/logo-beta-gouv-fr.svg", + :class => "footer-logo footer-logo-beta-gouv-fr"), + "https://beta.gouv.fr/" + + %li.footer-column + %ul.footer-links + %li.footer-link + = link_to "SGMAP", "http://www.modernisation.gouv.fr/le-sgmap", :class => "footer-link" + %li.footer-link + = link_to "Nouveautés", "https://github.com/sgmap/tps/releases", :class => "footer-link" + %li.footer-link + = link_to "Statistiques", stats_path, :class => "footer-link" + %li.footer-link + = link_to "Accès ancienne plateforme de test", "https://tps-dev.apientreprise.fr/", :class => "footer-link" + + %li.footer-column + %ul.footer-links + %li.footer-link + = link_to "Contact", + "mailto:#{t('dynamics.contact_email')}", + :class => "footer-link" + %li.footer-link + = link_to "Mentions légales", cgu_path, :class => "footer-link" + %li.footer-link + = link_to "CGU", cgu_path, :class => "footer-link" diff --git a/app/views/layouts/new_application.html.haml b/app/views/layouts/new_application.html.haml index 0dbeee052..7cb12b8ca 100644 --- a/app/views/layouts/new_application.html.haml +++ b/app/views/layouts/new_application.html.haml @@ -28,6 +28,7 @@ = render :partial => "layouts/switch_devise_profile_module" = render :partial => "layouts/notifications_alert" + = render partial: "layouts/new_footer" = render partial: "layouts/google_analytics" = javascript_include_tag "application", "data-turbolinks-track" => true From e504531ca0f4421636651a3ff7a24cef0f2a620f Mon Sep 17 00:00:00 2001 From: gregoirenovel Date: Tue, 4 Apr 2017 14:41:13 +0200 Subject: [PATCH 39/45] Use the new_application layout for the landing page --- app/controllers/root_controller.rb | 2 +- app/views/layouts/new_application.html.haml | 10 +++++++--- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/app/controllers/root_controller.rb b/app/controllers/root_controller.rb index 61500da6b..ec123d601 100644 --- a/app/controllers/root_controller.rb +++ b/app/controllers/root_controller.rb @@ -39,6 +39,6 @@ class RootController < ApplicationController @demo_environment_host = "https://tps-dev.apientreprise.fr" unless Rails.env.development? - render 'landing' + render 'landing', :layout => 'new_application' end end diff --git a/app/views/layouts/new_application.html.haml b/app/views/layouts/new_application.html.haml index 7cb12b8ca..9908098f3 100644 --- a/app/views/layouts/new_application.html.haml +++ b/app/views/layouts/new_application.html.haml @@ -1,7 +1,7 @@ %html %head %meta{ "http-equiv" => "Content-Type", :content => "text/html; charset=UTF-8" } - %meta{ "http-equiv" => "X-UA-Compatible", :content => "IE=edge"} + %meta{ "http-equiv" => "X-UA-Compatible", :content => "IE=edge" } %meta{ :name => "turbolinks-cache-control", :content => "no-cache" } = csrf_meta_tags = action_cable_meta_tag @@ -9,13 +9,17 @@ %title = t("dynamics.page_title") + = favicon_link_tag(image_url("favicons/16x16.png"), type: "image/png", sizes: "16x16") + = favicon_link_tag(image_url("favicons/32x32.png"), type: "image/png", sizes: "32x32") + = favicon_link_tag(image_url("favicons/96x96.png"), type: "image/png", sizes: "96x96") + = stylesheet_link_tag "application", :media => "all", "data-turbolinks-track" => true = stylesheet_link_tag "print", :media => "print", "data-turbolinks-track" => true %body = render :partial => "layouts/support_navigator_banner" = render :partial => "layouts/ie_lt_10" - #beta{class:(Rails.env == "production" ? "" : "beta_staging")} + #beta{ class:(Rails.env == "production" ? "" : "beta_staging") } - if Rails.env == "production" Beta - else @@ -33,5 +37,5 @@ = javascript_include_tag "application", "data-turbolinks-track" => true - if Rails.env == "test" - %script{ :type => "text/javascript"} + %script{ :type => "text/javascript" } (typeof jQuery !== "undefined") && (jQuery.fx.off = true); From 663cd1836439ffe0e42476915d0b1c6773cf2631 Mon Sep 17 00:00:00 2001 From: gregoirenovel Date: Mon, 17 Apr 2017 15:03:23 +0200 Subject: [PATCH 40/45] =?UTF-8?q?Change=20the=20landing=20page,=20add=20th?= =?UTF-8?q?e=20=E2=80=9CHero=E2=80=9D=20part?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/assets/images/etapes/complet_2.png | Bin 10529 -> 0 bytes app/assets/images/etapes/create_1.png | Bin 10944 -> 0 bytes app/assets/images/etapes/message_3.png | Bin 11215 -> 0 bytes app/assets/images/etapes/shared_4.png | Bin 8773 -> 0 bytes .../images/landing/hero/dematerialiser.svg | 1 + app/assets/images/landing_background.png | Bin 38938 -> 0 bytes app/assets/stylesheets/landing.scss | 102 +++++++++--------- app/views/root/landing.html.haml | 98 +++-------------- spec/controllers/root_controller_spec.rb | 28 +---- spec/features/admin/connection_spec.rb | 2 +- 10 files changed, 72 insertions(+), 159 deletions(-) delete mode 100644 app/assets/images/etapes/complet_2.png delete mode 100644 app/assets/images/etapes/create_1.png delete mode 100644 app/assets/images/etapes/message_3.png delete mode 100644 app/assets/images/etapes/shared_4.png create mode 100755 app/assets/images/landing/hero/dematerialiser.svg delete mode 100644 app/assets/images/landing_background.png diff --git a/app/assets/images/etapes/complet_2.png b/app/assets/images/etapes/complet_2.png deleted file mode 100644 index 1482924090ac4d5c7a31acaf42ee5aff203f5f00..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 10529 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 diff --git a/app/assets/images/etapes/create_1.png b/app/assets/images/etapes/create_1.png deleted file mode 100644 index cbc61e88e163bb969bf97d5dc05aa7f049771e74..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 10944 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 diff --git a/app/assets/images/etapes/shared_4.png b/app/assets/images/etapes/shared_4.png deleted file mode 100644 index 6fcdee93856d5896c9aa4513b071c81ea2f55d52..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8773 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 diff --git a/app/assets/images/landing/hero/dematerialiser.svg b/app/assets/images/landing/hero/dematerialiser.svg new file mode 100755 index 000000000..8398e066f --- /dev/null +++ b/app/assets/images/landing/hero/dematerialiser.svg @@ -0,0 +1 @@ +0EA652BC-3A4A-4613-BA33-535DF72E7337 \ No newline at end of file diff --git a/app/assets/images/landing_background.png b/app/assets/images/landing_background.png deleted file mode 100644 index 5e4169f673e39810375caff077dd3eb08045a166..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 38938 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 diff --git a/app/assets/stylesheets/landing.scss b/app/assets/stylesheets/landing.scss index de55f5732..63cc9df32 100644 --- a/app/assets/stylesheets/landing.scss +++ b/app/assets/stylesheets/landing.scss @@ -1,58 +1,64 @@ -#logo-tps { - width: 200px; +@import "constants"; +@import "colors"; +@import "mixins"; +@import "placeholders"; +@import "typography"; + +.landing { + @extend %new-type; + background-color: #FFFFFF; } -#landing { - background-image: image-url("landing_background.png"); - background-attachment: fixed; - background-size: 130% auto; - background-position: top center; - background-repeat: no-repeat; - - h5 { - color: #808080; - } - - .logos { - width: 150px; - } - - #title { - padding-bottom: 2%; - padding-top: 1%; - color: #FFFFFF; - text-shadow: 0px 0px 10px rgb(0, 0, 0); - - h2 { - font-size: 35px; - } - - .btn { - text-shadow: none; - } - } +.landing-panel { + @include vertical-padding(60px); } -.background-tps { - background-color: #668AEA; +.landing-panel-inner-content { + width: $page-width; + margin: 0 auto; +} + +.hero-tagline { + width: 500px; + font-size: 30px; + margin-bottom: 0px; +} + +.hero-tagline-em { + color: $blue; + font-size: 36px; + font-style: normal; + font-weight: bold; +} + +.hero-text { + width: 500px; +} + +.hero-illustration { + width: 500px; +} + +.hero-button { + @include horizontal-padding(30px); + + display: inline-block; + height: 60px; + line-height: 60px; + border-radius: 60px; + background-color: $blue; color: #FFFFFF; -} + font-size: 24px; + margin-top: 30px; -#landing-body { - .split-hr-left { - margin-left: auto; - margin-right: auto; - - margin-top: 40px; - margin-bottom: 20px; - - border-color: #808080; - width: 40%; + &:hover { + color: #FFFFFF; + text-decoration: none; + background-color: $light-blue; } - #etapes, - #request-access { - margin-top: 20px; - margin-bottom: 20px; + &:focus { + color: #FFFFFF; + text-decoration: none; } } diff --git a/app/views/root/landing.html.haml b/app/views/root/landing.html.haml index f41400e64..1bce47c14 100644 --- a/app/views/root/landing.html.haml +++ b/app/views/root/landing.html.haml @@ -1,87 +1,17 @@ -#landing.max-size - #title - .center - = image_tag 'logos/logo-tps.png', id: 'logo-tps' - %h1.center - TéléProcédure Simplifiée +.landing + .landing-panel.hero-panel + .landing-panel-inner-content + .hero-text.pull-left + %p.hero-tagline + %em.hero-tagline-em Dématérialisez + %br + vos démarches administratives en quelques minutes - .row - .col-md-8.col-md-push-2.center - %h3 - Dématérialisez n'importe quelle démarche administrative en quelques minutes, - avec un outil - %strong - gratuit, simple, collaboratif et sûr + = link_to "Demander une démo", + "mailto:#{t("dynamics.contact_email")}?subject=Demande de démo TPS", + :class => "hero-button" - %p.mt-1 Vous êtes intéressés ? - %p= link_to 'Programmer une démo', "mailto:#{t('dynamics.contact_email')}?subject=Demande de démo TPS", target: '_blank', class: 'btn btn-danger btn-lg' + .hero-illustration.pull-right + %img{ :src => image_url("landing/hero/dematerialiser.svg") } -#landing-body.max-size - .row#etapes.center - #create_1.col-lg-3.col-md-3.col-sm-3.col-xs-3 - %img{ src: image_url('etapes/create_1.png') } - %br - %h4 Administration - %h3.text-info Je construis ma démarche 100% en ligne - #complet_2.col-lg-3.col-md-3.col-sm-3.col-xs-3 - %img{ src: image_url('etapes/complet_2.png') } - %br - %h4 Usager - %h3.text-success Je remplis un dossier de manière simplifiée - #message_3.col-lg-3.col-md-3.col-sm-3.col-xs-3 - %img{ src: image_url('etapes/message_3.png') } - %br - %h4 Usager - %h3.text-warning Je dialogue avec mon administration en ligne - #shared_4.col-lg-3.col-md-3.col-sm-3.col-xs-3 - %img{ src: image_url('etapes/shared_4.png') } - %br - %h4 Usager et Administrations - %h3.text-danger - J'invite des partenaires à co-construire le dossier - - .split-hr-left - - .row.demo_account.center - .col-md-4.col-lg-4 - %h3.text-primary Acteurs publics - %h4 Créez des démarches en ligne simplifiées et sécurisées. - = link_to 'Démonstration', "#{@demo_environment_host}/administrateurs/sign_in/demo", { class: 'btn btn-lg btn-primary' } - - .col-md-4.col-lg-4 - %h3.text-warning Agents et services - %h4 Accompagnez et co-traitez les projets avec les usagers. - = link_to 'Démonstration', "#{@demo_environment_host}/gestionnaires/sign_in/demo", { class: 'btn btn-lg btn-warning' } - - .col-md-4.col-lg-4 - %h3.text-success Usagers - %h4 Profitez de démarches simplifiées et d’échanges continus avec les services traitants. - = link_to 'Démonstration', "#{@demo_environment_host}/users/sign_in/demo", { class: 'btn btn-lg btn-success' } - - .split-hr-left - - .center - .row - #utilisateurs.col-xs-12.col-sm-12.col-md-12.col-lg-12 - %h4 Ils nous font confiance - - Conseil Regional Ile de France, Politique de la ville du Pas de Calais (ensemble des administrations et collectivités territoriales concernées), DRIEA Ile de France - %br - Préfecture de la Martinique, DRIEE Ile de France, Ministère de l'Environnement, de l'Energie et de la Mer, MEEM, CCI Normandie, DGE, Assemblée permanente des chambres de métiers et de l'artisanat - - %br - .row - #partenaires.col-xs-12.col-sm-12.col-md-12.col-lg-12 - %h4 Ils travaillent avec nous - - Insee, Infogreffe, Ministère de la Ville, de la Jeunesse et des Sports, IGN, DGFIP, CGET, France Connect, Open Streetmap, la BAN, api.gouv.fr, Euroquity - BPI, FNTP, Qualibat - - .split-hr-left - - #request-access.row.center - .col-xs-12.col-sm-12.col-md-12.col-lg-12 - %h3 Envie de commencer à créer votre démarche ? - - = link_to 'Demander un accès administrateur', 'https://tps.apientreprise.fr/users/dossiers/new?procedure_id=31', { class: 'btn btn-lg background-tps', target: '_blank' } - - .split-hr-left + .clearfix diff --git a/spec/controllers/root_controller_spec.rb b/spec/controllers/root_controller_spec.rb index 94e83fe2f..474f03dfd 100644 --- a/spec/controllers/root_controller_spec.rb +++ b/spec/controllers/root_controller_spec.rb @@ -33,7 +33,7 @@ describe RootController, type: :controller do subject end - it { expect(response.body).to have_css('#landing') } + it { expect(response.body).to have_css('.landing') } end end @@ -55,31 +55,7 @@ describe RootController, type: :controller do subject end - it { expect(response.body).to have_css('#landing') } - - end - - context 'environment is not development' do - render_views - - before do - Rails.env.stub(:development? => false) - subject - end - - it { expect(response.body).to have_link('Démonstration', href: "https://tps-dev.apientreprise.fr#{ users_sign_in_demo_path }") } - - end - - context 'environment is development' do - render_views - - before do - Rails.env.stub(:development? => true) - subject - end - - it { expect(response.body).to have_link('Démonstration', href: users_sign_in_demo_path) } + it { expect(response.body).to have_css('.landing') } end diff --git a/spec/features/admin/connection_spec.rb b/spec/features/admin/connection_spec.rb index 9915669c1..3966641c9 100644 --- a/spec/features/admin/connection_spec.rb +++ b/spec/features/admin/connection_spec.rb @@ -36,7 +36,7 @@ feature 'Administrator connection' do page.find_by_id('sign-out').find('a.fa-sign-out').click end scenario 'admin is redireted to home page' do - expect(page).to have_css('#landing') + expect(page).to have_css('.landing') end end context 'when clicking on profile' do From 58a7f399c058dc4358c2c6c630a7d4545d2bb111 Mon Sep 17 00:00:00 2001 From: gregoirenovel Date: Tue, 4 Apr 2017 14:41:49 +0200 Subject: [PATCH 41/45] =?UTF-8?q?Add=20the=20=E2=80=9CFeatures=E2=80=9D=20?= =?UTF-8?q?part=20of=20the=20landing=20page?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../images/landing/features/collaborer.svg | 1 + app/assets/images/landing/features/creer.svg | 1 + app/assets/images/landing/features/gerer.svg | 1 + app/assets/stylesheets/landing.scss | 46 +++++++++++++++++++ app/views/root/landing.html.haml | 30 ++++++++++++ 5 files changed, 79 insertions(+) create mode 100755 app/assets/images/landing/features/collaborer.svg create mode 100755 app/assets/images/landing/features/creer.svg create mode 100755 app/assets/images/landing/features/gerer.svg diff --git a/app/assets/images/landing/features/collaborer.svg b/app/assets/images/landing/features/collaborer.svg new file mode 100755 index 000000000..f5fe6cf85 --- /dev/null +++ b/app/assets/images/landing/features/collaborer.svg @@ -0,0 +1 @@ +08D2E231-4C84-4B79-AC9D-982A43B5F62D \ No newline at end of file diff --git a/app/assets/images/landing/features/creer.svg b/app/assets/images/landing/features/creer.svg new file mode 100755 index 000000000..fc7082a93 --- /dev/null +++ b/app/assets/images/landing/features/creer.svg @@ -0,0 +1 @@ +BB9A4BB9-1A5D-4E79-92B9-D2AF8B16FCF3 \ No newline at end of file diff --git a/app/assets/images/landing/features/gerer.svg b/app/assets/images/landing/features/gerer.svg new file mode 100755 index 000000000..6372bf120 --- /dev/null +++ b/app/assets/images/landing/features/gerer.svg @@ -0,0 +1 @@ +48989501-DD47-4082-8A9E-1AFAB7A24CFE \ No newline at end of file diff --git a/app/assets/stylesheets/landing.scss b/app/assets/stylesheets/landing.scss index 63cc9df32..86ad4c7ff 100644 --- a/app/assets/stylesheets/landing.scss +++ b/app/assets/stylesheets/landing.scss @@ -62,3 +62,49 @@ text-decoration: none; } } + +.landing-panel-title { + font-size: 30px; + font-weight: normal; + text-align: center; + margin-bottom: 40px; + margin-top: 0; +} + +.features-panel { + background-color: $blue; +} + +.features-panel-title { + color: #FFFFFF; +} + +.features { + @extend %horizontal-list; +} + +$feature-width: 320px; +$features-count: 3; + +.feature { + @extend %horizontal-list-item; + width: $feature-width; + margin-right: calc((#{$page-width} - (#{$feature-width} * #{$features-count})) / (#{$features-count} - 1)); +} + +.feature-text { + text-align: center; + color: #FFFFFF; + font-size: 20px; +} + +.feature-text-em { + font-weight: bold; + font-style: normal; +} + +.feature-image { + display: block; + margin: 0 auto; + margin-bottom: 24px; +} diff --git a/app/views/root/landing.html.haml b/app/views/root/landing.html.haml index 1bce47c14..e16c8f5a9 100644 --- a/app/views/root/landing.html.haml +++ b/app/views/root/landing.html.haml @@ -15,3 +15,33 @@ %img{ :src => image_url("landing/hero/dematerialiser.svg") } .clearfix + + .landing-panel.features-panel + .landing-panel-inner-content + %h2.landing-panel-title.features-panel-title Un outil dédié aux organismes publics + + %ul.features + %li.feature + %img.feature-image{ :src => image_url("landing/features/creer.svg") } + %p.feature-text + %em.feature-text-em Créer + %br + des procédures en ligne + %br + en toute simplicité + %li.feature + %img.feature-image{ :src => image_url("landing/features/gerer.svg") } + %p.feature-text + %em.feature-text-em Gérer + %br + les demandes des usagers
 + %br + sur la plateforme + %li.feature + %img.feature-image{ :src => image_url("landing/features/collaborer.svg") } + %p.feature-text + %em.feature-text-em Collaborer + %br + pour instruire les demandes
 + %br + à plusieurs From 4b2baa25b7945c523c6c6cf8cf698338d28441ac Mon Sep 17 00:00:00 2001 From: gregoirenovel Date: Tue, 4 Apr 2017 14:41:37 +0200 Subject: [PATCH 42/45] =?UTF-8?q?Add=20the=20=E2=80=9CTestimonials?= =?UTF-8?q?=E2=80=9D=20part=20of=20the=20landing=20page?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../landing/testimonials/quotation-mark.svg | 1 + app/assets/stylesheets/landing.scss | 35 +++++++++++++++++++ app/views/root/landing.html.haml | 29 +++++++++++++++ 3 files changed, 65 insertions(+) create mode 100644 app/assets/images/landing/testimonials/quotation-mark.svg diff --git a/app/assets/images/landing/testimonials/quotation-mark.svg b/app/assets/images/landing/testimonials/quotation-mark.svg new file mode 100644 index 000000000..7c49b4e05 --- /dev/null +++ b/app/assets/images/landing/testimonials/quotation-mark.svg @@ -0,0 +1 @@ +Slice \ No newline at end of file diff --git a/app/assets/stylesheets/landing.scss b/app/assets/stylesheets/landing.scss index 86ad4c7ff..93300e50e 100644 --- a/app/assets/stylesheets/landing.scss +++ b/app/assets/stylesheets/landing.scss @@ -108,3 +108,38 @@ $features-count: 3; margin: 0 auto; margin-bottom: 24px; } + +.quotes { + @extend %horizontal-list; +} + +$quote-width: 500px; +$quote-count: 2; + +.quote { + @extend %horizontal-list-item; + width: $quote-width; + margin-right: calc((#{$page-width} - (#{$quote-width} * #{$quote-count}))/ (#{$quote-count} - 1)); + background-color: #FFFFFF; + box-shadow: 0 4px 16px 0 rgba(153, 153, 153, 0.2); + padding: 24px; +} + +.quote-quotation-mark { + margin-top: 12px; +} + +.quote-content { + font-size: 18px; + width: 388px; + margin-bottom: 24px; +} + +.quote-author { + font-size: 14px; + margin-left: 64px; +} + +.quote-author-name { + font-weight: bold; +} diff --git a/app/views/root/landing.html.haml b/app/views/root/landing.html.haml index e16c8f5a9..ad1a4fc52 100644 --- a/app/views/root/landing.html.haml +++ b/app/views/root/landing.html.haml @@ -45,3 +45,32 @@ pour instruire les demandes
 %br à plusieurs + + .landing-panel + .landing-panel-inner-content + %h2.landing-panel-title Ce que les utilisateurs pensent du service + + %ul.quotes + %li.quote + %img.quote-quotation-mark.pull-left{ :src => image_url("landing/testimonials/quotation-mark.svg") } + %p.quote-content.pull-right + TPS c’est surtout l’assurance d’un dialogue en toute fluidité et en toute transparence entre les porteurs de projet et l’administration. Un service qui garantit une économie de temps et beaucoup moins de manipulations des dossiers. + .clearfix + + %p.quote-author.pull-left + %span.quote-author-name Nadja Briki + %br + Déléguée de la Préfète du Pas-de-Calais + .clearfix + + %li.quote + %img.quote-quotation-mark.pull-left{ :src => image_url("landing/testimonials/quotation-mark.svg") } + %p.quote-content.pull-right + TPS est un outil de dématérialisation adapté au dépôt de dossiers de demande d’inscription au registre des transporteurs routiers en Ile-de-France. Les échanges avec les usagers sont facilités, ce qui permet de réduire les délais d’instructions et de gagner en efficacité. + .clearfix + + %p.quote-author.pull-left + %span.quote-author-name Elodie Le Rhun + %br + Chef de bureau, DRIEA Ile-de-France + .clearfix From f604ccb7d6166b81a24380ff7d3957996a839879 Mon Sep 17 00:00:00 2001 From: gregoirenovel Date: Tue, 4 Apr 2017 14:44:41 +0200 Subject: [PATCH 43/45] =?UTF-8?q?Add=20the=20=E2=80=9CNumbers=E2=80=9D=20p?= =?UTF-8?q?art=20of=20the=20landing=20page?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/assets/stylesheets/landing.scss | 29 +++++++++++++++++++++++++++++ app/views/root/landing.html.haml | 27 +++++++++++++++++++++++++++ config/environments/production.rb | 2 +- 3 files changed, 57 insertions(+), 1 deletion(-) diff --git a/app/assets/stylesheets/landing.scss b/app/assets/stylesheets/landing.scss index 93300e50e..8d5cbae04 100644 --- a/app/assets/stylesheets/landing.scss +++ b/app/assets/stylesheets/landing.scss @@ -143,3 +143,32 @@ $quote-count: 2; .quote-author-name { font-weight: bold; } + +.numbers-panel { + background-color: $light-grey; +} + +.numbers { + @extend %horizontal-list; +} + +$number-width: 320px; +$number-count: 3; + +.number { + @extend %horizontal-list-item; + width: $number-width; + margin-right: calc((#{$page-width} - (#{$number-width} * #{$number-count}))/ (#{$number-count} - 1)); + text-align: center; +} + +.number-value { + color: $blue; + font-weight: bold; + font-size: 36px; +} + +.number-label { + font-weight: bold; + font-size: 20px; +} diff --git a/app/views/root/landing.html.haml b/app/views/root/landing.html.haml index ad1a4fc52..fcba3b858 100644 --- a/app/views/root/landing.html.haml +++ b/app/views/root/landing.html.haml @@ -74,3 +74,30 @@ %br Chef de bureau, DRIEA Ile-de-France .clearfix + + - cache "numbers-panel", :expires_in => 3.hours do + .landing-panel.numbers-panel + .landing-panel-inner-content + %h2.landing-panel-title TPS en chiffres + %ul.numbers + %li.number + .number-value + = number_with_delimiter(Procedure.where(:published => true).count, :locale => :fr) + .number-label< + procédures + %br<> + dématérialisées + %li.number + .number-value + = number_with_delimiter(Dossier.where.not(:state => :draft).count, :locale => :fr) + .number-label< + dossiers + %br<> + déposés + %li.number + .number-value + = "#{number_with_delimiter(50, :locale => :fr)} %" + .number-label< + de réduction + %br<> + des délais de traitement diff --git a/config/environments/production.rb b/config/environments/production.rb index 79e0eed48..60eaafedd 100644 --- a/config/environments/production.rb +++ b/config/environments/production.rb @@ -55,7 +55,7 @@ Rails.application.configure do # config.logger = ActiveSupport::TaggedLogging.new(SyslogLogger.new) # Use a different cache store in production. - # config.cache_store = :mem_cache_store + config.cache_store = :memory_store # Enable serving of images, stylesheets, and JavaScripts from an asset server. # config.action_controller.asset_host = 'http://assets.example.com' From 663b5567667be3d9baa9af84820907e2a76230fa Mon Sep 17 00:00:00 2001 From: gregoirenovel Date: Tue, 4 Apr 2017 14:41:28 +0200 Subject: [PATCH 44/45] =?UTF-8?q?Add=20the=20=E2=80=9CUsers=E2=80=9D=20par?= =?UTF-8?q?t=20of=20the=20landing=20page?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/assets/images/landing/users/cci.jpg | Bin 0 -> 11850 bytes .../landing/users/chambres-de-metiers.jpg | Bin 0 -> 21236 bytes app/assets/images/landing/users/driea-idf.jpg | Bin 0 -> 19549 bytes .../landing/users/ministere-environnement.jpg | Bin 0 -> 17071 bytes .../images/landing/users/region-idf.jpg | Bin 0 -> 14687 bytes app/assets/stylesheets/landing.scss | 21 ++++++++++++++++++ app/views/root/landing.html.haml | 21 ++++++++++++++++++ 7 files changed, 42 insertions(+) create mode 100644 app/assets/images/landing/users/cci.jpg create mode 100644 app/assets/images/landing/users/chambres-de-metiers.jpg create mode 100644 app/assets/images/landing/users/driea-idf.jpg create mode 100644 app/assets/images/landing/users/ministere-environnement.jpg create mode 100644 app/assets/images/landing/users/region-idf.jpg diff --git a/app/assets/images/landing/users/cci.jpg b/app/assets/images/landing/users/cci.jpg new file mode 100644 index 0000000000000000000000000000000000000000..9c4a9e379498cb6d1434af8ee2d40fd06d2248bb GIT binary patch literal 11850 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�hp^1F`?88`qz5f(_=QnCE)Jc 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 NMm#?5{PB5R{y*psUrqo3 literal 0 HcmV?d00001 diff --git a/app/assets/images/landing/users/chambres-de-metiers.jpg b/app/assets/images/landing/users/chambres-de-metiers.jpg new file mode 100644 index 0000000000000000000000000000000000000000..e7338b04b70bfedfe5c1c60b656199ac959342b8 GIT binary patch literal 21236 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 C(K8$X literal 0 HcmV?d00001 diff --git a/app/assets/images/landing/users/driea-idf.jpg b/app/assets/images/landing/users/driea-idf.jpg new file mode 100644 index 0000000000000000000000000000000000000000..df9a361eabe1fd5156b737aa68dd641ac95b10d1 GIT binary patch literal 19549 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 z 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 literal 0 HcmV?d00001 diff --git a/app/assets/images/landing/users/region-idf.jpg b/app/assets/images/landing/users/region-idf.jpg new file mode 100644 index 0000000000000000000000000000000000000000..052dcdf7a99fd60067d3a75ab42a38a66e2d4b0a GIT binary patch literal 14687 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 des délais de traitement + + .landing-panel.users-panel + .landing-panel-inner-content + %h2.landing-panel-title Ils nous font confiance + + %ul.users + %li.user + %a{ :href => "http://www.developpement-durable.gouv.fr/", :target => "_blank " } + %img.user-image{ :src => image_url("landing/users/ministere-environnement.jpg") } + %li.user + %a{ :href => "https://www.iledefrance.fr/", :target => "_blank " } + %img.user-image{ :src => image_url("landing/users/region-idf.jpg") } + %li.user + %a{ :href => "http://www.artisanat.fr/", :target => "_blank " } + %img.user-image{ :src => image_url("landing/users/chambres-de-metiers.jpg") } + %li.user + %a{ :href => "http://www.cci.fr/", :target => "_blank " } + %img.user-image{ :src => image_url("landing/users/cci.jpg") } + %li.user + %a{ :href => "http://www.driea.ile-de-france.developpement-durable.gouv.fr/", :target => "_blank " } + %img.user-image{ :src => image_url("landing/users/driea-idf.jpg") } From 0ddd7ae639ce4312450e6af5ba191ae1e7708a57 Mon Sep 17 00:00:00 2001 From: gregoirenovel Date: Tue, 4 Apr 2017 14:45:13 +0200 Subject: [PATCH 45/45] =?UTF-8?q?Add=20the=20=E2=80=9CCTA=E2=80=9D=20part?= =?UTF-8?q?=20of=20the=20landing=20page?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/assets/stylesheets/landing.scss | 43 +++++++++++++++++++++++++++++ app/views/root/landing.html.haml | 10 +++++++ 2 files changed, 53 insertions(+) diff --git a/app/assets/stylesheets/landing.scss b/app/assets/stylesheets/landing.scss index b1c0640cb..26a7e7a83 100644 --- a/app/assets/stylesheets/landing.scss +++ b/app/assets/stylesheets/landing.scss @@ -193,3 +193,46 @@ $images-count: 5; .user-image { width: $image-width; } + +.cta-panel { + background-color: $blue; + color: #FFFFFF; +} + +.cta-panel-title { + font-size: 24px; + font-weight: bold; + margin-top: 0; +} + +.cta-panel-explanation { + font-size: 24px; + margin-bottom: 0; +} + +$cta-panel-button-height: 60px; +$cta-panel-button-border-size: 2px; + +.cta-panel-button { + @include horizontal-padding(30px); + + display: inline-block; + height: $cta-panel-button-height; + line-height: $cta-panel-button-height - (2 * $cta-panel-button-border-size); + border-radius: $cta-panel-button-height; + border: $cta-panel-button-border-size solid #FFFFFF; + color: #FFFFFF; + font-size: 24px; + margin-top: 5px; + + &:hover { + color: #FFFFFF; + text-decoration: none; + background-color: rgba(255, 255, 255, 0.2); + } + + &:focus { + color: #FFFFFF; + text-decoration: none; + } +} diff --git a/app/views/root/landing.html.haml b/app/views/root/landing.html.haml index dd6ab74cb..ad9539c42 100644 --- a/app/views/root/landing.html.haml +++ b/app/views/root/landing.html.haml @@ -122,3 +122,13 @@ %li.user %a{ :href => "http://www.driea.ile-de-france.developpement-durable.gouv.fr/", :target => "_blank " } %img.user-image{ :src => image_url("landing/users/driea-idf.jpg") } + + .landing-panel.cta-panel + .landing-panel-inner-content + = link_to "Demander une démo", + "mailto:#{t('dynamics.contact_email')}?subject=Demande de démo TPS", + :class => "cta-panel-button pull-right" + %h1.cta-panel-title.pull-left Commencez à dématerialiser vos démarches + %p.cta-panel-explanation.pull-left Nous vous accompagnons dans la prise en main de l’outil + .clearfix +