diff --git a/public_html/asset/svg/warning_radio.svg b/public_html/asset/svg/warning.svg
similarity index 100%
rename from public_html/asset/svg/warning_radio.svg
rename to public_html/asset/svg/warning.svg
diff --git a/webpack/component/ue/view.vue b/webpack/component/ue/view.vue
index fee4744..0de6f4e 100644
--- a/webpack/component/ue/view.vue
+++ b/webpack/component/ue/view.vue
@@ -73,12 +73,11 @@
-
{{ ue.required ? 'UE obligatoire' : 'UE optionnelle' }}
+ {{ ue.required ? 'UE obligatoire' : 'UE optionnelle' }}
{{ ue.volumeCours + ue.volumeTD + ue.volumeTP }}h totales
- {{ gstore.form_by_id(form_id).labelForm || '???' }}
- M2 INFO (S1)
- LPRO
+ Aucune formation
+ {{ gstore.form_by_id(form_id).labelForm || '???' }}
diff --git a/webpack/scss/container.scss b/webpack/scss/container.scss
index 794396d..1f0cfc4 100644
--- a/webpack/scss/container.scss
+++ b/webpack/scss/container.scss
@@ -117,8 +117,8 @@
display: inline-block;
position: relative;
- // - marg - padd - [NEW] - separ
- flex: 0 1 calc( 100% - 2*1em - 2*.5em - 2em - 2*1em );
+ flex: 1 0 70%; // 70% to almost fill the line
+ height: 1.2em;
margin: 1em .5em;
padding: .5em 1em;
@@ -384,21 +384,21 @@
justify-content: flex-start;
flex-wrap: nowrap;
- &.warning:before{
- content: '';
+ // &.warning:before{
+ // content: '';
- display: inline-block;
- position: relative;
- width: 1.2em;
- height: 1em;
+ // display: inline-block;
+ // position: relative;
+ // width: 1.2em;
+ // height: 1em;
- margin-right: .3em;
+ // margin-right: .3em;
- background: url('/asset/svg/warning_radio.svg@#{$rd-form-invalid-color}') center bottom no-repeat;
- background-size: auto 90%;
+ // background: url('/asset/svg/warning_radio.svg@#{$rd-form-invalid-color}') center bottom no-repeat;
+ // background-size: auto 90%;
- text-anchor: center;
- }
+ // text-anchor: center;
+ // }
/* (5-edit) Card title -> edit inputs */
& input{
@@ -651,87 +651,9 @@
color: lighten($primary-color, 20%);
- &:before{
- content: '';
-
- display: inline-block;
- position: relative;
- width: 0em;
- height: 1em;
-
- background: center bottom -.1em no-repeat;
- background-size: auto .9em;
-
- text-anchor: center;
- }
-
- &.warning{
-
- color: $form-invalid-color;
-
- &:before{
- width: 1em;
- margin-right: .3em;
- background-image: url('/asset/svg/warning_radio.svg@#{$rd-form-invalid-color}');
- }
-
- &[data-valid='1']{
- color: $form-valid-color;
- }
-
- // state style
- &[data-state]{
- color: $form-neutral-color;
-
- &:before,
- &[data-state='0']:before{
- background-image: url('/asset/svg/pin.svg@#{$rd-form-neutral-color}');
- background-position: center center;
- background-size: auto 100%;
- }
-
- &[data-state='1']:before{
- background-image: url('/asset/svg/pin.svg@#{$rd-form-invalid-color}');
- }
- };
-
- }
-
}
- /* (9) Card tag list */
- & > div.taglist{
- display: flex;
- margin-top: 1em;
-
- flex-direction: row;
- justify-content: flex-start;
- align-items: flex-start;
- flex-wrap: wrap;
-
- /* (9.1) inner tags */
- & > span{
- padding: .2em .5em;
- margin-right: .5em;
-
- border: 1px solid lighten($form-neutral-color, 5%);
- border-radius: 3px;
-
- background-color: #f9f9f9;
-
- color: #999;
- font-size: .8em;
-
- cursor: default;
-
- &.valid{ border-color: lighten($form-valid-color, 20%); }
- &.invalid{ border-color: lighten($form-invalid-color, 20%); }
- &.search{ border-color: lighten($form-search-color, 10%); }
-
- }
-
- }
}
diff --git a/webpack/scss/global.scss b/webpack/scss/global.scss
index c11eab5..286ed28 100644
--- a/webpack/scss/global.scss
+++ b/webpack/scss/global.scss
@@ -1,235 +1,23 @@
@import 'constants';
-/* (1) Champs de texte */
-input[type=text], .neutral > input[type=text],
-input[type=mail], .neutral > input[type=mail],
-input[type=password], .neutral > input[type=password],
-select, .neutral > select,
-input[type=text].neutral,
-input[type=mail].neutral,
-input[type=password].neutral,
-select.neutral{
+/* (1) Input */
+@import 'global/input';
- display: inline-block;
- margin: 1em;
- padding: .5em 1em;
+/* (2) Button */
+@import 'global/button';
- border-radius: 3px;
- border: 1px solid $form-neutral-color;
+/* (3) classes that add icons before text */
+@import 'global/before-icon';
- background-color: #fff;
-
- font-family: inherit;
-
- color: lighten($primary-color, 15%);
-
- transition: border .2s ease-in-out,
- color .2s ease-in-out;
-
- &:focus, &:hover{
- border-color: darken($form-neutral-color, 10%);
- color: $primary-color;
- }
-
-}
-
-
-select{
- width: 100%;
- display: block;
- background: #fff;
-
- option{
- padding: .5em;
- }
-}
-
-
-// Champs valides
-.valid > input[type=text],
-.valid > input[type=mail],
-.valid > input[type=password],
-.valid > select,
-input.valid[type=text],
-input.valid[type=mail],
-input.valid[type=password],
-select.valid{
-
- border-color: darken($form-valid-color, 0%);
-
-
- &:focus, &:hover{
- border-color: darken($form-valid-color, 10%);
- }
-
-}
-
-// Champs neutres
-.invalid > input[type=text],
-.invalid > input[type=mail],
-.invalid > input[type=password],
-.invalid > select,
-input.invalid[type=text],
-input.invalid[type=mail],
-input.invalid[type=password],
-select.invalid{
-
- border-color: darken($form-invalid-color, 0%);
-
-
- &:focus, &:hover{
- border-color: darken($form-invalid-color, 10%);
- }
-
-}
-
-// Champs neutres
-.search > input[type=text],
-.search > input[type=mail],
-.search > input[type=password],
-.search > select,
-input.search[type=text],
-input.search[type=mail],
-input.search[type=password]{
-
- border-color: darken($form-search-color, 0%);
-
-
- &:focus, &:hover{
- border-color: darken($form-search-color, 10%);
- }
-
-}
+/* (4) tags */
+@import 'global/tag';
-/* (2) Boutons */
-button, .neutral > button,
-input[type=button], .neutral > input[type=button],
-input[type=submit], .neutral > input[type=submit],
-button.neutral,
-input[type=button].neutral,
-input[type=submit].neutral{
-
- display: inline-block;
- position: relative;
-
- padding: .5em 1em;
-
- border-radius: 3px;
- border: 1px solid $form-neutral-color;
-
- background: #fff center center no-repeat;
- text-transform: uppercase;
- font-weight: normal;
- font-family: inherit;
- color: $primary-color;
- cursor: pointer;
-
- transition: color .2s ease-in-out,
- border-color .1s ease-in-out,
- background .2s ease-in-out;
-
- &:hover, &[data-active='1']{
- color: #fff;
- border-color: $form-neutral-color;
- background-color: $form-neutral-color;
- }
-}
-
-// Boutons grisés
-button:disabled,
-button.grey, .grey > button,
-input[type=button].grey, .grey > input[type=button],
-input[type=submit].grey, .grey > input[type=submit]{
-
- color: $form-grey-color;
-
- &:hover, &[data-active='1']{
- color: #fff;
- border-color: $form-grey-color;
- background-color: $form-grey-color;
- }
-
- cursor: default;
-}
-
-// Boutons valides
-button.valid, .valid > button,
-input[type=button].valid, .valid > input[type=button],
-input[type=submit].valid, .valid > input[type=submit]{
-
- color: $form-valid-color;
-
- &:hover, &[data-active='1']{
- color: #fff;
- border-color: $form-valid-color;
- background-color: $form-valid-color;
- }
-
-}
-
-// Boutons invalides
-button.invalid, .invalid > button,
-input[type=button].invalid, .invalid > input[type=button],
-input[type=submit].invalid, .invalid > input[type=submit]{
-
- color: $form-invalid-color;
-
- &:hover, &[data-active='1']{
- color: #fff;
- border-color: $form-invalid-color;
- background-color: $form-invalid-color;
- }
-
-}
-
-// Boutons recherche
-button.search, .search > button,
-input[type=button].search, .search > input[type=button],
-input[type=submit].search, .search > input[type=submit]{
-
- color: $form-search-color;
-
- &:hover, &[data-active='1']{
- color: #fff;
- border-color: $form-search-color;
- background-color: $form-search-color;
- }
-
-}
-
-
-// Boutons quand action validee
-.invalid > button.active,
-button.invalid.active,
-button.active{
- background-color: #fff;
- background-image: url('/src/static/container/active@#{$rd-form-invalid-color}.svg') !important;
- background-size: 1em auto;
-
- color: transparent !important;
-}
-
-
-button.valid.active,
-.valid > button.active{
- background-image: url('/src/static/container/active@#{$rd-form-valid-color}.svg') !important;
-}
-button.neutral.active,
-.neutral > button.active{
- background-image: url('/src/static/container/active@#{$rd-form-neutral-color}.svg') !important;
-}
-button.search.active,
-.search > button.active{
- background-image: url('/src/static/container/active@#{$rd-form-search-color}.svg') !important;
-}
-
-
-// Liens
+/* (4) Links */
a{
color: inherit;
text-decoration: none;
@@ -252,8 +40,8 @@ a{
}
}
-
-// Textes
+/* (5) Greyed text */
.grey{
color: $secondary-color;
-}
\ No newline at end of file
+}
+
diff --git a/webpack/scss/global/before-icon.scss b/webpack/scss/global/before-icon.scss
new file mode 100644
index 0000000..e7162e1
--- /dev/null
+++ b/webpack/scss/global/before-icon.scss
@@ -0,0 +1,49 @@
+@import '../constants';
+
+
+
+/* (1) Warning icon */
+.warning,
+.pin{
+
+ // add icon before
+ &:before{
+ content: '';
+
+ display: inline-block;
+ position: relative;
+ width: 1.2em;
+ height: 1em;
+
+ margin-right: .3em;
+
+ background: url('/asset/svg/warning.svg@#{$rd-form-invalid-color}') center center no-repeat;
+ background-size: auto 90%;
+
+ text-anchor: center;
+ }
+
+ // icon color variants
+ &.neutral:before{ background-image: url('/asset/svg/warning.svg@#{$rd-form-neutral-color}'); }
+ &.valid:before{ background-image: url('/asset/svg/warning.svg@#{$rd-form-valid-color}'); }
+ &.search:before{ background-image: url('/asset/svg/warning.svg@#{$rd-form-search-color}'); }
+
+ // force red text
+ &.invalid{ color: $form-invalid-color; }
+}
+
+
+/* (2) Pin icon */
+.pin{
+
+ // add icon before
+ &:before{
+ background-image: url('/asset/svg/pin.svg@#{$rd-form-invalid-color}');
+ }
+
+ // icon color variants
+ &.neutral:before{ background-image: url('/asset/svg/pin.svg@#{$rd-form-neutral-color}'); }
+ &.valid:before{ background-image: url('/asset/svg/pin.svg@#{$rd-form-valid-color}'); }
+ &.search:before{ background-image: url('/asset/svg/pin.svg@#{$rd-form-search-color}'); }
+
+}
\ No newline at end of file
diff --git a/webpack/scss/global/button.scss b/webpack/scss/global/button.scss
new file mode 100644
index 0000000..60bb8da
--- /dev/null
+++ b/webpack/scss/global/button.scss
@@ -0,0 +1,102 @@
+@import '../constants';
+
+
+
+/* (1) BUTTON (neutral) */
+button, .neutral > button,
+input[type=button], .neutral > input[type=button],
+input[type=submit], .neutral > input[type=submit],
+button.neutral,
+input[type=button].neutral,
+input[type=submit].neutral{
+
+ display: inline-block;
+ position: relative;
+
+ padding: .5em 1em;
+
+ border-radius: 3px;
+ border: 1px solid $form-neutral-color;
+
+ background: #fff center center no-repeat;
+ text-transform: uppercase;
+ font-weight: normal;
+ font-family: inherit;
+
+
+ color: $primary-color;
+
+ cursor: pointer;
+
+ transition: color .2s ease-in-out,
+ border-color .1s ease-in-out,
+ background .2s ease-in-out;
+
+ &:hover, &[data-active='1']{
+ color: #fff;
+ border-color: $form-neutral-color;
+ background-color: $form-neutral-color;
+ }
+}
+
+/* (1) valid */
+button.valid, .valid > button,
+input[type=button].valid, .valid > input[type=button],
+input[type=submit].valid, .valid > input[type=submit]{
+
+ color: $form-valid-color;
+
+ &:hover, &[data-active='1']{
+ color: #fff;
+ border-color: $form-valid-color;
+ background-color: $form-valid-color;
+ }
+
+}
+
+/* (1) invalid */
+button.invalid, .invalid > button,
+input[type=button].invalid, .invalid > input[type=button],
+input[type=submit].invalid, .invalid > input[type=submit]{
+
+ color: $form-invalid-color;
+
+ &:hover, &[data-active='1']{
+ color: #fff;
+ border-color: $form-invalid-color;
+ background-color: $form-invalid-color;
+ }
+
+}
+
+/* (1) search */
+button.search, .search > button,
+input[type=button].search, .search > input[type=button],
+input[type=submit].search, .search > input[type=submit]{
+
+ color: $form-search-color;
+
+ &:hover, &[data-active='1']{
+ color: #fff;
+ border-color: $form-search-color;
+ background-color: $form-search-color;
+ }
+
+}
+
+/* (1) valid grey */
+button:disabled,
+button.grey, .grey > button,
+input[type=button].grey, .grey > input[type=button],
+input[type=submit].grey, .grey > input[type=submit]{
+
+ color: $form-grey-color;
+
+ &:hover, &[data-active='1']{
+ color: #fff;
+ border-color: $form-grey-color;
+ background-color: $form-grey-color;
+ }
+
+ cursor: default;
+}
\ No newline at end of file
diff --git a/webpack/scss/global/input.scss b/webpack/scss/global/input.scss
new file mode 100644
index 0000000..1ed887c
--- /dev/null
+++ b/webpack/scss/global/input.scss
@@ -0,0 +1,123 @@
+@import '../constants';
+
+
+
+/* (1) INPUT (neutral) */
+input[type=text], .neutral > input[type=text],
+input[type=mail], .neutral > input[type=mail],
+input[type=password], .neutral > input[type=password],
+select, .neutral > select,
+input[type=text].neutral,
+input[type=mail].neutral,
+input[type=password].neutral,
+select.neutral{
+
+ display: inline-block;
+ margin: 1em;
+ padding: .5em 1em;
+
+ border-radius: 3px;
+ border: 1px solid $form-neutral-color;
+
+ background-color: #fff;
+
+ font-family: inherit;
+
+ color: lighten($primary-color, 15%);
+
+ transition: border .2s ease-in-out,
+ color .2s ease-in-out;
+
+ &:focus, &:hover{
+ border-color: darken($form-neutral-color, 10%);
+ color: $primary-color;
+ }
+
+}
+
+
+/* (2) SELECT (neutral) */
+select{
+ width: 100%;
+ display: block;
+ background: #fff;
+
+ option{
+ padding: .5em;
+ }
+}
+
+
+/* (1)(2) valid */
+.valid > input[type=text],
+.valid > input[type=mail],
+.valid > input[type=password],
+.valid > select,
+input.valid[type=text],
+input.valid[type=mail],
+input.valid[type=password],
+select.valid{
+
+ border-color: darken($form-valid-color, 0%);
+
+
+ &:focus, &:hover{
+ border-color: darken($form-valid-color, 10%);
+ }
+
+}
+
+/* (1)(2) invalid */
+.invalid > input[type=text],
+.invalid > input[type=mail],
+.invalid > input[type=password],
+.invalid > select,
+input.invalid[type=text],
+input.invalid[type=mail],
+input.invalid[type=password],
+select.invalid{
+
+ border-color: darken($form-invalid-color, 0%);
+
+
+ &:focus, &:hover{
+ border-color: darken($form-invalid-color, 10%);
+ }
+
+}
+
+/* (1)(2) search */
+.search > input[type=text],
+.search > input[type=mail],
+.search > input[type=password],
+.search > select,
+input.search[type=text],
+input.search[type=mail],
+input.search[type=password]{
+
+ border-color: darken($form-search-color, 0%);
+
+
+ &:focus, &:hover{
+ border-color: darken($form-search-color, 10%);
+ }
+
+}
+
+/* (1)(2) grey */
+.grey > input[type=text],
+.grey > input[type=mail],
+.grey > input[type=password],
+.grey > select,
+input.grey[type=text],
+input.grey[type=mail],
+input.grey[type=password]{
+
+ border-color: darken($form-grey-color, 0%);
+
+
+ &:focus, &:hover{
+ border-color: darken($form-grey-color, 10%);
+ }
+
+}
\ No newline at end of file
diff --git a/webpack/scss/global/tag.scss b/webpack/scss/global/tag.scss
new file mode 100644
index 0000000..736c44c
--- /dev/null
+++ b/webpack/scss/global/tag.scss
@@ -0,0 +1,37 @@
+@import '../constants';
+
+
+
+/* (1) Tag list */
+.taglist{
+
+ display: flex;
+ margin-top: 1em;
+
+ flex-direction: row;
+ justify-content: flex-start;
+ align-items: flex-start;
+ flex-wrap: wrap;
+
+ /* (9.1) inner tags */
+ & > span.tag{
+ padding: .2em .5em;
+ margin-right: .5em;
+
+ border: 1px solid lighten($form-neutral-color, 5%);
+ border-radius: 3px;
+
+ background-color: #f9f9f9;
+
+ color: #999;
+ font-size: .8em;
+
+ cursor: default;
+
+ &.valid{ border-color: lighten($form-valid-color, 20%); }
+ &.invalid{ border-color: lighten($form-invalid-color, 20%); }
+ &.search{ border-color: lighten($form-search-color, 10%); }
+
+ }
+
+}
\ No newline at end of file