Prototype de la matrice (html/php/css) reste à intégrer en Javscript

This commit is contained in:
xdrm-brackets 2016-05-08 18:31:58 +02:00
parent 11a1af7eb8
commit 980666beb1
17 changed files with 547 additions and 68 deletions

View File

@ -123,6 +123,10 @@
// Specifique a checkbox
& input[type="checkbox"] + label[for]:before{
border-radius: 3px;
@include transition( border .1s ease-in-out );
}
& input[type="checkbox"] + label[for]:hover:before{
border-color: darken($theme-fg-primary, 15);
}

File diff suppressed because one or more lines are too long

View File

@ -6,9 +6,9 @@
"../constants.scss"
],
"sourcesContent": [
"@import 'constants.scss';\n\n#WRAPPER > #CONTAINER{\n\n\t/* [1] Section (contenu)\n\t=========================================================*/\n\t& > section{\n\t\tdisplay: none;\n\n\t\tmargin: 3em;\n\n\t\t// Gestion de l'activation des sous-parties\n\t\t&.active{ display: block; }\n\n\t\t// Gestion d'une section contenant des graphiques\n\t\t&.charts{\n\t\t\tdisplay: flex;\n\n\t\t\tflex-direction: row;\n\t\t\tflex-wrap: wrap;\n\t\t\tjustify-content: space-around;\n\t\t}\n\n\t\tposition: relative;\n\t\tflex-grow: 1;\n\n\t\tpadding: 1em;\n\n\t\tborder-radius: 3px;\n\n\t\tbackground-color: #fff;\n\n\t\tcolor: #000;\n\t\tfont-size: 1em;\n\n\t\tborder: 1px solid #ddd;\n\n\n\n\t\t/* [2] Titres\n\t\t=========================================================*/\n\t\t& h6{\n\t\t\tcolor: lighten($theme-fg, 20);\n\t\t\tfont-size: 1.2em;\n\t\t\ttext-transform: uppercase;\n\t\t\tfont-weight: 300;\n\t\t\tletter-spacing: .2em;\n\n\t\t\tmargin: 0;\n\t\t\tpadding: 0;\n\n\t\t\t&:before{content:'- ';}\n\t\t\t&:after{content:' -';}\n\n\t\t\t// quand centré\n\t\t\t&.center{\n\t\t\t\ttext-align: center;\n\t\t\t}\n\t\t}\n\n\n\n\n\n\t\t/* [3][4] Boutons radio + Checkboxes\n\t\t=========================================================*/\n\t\t& input[type=\"radio\"],\n\t\t& input[type=\"checkbox\"]{\n\t\t\tdisplay: none;\n\t\t}\n\n\t\t// Label\n\t\t& input[type=\"radio\"] + label[for],\n\t\t& input[type=\"checkbox\"] + label[for]{\n\t\t\tpadding-left: .8em;\n\n\t\t\t// Pas de selection\n\t\t\t-webkit-touch-callout: none; /* iOS Safari */\n\t\t\t-webkit-user-select: none; /* Chrome/Safari/Opera */\n\t\t\t-khtml-user-select: none; /* Konqueror */\n\t\t\t-moz-user-select: none; /* Firefox */\n\t\t\t-ms-user-select: none; /* IE/Edge */\n\t\t\tuser-select: none; /* non-prefixed */\n\n\t\t\tcursor: pointer;\n\n\t\t\t// Receptacle\n\t\t\t&:before{\n\t\t\t\tcontent: '';\n\t\t\t\tdisplay: inline-block;\n\t\t\t\tposition: relative;\n\t\t\t\t\ttop: .1em;\n\t\t\t\t\tleft: -.8em;\n\t\t\t\t\twidth: calc( 1em - 2*.15em );\n\t\t\t\t\theight: calc( 1em - 2*.15em );\n\n\t\t\t\tborder-radius: 50% / 50%;\n\t\t\t\tborder: .15em solid $theme-fg-primary;\n\n\t\t\t\tbackground: #fff center center no-repeat;\n\t\t\t\tbackground-image: none;\n\t\t\t\tbackground-size: 70% auto;\n\n\t\t\t\t@include transition( background .2s ease-in-out );\n\n\t\t\t\tcursor: pointer;\n\t\t\t}\n\n\t\t\t// Animation de hover pour le texte\n\t\t\t&:hover{\n\t\t\t\ttext-decoration: underline;\n\t\t\t}\n\t\t}\n\n\t\t// Quand actif\n\t\t& input[type=\"radio\"]:checked + label[for]:before,\n\t\t& input[type=\"checkbox\"]:checked + label[for]:before{\n\t\t\tbackground-color: $theme-fg-primary;\n\t\t\tbackground-image: url('/f/svg/checked/st/container');\n\t\t}\n\n\n\t\t// Specifique a checkbox\n\t\t& input[type=\"checkbox\"] + label[for]:before{\n\t\t\tborder-radius: 3px;\n\t\t}\n\n\n\n\n\n\t\t/* [5] Boutons de submit\n\t\t=========================================================*/\n\t\t& input[type=\"submit\"],\n\t\t& input[type=\"button\"]{\n\t\t\tmargin: .5em 0;\n\t\t\tpadding: .3em .5em;\n\n\t\t\tborder-radius: 3px;\n\t\t\tborder: 1px solid $theme-fg;\n\n\t\t\tcolor: $theme-fg;\n\n\t\t\tbackground-color: #fff;\n\n\t\t\t@include transition( background .1s ease-in-out, color .1s ease-in-out );\n\n\t\t\t/* (1) Animation de @hover */\n\t\t\t&:hover{\n\t\t\t\tbackground-color: $theme-fg;\n\t\t\t\tcolor: #fff;\n\t\t\t}\n\n\n\t\t\t/* (2) Bouton primaire */\n\t\t\t&.primary{\n\t\t\t\tborder-color: $theme-fg-primary;\n\t\t\t\tcolor: $theme-fg-primary;\n\t\t\t\tbackground-color: #fff;\n\n\n\t\t\t\t/* (3) Animation de @hover pour bouton primaire */\n\t\t\t\t&:hover{\n\t\t\t\t\tbackground-color: $theme-fg-primary;\n\t\t\t\t\tcolor: #fff;\n\t\t\t\t}\n\t\t\t}\n\n\n\t\t}\n\n\t\t/* [6] Images inline\n\t\t=========================================================*/\n\t\t& img{\n\t\t\tmargin: 1em;\n\t\t\theight: 3em;\n\t\t}\n\n\t\t/* [7] Contour flags\n\t\t=========================================================*/\n\t\t& .flag{\n\t\t\tmargin: 0 .8em;\n\t\t\tpadding: .2em .5em;\n\n\t\t\tborder-radius: 5px;\n\t\t\tborder: 1px solid #b5b5b5;\n\n\t\t\tcolor: #555;\n\t\t\tfont-family: 'Inconsolata';\n\t\t}\n\n\n\t}\n\n}\n",
"@import 'constants.scss';\n\n#WRAPPER > #CONTAINER{\n\n\t/* [1] Section (contenu)\n\t=========================================================*/\n\t& > section{\n\t\tdisplay: none;\n\n\t\tmargin: 3em;\n\n\t\t// Gestion de l'activation des sous-parties\n\t\t&.active{ display: block; }\n\n\t\t// Gestion d'une section contenant des graphiques\n\t\t&.charts{\n\t\t\tdisplay: flex;\n\n\t\t\tflex-direction: row;\n\t\t\tflex-wrap: wrap;\n\t\t\tjustify-content: space-around;\n\t\t}\n\n\t\tposition: relative;\n\t\tflex-grow: 1;\n\n\t\tpadding: 1em;\n\n\t\tborder-radius: 3px;\n\n\t\tbackground-color: #fff;\n\n\t\tcolor: #000;\n\t\tfont-size: 1em;\n\n\t\tborder: 1px solid #ddd;\n\n\n\n\t\t/* [2] Titres\n\t\t=========================================================*/\n\t\t& h6{\n\t\t\tcolor: lighten($theme-fg, 20);\n\t\t\tfont-size: 1.2em;\n\t\t\ttext-transform: uppercase;\n\t\t\tfont-weight: 300;\n\t\t\tletter-spacing: .2em;\n\n\t\t\tmargin: 0;\n\t\t\tpadding: 0;\n\n\t\t\t&:before{content:'- ';}\n\t\t\t&:after{content:' -';}\n\n\t\t\t// quand centré\n\t\t\t&.center{\n\t\t\t\ttext-align: center;\n\t\t\t}\n\t\t}\n\n\n\n\n\n\t\t/* [3][4] Boutons radio + Checkboxes\n\t\t=========================================================*/\n\t\t& input[type=\"radio\"],\n\t\t& input[type=\"checkbox\"]{\n\t\t\tdisplay: none;\n\t\t}\n\n\t\t// Label\n\t\t& input[type=\"radio\"] + label[for],\n\t\t& input[type=\"checkbox\"] + label[for]{\n\t\t\tpadding-left: .8em;\n\n\t\t\t// Pas de selection\n\t\t\t-webkit-touch-callout: none; /* iOS Safari */\n\t\t\t-webkit-user-select: none; /* Chrome/Safari/Opera */\n\t\t\t-khtml-user-select: none; /* Konqueror */\n\t\t\t-moz-user-select: none; /* Firefox */\n\t\t\t-ms-user-select: none; /* IE/Edge */\n\t\t\tuser-select: none; /* non-prefixed */\n\n\t\t\tcursor: pointer;\n\n\t\t\t// Receptacle\n\t\t\t&:before{\n\t\t\t\tcontent: '';\n\t\t\t\tdisplay: inline-block;\n\t\t\t\tposition: relative;\n\t\t\t\t\ttop: .1em;\n\t\t\t\t\tleft: -.8em;\n\t\t\t\t\twidth: calc( 1em - 2*.15em );\n\t\t\t\t\theight: calc( 1em - 2*.15em );\n\n\t\t\t\tborder-radius: 50% / 50%;\n\t\t\t\tborder: .15em solid $theme-fg-primary;\n\n\t\t\t\tbackground: #fff center center no-repeat;\n\t\t\t\tbackground-image: none;\n\t\t\t\tbackground-size: 70% auto;\n\n\t\t\t\t@include transition( background .2s ease-in-out );\n\n\t\t\t\tcursor: pointer;\n\t\t\t}\n\n\t\t\t// Animation de hover pour le texte\n\t\t\t&:hover{\n\t\t\t\ttext-decoration: underline;\n\t\t\t}\n\t\t}\n\n\t\t// Quand actif\n\t\t& input[type=\"radio\"]:checked + label[for]:before,\n\t\t& input[type=\"checkbox\"]:checked + label[for]:before{\n\t\t\tbackground-color: $theme-fg-primary;\n\t\t\tbackground-image: url('/f/svg/checked/st/container');\n\t\t}\n\n\n\t\t// Specifique a checkbox\n\t\t& input[type=\"checkbox\"] + label[for]:before{\n\t\t\tborder-radius: 3px;\n\t\t\t@include transition( border .1s ease-in-out );\n\t\t}\n\t\t& input[type=\"checkbox\"] + label[for]:hover:before{\n\t\t\tborder-color: darken($theme-fg-primary, 15);\n\t\t}\n\n\n\n\n\n\t\t/* [5] Boutons de submit\n\t\t=========================================================*/\n\t\t& input[type=\"submit\"],\n\t\t& input[type=\"button\"]{\n\t\t\tmargin: .5em 0;\n\t\t\tpadding: .3em .5em;\n\n\t\t\tborder-radius: 3px;\n\t\t\tborder: 1px solid $theme-fg;\n\n\t\t\tcolor: $theme-fg;\n\n\t\t\tbackground-color: #fff;\n\n\t\t\t@include transition( background .1s ease-in-out, color .1s ease-in-out );\n\n\t\t\t/* (1) Animation de @hover */\n\t\t\t&:hover{\n\t\t\t\tbackground-color: $theme-fg;\n\t\t\t\tcolor: #fff;\n\t\t\t}\n\n\n\t\t\t/* (2) Bouton primaire */\n\t\t\t&.primary{\n\t\t\t\tborder-color: $theme-fg-primary;\n\t\t\t\tcolor: $theme-fg-primary;\n\t\t\t\tbackground-color: #fff;\n\n\n\t\t\t\t/* (3) Animation de @hover pour bouton primaire */\n\t\t\t\t&:hover{\n\t\t\t\t\tbackground-color: $theme-fg-primary;\n\t\t\t\t\tcolor: #fff;\n\t\t\t\t}\n\t\t\t}\n\n\n\t\t}\n\n\t\t/* [6] Images inline\n\t\t=========================================================*/\n\t\t& img{\n\t\t\tmargin: 1em;\n\t\t\theight: 3em;\n\t\t}\n\n\t\t/* [7] Contour flags\n\t\t=========================================================*/\n\t\t& .flag{\n\t\t\tmargin: 0 .8em;\n\t\t\tpadding: .2em .5em;\n\n\t\t\tborder-radius: 5px;\n\t\t\tborder: 1px solid #b5b5b5;\n\n\t\t\tcolor: #555;\n\t\t\tfont-family: 'Inconsolata';\n\t\t}\n\n\n\t}\n\n}\n",
"/* [1] COULEURS\n=========================================================*/\n/* (1) COULEURS DU THEME $DEFAULT */\n$theme-bg: #e8e8e8;\n$theme-bg-primary: #ffffff;\n$theme-fg: #515151;\n$theme-fg-primary: #399ced;\n\n/* (2) COULEURS DE THEME $DARK */\n$dark-bg: #313541;\n$dark-bg-primary: #29282e;\n$dark-fg: #939393;\n$dark-fg-primary: #ffffff;\n\n$header-dark: #333333;\n\n/* (3) Couleurs du theme pour la timeline */\n$timeline-color: #738394;\n$timeline-0: #399ced;\n$timeline-1: #e64e3e;\n$timeline-2: #10baa3;\n$timeline-3: #b14be7;\n$timeline-4: #053b5d;\n\n\n/* [2] DIMENSIONS\n=========================================================*/\n/* (1) Layout de base */\n$menu-side-width: 15em;\n$header-height: 4em;\n\n\n\n/* [3] Mixins\n=========================================================*/\n@mixin transform($value...) {\n transform: $value;\n\t-moz-transform: $value;\n\t-o-transform: $value;\n\t-ms-transform: $value;\n\t-webkit-transform: $value;\n}\n\n\n@mixin transition($value...) {\n -webkit-transition: $value;\n transition: $value;\n}\n\n/* [4] Functions\n=========================================================*/\n// Transforme une couleur hex en string sans le #\n@function color-str($color){\n @return str-slice(#{$color}, 2, str-length(#{$color}));\n}\n"
],
"mappings": "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",
"mappings": "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",
"names": []
}

