diff --git a/app/assets/stylesheets/_maintenance.scss b/app/assets/stylesheets/_maintenance.scss
deleted file mode 100644
index dd59c31d6..000000000
--- a/app/assets/stylesheets/_maintenance.scss
+++ /dev/null
@@ -1,15 +0,0 @@
-.maintenance {
- width: 100%;
- position: fixed;
- top: 0;
- z-index: 100;
- display: flex;
- flex-direction: column;
- justify-content: center;
-
- span {
- margin: auto;
- background: #FFD8A6;
- padding: 0 4px;
- }
-}
diff --git a/app/assets/stylesheets/application.scss b/app/assets/stylesheets/application.scss
index 84ef7d75e..e9dd51d18 100644
--- a/app/assets/stylesheets/application.scss
+++ b/app/assets/stylesheets/application.scss
@@ -9,7 +9,6 @@
// defined in the other CSS/SCSS files in this directory. It is generally better to create a new
// file per style scope.
//
-// = require _maintenance
// = require _card
// = require _helpers
// = require _turbolinks
@@ -28,7 +27,7 @@
// = require print
// = require procedure
// = require search
-// = require outdated_browser_banner
+// = require site_banner
// = require switch_menu
// = require autocomplete
// = require users
diff --git a/app/assets/stylesheets/new_design/_maintenance.scss b/app/assets/stylesheets/new_design/_maintenance.scss
deleted file mode 100644
index 153a5f685..000000000
--- a/app/assets/stylesheets/new_design/_maintenance.scss
+++ /dev/null
@@ -1,8 +0,0 @@
-@import "colors";
-
-.maintenance {
- padding: 20px;
- text-align: center;
- width: 100%;
- background: $orange-bg;
-}
diff --git a/app/assets/stylesheets/new_design/outdated_browser_banner.scss b/app/assets/stylesheets/new_design/site_banner.scss
similarity index 58%
rename from app/assets/stylesheets/new_design/outdated_browser_banner.scss
rename to app/assets/stylesheets/new_design/site_banner.scss
index 7b94f8a79..6b4448781 100644
--- a/app/assets/stylesheets/new_design/outdated_browser_banner.scss
+++ b/app/assets/stylesheets/new_design/site_banner.scss
@@ -1,21 +1,31 @@
@import "colors";
@import "constants";
-#outdated-browser-banner {
+.site-banner {
width: 100%;
margin: 0;
padding: $default-padding;
color: $black;
background-color: $yellow;
+ border-bottom: 1px dashed rgba(0, 0, 0, 0.6);
+
+ &.warning {
+ background-color: $orange-bg;
+ }
+
+ .container {
+ display: flex;
+ align-items: center;
+ }
}
-.outdated-browser-icon {
+.site-banner-icon {
margin-right: $default-padding;
font-size: 30px;
opacity: 0.7;
}
-.outdated-browser-buttons {
+.site-banner-actions {
display: flex;
margin-left: auto;
diff --git a/app/assets/stylesheets/outdated_browser_banner.scss b/app/assets/stylesheets/site_banner.scss
similarity index 64%
rename from app/assets/stylesheets/outdated_browser_banner.scss
rename to app/assets/stylesheets/site_banner.scss
index c4b2eb089..9db9b754f 100644
--- a/app/assets/stylesheets/outdated_browser_banner.scss
+++ b/app/assets/stylesheets/site_banner.scss
@@ -1,9 +1,14 @@
-#outdated-browser-banner {
+.site-banner {
width: 100%;
margin: 0;
color: #333333;
background-color: #FEF3B8;
+ border-bottom: 1px dashed rgba(0, 0, 0, 0.6);
+
+ &.warning {
+ background-color: #FFD8A6;
+ }
.container {
display: flex;
@@ -13,13 +18,13 @@
}
}
-.outdated-browser-icon {
+.site-banner-icon {
margin-right: 16px;
font-size: 30px;
opacity: 0.7;
}
-.outdated-browser-buttons {
+.site-banner-actions {
display: flex;
margin-left: auto;
}
diff --git a/app/javascript/components/TypesDeChampEditor/TypesDeChampEditor.js b/app/javascript/components/TypesDeChampEditor/TypesDeChampEditor.js
deleted file mode 100644
index b5fdba47f..000000000
--- a/app/javascript/components/TypesDeChampEditor/TypesDeChampEditor.js
+++ /dev/null
@@ -1,62 +0,0 @@
-import React, { Component } from 'react';
-import PropTypes from 'prop-types';
-import { library } from '@fortawesome/fontawesome-svg-core';
-import {
- faArrowCircleDown,
- faArrowDown,
- faArrowsAltV,
- faArrowUp,
- faPlus,
- faTrash
-} from '@fortawesome/free-solid-svg-icons';
-
-import Flash from './Flash';
-import OperationsQueue from './OperationsQueue';
-import TypeDeChamps from './components/TypeDeChamps';
-
-library.add(
- faArrowCircleDown,
- faArrowDown,
- faArrowsAltV,
- faArrowUp,
- faPlus,
- faTrash
-);
-
-class TypesDeChampEditor extends Component {
- constructor(props) {
- super(props);
- const defaultTypeDeChampAttributes = {
- type_champ: 'text',
- types_de_champ: [],
- private: props.isAnnotation,
- libelle: `${
- props.isAnnotation ? 'Nouvelle annotation' : 'Nouveau champ'
- } ${props.typeDeChampsTypes[0][0]}`
- };
- this.state = {
- flash: new Flash(props.isAnnotation),
- queue: new OperationsQueue(props.baseUrl),
- defaultTypeDeChampAttributes,
- typeDeChampsTypes: props.typeDeChampsTypes,
- directUploadUrl: props.directUploadUrl,
- isAnnotation: props.isAnnotation
- };
- }
-
- render() {
- return (
-
- );
- }
-}
-
-TypesDeChampEditor.propTypes = {
- baseUrl: PropTypes.string,
- directUploadUrl: PropTypes.string,
- isAnnotation: PropTypes.bool,
- typeDeChamps: PropTypes.array,
- typeDeChampsTypes: PropTypes.array
-};
-
-export default TypesDeChampEditor;
diff --git a/app/javascript/components/TypesDeChampEditor/index.js b/app/javascript/components/TypesDeChampEditor/index.js
index 8cb4f529e..b5fdba47f 100644
--- a/app/javascript/components/TypesDeChampEditor/index.js
+++ b/app/javascript/components/TypesDeChampEditor/index.js
@@ -1,3 +1,62 @@
-import Loadable from '../Loadable';
+import React, { Component } from 'react';
+import PropTypes from 'prop-types';
+import { library } from '@fortawesome/fontawesome-svg-core';
+import {
+ faArrowCircleDown,
+ faArrowDown,
+ faArrowsAltV,
+ faArrowUp,
+ faPlus,
+ faTrash
+} from '@fortawesome/free-solid-svg-icons';
-export default Loadable(() => import('./TypesDeChampEditor'));
+import Flash from './Flash';
+import OperationsQueue from './OperationsQueue';
+import TypeDeChamps from './components/TypeDeChamps';
+
+library.add(
+ faArrowCircleDown,
+ faArrowDown,
+ faArrowsAltV,
+ faArrowUp,
+ faPlus,
+ faTrash
+);
+
+class TypesDeChampEditor extends Component {
+ constructor(props) {
+ super(props);
+ const defaultTypeDeChampAttributes = {
+ type_champ: 'text',
+ types_de_champ: [],
+ private: props.isAnnotation,
+ libelle: `${
+ props.isAnnotation ? 'Nouvelle annotation' : 'Nouveau champ'
+ } ${props.typeDeChampsTypes[0][0]}`
+ };
+ this.state = {
+ flash: new Flash(props.isAnnotation),
+ queue: new OperationsQueue(props.baseUrl),
+ defaultTypeDeChampAttributes,
+ typeDeChampsTypes: props.typeDeChampsTypes,
+ directUploadUrl: props.directUploadUrl,
+ isAnnotation: props.isAnnotation
+ };
+ }
+
+ render() {
+ return (
+
+ );
+ }
+}
+
+TypesDeChampEditor.propTypes = {
+ baseUrl: PropTypes.string,
+ directUploadUrl: PropTypes.string,
+ isAnnotation: PropTypes.bool,
+ typeDeChamps: PropTypes.array,
+ typeDeChampsTypes: PropTypes.array
+};
+
+export default TypesDeChampEditor;
diff --git a/app/javascript/loaders/TypesDeChampEditor.js b/app/javascript/loaders/TypesDeChampEditor.js
new file mode 100644
index 000000000..8862e5ae9
--- /dev/null
+++ b/app/javascript/loaders/TypesDeChampEditor.js
@@ -0,0 +1,3 @@
+import Loadable from '../components/Loadable';
+
+export default Loadable(() => import('../components/TypesDeChampEditor'));
diff --git a/app/javascript/packs/application.js b/app/javascript/packs/application.js
index a0e320c3a..5a7e995cf 100644
--- a/app/javascript/packs/application.js
+++ b/app/javascript/packs/application.js
@@ -73,6 +73,6 @@ window.Turbolinks = Turbolinks;
// Now that Turbolinks is globally exposed,configure ReactRailsUJS
// eslint-disable-next-line no-undef
-ReactRailsUJS.useContext(require.context('components', true));
+ReactRailsUJS.useContext(require.context('loaders', true));
// Remove previous event handlers and add new ones:
ReactRailsUJS.detectEvents();
diff --git a/app/javascript/shared/polyfills.js b/app/javascript/shared/polyfills.js
index 91124f495..24b086ccc 100644
--- a/app/javascript/shared/polyfills.js
+++ b/app/javascript/shared/polyfills.js
@@ -6,6 +6,4 @@ import 'dom4';
import './polyfills/insertAdjacentElement';
import './polyfills/dataset';
-if (typeof window.IntersectionObserver === 'undefined') {
- import('intersection-observer');
-}
+import('intersection-observer');
diff --git a/app/views/layouts/_main_container.html.haml b/app/views/layouts/_main_container.html.haml
index ff74bc38d..bd4d39896 100644
--- a/app/views/layouts/_main_container.html.haml
+++ b/app/views/layouts/_main_container.html.haml
@@ -1,6 +1,7 @@
#main-container{ class: "col-xs-#{main_container_size}" }
.row
= render partial: 'layouts/outdated_browser_banner'
+ = render partial: 'layouts/pre_maintenance'
.row
= render partial: 'layouts/flash_messages'
.row
diff --git a/app/views/layouts/_outdated_browser_banner.html.haml b/app/views/layouts/_outdated_browser_banner.html.haml
index d60b38661..ee39e191d 100644
--- a/app/views/layouts/_outdated_browser_banner.html.haml
+++ b/app/views/layouts/_outdated_browser_banner.html.haml
@@ -1,15 +1,14 @@
-# See config/browser.rb
- if !browser.modern? && !has_dismissed_outdated_browser_banner?
- #outdated-browser-banner
- .container.flex.align-center
- .outdated-browser-icon
- ⚠️
- .outdated-browser-test
+ #outdated-browser-banner.site-banner
+ .container
+ .site-banner-icon ⚠️
+ .site-banner-text
%strong
#{browser.name} #{browser.version} est trop ancien pour utiliser demarches-simplifiees.fr.
%br
Certaines parties du site ne fonctionneront pas correctement.
- .outdated-browser-buttons
+ .site-banner-actions
= button_to 'Ignorer', dismiss_outdated_browser_path, method: :post, remote: true, class: 'button btn', title: 'Ne plus afficher cet avertissement pendant une semaine'
%a.btn.button.primary{ href: "https://browser-update.org/fr/update.html", target: "_blank", rel: "noopener" }
Mettre à jour mon navigateur
diff --git a/app/views/layouts/_pre_maintenance.html.haml b/app/views/layouts/_pre_maintenance.html.haml
index c14ca1e61..28327f13d 100644
--- a/app/views/layouts/_pre_maintenance.html.haml
+++ b/app/views/layouts/_pre_maintenance.html.haml
@@ -1,4 +1,9 @@
- if feature_enabled?(:pre_maintenance_mode)
- .maintenance
- %span
- Une opération de maintenance est prévue sur demarches-simplifiees.fr à 23 h 00. La plateforme sera inaccessible pendant une vingtaine de minutes.
+ .site-banner.warning
+ .container
+ .site-banner-icon 🕚
+ .site-banner-text
+ %strong
+ Une opération de maintenance est prévue sur demarches-simplifiees.fr à 23 h 00.
+ %br
+ La plateforme sera inaccessible pendant une vingtaine de minutes.
diff --git a/app/views/layouts/application_old.html.haml b/app/views/layouts/application_old.html.haml
index 80fd1109e..96217b370 100644
--- a/app/views/layouts/application_old.html.haml
+++ b/app/views/layouts/application_old.html.haml
@@ -19,7 +19,6 @@
= Gon::Base.render_data(camel_case: true, init: true)
%body{ class: browser.platform.ios? ? 'ios' : nil }
- = render partial: 'layouts/pre_maintenance'
- if staging?
#beta
Env Test