diff --git a/static/css/combo-style.css b/static/css/combo-style.css new file mode 100644 index 0000000..7d2a67b --- /dev/null +++ b/static/css/combo-style.css @@ -0,0 +1,782 @@ +html, body { + padding: 0; + margin: 0; + font-family: sans-serif; + font-size: 12px; + background: white; + color: #333; +} + + +a { + color: #008; + text-decoration: none; + border-bottom: 1px dotted #008 +} + +a:hover { + border-bottom-style: solid; +} + +.container { + position: relative; + margin: 0 auto; + max-width: 1170px; +} + +#title { + margin-left: 10px; +} + +#title a { + border: none; +} + +#menu { + position: absolute; + top: 50px; + right: 10px; +} + +#menu ul { + list-style: none; + padding: 0; + margin: 0; +} + +#menu ul li { + display: inline-block; + margin-right: 2em; + font-size: 110%; +} + +@media(min-width:1100px) { #menu ul li { font-size: 130%; } } + +#menu ul li a { + text-decoration: none; + color: #33a; + border: none; +} + +#menu ul li a:hover { + border-bottom: 1px dotted #ccf; +} + +div.textcell.intro { + position: relative; + width: 100%; + max-width: 100%; + height: 500px; + overflow: hidden; + background: url(../img/tram.jpg) no-repeat 50% 60%; + background-size: cover; + border: none; +} + +div.intro > div { + width: 600px; + padding: 20px; + margin: 0 auto; + position: absolute; + left: 0; + right: 0; + bottom: 50px; + background: rgba(255, 255, 255, 0.9); + border-radius: 3px; + font-size: 120%; +} + +@media(max-width: 668px) { div.intro > div { width: 90%; } } + +div.textcell ul li { + margin-top: 1ex; +} + +div#content { + text-align: center; +} + +div.textcell.module-citoyen, +div.textcell.module-metier, +div.textcell.module-parametrage { + width: 280px; /* TODO: add @media queries */ + margin: 2em 1em; + display: inline-block; + text-align: center; + border: none; +} + +div.textcell.module-citoyen p, +div.textcell.module-metier p, +div.textcell.module-parametrage p { + margin: 0; +} + +div.textcell.module-citoyen a, +div.textcell.module-metier a, +div.textcell.module-parametrage a { + display: block; + position: relative; + padding: 160px 20px 20px 20px; + overflow: none; + font-size: 130%; + -moz-transition-property: background, padding, top, right; + -moz-transition-duration: 0.7s; + -moz-transition-timing-function: ease; + -webkit-transition-property: background, padding, top, right; + -webkit-transition-duration: 0.7s; + -webkit-transition-timing-function: ease; + text-decoration: none; + color: #333; + background: rgba(255, 255, 255, 0.5); + top: 5px; + border: none; +} + +div.textcell.module-citoyen a:hover, +div.textcell.module-metier a:hover, +div.textcell.module-parametrage a:hover { + background: rgba(255, 255, 255, 0.3); + top: 20px; + border: none; +} + +div.textcell.module-citoyen { + background: url(../img/citoyens.png) no-repeat 50% 50%; +} + +div.textcell.module-metier { + background: url(../img/metier.png) no-repeat 50% 50%; +} + +div.textcell.module-parametrage { + background: url(../img/parametrage.png) no-repeat 50% 50%; +} + +@media(max-width: 968px) { + div.textcell.module-citoyen, div.textcell.module-metier, div.textcell.module-parametrage { + width: 90%; + margin: 2em auto; + display: block; + background-position: 0% 50%; + border: 1px solid #ccc; + } + div.textcell.module-citoyen a, + div.textcell.module-metier a, + div.textcell.module-parametrage a { + padding: 20px 20px 20px 200px; + text-align: left; + top: 0; + right: 0; + } + div.textcell.module-citoyen a:hover, + div.textcell.module-metier a:hover, + div.textcell.module-parametrage a:hover { + top: 0; + right: 10px; + } +} + + +div.textcell img { + max-width: 100%; +} + +div.textcell.schema-general { + border-top: 1px solid #ddd; + padding: 2em 0; +} + +div.textcell { + clear: both; + text-align: justify; + width: 90%; + max-width: 1070px; + margin: 0 auto; + line-height: 150%; + border-bottom: 1px solid #ddd; +} + +div.textcell h1, +div.textcell h2 { + color: #333; + font-weight: normal; +} + +div.se-voir h2, div.se-parler h2, +div.textcell.prix-vincennes h1, div.textcell.prix-vincennes h2, +div.textcell.prix-montpellier h1, div.textcell.prix-montpellier h2, +div.textcell.guichet-unique h1, div.textcell.guichet-unique h2, +div.textcell.fabrique-workflows h1, div.textcell.fabrique-workflows h2, +div.textcell.federation-identite h1, div.textcell.federation-identite h2, +div.textcell.cms h1, div.textcell.cms h2, +div.textcell.administration h1, div.textcell.administration h2, +div.textcell.compte-citoyen h1, div.textcell.compte-citoyen h2, +div.textcell.mobilite h1, div.textcell.mobilite h2, +div.textcell.opendata h1, div.textcell.opendata h2, +div.textcell.libre h1, div.textcell.libre h2 { + color: #eee; +} + +div.se-voir a, div.se-parler a, +div.textcell.prix-vincennes a, +div.textcell.prix-montpellier a, +div.textcell.guichet-unique a, +div.textcell.fabrique-workflows a, +div.textcell.federation-identite a, +div.textcell.cms a, +div.textcell.administration a, +div.textcell.compte-citoyen a, +div.textcell.mobilite a, +div.textcell.opendata a, +div.textcell.libre a { + color: #fff; + border-bottom-color: #fff; +} + + +div.textcell.tablette, +div.textcell.prix-montpellier, +div.textcell.prix-vincennes, +div.textcell.guichet-unique, +div.textcell.fabrique-workflows, +div.textcell.federation-identite, +div.textcell.cms, +div.textcell.administration, +div.textcell.compte-citoyen, +div.textcell.mobilite, +div.textcell.opendata, +div.textcell.libre { + width: 100%; + max-width: 100%; + background: #646871; + color: #eee; + padding: 100px 0; + font-size: 110%; +} + +div.textcell.prix-montpellier > div, +div.textcell.prix-vincennes > div, +div.textcell.guichet-unique > div, +div.textcell.fabrique-workflows > div, +div.textcell.federation-identite > div, +div.textcell.cms > div, +div.textcell.administration > div, +div.textcell.compte-citoyen > div, +div.textcell.mobilite > div, +div.textcell.opendata > div, +div.textcell.libre > div { + background: url(../img/libre.png) no-repeat top right; + width: calc(90% - 240px); + padding-right: 240px; + max-width: calc(1070px - 240px); + margin: 0 auto; +} + +div.textcell.opendata > div { + background-image: url(../img/data.png); +} + +div.textcell.libre > div, +div.textcell.opendata > div { +} + +div.textcell.bistro { + background: url(../img/gourou.png) no-repeat 0 10%; +} + +div.textcell.bistro > div { + background: url(../img/expert.png) no-repeat 0 90%; +} + +div.textcell.bi > div, +div.textcell.webservices > div, +div.textcell.annonces > div, +div.textcell.fabrique-formulaires > div, +div.textcell.porte-document > div, +div.textcell.demarches > div, +div.textcell.bistro > div { + padding-left: 240px; +} + +div#suite p, +div#footer { + background: #333; + color: #eee; +} + +div#suite p a, +div#footer a { + color: white; + border-bottom-color: white; +} + +div#footer { + border-bottom: 2px solid #aaa; + width: 100%; + position: relative; + padding: 0; + margin: 0; +} + +div#suite { + text-align: right; + border-bottom: none; + height: 0; + padding: 0; +} + +div#suite > div > p { + margin: 0; + display: inline-block; + vertical-align: center; + height: 30px; + position: relative; + top: -39px; + padding: 10px 10px 10px 10px; + height: 100%; + border: 1px solid #ddd; + border-bottom: none; +} + +div#suite a { +} + + +#footer p { + margin: 0; +} + +a#goto-top { + text-decoration: none; + color: white; + background: #666; + font-size: 200%; + font-weight: bold; + padding: 0.5ex 1ex; + position: absolute; + bottom: 5px; + right: 5px; +} + +a#goto-top:hover { + background: #444; +} + +p#eo-link { + padding-top: 2em; + padding-bottom: 2em; + font-size: 110%; +} + +p#eo-address { + padding-bottom: 2ex; +} + +a.legal { + position: absolute; + right: 5px; +} + +.page-citoyens div.textcell.intro { + background-image: url(../img/fontaine3.jpg); +} + +.page-metier div.textcell.intro { + background-image: url(../img/ouvrier.jpg); +} + +.page-parametrage div.textcell.intro { + background-image: url(../img/circuits.jpg); +} + +.page-references div.textcell.intro { + background-image: url(../img/references.jpg); +} + +.page-contact div.textcell.intro { + background-image: url(../img/contact.jpg); +} + +.page-mentions-legales div.textcell.intro { + background-image: url(../img/mentions-legales.jpg); +} + +div.intro img { + display: none; +} + +div.textcell.lien-administration, +div.textcell.lien-annonces, +div.textcell.lien-bi, +div.textcell.lien-cms, +div.textcell.lien-compte-citoyen, +div.textcell.lien-demarches, +div.textcell.lien-fabrique-formulaires, +div.textcell.lien-fabrique-workflows, +div.textcell.lien-federation-identite, +div.textcell.lien-guichet-unique, +div.textcell.lien-mobilite, +div.textcell.lien-porte-document, +div.textcell.lien-webservices { + width: 180px; /* TODO: add @media queries */ + margin: 0em 1em 2em 1em; + display: inline-block; + text-align: center; + border: none; + background: url(../img/compte-citoyen.png) no-repeat 50% 50%; +} + +div.textcell.lien-administration p, +div.textcell.lien-annonces p, +div.textcell.lien-bi p, +div.textcell.lien-cms p, +div.textcell.lien-compte-citoyen p, +div.textcell.lien-demarches p, +div.textcell.lien-fabrique-formulaires p, +div.textcell.lien-fabrique-workflows p, +div.textcell.lien-federation-identite p, +div.textcell.lien-guichet-unique p, +div.textcell.lien-mobilite p, +div.textcell.lien-porte-document p, +div.textcell.lien-webservices p { + margin: 0; +} + +div.textcell.lien-administration a, +div.textcell.lien-annonces a, +div.textcell.lien-bi a, +div.textcell.lien-cms a, +div.textcell.lien-compte-citoyen a, +div.textcell.lien-demarches a, +div.textcell.lien-fabrique-formulaires a, +div.textcell.lien-fabrique-workflows a, +div.textcell.lien-federation-identite a, +div.textcell.lien-guichet-unique a, +div.textcell.lien-mobilite a, +div.textcell.lien-porte-document a, +div.textcell.lien-webservices a { + display: block; + position: relative; + padding: 110px 20px 20px 20px; + overflow: none; + font-size: 130%; + -moz-transition-property: background, padding, top, right; + -moz-transition-duration: 0.7s; + -moz-transition-timing-function: ease; + -webkit-transition-property: background, padding, top, right; + -webkit-transition-duration: 0.7s; + -webkit-transition-timing-function: ease; + text-decoration: none; + color: #333; + background: rgba(255, 255, 255, 0.5); + top: 5px; + border-bottom: none; +} + +div.textcell.lien-administration a:hover, +div.textcell.lien-annonces a:hover, +div.textcell.lien-bi a:hover, +div.textcell.lien-cms a:hover, +div.textcell.lien-compte-citoyen a:hover, +div.textcell.lien-demarches a:hover, +div.textcell.lien-fabrique-formulaires a:hover, +div.textcell.lien-fabrique-workflows a:hover, +div.textcell.lien-federation-identite a:hover, +div.textcell.lien-guichet-unique a:hover, +div.textcell.lien-mobilite a:hover, +div.textcell.lien-porte-document a:hover, +div.textcell.lien-webservices a:hover { + background: rgba(255, 255, 255, 0.3); + top: 10px; +} + +div.textcell.lien-administration { background-image: url(../img/administration.png); } +div.textcell.lien-annonces { background-image: url(../img/annonces.png); } +div.textcell.lien-bi { background-image: url(../img/bi.png); } +div.textcell.lien-cms { background-image: url(../img/cms.png); } +div.textcell.lien-compte-citoyen { background-image: url(../img/compte-citoyen.png); } +div.textcell.lien-demarches { background-image: url(../img/demarches.png); } +div.textcell.lien-fabrique-formulaires { background-image: url(../img/fabrique-formulaires.png); } +div.textcell.lien-fabrique-workflows { background-image: url(../img/fabrique-workflows.png); } +div.textcell.lien-federation-identite { background-image: url(../img/federation-identite.png); } +div.textcell.lien-guichet-unique { background-image: url(../img/guichet-unique.png); } +div.textcell.lien-mobilite { background-image: url(../img/mobilite.png); } +div.textcell.lien-porte-document { background-image: url(../img/porte-document.png); } +div.textcell.lien-webservices { background-image: url(../img/webservices.png); } + +div.textcell.compte-citoyen { + padding-top: 10px; +} + +div.textcell.compte-citoyen > div { + background-image: url(../img/compte-citoyen-bg.png); +} + +div.textcell.mobilite { + background-image: url(../img/capture-smartphone.png); + background-repeat: no-repeat; + background-position: 95% 90%; + +} + +div.textcell.mobilite > div { + background-image: url(../img/mobilite-bg.png); +} + +div.textcell.fabrique-workflows > div { + background-image: url(../img/fabrique-workflows-bg.png); +} + +div.textcell.guichet-unique > div { + background-image: url(../img/guichet-unique-bg.png); +} + +div.textcell.cms > div { + background-image: url(../img/cms-bg.png); +} + +div.textcell.federation-identite > div { + background-image: url(../img/federation-identite-bg.png); +} + +div.textcell.administration > div { + background-image: url(../img/administration-bg.png); +} + +div.textcell.tablette { + padding: 1em 0; + border: none; +} + +div.textcell.demarches { + background: url(../img/demarches-bg.png) no-repeat 0 10%; +} + +div.textcell.porte-document { + background: url(../img/porte-document-bg.png) no-repeat 0 10%; +} + +div.textcell.fabrique-formulaires { + background: url(../img/fabrique-formulaires-bg.png) no-repeat 0 10%; +} + +div.textcell.annonces { + background: url(../img/annonces-bg.png) no-repeat 0 10%; +} + +div.textcell.webservices { + background: url(../img/webservices-bg.png) no-repeat 0 10%; +} + +div.textcell.bi { + background: url(../img/bi-bg.png) no-repeat 0 10%; +} + +div.textcell.ecrans { + height: 172px; + background: url(../img/screens.png) repeat-x; + position: relative; + margin-top: 30px; + top: 3px; + width: 100%; + max-width: 100%; + -moz-transition: background-position linear 0.3s; + -webkit-transition: background-position linear 0.3s; + transition: background-position linear 0.3s; +} + +div.textcell.prix-montpellier { + border: none; +} + +div.textcell.prix-montpellier > div { + background-image: url(../img/label-montpellier.png); +} + +div.textcell.prix-montpellier { + padding-bottom: 40px; +} + +div.textcell.prix-vincennes { + padding-top: 10px; +} + +div.textcell.prix-vincennes > div { + padding: 0 0 0 240px; + background: url(../img/label-vincennes.png) no-repeat 0 10%; +} + +div.textcell.liste-references ul { + text-align: center; + max-width: 900px; + margin: 0 auto; +} + +div.textcell.liste-references ul li { + list-style: none; + display: inline-block; + margin: 1em 2em; +} + +div.contactez-nous, +div.se-voir { + margin-top: 2em; +} + +div.contactez-nous, +div.se-parler { + position: relative; + right: -2px; +} + +div.se-voir, +div.ecrire { + position: relative; + left: -2px; +} + +div.se-parler, +div.ecrire { + margin-bottom: 2em; +} + +div.contactez-nous, +div.se-voir, +div.se-parler, +div.ecrire { + width: 35%; + display: inline-block; + vertical-align: top; + padding: 2em; + border: 0; + height: 200px; + font-size: 130%; +} + +div.textcell.se-voir, div.textcell.se-parler { + background: #646871; + color: #eee; +} + +div.carte { + position: relative; + width: 100%; + max-width: 100%; + height: 450px; + overflow: hidden; + background: url(../img/eomap.jpg) no-repeat 50% 60%; + background-size: cover; + border: none; +} + +div.textcell.fabrique-formulaires img, +div.textcell.fabrique-workflows img, +div.textcell.cms img, +div.textcell.administration img, +div.textcell.guichet-unique img { + float: right; + width: 50%; + border: 1px solid #aaa; + padding: 1px; + margin-left: 1em; + margin-bottom: 1em; +} + +div.textcell.transition { + width: 100%; + max-width: 100%; + height: 50px; + background: #646871; + border: none; +} + +@media(max-width: 800px) { + div.textcell.fabrique-formulaires img, + div.textcell.fabrique-workflows img, + div.textcell.cms img, + div.textcell.administration img, + div.textcell.guichet-unique img { + display: none; + } +} + +@media(max-width: 500px) { + div.textcell.bi > div, + div.textcell.webservices > div, + div.textcell.annonces > div, + div.textcell.fabrique-formulaires > div, + div.textcell.porte-document > div, + div.textcell.demarches > div, + div.textcell.bistro > div, + div.textcell.prix-montpellier > div, + div.textcell.prix-vincennes > div, + div.textcell.guichet-unique > div, + div.textcell.fabrique-workflows > div, + div.textcell.federation-identite > div, + div.textcell.cms > div, + div.textcell.administration > div, + div.textcell.compte-citoyen > div, + div.textcell.mobilite > div, + div.textcell.opendata > div, + div.textcell.libre > div { + background: none; + padding-right: 0; + padding-left: 0; + width: 90%; + max-width: 90%; + } + + div.textcell.bi, + div.textcell.webservices, + div.textcell.annonces, + div.textcell.fabrique-formulaires, + div.textcell.porte-document, + div.textcell.demarches, + div.textcell.bistro { + background: none; + } +} + +@media(max-width: 900px) { + #menu .menu-citoyens, + #menu .menu-metier, + #menu .menu-parametrage { + display: none; + } +} + +@media(max-width: 500px) { + div#title { + } + #menu { + position: relative; + top: 0; + right: 0; + text-align: right; + padding: 10px 0; + } + + div.contactez-nous, + div.se-voir, + div.se-parler, + div.ecrire { + width: 90%; + position: relative; + right: 0; + left: 0; + height: auto; + padding: 2em 5%; + } + + div.textcell.se-parler h2, + div.textcell.se-parler { + background: white; + color: #333; + } + div.textcell.ecrire h2, + div.textcell.ecrire { + background: #646871; + color: #eee; + } +} diff --git a/static/img/Label2014elu_0.png b/static/img/Label2014elu_0.png new file mode 100644 index 0000000..7d577f0 Binary files /dev/null and b/static/img/Label2014elu_0.png differ diff --git a/static/img/administration-bg.png b/static/img/administration-bg.png new file mode 100644 index 0000000..12391a7 Binary files /dev/null and b/static/img/administration-bg.png differ diff --git a/static/img/administration.png b/static/img/administration.png new file mode 100644 index 0000000..a021d35 Binary files /dev/null and b/static/img/administration.png differ diff --git a/static/img/annonces-bg.png b/static/img/annonces-bg.png new file mode 100644 index 0000000..c37469c Binary files /dev/null and b/static/img/annonces-bg.png differ diff --git a/static/img/annonces.png b/static/img/annonces.png new file mode 100644 index 0000000..5165430 Binary files /dev/null and b/static/img/annonces.png differ diff --git a/static/img/bi-bg.png b/static/img/bi-bg.png new file mode 100644 index 0000000..77b7915 Binary files /dev/null and b/static/img/bi-bg.png differ diff --git a/static/img/bi.png b/static/img/bi.png new file mode 100644 index 0000000..7412a68 Binary files /dev/null and b/static/img/bi.png differ diff --git a/static/img/capture-smartphone.png b/static/img/capture-smartphone.png new file mode 100644 index 0000000..ff97c6c Binary files /dev/null and b/static/img/capture-smartphone.png differ diff --git a/static/img/carte.jpg b/static/img/carte.jpg new file mode 100644 index 0000000..e8ca2c6 Binary files /dev/null and b/static/img/carte.jpg differ diff --git a/static/img/carte.png b/static/img/carte.png new file mode 100644 index 0000000..902db39 Binary files /dev/null and b/static/img/carte.png differ diff --git a/static/img/circuits.jpg b/static/img/circuits.jpg new file mode 100644 index 0000000..b56d47b Binary files /dev/null and b/static/img/circuits.jpg differ diff --git a/static/img/citoyens.png b/static/img/citoyens.png new file mode 100644 index 0000000..2200382 Binary files /dev/null and b/static/img/citoyens.png differ diff --git a/static/img/cms-bg.png b/static/img/cms-bg.png new file mode 100644 index 0000000..29350d8 Binary files /dev/null and b/static/img/cms-bg.png differ diff --git a/static/img/cms.png b/static/img/cms.png new file mode 100644 index 0000000..cfe30cc Binary files /dev/null and b/static/img/cms.png differ diff --git a/static/img/compte-citoyen-bg.png b/static/img/compte-citoyen-bg.png new file mode 100644 index 0000000..bd05172 Binary files /dev/null and b/static/img/compte-citoyen-bg.png differ diff --git a/static/img/compte-citoyen.png b/static/img/compte-citoyen.png new file mode 100644 index 0000000..cf5738e Binary files /dev/null and b/static/img/compte-citoyen.png differ diff --git a/static/img/contact.jpg b/static/img/contact.jpg new file mode 100644 index 0000000..363facb Binary files /dev/null and b/static/img/contact.jpg differ diff --git a/static/img/data.png b/static/img/data.png new file mode 100644 index 0000000..1c0027d Binary files /dev/null and b/static/img/data.png differ diff --git a/static/img/demarches-bg.png b/static/img/demarches-bg.png new file mode 100644 index 0000000..e3374a7 Binary files /dev/null and b/static/img/demarches-bg.png differ diff --git a/static/img/demarches.png b/static/img/demarches.png new file mode 100644 index 0000000..97743ce Binary files /dev/null and b/static/img/demarches.png differ diff --git a/static/img/eomap.jpg b/static/img/eomap.jpg new file mode 100644 index 0000000..190d96c Binary files /dev/null and b/static/img/eomap.jpg differ diff --git a/static/img/eomap.xcf b/static/img/eomap.xcf new file mode 100644 index 0000000..e8656f7 Binary files /dev/null and b/static/img/eomap.xcf differ diff --git a/static/img/expert.png b/static/img/expert.png new file mode 100644 index 0000000..17a1165 Binary files /dev/null and b/static/img/expert.png differ diff --git a/static/img/fabrique-formulaires-bg.png b/static/img/fabrique-formulaires-bg.png new file mode 100644 index 0000000..72084a4 Binary files /dev/null and b/static/img/fabrique-formulaires-bg.png differ diff --git a/static/img/fabrique-formulaires.png b/static/img/fabrique-formulaires.png new file mode 100644 index 0000000..26f5d28 Binary files /dev/null and b/static/img/fabrique-formulaires.png differ diff --git a/static/img/fabrique-workflows-bg.png b/static/img/fabrique-workflows-bg.png new file mode 100644 index 0000000..abc229c Binary files /dev/null and b/static/img/fabrique-workflows-bg.png differ diff --git a/static/img/fabrique-workflows.png b/static/img/fabrique-workflows.png new file mode 100644 index 0000000..4233a81 Binary files /dev/null and b/static/img/fabrique-workflows.png differ diff --git a/static/img/federation-identite-bg.png b/static/img/federation-identite-bg.png new file mode 100644 index 0000000..4394add Binary files /dev/null and b/static/img/federation-identite-bg.png differ diff --git a/static/img/federation-identite.png b/static/img/federation-identite.png new file mode 100644 index 0000000..4b6db76 Binary files /dev/null and b/static/img/federation-identite.png differ diff --git a/static/img/fontaine.jpg b/static/img/fontaine.jpg new file mode 100644 index 0000000..0632f8f Binary files /dev/null and b/static/img/fontaine.jpg differ diff --git a/static/img/fontaine2.jpg b/static/img/fontaine2.jpg new file mode 100644 index 0000000..4cea372 Binary files /dev/null and b/static/img/fontaine2.jpg differ diff --git a/static/img/fontaine3.jpg b/static/img/fontaine3.jpg new file mode 100644 index 0000000..719a5f2 Binary files /dev/null and b/static/img/fontaine3.jpg differ diff --git a/static/img/gourou.png b/static/img/gourou.png new file mode 100644 index 0000000..4795e5f Binary files /dev/null and b/static/img/gourou.png differ diff --git a/static/img/guichet-unique-bg.png b/static/img/guichet-unique-bg.png new file mode 100644 index 0000000..fb8ba89 Binary files /dev/null and b/static/img/guichet-unique-bg.png differ diff --git a/static/img/guichet-unique.png b/static/img/guichet-unique.png new file mode 100644 index 0000000..3694b6b Binary files /dev/null and b/static/img/guichet-unique.png differ diff --git a/static/img/label-montpellier.png b/static/img/label-montpellier.png new file mode 100644 index 0000000..c7e6a4f Binary files /dev/null and b/static/img/label-montpellier.png differ diff --git a/static/img/label-vincennes.png b/static/img/label-vincennes.png new file mode 100644 index 0000000..d9cfc00 Binary files /dev/null and b/static/img/label-vincennes.png differ diff --git a/static/img/libre.png b/static/img/libre.png new file mode 100644 index 0000000..c8f8dd0 Binary files /dev/null and b/static/img/libre.png differ diff --git a/static/img/logo.png b/static/img/logo.png new file mode 100644 index 0000000..bc75551 Binary files /dev/null and b/static/img/logo.png differ diff --git a/static/img/mentions-legales.jpg b/static/img/mentions-legales.jpg new file mode 100644 index 0000000..7829b80 Binary files /dev/null and b/static/img/mentions-legales.jpg differ diff --git a/static/img/metier.png b/static/img/metier.png new file mode 100644 index 0000000..e148faf Binary files /dev/null and b/static/img/metier.png differ diff --git a/static/img/mobile.png b/static/img/mobile.png new file mode 100644 index 0000000..8ce4722 Binary files /dev/null and b/static/img/mobile.png differ diff --git a/static/img/mobilite-bg.png b/static/img/mobilite-bg.png new file mode 100644 index 0000000..7b71869 Binary files /dev/null and b/static/img/mobilite-bg.png differ diff --git a/static/img/mobilite.png b/static/img/mobilite.png new file mode 100644 index 0000000..6e823ce Binary files /dev/null and b/static/img/mobilite.png differ diff --git a/static/img/ouvrier.jpg b/static/img/ouvrier.jpg new file mode 100644 index 0000000..8005b71 Binary files /dev/null and b/static/img/ouvrier.jpg differ diff --git a/static/img/parametrage.png b/static/img/parametrage.png new file mode 100644 index 0000000..f45eeb1 Binary files /dev/null and b/static/img/parametrage.png differ diff --git a/static/img/porte-document-bg.png b/static/img/porte-document-bg.png new file mode 100644 index 0000000..69f0e6a Binary files /dev/null and b/static/img/porte-document-bg.png differ diff --git a/static/img/porte-document.png b/static/img/porte-document.png new file mode 100644 index 0000000..d795a2e Binary files /dev/null and b/static/img/porte-document.png differ diff --git a/static/img/references.jpg b/static/img/references.jpg new file mode 100644 index 0000000..a5f31a9 Binary files /dev/null and b/static/img/references.jpg differ diff --git a/static/img/roulettes.png b/static/img/roulettes.png new file mode 100644 index 0000000..af3ceeb Binary files /dev/null and b/static/img/roulettes.png differ diff --git a/static/img/screens.png b/static/img/screens.png new file mode 100644 index 0000000..e3a5372 Binary files /dev/null and b/static/img/screens.png differ diff --git a/static/img/scripts/credits.py b/static/img/scripts/credits.py new file mode 100644 index 0000000..7e0a0ae --- /dev/null +++ b/static/img/scripts/credits.py @@ -0,0 +1,21 @@ +#! /usr/bin/env python + +import xml.etree.ElementTree as ET +import os + +print '' diff --git a/static/img/scripts/generate-icons.sh b/static/img/scripts/generate-icons.sh new file mode 100755 index 0000000..201118c --- /dev/null +++ b/static/img/scripts/generate-icons.sh @@ -0,0 +1,25 @@ +#! /bin/sh + +python generate.py --width 160 --colour 888888 citoyens.svg metier.svg parametrage.svg +python generate.py --width 160 --colour aaaaaa libre.svg data.svg + +python generate.py --width 80 --colour 888888 compte-citoyen.svg demarches.svg mobilite.svg porte-document.svg +python generate.py --width 80 --colour 888888 administration.svg bi.svg federation-identite.svg webservices.svg +python generate.py --width 80 --colour 888888 annonces.svg cms.svg fabrique-formulaires.svg guichet-unique.svg fabrique-workflows.svg + + +python generate.py --width 160 --colour cccccc --variant bg compte-citoyen.svg +python generate.py --width 160 --colour cccccc --variant bg mobilite.svg +python generate.py --width 160 --colour cccccc --variant bg guichet-unique.svg +python generate.py --width 160 --colour cccccc --variant bg fabrique-workflows.svg +python generate.py --width 160 --colour cccccc --variant bg cms.svg +python generate.py --width 160 --colour cccccc --variant bg administration.svg +python generate.py --width 160 --colour cccccc --variant bg federation-identite.svg + +python generate.py --width 160 --colour 333333 --variant bg demarches.svg +python generate.py --width 160 --colour 333333 --variant bg porte-document.svg +python generate.py --width 160 --colour 333333 --variant bg fabrique-formulaires.svg +python generate.py --width 160 --colour 333333 --variant bg annonces.svg +python generate.py --width 160 --colour 333333 --variant bg webservices.svg +python generate.py --width 160 --colour 333333 --variant bg bi.svg + diff --git a/static/img/scripts/generate.py b/static/img/scripts/generate.py new file mode 100644 index 0000000..864cdfe --- /dev/null +++ b/static/img/scripts/generate.py @@ -0,0 +1,47 @@ +#! /usr/bin/env python + +import os +from optparse import OptionParser +import subprocess +import tempfile +import xml.etree.ElementTree as ET +import re +from PIL import Image +from PIL import PngImagePlugin +import sys + +parser = OptionParser() +parser.add_option('-c', '--colour', dest='colour', metavar='COLOUR') +parser.add_option('-v', '--variant', dest='variant', metavar='VARIANT') +parser.add_option('-w', '--width', dest='width', metavar='WIDTH', default='42') +(options, args) = parser.parse_args() + +for svg_path in args: + output_filename = svg_path.replace('.svg', '.png') + svg_path = os.path.join('sources', svg_path) + if options.variant: + output_filename = output_filename.replace('.png', '-%s.png' % options.variant) + author = None + if options.colour: + tree = ET.fromstring(file(svg_path).read().replace('#000000', '#%s' % options.colour)) + for elem in tree.findall('*'): + if not elem.attrib.get('style'): + elem.attrib['style'] = 'fill:#%s' % options.colour + for elem in tree.getchildren(): + if elem.tag == '{http://www.w3.org/2000/svg}text' and elem.text.startswith('Created by'): + author = elem.text[len('Created by')+1:] + tree.remove(elem) + for elem in tree.getchildren(): + if elem.tag == '{http://www.w3.org/2000/svg}text' and 'Noun Project' in elem.text: + tree.remove(elem) + f = tempfile.NamedTemporaryFile(suffix='.svg', delete=False) + f.write(ET.tostring(tree)) + f.close() + svg_path = f.name + # XXX: add author to png metadata + subprocess.call(['inkscape', '--without-gui', + '--file', svg_path, + '--export-area-drawing', + '--export-area-snap', + '--export-png', output_filename, + '--export-width', options.width]) diff --git a/static/img/sources/administration.svg b/static/img/sources/administration.svg new file mode 100644 index 0000000..43582e8 --- /dev/null +++ b/static/img/sources/administration.svg @@ -0,0 +1,66 @@ + +image/svg+xmlCreated by Wilson Joseph +from the Noun Project + \ No newline at end of file diff --git a/static/img/sources/annonces.svg b/static/img/sources/annonces.svg new file mode 100644 index 0000000..486f651 --- /dev/null +++ b/static/img/sources/annonces.svg @@ -0,0 +1,78 @@ + +image/svg+xmlCreated by Mister Pixel +from the Noun Project + \ No newline at end of file diff --git a/static/img/sources/bi.svg b/static/img/sources/bi.svg new file mode 100644 index 0000000..e588c70 --- /dev/null +++ b/static/img/sources/bi.svg @@ -0,0 +1,14 @@ + + + + + + + + + + + + + +Created by Yamini Chandrafrom the Noun Project \ No newline at end of file diff --git a/static/img/sources/citoyens.svg b/static/img/sources/citoyens.svg new file mode 100644 index 0000000..1688dcd --- /dev/null +++ b/static/img/sources/citoyens.svg @@ -0,0 +1,39 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Created by Alex Kwafrom the Noun Project \ No newline at end of file diff --git a/static/img/sources/cms.svg b/static/img/sources/cms.svg new file mode 100644 index 0000000..6aa095c --- /dev/null +++ b/static/img/sources/cms.svg @@ -0,0 +1,64 @@ + +image/svg+xmlCreated by Simple Icons +from the Noun Project + \ No newline at end of file diff --git a/static/img/sources/compte-citoyen.svg b/static/img/sources/compte-citoyen.svg new file mode 100644 index 0000000..4b45696 --- /dev/null +++ b/static/img/sources/compte-citoyen.svg @@ -0,0 +1,234 @@ + +image/svg+xmlCreated by Pieter J. Smits +from the Noun Project + \ No newline at end of file diff --git a/static/img/sources/data.svg b/static/img/sources/data.svg new file mode 100644 index 0000000..e2eca31 --- /dev/null +++ b/static/img/sources/data.svg @@ -0,0 +1,9 @@ + + + + + + + + +Created by Kyle Tezakfrom the Noun Project \ No newline at end of file diff --git a/static/img/sources/demarches.svg b/static/img/sources/demarches.svg new file mode 100644 index 0000000..e9cd145 --- /dev/null +++ b/static/img/sources/demarches.svg @@ -0,0 +1,147 @@ + +image/svg+xmlCreated by Miroslav Koša +from the Noun Project + \ No newline at end of file diff --git a/static/img/sources/fabrique-formulaire.svg b/static/img/sources/fabrique-formulaire.svg new file mode 100644 index 0000000..3974670 --- /dev/null +++ b/static/img/sources/fabrique-formulaire.svg @@ -0,0 +1,101 @@ + +image/svg+xmlCreated by Jason Tropp +from the Noun Project + \ No newline at end of file diff --git a/static/img/sources/fabrique-formulaires.svg b/static/img/sources/fabrique-formulaires.svg new file mode 100644 index 0000000..3974670 --- /dev/null +++ b/static/img/sources/fabrique-formulaires.svg @@ -0,0 +1,101 @@ + +image/svg+xmlCreated by Jason Tropp +from the Noun Project + \ No newline at end of file diff --git a/static/img/sources/fabrique-workflows.svg b/static/img/sources/fabrique-workflows.svg new file mode 100644 index 0000000..9d8fd00 --- /dev/null +++ b/static/img/sources/fabrique-workflows.svg @@ -0,0 +1,72 @@ + +image/svg+xmlCreated by Candice McCollough +from the Noun Project + \ No newline at end of file diff --git a/static/img/sources/federation-identite.svg b/static/img/sources/federation-identite.svg new file mode 100644 index 0000000..711bceb --- /dev/null +++ b/static/img/sources/federation-identite.svg @@ -0,0 +1,66 @@ + +image/svg+xmlCreated by Mister Pixel +from the Noun Project + \ No newline at end of file diff --git a/static/img/sources/guichet-unique.svg b/static/img/sources/guichet-unique.svg new file mode 100644 index 0000000..97f4943 --- /dev/null +++ b/static/img/sources/guichet-unique.svg @@ -0,0 +1,93 @@ + + + + + + image/svg+xml + + list + + + + + + list + Created with Sketch. + + + + + + + Created by Julynn B. + from the Noun Project + diff --git a/static/img/sources/integrations-graphiques/captures/cournonterral.png b/static/img/sources/integrations-graphiques/captures/cournonterral.png new file mode 100644 index 0000000..7d1b1cf Binary files /dev/null and b/static/img/sources/integrations-graphiques/captures/cournonterral.png differ diff --git a/static/img/sources/integrations-graphiques/captures/fabregues.png b/static/img/sources/integrations-graphiques/captures/fabregues.png new file mode 100644 index 0000000..9467093 Binary files /dev/null and b/static/img/sources/integrations-graphiques/captures/fabregues.png differ diff --git a/static/img/sources/integrations-graphiques/captures/marcoussis.png b/static/img/sources/integrations-graphiques/captures/marcoussis.png new file mode 100644 index 0000000..c0526ab Binary files /dev/null and b/static/img/sources/integrations-graphiques/captures/marcoussis.png differ diff --git a/static/img/sources/integrations-graphiques/captures/meyzieu.png b/static/img/sources/integrations-graphiques/captures/meyzieu.png new file mode 100644 index 0000000..7860cd8 Binary files /dev/null and b/static/img/sources/integrations-graphiques/captures/meyzieu.png differ diff --git a/static/img/sources/integrations-graphiques/captures/montpellier.png b/static/img/sources/integrations-graphiques/captures/montpellier.png new file mode 100644 index 0000000..0d87778 Binary files /dev/null and b/static/img/sources/integrations-graphiques/captures/montpellier.png differ diff --git a/static/img/sources/integrations-graphiques/captures/sussargues.png b/static/img/sources/integrations-graphiques/captures/sussargues.png new file mode 100644 index 0000000..c10c222 Binary files /dev/null and b/static/img/sources/integrations-graphiques/captures/sussargues.png differ diff --git a/static/img/sources/integrations-graphiques/captures/vendargues.png b/static/img/sources/integrations-graphiques/captures/vendargues.png new file mode 100644 index 0000000..72f79d1 Binary files /dev/null and b/static/img/sources/integrations-graphiques/captures/vendargues.png differ diff --git a/static/img/sources/integrations-graphiques/captures/vincennes.png b/static/img/sources/integrations-graphiques/captures/vincennes.png new file mode 100644 index 0000000..2c3d062 Binary files /dev/null and b/static/img/sources/integrations-graphiques/captures/vincennes.png differ diff --git a/static/img/sources/integrations-graphiques/generate.py b/static/img/sources/integrations-graphiques/generate.py new file mode 100644 index 0000000..9d6d105 --- /dev/null +++ b/static/img/sources/integrations-graphiques/generate.py @@ -0,0 +1,21 @@ +#! /usr/bin/env python + +import os +import subprocess + +svg_src = open('screen-with-capture.svg').read() +for filename in os.listdir('captures'): + svg_dst = svg_src.replace('xxx.png', 'captures/%s' % filename) + svg_path = open('/tmp/.xxx.svg', 'w') + svg_path.write(svg_dst) + svg_path.close() + subprocess.call(['inkscape', '--without-gui', + '--file', '/tmp/.xxx.svg', + '--export-area-drawing', + '--export-area-snap', + '--export-png', 'screen-%s' % filename, + '--export-width', '250']) + +# gm montage screen-*.png -geometry +10+0 -tile 8x1 -background none ../screens.png +# +10+0 <- 10 is the margin +# 8x1 <- 8 is the number of images diff --git a/static/img/sources/integrations-graphiques/screen-with-capture.svg b/static/img/sources/integrations-graphiques/screen-with-capture.svg new file mode 100644 index 0000000..236c9e4 --- /dev/null +++ b/static/img/sources/integrations-graphiques/screen-with-capture.svg @@ -0,0 +1,71 @@ + +image/svg+xml diff --git a/static/img/sources/integrations-graphiques/smartphone-with-capture.svg b/static/img/sources/integrations-graphiques/smartphone-with-capture.svg new file mode 100644 index 0000000..b61287e --- /dev/null +++ b/static/img/sources/integrations-graphiques/smartphone-with-capture.svg @@ -0,0 +1,70 @@ + +image/svg+xml \ No newline at end of file diff --git a/static/img/sources/integrations-graphiques/t.png b/static/img/sources/integrations-graphiques/t.png new file mode 100644 index 0000000..e3a5372 Binary files /dev/null and b/static/img/sources/integrations-graphiques/t.png differ diff --git a/static/img/sources/libre.svg b/static/img/sources/libre.svg new file mode 100644 index 0000000..c8fc027 --- /dev/null +++ b/static/img/sources/libre.svg @@ -0,0 +1,62 @@ + + + +image/svg+xml \ No newline at end of file diff --git a/static/img/sources/metier.svg b/static/img/sources/metier.svg new file mode 100644 index 0000000..472307f --- /dev/null +++ b/static/img/sources/metier.svg @@ -0,0 +1,32 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Created by Claire Jonesfrom the Noun Project \ No newline at end of file diff --git a/static/img/sources/mobile.svg b/static/img/sources/mobile.svg new file mode 100644 index 0000000..fdeaa54 --- /dev/null +++ b/static/img/sources/mobile.svg @@ -0,0 +1,60 @@ + +image/svg+xml \ No newline at end of file diff --git a/static/img/sources/mobilite.svg b/static/img/sources/mobilite.svg new file mode 100644 index 0000000..71affdc --- /dev/null +++ b/static/img/sources/mobilite.svg @@ -0,0 +1,71 @@ + +image/svg+xmlCreated by Luis Prado +from the Noun Project + \ No newline at end of file diff --git a/static/img/sources/parametrage.svg b/static/img/sources/parametrage.svg new file mode 100644 index 0000000..1680d3b --- /dev/null +++ b/static/img/sources/parametrage.svg @@ -0,0 +1,9 @@ + + + + + + + + +Created by Murali Krishnafrom the Noun Project \ No newline at end of file diff --git a/static/img/sources/porte-document.svg b/static/img/sources/porte-document.svg new file mode 100644 index 0000000..dead096 --- /dev/null +++ b/static/img/sources/porte-document.svg @@ -0,0 +1,63 @@ + +image/svg+xmlCreated by Hello Many +from the Noun Project + \ No newline at end of file diff --git a/static/img/sources/screen.svg b/static/img/sources/screen.svg new file mode 100644 index 0000000..ef66603 --- /dev/null +++ b/static/img/sources/screen.svg @@ -0,0 +1,10 @@ + + + + + + + + + +Created by Yorlmar Camposfrom the Noun Project \ No newline at end of file diff --git a/static/img/sources/smartphone.svg b/static/img/sources/smartphone.svg new file mode 100644 index 0000000..17af695 --- /dev/null +++ b/static/img/sources/smartphone.svg @@ -0,0 +1,3 @@ + + +Created by James Fentonfrom the Noun Project \ No newline at end of file diff --git a/static/img/sources/webservices.svg b/static/img/sources/webservices.svg new file mode 100644 index 0000000..338ed8f --- /dev/null +++ b/static/img/sources/webservices.svg @@ -0,0 +1,74 @@ + +image/svg+xmlCreated by Jamison Wieser +from the Noun Project + \ No newline at end of file diff --git a/static/img/tram.jpg b/static/img/tram.jpg new file mode 100644 index 0000000..0198ac3 Binary files /dev/null and b/static/img/tram.jpg differ diff --git a/static/img/vincennes.png b/static/img/vincennes.png new file mode 100644 index 0000000..b39ab15 Binary files /dev/null and b/static/img/vincennes.png differ diff --git a/static/img/webservices-bg.png b/static/img/webservices-bg.png new file mode 100644 index 0000000..f6f5a61 Binary files /dev/null and b/static/img/webservices-bg.png differ diff --git a/static/img/webservices.png b/static/img/webservices.png new file mode 100644 index 0000000..79f3c34 Binary files /dev/null and b/static/img/webservices.png differ diff --git a/static/js/combo.public.js b/static/js/combo.public.js new file mode 100644 index 0000000..b26bdee --- /dev/null +++ b/static/js/combo.public.js @@ -0,0 +1,19 @@ +$(function() { + $('.intro').parallax("60%", -0.2); + $('.bistro').parallax("0%", 0.2); + $('.bistro > div').parallax("2%", 1.2); + $('a[href^="#"]').on('click', + function() { $.scrollTo($(this).attr('href'), 1000); } + ); + if ($('.ecrans').length > 0) { + var $window = $(window); + var offset = parseInt(Math.random()*2000); + var $ecrans = $('.ecrans'); + var pos = $window.scrollTop(); + $ecrans.css('background-position', (offset + pos/2) + 'px 0px'); + $window.bind('scroll', function() { + var pos = $window.scrollTop(); + $ecrans.css('background-position', (offset + pos/2) + 'px 0px'); + }); + } +}); diff --git a/static/js/jquery.parallax-1.1.3.js b/static/js/jquery.parallax-1.1.3.js new file mode 100644 index 0000000..f3569dc --- /dev/null +++ b/static/js/jquery.parallax-1.1.3.js @@ -0,0 +1,69 @@ +/* +Plugin: jQuery Parallax +Version 1.1.3 +Author: Ian Lunn +Twitter: @IanLunn +Author URL: http://www.ianlunn.co.uk/ +Plugin URL: http://www.ianlunn.co.uk/plugins/jquery-parallax/ + +Dual licensed under the MIT and GPL licenses: +http://www.opensource.org/licenses/mit-license.php +http://www.gnu.org/licenses/gpl.html +*/ + +(function( $ ){ + var $window = $(window); + var windowHeight = $window.height(); + + $window.resize(function () { + windowHeight = $window.height(); + }); + + $.fn.parallax = function(xpos, speedFactor, outerHeight) { + var $this = $(this); + var getHeight; + var firstTop; + var paddingTop = 0; + + //get the starting position of each element to have parallax applied to it + $this.each(function(){ + firstTop = $this.offset().top; + }); + + if (outerHeight) { + getHeight = function(jqo) { + return jqo.outerHeight(true); + }; + } else { + getHeight = function(jqo) { + return jqo.height(); + }; + } + + // setup defaults if arguments aren't specified + if (arguments.length < 1 || xpos === null) xpos = "50%"; + if (arguments.length < 2 || speedFactor === null) speedFactor = 0.1; + if (arguments.length < 3 || outerHeight === null) outerHeight = true; + + // function to be called whenever the window is scrolled or resized + function update(){ + var pos = $window.scrollTop(); + + $this.each(function(){ + var $element = $(this); + var top = $element.offset().top; + var height = getHeight($element); + + // Check if totally above or totally below viewport + if (top + height < pos || top > pos + windowHeight) { + return; + } + + $this.css('backgroundPosition', xpos + " " + Math.round((firstTop - pos) * speedFactor) + "px"); + }); + } + + $window.bind('scroll', update).resize(update); + update(); + }; +})(jQuery); diff --git a/static/js/jquery.scrollTo.js b/static/js/jquery.scrollTo.js new file mode 100644 index 0000000..8b88b8e --- /dev/null +++ b/static/js/jquery.scrollTo.js @@ -0,0 +1,187 @@ +/*! + * jQuery.scrollTo + * Copyright (c) 2007-2014 Ariel Flesler - afleslergmailcom | http://flesler.blogspot.com + * Licensed under MIT + * http://flesler.blogspot.com/2007/10/jqueryscrollto.html + * @projectDescription Easy element scrolling using jQuery. + * @author Ariel Flesler + * @version 1.4.14 + */ +;(function (define) { + 'use strict'; + + define(['jquery'], function ($) { + + var $scrollTo = $.scrollTo = function( target, duration, settings ) { + return $(window).scrollTo( target, duration, settings ); + }; + + $scrollTo.defaults = { + axis:'xy', + duration: 0, + limit:true + }; + + // Returns the element that needs to be animated to scroll the window. + // Kept for backwards compatibility (specially for localScroll & serialScroll) + $scrollTo.window = function( scope ) { + return $(window)._scrollable(); + }; + + // Hack, hack, hack :) + // Returns the real elements to scroll (supports window/iframes, documents and regular nodes) + $.fn._scrollable = function() { + return this.map(function() { + var elem = this, + isWin = !elem.nodeName || $.inArray( elem.nodeName.toLowerCase(), ['iframe','#document','html','body'] ) != -1; + + if (!isWin) + return elem; + + var doc = (elem.contentWindow || elem).document || elem.ownerDocument || elem; + + return /webkit/i.test(navigator.userAgent) || doc.compatMode == 'BackCompat' ? + doc.body : + doc.documentElement; + }); + }; + + $.fn.scrollTo = function( target, duration, settings ) { + if (typeof duration == 'object') { + settings = duration; + duration = 0; + } + if (typeof settings == 'function') + settings = { onAfter:settings }; + + if (target == 'max') + target = 9e9; + + settings = $.extend( {}, $scrollTo.defaults, settings ); + // Speed is still recognized for backwards compatibility + duration = duration || settings.duration; + // Make sure the settings are given right + settings.queue = settings.queue && settings.axis.length > 1; + + if (settings.queue) + // Let's keep the overall duration + duration /= 2; + settings.offset = both( settings.offset ); + settings.over = both( settings.over ); + + return this._scrollable().each(function() { + // Null target yields nothing, just like jQuery does + if (target == null) return; + + var elem = this, + $elem = $(elem), + targ = target, toff, attr = {}, + win = $elem.is('html,body'); + + switch (typeof targ) { + // A number will pass the regex + case 'number': + case 'string': + if (/^([+-]=?)?\d+(\.\d+)?(px|%)?$/.test(targ)) { + targ = both( targ ); + // We are done + break; + } + // Relative/Absolute selector, no break! + targ = win ? $(targ) : $(targ, this); + if (!targ.length) return; + case 'object': + // DOMElement / jQuery + if (targ.is || targ.style) + // Get the real position of the target + toff = (targ = $(targ)).offset(); + } + + var offset = $.isFunction(settings.offset) && settings.offset(elem, targ) || settings.offset; + + $.each( settings.axis.split(''), function( i, axis ) { + var Pos = axis == 'x' ? 'Left' : 'Top', + pos = Pos.toLowerCase(), + key = 'scroll' + Pos, + old = elem[key], + max = $scrollTo.max(elem, axis); + + if (toff) {// jQuery / DOMElement + attr[key] = toff[pos] + ( win ? 0 : old - $elem.offset()[pos] ); + + // If it's a dom element, reduce the margin + if (settings.margin) { + attr[key] -= parseInt(targ.css('margin'+Pos)) || 0; + attr[key] -= parseInt(targ.css('border'+Pos+'Width')) || 0; + } + + attr[key] += offset[pos] || 0; + + if(settings.over[pos]) + // Scroll to a fraction of its width/height + attr[key] += targ[axis=='x'?'width':'height']() * settings.over[pos]; + } else { + var val = targ[pos]; + // Handle percentage values + attr[key] = val.slice && val.slice(-1) == '%' ? + parseFloat(val) / 100 * max + : val; + } + + // Number or 'number' + if (settings.limit && /^\d+$/.test(attr[key])) + // Check the limits + attr[key] = attr[key] <= 0 ? 0 : Math.min( attr[key], max ); + + // Queueing axes + if (!i && settings.queue) { + // Don't waste time animating, if there's no need. + if (old != attr[key]) + // Intermediate animation + animate( settings.onAfterFirst ); + // Don't animate this axis again in the next iteration. + delete attr[key]; + } + }); + + animate( settings.onAfter ); + + function animate( callback ) { + $elem.animate( attr, duration, settings.easing, callback && function() { + callback.call(this, targ, settings); + }); + } + }).end(); + }; + + // Max scrolling position, works on quirks mode + // It only fails (not too badly) on IE, quirks mode. + $scrollTo.max = function( elem, axis ) { + var Dim = axis == 'x' ? 'Width' : 'Height', + scroll = 'scroll'+Dim; + + if (!$(elem).is('html,body')) + return elem[scroll] - $(elem)[Dim.toLowerCase()](); + + var size = 'client' + Dim, + html = elem.ownerDocument.documentElement, + body = elem.ownerDocument.body; + + return Math.max( html[scroll], body[scroll] ) - Math.min( html[size] , body[size] ); + }; + + function both( val ) { + return $.isFunction(val) || $.isPlainObject(val) ? val : { top:val, left:val }; + } + + // AMD requirement + return $scrollTo; + }) +}(typeof define === 'function' && define.amd ? define : function (deps, factory) { + if (typeof module !== 'undefined' && module.exports) { + // Node + module.exports = factory(require('jquery')); + } else { + factory(jQuery); + } +})); diff --git a/templates/combo/menu.html b/templates/combo/menu.html new file mode 100644 index 0000000..ef87c57 --- /dev/null +++ b/templates/combo/menu.html @@ -0,0 +1,13 @@ +{% load combo %} +{% if menuitems %} + +{% endif %} diff --git a/templates/combo/page_template.html b/templates/combo/page_template.html new file mode 100644 index 0000000..5d66c8a --- /dev/null +++ b/templates/combo/page_template.html @@ -0,0 +1,60 @@ +{% load combo gadjo %} + + + + + + + + Publik - {{ page.title }} + + + + + + + +
+
+ +
+
+ {% block combo-content %} + {% placeholder "content" %} + {% endblock %} +
+ + + + + + + + + diff --git a/templates/combo/page_template_sidebar.html b/templates/combo/page_template_sidebar.html new file mode 100644 index 0000000..74a61d0 --- /dev/null +++ b/templates/combo/page_template_sidebar.html @@ -0,0 +1,13 @@ +{% extends "combo/page_template.html" %} +{% load combo %} + +{% block combo-content %} +
+{% placeholder "content" %} +
+ +{% endblock %} diff --git a/templates/combo/placeholder.html b/templates/combo/placeholder.html new file mode 100644 index 0000000..70d492b --- /dev/null +++ b/templates/combo/placeholder.html @@ -0,0 +1,9 @@ +{% load combo %} +{% for cell in cells %} +
{% render_cell cell %}
+{% endfor %}