File diff suppressed because one or more lines are too long

View File

@ -6,9 +6,9 @@
"../constants.scss"
],
"sourcesContent": [
"@import 'constants.scss';\n\n#WRAPPER > #CONTAINER{\n\n\t/* [1] Section (contenu)\n\t=========================================================*/\n\t& > section{\n\t\tdisplay: none;\n\n\t\tmargin: 3em;\n\n\t\t// Gestion de l'activation des sous-parties\n\t\t&.active{ display: block; }\n\n\t\t// Gestion d'une section contenant des graphiques\n\t\t&.charts{\n\t\t\tdisplay: flex;\n\n\t\t\tflex-direction: row;\n\t\t\tflex-wrap: wrap;\n\t\t\tjustify-content: space-around;\n\t\t}\n\n\t\tposition: relative;\n\t\tflex-grow: 1;\n\n\t\tpadding: 1em;\n\n\t\tborder-radius: 3px;\n\n\t\tbackground-color: #fff;\n\n\t\tcolor: #000;\n\t\tfont-size: 1em;\n\n\t\tborder: 1px solid #ddd;\n\n\n\n\t\t/* [2] Titres\n\t\t=========================================================*/\n\t\t& h6{\n\t\t\tcolor: lighten($theme-fg, 20);\n\t\t\tfont-size: 1.2em;\n\t\t\ttext-transform: uppercase;\n\t\t\tfont-weight: 300;\n\t\t\tletter-spacing: .2em;\n\n\t\t\tmargin: 0;\n\t\t\tpadding: 0;\n\n\t\t\t&:before{content:'- ';}\n\t\t\t&:after{content:' -';}\n\n\t\t\t// quand centré\n\t\t\t&.center{\n\t\t\t\ttext-align: center;\n\t\t\t}\n\t\t}\n\n\n\n\n\n\t\t/* [3][4] Boutons radio + Checkboxes\n\t\t=========================================================*/\n\t\t& input[type=\"radio\"],\n\t\t& input[type=\"checkbox\"]{\n\t\t\tdisplay: none;\n\t\t}\n\n\t\t// Label\n\t\t& input[type=\"radio\"] + label[for],\n\t\t& input[type=\"checkbox\"] + label[for]{\n\t\t\tpadding-left: .8em;\n\n\t\t\t// Pas de selection\n\t\t\t-webkit-touch-callout: none; /* iOS Safari */\n\t\t\t-webkit-user-select: none; /* Chrome/Safari/Opera */\n\t\t\t-khtml-user-select: none; /* Konqueror */\n\t\t\t-moz-user-select: none; /* Firefox */\n\t\t\t-ms-user-select: none; /* IE/Edge */\n\t\t\tuser-select: none; /* non-prefixed */\n\n\t\t\tcursor: pointer;\n\n\t\t\t// Receptacle\n\t\t\t&:before{\n\t\t\t\tcontent: '';\n\t\t\t\tdisplay: inline-block;\n\t\t\t\tposition: relative;\n\t\t\t\t\ttop: .1em;\n\t\t\t\t\tleft: -.8em;\n\t\t\t\t\twidth: calc( 1em - 2*.15em );\n\t\t\t\t\theight: calc( 1em - 2*.15em );\n\n\t\t\t\tborder-radius: 50% / 50%;\n\t\t\t\tborder: .15em solid $theme-fg-primary;\n\n\t\t\t\tbackground: #fff center center no-repeat;\n\t\t\t\tbackground-image: none;\n\t\t\t\tbackground-size: 70% auto;\n\n\t\t\t\t@include transition( background .2s ease-in-out );\n\n\t\t\t\tcursor: pointer;\n\t\t\t}\n\n\t\t\t// Animation de hover pour le texte\n\t\t\t&:hover{\n\t\t\t\ttext-decoration: underline;\n\t\t\t}\n\t\t}\n\n\t\t// Quand actif\n\t\t& input[type=\"radio\"]:checked + label[for]:before,\n\t\t& input[type=\"checkbox\"]:checked + label[for]:before{\n\t\t\tbackground-color: $theme-fg-primary;\n\t\t\tbackground-image: url('/f/svg/checked/st/container');\n\t\t}\n\n\n\t\t// Specifique a checkbox\n\t\t& input[type=\"checkbox\"] + label[for]:before{\n\t\t\tborder-radius: 3px;\n\t\t}\n\n\n\n\n\n\t\t/* [5] Boutons de submit\n\t\t=========================================================*/\n\t\t& input[type=\"submit\"],\n\t\t& input[type=\"button\"]{\n\t\t\tmargin: .5em 0;\n\t\t\tpadding: .3em .5em;\n\n\t\t\tborder-radius: 3px;\n\t\t\tborder: 1px solid $theme-fg;\n\n\t\t\tcolor: $theme-fg;\n\n\t\t\tbackground-color: #fff;\n\n\t\t\t@include transition( background .1s ease-in-out, color .1s ease-in-out );\n\n\t\t\t/* (1) Animation de @hover */\n\t\t\t&:hover{\n\t\t\t\tbackground-color: $theme-fg;\n\t\t\t\tcolor: #fff;\n\t\t\t}\n\n\n\t\t\t/* (2) Bouton primaire */\n\t\t\t&.primary{\n\t\t\t\tborder-color: $theme-fg-primary;\n\t\t\t\tcolor: $theme-fg-primary;\n\t\t\t\tbackground-color: #fff;\n\n\n\t\t\t\t/* (3) Animation de @hover pour bouton primaire */\n\t\t\t\t&:hover{\n\t\t\t\t\tbackground-color: $theme-fg-primary;\n\t\t\t\t\tcolor: #fff;\n\t\t\t\t}\n\t\t\t}\n\n\n\t\t}\n\n\t\t/* [6] Images inline\n\t\t=========================================================*/\n\t\t& img{\n\t\t\tmargin: 1em;\n\t\t\theight: 3em;\n\t\t}\n\n\t\t/* [7] Contour flags\n\t\t=========================================================*/\n\t\t& .flag{\n\t\t\tmargin: 0 .8em;\n\t\t\tpadding: .2em .5em;\n\n\t\t\tborder-radius: 5px;\n\t\t\tborder: 1px solid #b5b5b5;\n\n\t\t\tcolor: #555;\n\t\t\tfont-family: 'Inconsolata';\n\t\t}\n\n\n\t}\n\n}\n",
"@import 'constants.scss';\n\n#WRAPPER > #CONTAINER{\n\n\t/* [1] Section (contenu)\n\t=========================================================*/\n\t& > section{\n\t\tdisplay: none;\n\n\t\tmargin: 3em;\n\n\t\t// Gestion de l'activation des sous-parties\n\t\t&.active{ display: block; }\n\n\t\t// Gestion d'une section contenant des graphiques\n\t\t&.charts{\n\t\t\tdisplay: flex;\n\n\t\t\tflex-direction: row;\n\t\t\tflex-wrap: wrap;\n\t\t\tjustify-content: space-around;\n\t\t}\n\n\t\tposition: relative;\n\t\tflex-grow: 1;\n\n\t\tpadding: 1em;\n\n\t\tborder-radius: 3px;\n\n\t\tbackground-color: #fff;\n\n\t\tcolor: #000;\n\t\tfont-size: 1em;\n\n\t\tborder: 1px solid #ddd;\n\n\n\n\t\t/* [2] Titres\n\t\t=========================================================*/\n\t\t& h6{\n\t\t\tcolor: lighten($theme-fg, 20);\n\t\t\tfont-size: 1.2em;\n\t\t\ttext-transform: uppercase;\n\t\t\tfont-weight: 300;\n\t\t\tletter-spacing: .2em;\n\n\t\t\tmargin: 0;\n\t\t\tpadding: 0;\n\n\t\t\t&:before{content:'- ';}\n\t\t\t&:after{content:' -';}\n\n\t\t\t// quand centré\n\t\t\t&.center{\n\t\t\t\ttext-align: center;\n\t\t\t}\n\t\t}\n\n\n\n\n\n\t\t/* [3][4] Boutons radio + Checkboxes\n\t\t=========================================================*/\n\t\t& input[type=\"radio\"],\n\t\t& input[type=\"checkbox\"]{\n\t\t\tdisplay: none;\n\t\t}\n\n\t\t// Label\n\t\t& input[type=\"radio\"] + label[for],\n\t\t& input[type=\"checkbox\"] + label[for]{\n\t\t\tpadding-left: .8em;\n\n\t\t\t// Pas de selection\n\t\t\t-webkit-touch-callout: none; /* iOS Safari */\n\t\t\t-webkit-user-select: none; /* Chrome/Safari/Opera */\n\t\t\t-khtml-user-select: none; /* Konqueror */\n\t\t\t-moz-user-select: none; /* Firefox */\n\t\t\t-ms-user-select: none; /* IE/Edge */\n\t\t\tuser-select: none; /* non-prefixed */\n\n\t\t\tcursor: pointer;\n\n\t\t\t// Receptacle\n\t\t\t&:before{\n\t\t\t\tcontent: '';\n\t\t\t\tdisplay: inline-block;\n\t\t\t\tposition: relative;\n\t\t\t\t\ttop: .1em;\n\t\t\t\t\tleft: -.8em;\n\t\t\t\t\twidth: calc( 1em - 2*.15em );\n\t\t\t\t\theight: calc( 1em - 2*.15em );\n\n\t\t\t\tborder-radius: 50% / 50%;\n\t\t\t\tborder: .15em solid $theme-fg-primary;\n\n\t\t\t\tbackground: #fff center center no-repeat;\n\t\t\t\tbackground-image: none;\n\t\t\t\tbackground-size: 70% auto;\n\n\t\t\t\t@include transition( background .2s ease-in-out );\n\n\t\t\t\tcursor: pointer;\n\t\t\t}\n\n\t\t\t// Animation de hover pour le texte\n\t\t\t&:hover{\n\t\t\t\ttext-decoration: underline;\n\t\t\t}\n\t\t}\n\n\t\t// Quand actif\n\t\t& input[type=\"radio\"]:checked + label[for]:before,\n\t\t& input[type=\"checkbox\"]:checked + label[for]:before{\n\t\t\tbackground-color: $theme-fg-primary;\n\t\t\tbackground-image: url('/f/svg/checked/st/container');\n\t\t}\n\n\n\t\t// Specifique a checkbox\n\t\t& input[type=\"checkbox\"] + label[for]:before{\n\t\t\tborder-radius: 3px;\n\t\t\t@include transition( border .1s ease-in-out );\n\t\t}\n\t\t& input[type=\"checkbox\"] + label[for]:hover:before{\n\t\t\tborder-color: darken($theme-fg-primary, 15);\n\t\t}\n\n\n\n\n\n\t\t/* [5] Boutons de submit\n\t\t=========================================================*/\n\t\t& input[type=\"submit\"],\n\t\t& input[type=\"button\"]{\n\t\t\tmargin: .5em 0;\n\t\t\tpadding: .3em .5em;\n\n\t\t\tborder-radius: 3px;\n\t\t\tborder: 1px solid $theme-fg;\n\n\t\t\tcolor: $theme-fg;\n\n\t\t\tbackground-color: #fff;\n\n\t\t\t@include transition( background .1s ease-in-out, color .1s ease-in-out );\n\n\t\t\t/* (1) Animation de @hover */\n\t\t\t&:hover{\n\t\t\t\tbackground-color: $theme-fg;\n\t\t\t\tcolor: #fff;\n\t\t\t}\n\n\n\t\t\t/* (2) Bouton primaire */\n\t\t\t&.primary{\n\t\t\t\tborder-color: $theme-fg-primary;\n\t\t\t\tcolor: $theme-fg-primary;\n\t\t\t\tbackground-color: #fff;\n\n\n\t\t\t\t/* (3) Animation de @hover pour bouton primaire */\n\t\t\t\t&:hover{\n\t\t\t\t\tbackground-color: $theme-fg-primary;\n\t\t\t\t\tcolor: #fff;\n\t\t\t\t}\n\t\t\t}\n\n\n\t\t}\n\n\t\t/* [6] Images inline\n\t\t=========================================================*/\n\t\t& img{\n\t\t\tmargin: 1em;\n\t\t\theight: 3em;\n\t\t}\n\n\t\t/* [7] Contour flags\n\t\t=========================================================*/\n\t\t& .flag{\n\t\t\tmargin: 0 .8em;\n\t\t\tpadding: .2em .5em;\n\n\t\t\tborder-radius: 5px;\n\t\t\tborder: 1px solid #b5b5b5;\n\n\t\t\tcolor: #555;\n\t\t\tfont-family: 'Inconsolata';\n\t\t}\n\n\n\t}\n\n}\n",
"/* [1] COULEURS\n=========================================================*/\n/* (1) COULEURS DU THEME $DEFAULT */\n$theme-bg: #e8e8e8;\n$theme-bg-primary: #ffffff;\n$theme-fg: #515151;\n$theme-fg-primary: #399ced;\n\n/* (2) COULEURS DE THEME $DARK */\n$dark-bg: #313541;\n$dark-bg-primary: #29282e;\n$dark-fg: #939393;\n$dark-fg-primary: #ffffff;\n\n$header-dark: #333333;\n\n/* (3) Couleurs du theme pour la timeline */\n$timeline-color: #738394;\n$timeline-0: #399ced;\n$timeline-1: #e64e3e;\n$timeline-2: #10baa3;\n$timeline-3: #b14be7;\n$timeline-4: #053b5d;\n\n\n/* [2] DIMENSIONS\n=========================================================*/\n/* (1) Layout de base */\n$menu-side-width: 15em;\n$header-height: 4em;\n\n\n\n/* [3] Mixins\n=========================================================*/\n@mixin transform($value...) {\n transform: $value;\n\t-moz-transform: $value;\n\t-o-transform: $value;\n\t-ms-transform: $value;\n\t-webkit-transform: $value;\n}\n\n\n@mixin transition($value...) {\n -webkit-transition: $value;\n transition: $value;\n}\n\n/* [4] Functions\n=========================================================*/\n// Transforme une couleur hex en string sans le #\n@function color-str($color){\n @return str-slice(#{$color}, 2, str-length(#{$color}));\n}\n"
],
"mappings": "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",
"mappings": "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",
"names": []
}

