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 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 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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

DO*DF@9Xi8tux$dJu7Be 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 M#TlfTwS*WL01gzYsQ>@~ 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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 F1OWZi#qj_D 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/message_3.png b/app/assets/images/etapes/message_3.png deleted file mode 100644 index fa0cdbeb1c85774b8c57088e8ef8719003189d2c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 11215 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 II;Vst04Y3r3;+NC 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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 nUL^o7G&{DSa|Zy%#Xr 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 \ 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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 "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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 N&R@SC|EvCg69DKBUrqo3 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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 literal 0 HcmV?d00001 diff --git a/app/assets/images/landing/users/ministere-environnement.jpg b/app/assets/images/landing/users/ministere-environnement.jpg new file mode 100644 index 0000000000000000000000000000000000000000..086c252b07b4bc4450e7a2e7284fa73060ddc205 GIT binary patch literal 17071 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 Br%(U@ 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 +