View File

@ -7,3 +7,34 @@
/* [2] Formulaire de type 'timeline'
=========================================================*/
@import 'timeline-form';
#WRAPPER > #CONTAINER table,
#WRAPPER > #CONTAINER > section > table{
& tr,
& > tr{
& > td{
padding: .8em;
color: #888;
font-weight: normal;
text-align: center;
white-space: nowrap;
& > input[type="checkbox"]+label[for]:before{
left: -.4em;
width: calc( 1.05em - 2*.15em );
}
}
& > td.hidden:before{
content: '+';
color: #ddd;
font-weight: bold;
}
}
}

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

10
js/includes/input-phone-matrice-min.js vendored Normal file
View File

@ -0,0 +1,10 @@
function inputPhoneMatrice(a){this.container=a}inputPhoneMatrice.prototype={container:this.container};
inputPhoneMatrice.prototype.fieldsToStorage=function(){console.log("MATRICE: FIELDS TO STORAGE");for(var a=$$("article.mini-relation-panel .mini-fiche-relation"),b=0;b<a.length;b++){var c=(new FormDeflater(a[b],["input","select"],["data-name"])).deflate(),e=crc32(JSON.stringify(c)),d=lsi.get("mini-fiches",c.uid.value);if(!1!==d){if(null!=d.hash&&d.hash==e)break;console.warn("> MINI UPDATE");c={uid:parseInt(c.uid.value),firstname:d.firstname,lastname:d.lastname,username:d.username,sexe:c.sexe,age:c.age.value,
studies:c.studies.value,reltype:c.reltype,reltypeSpecial:c.reltypeSpecial.value,loc:c.loc,hash:e};c.valid=this.check(c);0<diff(d,c).length&&(console.warn("> FICHE UPDATE"),c.timestamp=Date.now());lsi.set("mini-fiches",c.uid,c)}}};
inputPhoneMatrice.prototype.add=function(a){console.log("MINI FICHE: ADD");if(null==a||null==a.uid)return!1;a.age=null!=a.age?a.age:this.defaultData.age;a.sexe=null!=a.sexe?a.sexe:this.defaultData.sexe;a.studies=null!=a.studies?a.studies:this.defaultData.studies;a.reltype=null!=a.reltype?a.reltype:this.defaultData.reltype;a.reltypeSpecial=null!=a.reltypeSpecial?a.reltypeSpecial:this.defaultData.reltypeSpecial;a.loc=null!=a.loc?a.loc:this.defaultData.loc;var b=lsi.get("contacts",a.uid);if(!1===b)return!1;
this.container.innerHTML+=miniFicheBuilder.build({firstname:b.firstname,lastname:b.lastname,username:0==b.username.length?"":"("+b.username+")",countcall:b.countcall,countsms:b.countsms,uid:a.uid,reltypespecial:a.reltypeSpecial});b=$('article.mini-fiche-relation input[data-name="uid"][value="'+a.uid+'"] ~ h5>span>select[data-name="studies"]>option[value="'+a.studies+'"]');null!=b&&b.setAttribute("selected","selected");b=$('article.mini-fiche-relation input[data-name="uid"][value="'+a.uid+'"] ~ h5>span>select[data-name="age"]>option[value="'+
a.age+'"]');null!=b&&b.setAttribute("selected","selected");for(var c=$$('article.mini-fiche-relation input[data-name="uid"][value="'+a.uid+'"] ~ h5>input[type="radio"][data-name="sexe"]'),b=0;b<c.length&&b<a.sexe.length;b++)a.sexe[b].status?c[b].setAttribute("checked","checked"):c[b].removeAttribute("checked");c=$$('article.mini-fiche-relation input[data-name="uid"][value="'+a.uid+'"] ~ h5>input[type="radio"][data-name="reltype"]');for(b=0;b<c.length&&b<a.reltype.length;b++)a.reltype[b].status?c[b].setAttribute("checked",
"checked"):c[b].removeAttribute("checked");c=$$('article.mini-fiche-relation input[data-name="uid"][value="'+a.uid+'"] ~ h5>input[type="radio"][data-name="loc"]');for(b=0;b<c.length&&b<a.loc.length;b++)a.loc[b].status?c[b].setAttribute("checked","checked"):c[b].removeAttribute("checked")};inputPhoneMatrice.prototype.storageToFields=function(){console.log("MINI FICHE: STORAGE TO FIELDS");var a=lsi.get("mini-fiches",this.selected);this.container.innerHTML="";this.add(a);this.updateNavBar()};
inputPhoneMatrice.prototype.sync=function(){console.log("MINI FICHE: SYNC");var a=lsi["export"]("contacts"),b;for(b in a){var c=lsi.get("mini-fiches",b);null==c&&(c=this.defaultData,c.valid=!1);c.uid=a[b].uid;lsi.set("mini-fiches",b,c)}};inputPhoneMatrice.prototype.nav=function(a){if(null==a||!1===a.getData("n")||isNaN(a.getData("n"))||"nav-mini"!=a.parentNode.id)return!1;for(var b=$$("#nav-mini > span.active"),c=0;c<b.length;c++)b[c].remClass("active");a.addClass("active");this.selected=parseInt(a.getData("n"))};
inputPhoneMatrice.prototype.updateNavBar=function(){var a=lsi["export"]("mini-fiches"),b=Object.keys(a).length;if($$("#nav-mini [data-n]").length!=b){this.nav_container.innerHTML="";for(var c=0;c<b;c++)this.nav_container.innerHTML+='<span data-n="'+c+'">'+(c+1)+"</span>"}for(var e in a)b=$('#nav-mini [data-n="'+a[e].uid+'"]'),null!=b&&(!0===a[e].valid?b.addClass("done"):b.remClass("done"));this.nav($('#nav-mini [data-n="'+this.selected+'"]'))};
inputPhoneMatrice.prototype.check=function(a){return!checkRadioValue(a.sexe)||"."==a.studies||"."==a.age||!checkRadioValue(a.loc)||!checkRadioValue(a.reltype)||a.reltype[8].status&&2>a.reltypeSpecial.length?!1:!0};inputPhoneMatrice.prototype.attach=function(a){console.log("MINI FICHE: ATTACH");lsi.createDataset("mini-fiches");this.storageToFields();this.handler=a;var b=this;this.nav_container.addEventListener("click",function(a){b.nav(a.target);b.handler(a.target)},!1)};

View File

@ -0,0 +1,366 @@
/* [0] Constructeur -> définit le conteneur et le bouton d'ajout
=========================================================*/
function inputPhoneMatrice(container){
this.container = container;
}
/* [1] Attributs
=========================================================*/
inputPhoneMatrice.prototype = {
container: this.container // Conteneur de la matrice
};
/* [2] Gestion de l'enregistrement de la matrice
=========================================================*/
inputPhoneMatrice.prototype.fieldsToStorage = function(){
console.log('MATRICE: FIELDS TO STORAGE');
// {1} Pour chaque formulaire de contact présent //
var existingMiniFiches = $$('article.mini-relation-panel .mini-fiche-relation');
for( var i = 0 ; i < existingMiniFiches.length ; i++ ){
// {2} On initialise notre deflater pour récupérer les valeurs //
var deflater = new FormDeflater(existingMiniFiches[i], ['input', 'select'], ['data-name']);
// {3} On enregistre ce contact si le numéro n'est pas vide et soit pseudo/prénom/nom //
var deflated = deflater.deflate();
// On crée le hash
var deflatedHash = crc32(JSON.stringify(deflated));
// console.log(deflated);
// {4} On récupère les données du LSI si elles existent //
var existingData = lsi.get('mini-fiches', deflated.uid.value);
// Si n'existe pas, on passe à la suivante
if( existingData === false )
continue;
// {5} On récupère et met en forme les valeurs du deflater //
// Si le hash est le même, on ne fait rien
if( existingData.hash != null && existingData.hash == deflatedHash )
return;
console.warn('> MINI UPDATE');
var obj = {
uid: parseInt(deflated.uid.value),
firstname: existingData.firstname,
lastname: existingData.lastname,
username: existingData.username,
sexe: deflated.sexe, // [0] Homme, [1] Femme
age: deflated.age.value,
studies: deflated.studies.value,
reltype: deflated.reltype, // [0] ...
reltypeSpecial: deflated.reltypeSpecial.value,
loc: deflated.loc, // [0] Choix 1 -> [3] Choix 4
hash: deflatedHash
};
/* (8) On vérifie la validité des données et on l'enregistre dans l'objet avec la date de modification */
obj.valid = this.check(obj);
// On met à jour la date de modification, si on a pas qu'@uid de différent
if( diff(existingData, obj).length > 0 ){
console.warn('> FICHE UPDATE');
obj.timestamp = Date.now();
}
/* (9) On enregistre les données dans le 'localStorage' */
lsi.set('mini-fiches', obj.uid, obj);
}
};
/* [3] Gestion de l'ajout physique d'un nouveau contact
=========================================================*/
/*
*
* @objectData<Object> Objet contenant les informations nécessaires à l'affichage
*
*/
inputPhoneMatrice.prototype.add = function(objectData){
console.log('MINI FICHE: ADD');
// Si pas d'UID, on retourne une erreur
if( objectData == null || objectData.uid == null )
return false;
/* (0) Gestion du formattage des valeur */
objectData.age = (objectData.age != null) ? objectData.age : this.defaultData.age;
objectData.sexe = (objectData.sexe != null) ? objectData.sexe : this.defaultData.sexe;
objectData.studies = (objectData.studies != null) ? objectData.studies : this.defaultData.studies;
objectData.reltype = (objectData.reltype != null) ? objectData.reltype : this.defaultData.reltype;
objectData.reltypeSpecial = (objectData.reltypeSpecial != null) ? objectData.reltypeSpecial : this.defaultData.reltypeSpecial;
objectData.loc = (objectData.loc != null) ? objectData.loc : this.defaultData.loc;
// {1} On récupère username/firstname/lastname du contact associé //
var associatedContact = lsi.get('contacts', objectData.uid);
// Si on ne trouve pas le contact, on ne fais rien
if( associatedContact === false )
return false;
// {2} Création physique //
this.container.innerHTML += miniFicheBuilder.build({
firstname: associatedContact.firstname,
lastname: associatedContact.lastname,
username: (associatedContact.username.length==0) ? '' : '('+associatedContact.username+')',
countcall: associatedContact.countcall,
countsms: associatedContact.countsms,
uid: objectData.uid,
reltypespecial: objectData.reltypeSpecial
});
/* {3} On sélectionne la valeur dans le select (manuellement) de la PROFESSION */
var selectedOption = $('article.mini-fiche-relation input[data-name="uid"][value="'+objectData.uid+'"] ~ h5>span>select[data-name="studies"]>option[value="'+objectData.studies+'"]');
if( selectedOption != null )
selectedOption.setAttribute('selected', 'selected');
/* {4} On sélectionne la valeur dans le select (manuellement) de l'AGE */
selectedOption = $('article.mini-fiche-relation input[data-name="uid"][value="'+objectData.uid+'"] ~ h5>span>select[data-name="age"]>option[value="'+objectData.age+'"]');
if( selectedOption != null )
selectedOption.setAttribute('selected', 'selected');
/* {5} On sélectionna la valeur des boutons <radio> pour le SEXE */
var sexeCreated = $$('article.mini-fiche-relation input[data-name="uid"][value="'+objectData.uid+'"] ~ h5>input[type="radio"][data-name="sexe"]');
for( var i = 0 ; i < sexeCreated.length && i < objectData.sexe.length ; i++ )
if( objectData.sexe[i].status ) sexeCreated[i].setAttribute('checked', 'checked');
else sexeCreated[i].removeAttribute('checked');
/* {6} On sélectionna la valeur des boutons <radio> pour le TYPE DE RELATION */
var reltypeCreated = $$('article.mini-fiche-relation input[data-name="uid"][value="'+objectData.uid+'"] ~ h5>input[type="radio"][data-name="reltype"]');
for( var i = 0 ; i < reltypeCreated.length && i < objectData.reltype.length ; i++ )
if( objectData.reltype[i].status ) reltypeCreated[i].setAttribute('checked', 'checked');
else reltypeCreated[i].removeAttribute('checked');
/* {7} On sélectionna la valeur des boutons <radio> pour la LOCATION */
var locCreated = $$('article.mini-fiche-relation input[data-name="uid"][value="'+objectData.uid+'"] ~ h5>input[type="radio"][data-name="loc"]');
for( var i = 0 ; i < locCreated.length && i < objectData.loc.length ; i++ )
if( objectData.loc[i].status ) locCreated[i].setAttribute('checked', 'checked');
else locCreated[i].removeAttribute('checked');
};
/* [4] Gestion de l'affichage depuis le 'localStorage'
=========================================================*/
inputPhoneMatrice.prototype.storageToFields = function(){
console.log('MINI FICHE: STORAGE TO FIELDS');
// {1} Pour chaque contact du 'localStorage' //
var miniData = lsi.get('mini-fiches', this.selected);
// On réinitialise le HTML
this.container.innerHTML = '';
// {2} On affiche la MINI fiche sélectionnée //
this.add(miniData);
// {3} On met à jour la navigation //
this.updateNavBar();
};
/* [5] Synchronisation des CONTACT vers les MINI fiches
=========================================================*/
inputPhoneMatrice.prototype.sync = function(){
console.log('MINI FICHE: SYNC');
/* (1) On récupère les clés de tous les CONTACTS */
var contactData = lsi.export('contacts');
/* (2) Pour chaque CONTACT, on met à jour/crée la MINI fiche associée */
for( var key in contactData ){
/* (3) On récupère les informations de la MINI (si elle existe) */
var miniData = lsi.get('mini-fiches', key);
/* (4) Si la MINI fiche n'exise pas, on la crée avec les valeurs par défaut */
if( miniData == null ){
miniData = this.defaultData;
miniData.valid = false;
}
/* (5) On met à jour la MINI fiche */
miniData.uid = contactData[key].uid;
/* (6) On enregistre les modification */
lsi.set('mini-fiches', key, miniData);
}
};
/* [6] Gestion de la navigation entre les fiches
=========================================================*/
inputPhoneMatrice.prototype.nav = function(element){
/* (1) On vérifie que l'élément contient un nombre et existe */
if( element == null )
return false;
if( element.getData('n') === false || isNaN(element.getData('n')) || element.parentNode.id != 'nav-mini' )
return false;
/* (2) On désactive tous les éléments actifs */
var activeElements = $$('#nav-mini > span.active');
for( var i = 0 ; i < activeElements.length ; i++ )
activeElements[i].remClass('active');
/* (3) On active l'élément courant */
element.addClass('active');
this.selected = parseInt(element.getData('n'));
};
/* [7] Mise à jour de la navigation
=========================================================*/
inputPhoneMatrice.prototype.updateNavBar = function(){
var miniData = lsi.export('mini-fiches');
var len = Object.keys(miniData).length;
/* (1) On vérifie si la barre de navigation est à jour */
var navBarUpToDate = $$('#nav-mini [data-n]').length == len;
/* (2) On vide et remplit la barre de nav, si elle n'est pas à jour */
if( !navBarUpToDate ){
this.nav_container.innerHTML = '';
for( var i = 0 ; i < len ; i++ )
this.nav_container.innerHTML += '<span data-n="'+i+'">'+(i+1)+'</span>';
}
/* (3) On montre les MINI fiches qui sont correctes dans la navbar */
for( var key in miniData ){
var currentElement = $('#nav-mini [data-n="'+miniData[key].uid+'"]');
if( currentElement == null )
continue;
// On remplit avec le numéro de la MINI fiche
// currentElement.setAttribute('data-n', miniData[key].uid);
// currentElement.innerHTML = miniData[key].uid + 1;
// Si la MINI fiche est valide
if( miniData[key].valid === true ) currentElement.addClass('done');
// Si elle est invalide
else currentElement.remClass('done');
}
/* (4) On séléctionne par défaut la dernière MINI fiche sélectionnée */
this.nav( $('#nav-mini [data-n="'+this.selected+'"]') );
};
/* [8] Vérification des données du formulaire
=========================================================*/
inputPhoneMatrice.prototype.check = function(miniData){
// 1. Le sexe est défini
if( !checkRadioValue(miniData.sexe) )
return false;
// 2. Le métier est défini
if( miniData.studies == '.' )
return false;
// 3. L'age est définie
if( miniData.age == '.' )
return false;
// 4. La distance de localisation est définie
if( !checkRadioValue(miniData.loc) )
return false;
// 5. Le TYPE DE RELATION a un et un seul choix
if( !checkRadioValue(miniData.reltype) )
return false;
// 6. TYPE DE RELATION si autre est coché (indice 8), reltypeSpecial doit avoir au moins 2 caractère
if( miniData.reltype[8].status && miniData.reltypeSpecial.length < 2 )
return false;
// Si aucune erreur, tout est ok
return true;
};
/* [9] Point d'amorçage de la gestion des contacts
=========================================================*/
inputPhoneMatrice.prototype.attach = function(handler){
console.log('MINI FICHE: ATTACH');
/* (1) On initialise le jeu de données */
lsi.createDataset('mini-fiches');
/* (2) On charge les mini fiches depuis la mémoire ('localStorage') */
this.storageToFields();
/* (3) On attache la barre de navigation à une fonction */
// On enregistre le handler
this.handler = handler;
/* (2) On attache l'évènement sur le conteneur de navigation */
var ptr = this;
this.nav_container.addEventListener('click', function(e){
// 1. On gère la navigation
ptr.nav(e.target);
// 2. On gere le chargement dynamique
ptr.handler(e.target);
}, false);
};

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -120,15 +120,72 @@
<article class='relation-panel'></article>
<span data-space></span>
<!-- MATRICE RELATIONNELLE DES 2 TOP 10 -->
<h3 data-n='5' class='color4'>Saisir les matrices des relations entre les contacts les plus contactés</h3>
<!-- NAVIGATION ENTRE LES FICHES -->
<article class='matrice-panel'>
<table class='line'>
<?php
$contacts = array(
array(1, 'Sujet', 'Un' ),
array(2, 'Sujet', 'Deux' ),
array(3, 'Sujet', 'Trois' ),
array(4, 'Sujet', 'Quatre' ),
array(5, 'Sujet', 'Cinq' ),
array(6, 'Sujet', 'Six' ),
array(7, 'Sujet', 'Sept' ),
array(8, 'Sujet', 'Huit' ),
array(9, 'Sujet', 'Neuf' ),
array(10, 'Sujet', 'Dix' ),
array(11, 'Sujet', 'Onze' ),
array(12, 'Sujet', 'Douze' ),
array(13, 'Sujet', 'Treize' ),
array(14, 'Sujet', 'Quatorze'),
array(15, 'Sujet', 'Quinze' ),
array(16, 'Sujet', 'Seize' ),
array(17, 'Sujet', 'Dix-sept'),
array(18, 'Sujet', 'Dix-huit'),
array(19, 'Sujet', 'Dix-neuf'),
array(20, 'Sujet', 'Vingt' )
);
foreach($contacts as $A=>$contactA){
echo '<tr>';
if( $A > 0 )
echo '<td style="text-align: right;">'.$contactA[1].' '.$contactA[2].'</td>';
else
echo '<td></td>';
foreach($contacts as $B=>$contactB){ if( $B < count($contacts)-1 ){
if( $A == 0 )
echo '<td><span style="writing-mode: vertical-lr; text-align: right;">'.$contactB[1].' '.$contactB[2].'</span>';
else if( $B < $A )
echo "<td><input type='checkbox' name='matrice_$A"."_$B' data-name='$A' value='$B' id='matrice_$A"."_$B'><label for='matrice_$A"."_$B' title='matrice_$A"."_$B'></label>";
else
echo "<td class='hidden'>";
echo '</td>';
}}
echo '</tr>';
}
?>
</table>
<h4 class='self color2' data-icon=''>
<input type='submit' class='primary' id='store-matrice' value='Enregistrer les relations'>
</h4>
</article>
<!-- BOUTON D'ENVOI DU FORMULAIRE -->
<h3 data-n='5' class='color4'>Envoi des données</h3>
<article class='submit-panel'>
<h4>
<input type='submit' class='line' value='Envoyer le formulaire' id='submit-all'>
</h4>
</article>
<!-- BOUTON D'ENVOI DU FORMULAIRE -->
<h3 data-n='6' class='color4'>Envoi des données</h3>
<article class='submit-panel'>
<h4>
<input type='submit' class='line' value='Envoyer le formulaire' id='submit-all'>
</h4>
</article>

18
view/js/input-min.js vendored
View File

@ -1,12 +1,12 @@
var clearAllButton=$("#clear-all"),submitAllButton=$("#submit-all"),importCallLog=$('input#call_log-import[type="file"]'),subjectManager,contactManager,miniManager,ficheManager,defTrue={status:!0,value:"on"},defFalse={status:!1,value:"on"};
var subjectManager,contactManager,miniManager,ficheManager,defTrue={status:!0,value:"on"},defFalse={status:!1,value:"on"};
function dynamicUpdate(a){var b=a instanceof Element,e=b&&"SPAN"==a.tagName&&"switch-left"==a.className,f=b&&"SPAN"==a.tagName&&"switch-both"==a.className,c=b&&"INPUT"==a.tagName&&"submit"==a.type,d=b&&"SPAN"==a.tagName&&("nav-mini"==a.parentNode.id||"nav-fiche"==a.parentNode.id),b=b&&"SPAN"==a.tagName&&"nav-contact"==a.parentNode.id;if(!(f||e||c||d||b)&&!0!==a)return!1;if(f)console.log("> switch firstname <-> lastname"),e=a.parentNode,a=e.children[8],e=e.children[10],f=a.value,a.value=e.value,e.value=
f;else if(e){console.log("> switch firstname+lastname -> username");e=a.parentNode;f=e.children[6];a=e.children[8];e=e.children[10];if(0<f.value.length||0==a.value.length&&0==e.value.length)return!1;f.value=a.value+" "+e.value;a.value="";e.value=""}else console.log("> dynamic update"),miniManager.fieldsToStorage(),ficheManager.fieldsToStorage(),contactManager.fieldsToStorage(),miniManager.sync(),ficheManager.sync(),miniManager.storageToFields(),ficheManager.storageToFields(),(c||b)&&contactManager.storageToFields()}
function checkRadioValue(a){for(var b=0,e=0;e<a.length;e++)!0===a[e].status&&b++;return 1!=b?!1:!0}
include("/js/includes/input-phone-subject.js",function(){include("/js/includes/input-phone-contact.js",function(){include("/js/includes/input-phone-mini.js",function(){include("/js/includes/input-phone-fiche.js",function(){subjectManager=new inputPhoneSubject($('article.subject-panel [data-name="number"]'),$('article.subject-panel [data-name="username"]'),$('article.subject-panel [data-name="firstname"]'),$('article.subject-panel [data-name="lastname"]'),$('article.subject-panel [data-name="submit"]'));
subjectManager.attach();contactManager=new inputPhoneContact($("article.contact-panel"),$("#nav-contact"));contactManager.attach(dynamicUpdate);miniManager=new inputPhoneMini($("article.mini-relation-panel"),$("#nav-mini"));miniManager.attach(dynamicUpdate);ficheManager=new inputPhoneFiche($("article.relation-panel"),$("#nav-fiche"));ficheManager.attach(dynamicUpdate);importCallLog.addEventListener("change",function(a){a={path:"upload/call_log",phone_number:$("#subject_phone_number").value,file:importCallLog.files[0]};
api.send(a,function(b){console.log(b);if(0==b.ModuleError){for(var a=0,f=[],c=0;c<b.calls.length&&10>c;c++)f.push(b.calls[c].number);for(c=0;c<f.length;c++){var d=b.directory[f[c]].name.split(" ");lsi.set("contacts",a,{uid:a,number:f[c],username:1==d.length?d[0]:"",firstname:1<d.length?d[0]:"",lastname:1<d.length?d.splice(1).join(" "):"",countsms:b.directory[f[c]].sms,countcall:b.directory[f[c]].calls,call:c,sms:-1});a++}for(var g=[],c=0;c<b.sms.length&&10>c;c++)g.push(b.sms[c].number);for(c=0;c<
g.length;c++)if(d=f.indexOf(g[c]),-1<d){var k=lsi.get("contacts",d);k.sms=c;lsi.set("contacts",d,k)}else d=b.directory[g[c]].name.split(" "),lsi.set("contacts",a,{uid:a,number:g[c],username:1==d.length?d[0]:"",firstname:1<d.length?d[0]:"",lastname:1<d.length?d.splice(1).join(" "):"",countsms:b.directory[g[c]].sms,countcall:b.directory[g[c]].calls,call:-1,sms:c}),a++;for(var h in b.directory)-1<f.indexOf(h)||-1<g.indexOf(h)||(d=(null===b.directory[h].name?"":b.directory[h].name).split(" "),lsi.set("contacts",
a,{uid:a,number:h,username:1==d.length?d[0]:"",firstname:1<d.length?d[0]:"",lastname:1<d.length?d.splice(1).join(" "):"",countsms:b.directory[h].sms,countcall:b.directory[h].calls,call:-1,sms:-1}),a++);contactManager.storageToFields();dynamicUpdate(!0)}})},!1);clearAllButton.addEventListener("click",function(a){lsi.clear("subject");lsi.clear("contacts");lsi.clear("mini-fiches");lsi.clear("fiches");subjectManager.storageToFields();contactManager.storageToFields();miniManager.storageToFields();ficheManager.storageToFields()},
!1);$("#export-all").addEventListener("click",function(a){a={subject:lsi["export"]("subject")[0],contacts:lsi["export"]("contacts"),mini:lsi["export"]("mini-fiches"),fiches:lsi["export"]("fiches")};var b=$("#download-target");b.download="local-data.json";b.href="data:application/octet-stream,"+encodeURIComponent(JSON.stringify(a));b.click()},!1);$("#import-all").addEventListener("click",function(a){$("#local-upload").click()},!1);$("#local-upload").addEventListener("change",function(a){a={path:"upload/local_data",
file:$("#local-upload").files[0]};api.send(a,function(a){console.log(a);if(0!=a.ModuleError)return!1;lsi.set("subject",0,a.local_data.subject);lsi["import"]("contacts",a.local_data.contacts);lsi["import"]("mini-fiches",a.local_data.mini);lsi["import"]("fiches",a.local_data.fiches);subjectManager.storageToFields();contactManager.storageToFields();dynamicUpdate(!0)})},!1);submitAllButton.addEventListener("click",function(a){console.log("> GATHERING ALL DATA");subjectManager.fieldsToStorage();contactManager.fieldsToStorage();
miniManager.fieldsToStorage();ficheManager.fieldsToStorage();a={path:"input/phone",subject:lsi["export"]("subject")[0],contacts:lsi["export"]("contacts"),mini:lsi["export"]("mini-fiches"),fiches:lsi["export"]("fiches")};api.send(a,function(a){console.log(a)},!1)},!1)})})})});
include("/js/includes/input-phone-subject.js",function(){include("/js/includes/input-phone-contact.js",function(){include("/js/includes/input-phone-mini.js",function(){include("/js/includes/input-phone-fiche.js",function(){include("/js/includes/input-phone-matrice.js",function(){subjectManager=new inputPhoneSubject($('article.subject-panel [data-name="number"]'),$('article.subject-panel [data-name="username"]'),$('article.subject-panel [data-name="firstname"]'),$('article.subject-panel [data-name="lastname"]'),
$('article.subject-panel [data-name="submit"]'));subjectManager.attach();contactManager=new inputPhoneContact($("article.contact-panel"),$("#nav-contact"));contactManager.attach(dynamicUpdate);miniManager=new inputPhoneMini($("article.mini-relation-panel"),$("#nav-mini"));miniManager.attach(dynamicUpdate);ficheManager=new inputPhoneFiche($("article.relation-panel"),$("#nav-fiche"));ficheManager.attach(dynamicUpdate);$('input#call_log-import[type="file"]').addEventListener("change",function(a){a={path:"upload/call_log",
phone_number:$("#subject_phone_number").value,file:a.target.files[0]};api.send(a,function(b){console.log(b);if(0==b.ModuleError){for(var a=0,f=[],c=0;c<b.calls.length&&10>c;c++)f.push(b.calls[c].number);for(c=0;c<f.length;c++){var d=b.directory[f[c]].name.split(" ");lsi.set("contacts",a,{uid:a,number:f[c],username:1==d.length?d[0]:"",firstname:1<d.length?d[0]:"",lastname:1<d.length?d.splice(1).join(" "):"",countsms:b.directory[f[c]].sms,countcall:b.directory[f[c]].calls,call:c,sms:-1});a++}for(var g=
[],c=0;c<b.sms.length&&10>c;c++)g.push(b.sms[c].number);for(c=0;c<g.length;c++)if(d=f.indexOf(g[c]),-1<d){var k=lsi.get("contacts",d);k.sms=c;lsi.set("contacts",d,k)}else d=b.directory[g[c]].name.split(" "),lsi.set("contacts",a,{uid:a,number:g[c],username:1==d.length?d[0]:"",firstname:1<d.length?d[0]:"",lastname:1<d.length?d.splice(1).join(" "):"",countsms:b.directory[g[c]].sms,countcall:b.directory[g[c]].calls,call:-1,sms:c}),a++;for(var h in b.directory)-1<f.indexOf(h)||-1<g.indexOf(h)||(d=(null===
b.directory[h].name?"":b.directory[h].name).split(" "),lsi.set("contacts",a,{uid:a,number:h,username:1==d.length?d[0]:"",firstname:1<d.length?d[0]:"",lastname:1<d.length?d.splice(1).join(" "):"",countsms:b.directory[h].sms,countcall:b.directory[h].calls,call:-1,sms:-1}),a++);contactManager.storageToFields();dynamicUpdate(!0)}})},!1);$("#clear-all").addEventListener("click",function(a){lsi.clear("subject");lsi.clear("contacts");lsi.clear("mini-fiches");lsi.clear("fiches");subjectManager.storageToFields();
contactManager.storageToFields();miniManager.storageToFields();ficheManager.storageToFields()},!1);$("#export-all").addEventListener("click",function(a){a={subject:lsi["export"]("subject")[0],contacts:lsi["export"]("contacts"),mini:lsi["export"]("mini-fiches"),fiches:lsi["export"]("fiches")};var b=$("#download-target");b.download="local-data.json";b.href="data:application/octet-stream,"+encodeURIComponent(JSON.stringify(a));b.click()},!1);$("#import-all").addEventListener("click",function(a){$("#local-upload").click()},
!1);$("#local-upload").addEventListener("change",function(a){a={path:"upload/local_data",file:$("#local-upload").files[0]};api.send(a,function(a){console.log(a);if(0!=a.ModuleError)return!1;lsi.set("subject",0,a.local_data.subject);lsi["import"]("contacts",a.local_data.contacts);lsi["import"]("mini-fiches",a.local_data.mini);lsi["import"]("fiches",a.local_data.fiches);subjectManager.storageToFields();contactManager.storageToFields();dynamicUpdate(!0)})},!1);$("#submit-all").addEventListener("click",
function(a){console.log("> GATHERING ALL DATA");subjectManager.fieldsToStorage();contactManager.fieldsToStorage();miniManager.fieldsToStorage();ficheManager.fieldsToStorage();a={path:"input/phone",subject:lsi["export"]("subject")[0],contacts:lsi["export"]("contacts"),mini:lsi["export"]("mini-fiches"),fiches:lsi["export"]("fiches")};api.send(a,function(a){console.log(a)},!1)},!1)})})})})});

View File

@ -3,21 +3,12 @@
// contacts -> contient les données de tous les contacts
// mini-fiches -> contient les données de toutes les mini fiches
// fiches -> contient les données de toutes les fiches
// matrice -> contient les relations de la matrice
/* [1] Initialisation des utilitaires et variables
=========================================================*/
/* (1) Boutons primaires */
// {1} pour effacer toutes les données //
var clearAllButton = $('#clear-all');
// {2} pour envoyer toutes les données //
var submitAllButton = $('#submit-all');
/* (2) Input de type fichier pour l'import */
var importCallLog = $('input#call_log-import[type="file"]');
/* (3) Initialisation des managers */
=========================================================*
/* (1) Initialisation des managers */
var subjectManager;
var contactManager;
var miniManager;
@ -28,7 +19,7 @@ var defTrue = {status: true, value: 'on'};
var defFalse = {status: false, value: 'on'};
/* (4) Fonctions utiles */
/* (2) Fonctions utiles */
function dynamicUpdate(target){
@ -119,7 +110,7 @@ function dynamicUpdate(target){
}
}
// Vérifie qu'une seule valeur vaut TRUE et les autres false
// Vérifie qu'une seule valeur vaut TRUE et les autres false (objet deflated de type <radio> )
function checkRadioValue(selectData){
var nbTrue = 0;
for( var i = 0 ; i < selectData.length ; i++ )
@ -154,8 +145,9 @@ function checkRadioValue(selectData){
=========================================================*/
include('/js/includes/input-phone-subject.js', function(){
include('/js/includes/input-phone-contact.js', function(){
include('/js/includes/input-phone-mini.js', function(){
include('/js/includes/input-phone-fiche.js', function(){
include('/js/includes/input-phone-mini.js', function(){
include('/js/includes/input-phone-fiche.js', function(){
include('/js/includes/input-phone-matrice.js', function(){
/* (1) Gestion du formulaire du sujet
@ -224,12 +216,12 @@ include('/js/includes/input-phone-fiche.js', function(){
/* (5) Gestion de l'import du fichier
---------------------------------------------------------*/
importCallLog.addEventListener('change', function(e){
$('input#call_log-import[type="file"]').addEventListener('change', function(e){
/* (1) On rédige la requête */
var request = {
path: 'upload/call_log',
phone_number: $('#subject_phone_number').value,
file: importCallLog.files[0]
file: e.target.files[0]
};
/* (2) On effectue l'upload (import) */
@ -350,7 +342,7 @@ include('/js/includes/input-phone-fiche.js', function(){
/* (6) Gestion de l'effacement des données locales
---------------------------------------------------------*/
clearAllButton.addEventListener('click', function(e){
$('#clear-all').addEventListener('click', function(e){
/* (1) On vide tous les dataset de données */
lsi.clear('subject');
lsi.clear('contacts');
@ -433,7 +425,7 @@ include('/js/includes/input-phone-fiche.js', function(){
/* (9) Gestion de la validation et de l'envoi des données
---------------------------------------------------------*/
submitAllButton.addEventListener('click', function(e){
$('#submit-all').addEventListener('click', function(e){
console.log('> GATHERING ALL DATA');
/* (1) On met dans la mémoire tout les champs non enregistrés */
@ -462,20 +454,4 @@ include('/js/includes/input-phone-fiche.js', function(){
}); }); }); });
// var number = $('input.number[type="text"]');
// ic.append(number, format_number, '06 06 06 06 06');
// // format_number -> format pour les numéros de téléphones
//
// number.addEventListener('keyup', function(e){
// ic.correct(number, false);
// }, false);
}); }); }); }); });