[enh] Integrarte courgette's theme + i18n

This commit is contained in:
kload 2014-05-13 23:42:31 +00:00
parent b861fb3cd9
commit 83e3b3acb1
29 changed files with 2173 additions and 491 deletions

View file

@ -384,9 +384,15 @@ function get_data_for(view)
local data = {}
if view == "login.html" then
data["title"] = t("login")
data = {
title = t("login"),
connected = false
}
elseif view == "info.html" then
elseif view == "info.html"
or view == "edit.html"
or view == "password.html"
or view == "ynhpanel.json" then
set_headers(user)
local mails = get_mails(user)
@ -395,6 +401,8 @@ function get_data_for(view)
connected = true,
uid = user,
cn = cache:get(user.."-cn"),
sn = cache:get(user.."-sn"),
givenName = cache:get(user.."-givenName"),
mail = mails["mail"],
mailalias = mails["mailalias"],
maildrop = mails["maildrop"],
@ -404,50 +412,6 @@ function get_data_for(view)
for url, name in pairs(conf["users"][user]) do
table.insert(data["app"], { url = url, name = name })
end
elseif view == "password.html" then
data = {
title = t("change_password"),
connected = true
}
elseif view == "edit.html" then
set_headers(user)
local mails = get_mails(user)
data = {
title = t("edit").." "..user,
connected = true,
uid = user,
sn = cache:get(user.."-sn"),
givenName = cache:get(user.."-givenName"),
mail = mails["mail"],
mailalias = mails["mailalias"],
maildrop = mails["maildrop"]
}
elseif view == "panel.ms" then
data = { app = {} }
for url, name in pairs(conf["users"][user]) do
table.insert(data["app"], { url = url, name = name })
end
elseif view == "ynhpanel.json" then
local mails = get_mails(user)
data = {
app = {},
user = {
uid = user,
name = cache:get(user..'-cn'),
givenName = cache:get(user..'-givenName'),
surname = cache:get(user..'-sn'),
mail = mails['mail']
},
portal_url = portal_url
}
for url, name in pairs(conf["users"][user]) do
table.insert(data["app"], { url = url, name = name })
end
end
-- View translation (use "t_key")

View file

@ -0,0 +1,83 @@
/* ==========================================================================
Sommaire
1 = Default button
2 = Important button
3 = Validate button
4 = Warning button
5 = Classic button
========================================================================== */
/* ==========================================================================
1 = Default button
========================================================================== */
.btn {
background: #999;
display: inline-block;
padding: 0.5em 1em;
line-height: normal;
text-decoration: none;
color: #FFF;
}
.large-btn {
padding: 0.8em 1.5em;
font-size: 1.1em;
}
button.btn,
input.btn {
border:0;
cursor:pointer;
}
.btn:hover,
.btn:focus {
background: #AAA;
}
/* ==========================================================================
2 = Important button
========================================================================== */
.important-btn { background: #c0392b;
}
.important-btn:hover,
.important-btn:focus {
background: #e74c3c;
}
/* ==========================================================================
3 = Validate button
========================================================================== */
.validate-btn { background: #27ae60;
}
.validate-btn:hover,
.validate-btn:focus {
background: #2ecc71;
}
/* ==========================================================================
3 = Warning button
========================================================================== */
.warning-btn { background: #e67e22;
}
.warning-btn:hover,
.warning-btn:focus {
background: #f39c12;
}
/* ==========================================================================
5 = Classic button
========================================================================== */
.classic-btn { background: #2980b9;
}
.classic-btn:hover,
.classic-btn:focus {
background: #3498db;
}

View file

@ -0,0 +1,87 @@
/* ==========================================================================
Sommaire
1 = col
2 = Sidebar Left
3 = Sidebar Right
4 = Col 2
5 = Col 3
6 = Col 4
========================================================================== */
.col {
letter-spacing: -5px; /*fix bug ff PC*/
}
.col > * {
display: inline-block;
vertical-align: top;
letter-spacing: normal;
}
.colMarge > * {
margin-left: 1%;
}
.colNomarge > * {
margin-left: 0;
}
/* ==========================================================================
2 = Sidebar left
========================================================================== */
.colSidebarLeft > *:first-child {
width:31%;
margin-left:0;
}
.colSidebarLeft > *:first-child + * { width:68%; }
/* ==========================================================================
3 = Sidebar right
========================================================================== */
.colSidebarRight > *:first-child {
width:68%;
margin-left:0;
}
.colSidebarRight > *:first-child + * { width:31%; }
/* ==========================================================================
4 = col 2
========================================================================== */
.col2 > * {
width: 49.5%!important;
margin-bottom: 1%;
}
.col2 > *:nth-child(2n+1) {
margin-left: 0;
}
/* ==========================================================================
5 = col 3
========================================================================== */
.col3 > * {
width: 32.65%;
margin-bottom: 1%;
}
.col3 > *:nth-child(3n+1) {
margin-left: 0;
}
/* ==========================================================================
6 = col 4
========================================================================== */
.col4 > * {
width: 24.25%;
margin-bottom: 1%;
}
.col4 > *:nth-child(4n+1) {
margin-left: 0;
}

View file

@ -0,0 +1,15 @@
/* ==========================================================================
Sommaire
1 = Messages
========================================================================== */
.messages {
color: #FFF;
margin-bottom: 1em;
}
.danger { background: #c0392b; }
.warning { background: #e67e22; }
.success { background: #27ae60; }
.info { background: #2980b9; }

View file

@ -0,0 +1,265 @@
/*
Ratatouille mini Framework css by Thomas LEBEAU
Base on KNACSS => www.KNACSS.com (2013-10) @author: Raphael Goetter, Alsacreations
and normalize.css
*/
/* ==========================================================================
Sommaire
1 = Mise en Forme
2 = Mise en Page
3 = Internet Explorer
========================================================================== */
/* ==========================================================================
1 = Mise en forme
========================================================================== */
* {
-webkit-box-sizing: border-box;
-moz-box-sizing: border-box;
box-sizing: border-box;
}
html {
font-family: sans-serif; /* 1 */
-ms-text-size-adjust: 100%; /* 2 */
-webkit-text-size-adjust: 100%; /* 2 */
}
body {
font-size: 1em;
line-height:1.5;
margin: 0;
}
h1:first-child,
h2:first-child,
h3:first-child,
h4:first-child,
h5:first-child,
h6:first-child,
p:first-child,
ul:first-child,
ol:first-child,
dl:first-child{
margin-top: 0;
}
code,
kbd,
pre,
samp {
font-family: monospace, serif;
}
pre {
white-space: pre-wrap;
}
.upper {
text-transform: uppercase;
}
.bold {
font-weight: bold;
}
.inner {
margin: 0 auto;
max-width: 61.25em;/*980px*/
}
table, img {
max-width: 100%;
height :auto;
}
iframe {
max-width: 100%;
}
.fl {
float: left;
}
.fr {
float: right;
}
table {
border-collapse: collapse;
}
figure {
margin: 0;
}
button,
input,
select,
textarea {
font-family: inherit;
font-size: 100%;
margin: 0;
}
input[type="search"] {
-webkit-appearance: textfield;
}
input::-moz-focus-inner {
border: 0;
padding: 0;
}
@media screen and (-webkit-min-device-pixel-ratio:0){
select{
-webkit-appearance: none;
border-radius: 0;
}
}
/* ==========================================================================
2 = Mise en page
========================================================================== */
.ul-reset {
margin: 0;
padding: 0;
}
.ul-reset li {
list-style: none;
}
.dib {
display: inline-block;
vertical-align: middle;
}
.dblock { display: block; }
.dnone { display: none; }
.dtable { display:table }
.dtable > * { display:table-row; }
.dtable > * > * { display:table-cell; }
.element-invisible {
border: 0;
clip: rect(0 0 0 0);
height: 1px;
margin: -1px;
overflow: hidden;
padding: 0;
position: absolute;
width: 1px;
}
.x-text-small { font-size:x-small; }
.text-small { font-size:small; }
.text-large { font-size:large; }
.x-text-large { font-size:x-large; }
/*Width*/
.w100 { width:100%; }
.w90 { width:90%; }
.w80 { width:80%; }
.w70 { width:70%; }
.w60 { width:60%; }
.w50 { width:50%; }
.w40 { width:40%; }
.w30 { width:30%; }
.w20 { width:20%; }
.w10 { width:10%; }
h1,
.h1 {
font-size: 2.5em;
}
h2,
.h2 {
font-size: 1.8em;
}
h3,
.h3 {
font-size: 1.4em;
}
h4,
.h4 {
font-size: 1.2em;
}
h5,
.h5 {
font-size: 1em;
}
h6,
.h6 {
font-size: 0.8em;
}
/*Table*/
table {
color: #999;
min-width: 100%;
text-align: left;
}
table thead {
background: #CCC;
}
table td, table th {
padding: 0.5em;
color: #333;
border-color: #999;
}
.box {
padding: 1.5em;
}
/* ==========================================================================
Internet Explorer
========================================================================== */
/*IE8 and IE9*/
article,
aside,
details,
figcaption,
figure,
footer,
header,
hgroup,
main,
nav,
section,
summary {
display: block;
}
/*IE8 and IE9*/
audio,
canvas,
video {
display: inline-block;
}

File diff suppressed because one or more lines are too long

View file

@ -0,0 +1,621 @@
/* ==========================================================================
Sommaire
1 = Layout general
2 = Apps
3 = User
4 = Login Form
5 = Colors
6 = Form Edit
========================================================================== */
/* ==========================================================================
1 = Layout general
========================================================================== */
body {
background: #41444F;
font-family: 'source_sans_proregular';
overflow-y: scroll;
}
/* Layout */
.overlay {
padding: 2%;
}
.inner {
max-width: 50em;
margin: auto;
}
.wrapper {
width: 90%;
margin: 2% 5%;
z-index: 10;
}
.logo {
text-align: center;
margin-bottom: 0;
opacity: 0.7;
}
.logo img {
border-radius: 5px;
margin-top: 1em;
width: 4em;
}
.logged .logo {
position: fixed;
bottom: 0;
right: 1em;
z-index: 0;
opacity: 0.7;
}
.logged .logo img {
width: 2.5em;
padding: 0.3em;
border-radius: 5px;
}
.ynh-panel-active .logo {
display: none;
}
.wrapper {
position: relative;
z-index: 1;
}
.messages {
max-width: none;
text-align: center;
width: 90%;
margin: 2% 5%;
padding: 1.5em 15%;
}
/* Fonts & Colors */
a { text-decoration: none; }
h1,
h2,
h3,
h4,
h5,
h6 {
font-family: 'source_sans_probold';
font-weight: normal;
}
.cwhite {
color: #FFF;
}
select,
.form-text,
textarea {
border: 0;
font-family: 'source_sans_proregular';
}
.sourcePro {
font-family: 'source_sans_proregular';
}
.sourceProBold {
font-family: 'source_sans_probold';
}
.sourceProBlack {
font-family: 'SourceSansPro-Black';
}
/* Icons */
[class^="icon-"]:before, [class*=" icon-"]:before {
font-family: 'icomoon';
speak: none;
font-style: normal;
font-weight: normal;
font-variant: normal;
text-transform: none;
line-height: 1;
margin-right: 0.5em;
/* Better Font Rendering =========== */
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
}
.icon-user:before {
content: "\e800";
}
.icon-lock:before {
content: "\e801";
}
.icon-left-open:before {
content: "\e802";
}
.icon-right-open-1:before {
content: "\e803";
}
.icon-upload:before {
content: "\e604";
}
.icon-comments:before {
content: "\e602";
}
.icon-envelope:before {
content: "\e603";
}
.icon-connexion:before {
content: "\e600";
}
/* ==========================================================================
2 = Apps
========================================================================== */
.apps { margin: 4% 5%; }
.first-letter:before {
content: attr(data-first-letter);
}
.listing-apps li {
margin: 0 0 1em 1em;
box-shadow: 2px 2px 3px rgba(0, 0, 0, 0.4),
-2px -2px 3px 0 rgba(0, 0, 0, 0.7) inset;
}
.listing-apps a {
display: block;
position: relative;
padding: 0.2em;
top: 0;
left: 0;
width: 2.7em;
height: 2.7em;
background: #666;
color: #FFFFFF;
font-size: 4em;
transition: all 0.3s ease;
-webkit-transition: all 0.3s ease;
}
.listing-apps a:hover,
.listing-apps a:focus {
left: -10px;
top: -10px;
box-shadow: none;
}
.listing-apps a:hover:before,
.listing-apps a:focus:before {
height: 10px;
}
.listing-apps a:hover:after,
.listing-apps a:focus:after {
width: 10px;
}
.listing-apps a:hover:after,
.listing-apps a:focus:after,
.listing-apps a:hover:before,
.listing-apps a:focus:before {
background: #333;
}
.listing-apps a:after,
.listing-apps a:before {
content: "";
position: absolute;
transition: all 0.3s ease;
-webkit-transition: all 0.3s ease;
}
.listing-apps a:before {
width: 100%;
height: 0;
left: 5px;
top: 100%;
box-shadow: 0 5px 10px rgba(0, 0, 0, 0.4);
transform: skew(45deg, 0deg);
-webkit-transform: skew(45deg, 0deg);
}
.listing-apps a:after {
width: 0;
height: 100%;
left: 100%;
top: 5px;
box-shadow: 5px 0 10px rgba(0, 0, 0, 0.4);
transform: skew(0deg, 45deg);
-webkit-transform: skew(0deg, 45deg);
}
.listing-apps span {
display: block;
margin: -1.2em 0 0 0.2em;
}
.listing-apps .first-letter { margin: 0; }
.listing-apps span + span { font-size: 0.3em; }
/* ==========================================================================
3 = User
========================================================================== */
.user-container { padding: 0.4em 1em; }
.user-container a { color: #FFF; }
.user-container h2 {
font-size: 1.5em;
margin-bottom: 0;
}
.user-container h2 small {
font-size: 0.75em;
font-family: 'source_sans_proregular';
display: block;
margin-top: -0.6em;
}
.user-info { margin-left: 0.5em;}
.user-mail {
color: #999;
font-size: 0.9em;
display: block;
margin-top: -0.2em;
}
.user-img {
margin-right: 1em;
border: 3px solid #FFF;
width: 4em;
height: 4em;
border-radius: 90px;
overflow: hidden;
margin: 0.2em auto;
}
.user-menu {
float: right;
}
.user-menu a {
color: #999;
display: block;
padding: 1.25em 3em;
position: relative;
transition: all 0.3s ease;
-webkit-transition: all 0.3s ease;
z-index: 1;
}
.user-menu a:hover,
.user-menu a:focus {
color: #FFF;
}
/* ==========================================================================
4 = Forms
========================================================================== */
/* Extend artichaut-buttons.css */
.link-btn { background: none;}
.link-btn:hover,
.link-btn:focus {background: none;text-decoration: underline;}
.form-text {
padding: 0.8em;
width: 100%;
}
.form-section {
/*float: left;*/
display: inline-block;
vertical-align: top;
width: 47%;
}
.form-section + .form-section {margin-left:5%;}
label {
display: inline-block;
padding: 0.3em 1em;
background: rgba(0, 0, 0, 0.25);
color: #FFF;
font-size: 1.2em;
margin-top: 1em;
margin-bottom: 0em;
font-family: 'source_sans_probold';
font-weight: normal;
}
label {cursor: pointer;}
label + .help-link {
display: inline-block;
color: #fff;
font-weight: bold;
margin-left: 1em;
}
.btn {
cursor: pointer;
}
.btn-group {
margin-top: 4em;
text-align: right;
}
.form-group {
background: none;
margin-bottom: 2em;
}
.form-text {
background: #41444F;
background: none repeat scroll 0 0 rgba(255, 255, 255, 0.3);
color: #FFFFFF;
padding: 0.8em;
margin-bottom: 0.3em;
display: block;
}
.form-test:-moz-placeholder{color:#999999;}
.form-text::-moz-placeholder{color:#999999;}
.form-text:-ms-input-placeholder{color:#999999;}
.form-text::-webkit-input-placeholder{color:#999999;}
.form-text:last-child {margin-bottom:0;}
.form-text:hover,
.form-text:focus {
background-color: rgba(255, 255, 255, 0.15);
}
.form-text:disabled { color: #999; }
.form-text:disabled:hover {background-color:rgba(255, 255, 255, 0.3);}
input:disabled {
cursor: not-allowed;
}
/* ==========================================================================
4 = Login form
========================================================================== */
.login-form {
width: 21em;
margin: 0 auto;
}
.login-form .btn {
width: 100%;
padding: 0.8em 1em;
}
.login-form .form-group {
position: relative;
margin-bottom: 1em;
background: #FFF;
}
.login-form label {
display: inline-block;
min-width: 1em;
margin: 0;
padding: 0;
font-size: 1em;
}
.login-form label:before {
background: #EEE;
color: #666;
position: absolute;
top: 0;
left: 0;
width: 2.5em;
height: 100%;
line-height: 2.5em;
text-align: center;
}
.login-form .form-text {
padding: 0.8em 0.8em 0.8em 3em;
width: 100%;
background: #FFF;
color: #41444F;
}
/* ==========================================================================
5 = Colors
========================================================================== */
.listing-apps .purplebg {
background: #9B59B6!important;
transition: all 0.2s ease 0s;
-webkit-transition: all 0.2s ease 0s;
}
.purplebg:hover:after,
.purplebg:focus:after,
.purplebg:hover:before,
.purplebg:focus:before {
background: #532C64!important;
}
.yellowbg {
background: #F1C40F!important;
transition: all 0.2s ease 0s;
-webkit-transition: all 0.2s ease 0s;
}
.yellowbg:hover:after,
.yellowbg:focus:after,
.yellowbg:hover:before,
.yellowbg:focus:before {
background: #796307!important;
}
.pinkbg {
background: #D66D92!important;
transition: all 0.2s ease 0s;
-webkit-transition: all 0.2s ease 0s;
}
.pinkbg:hover:after,
.pinkbg:focus:after,
.pinkbg:hover:before,
.pinkbg:focus:before {
background: #992B52!important;
}
.orangebg {
background: #F39C12!important;
transition: all 0.2s ease 0s;
-webkit-transition: all 0.2s ease 0s;
}
.orangebg:hover:after,
.orangebg:focus:after,
.orangebg:hover:before,
.orangebg:focus:before {
background: #7F5006!important;
}
.redbg {
background: #E74C3C!important;
transition: all 0.2s ease 0s;
-webkit-transition: all 0.2s ease 0s;
}
.redbg:hover:after,
.redbg:focus:after,
.redbg:hover:before,
.redbg:focus:before {
background: #921E12!important;
}
.turquoisebg {
background: #1ABC9C!important;
transition: all 0.2s ease 0s;
-webkit-transition: all 0.2s ease 0s;
}
.turquoisebg:hover:after,
.turquoisebg:focus:after,
.turquoisebg:hover:before,
.turquoisebg:focus:before {
background: #0B4C3F!important;
}
.bluebg {
background: #3498DB!important;
transition: all 0.2s ease 0s;
-webkit-transition: all 0.2s ease 0s;
}
.bluebg:hover:after,
.bluebg:focus:after,
.bluebg:hover:before,
.bluebg:focus:before {
background: #16527A!important;
}
.greenbg {
background: #2ECC71!important;
transition: all 0.2s ease 0s;
-webkit-transition: all 0.2s ease 0s;
}
.greenbg:hover:after,
.greenbg:focus:after,
.greenbg:hover:before,
.greenbg:focus:before {
background: #176437!important;
}
.darkbluebg {
background: #34495E!important;
transition: all 0.2s ease 0s;
-webkit-transition: all 0.2s ease 0s;
}
.darkbluebg:hover:after,
.darkbluebg:focus:after,
.darkbluebg:hover:before,
.darkbluebg:focus:before {
background: #07090C!important;
}
.lightbluebg {
background: #6A93D4!important;
transition: all 0.2s ease 0s;
-webkit-transition: all 0.2s ease 0s;
}
.lightbluebg:hover:after,
.lightbluebg:focus:after,
.lightbluebg:hover:before,
.lightbluebg:focus:before {
background: #2B5394!important;
}
.lightpinkbg {
background: #F76F87!important;
transition: all 0.2s ease 0s;
-webkit-transition: all 0.2s ease 0s;
}
.lightpinkbg:hover:after,
.lightpinkbg:focus:after,
.lightpinkbg:hover:before,
.lightpinkbg:focus:before {
background: #DA0C31!important;
}
.lightyellow {
background: #FFC973!important;
transition: all 0.2s ease 0s;
-webkit-transition: all 0.2s ease 0s;
}
.lightyellow:hover:after,
.lightyellow:focus:after,
.lightyellow:hover:before,
.lightyellow:focus:before {
background: #F39500!important;
}
.lightgreen {
background: #B5F36D!important;
transition: all 0.2s ease 0s;
-webkit-transition: all 0.2s ease 0s;
}
.lightgreen:hover:after,
.lightgreen:focus:after,
.lightgreen:hover:before,
.lightgreen:focus:before {
background: #77CF11!important;
}
.purpledarkbg {
background: #8E44AD!important;
transition: all 0.2s ease 0s;
-webkit-transition: all 0.2s ease 0s;
}
.purpledarkbg:hover:after,
.purpledarkbg:focus:after,
.purpledarkbg:hover:before,
.purpledarkbg:focus:before {
background: #432051!important;
}
/* ==========================================================================
6 = Form Edit
========================================================================== */
.form-edit .form-group .btn:before {
content:"+";
display: inline-block;
padding-right: 0.75em;
font-weight: bold;
}
.form-section:first-child .btn-group {
text-align: left;
}

File diff suppressed because one or more lines are too long

Binary file not shown.

Binary file not shown.

BIN
portal/assets/fonts/icomoon.eot Executable file

Binary file not shown.

BIN
portal/assets/fonts/icomoon.ttf Executable file

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View file

@ -0,0 +1,34 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 15.0.0, SVG Export Plug-In -->
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" [
<!ENTITY ns_flows "http://ns.adobe.com/Flows/1.0/">
]>
<svg version="1.1"
xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:a="http://ns.adobe.com/AdobeSVGViewerExtensions/3.0/"
x="0px" y="0px" width="98px" height="85px" viewBox="-0.25 -0.25 98 85"
overflow="visible" enable-background="new -0.25 -0.25 98 85" xml:space="preserve">
<defs>
</defs>
<path fill="#FFFFFF" d="M97,51c-2.02,4.98-8.33,5.67-14,7c-0.609,6.29,3.05,10.95-1,16c-6.41-0.26-7.471-5.859-7-13c-1,0-2,0-3,0
c-2.09,2.77,0.9,4.52,0,8c-1.12,4.34-7.88,7.91-11,7c-2.18-0.641-5.96-6.63-5-12c2.82-2.71,2.76,3.12,6,3c5.05-7.84-9.63-8.55-8-17
c1.24-6.42,11.66-9.66,15-1c1.54,4.21-5.17,0.16-5,3c-0.279,1.62,0.95,1.72,1,3c2.52,0.77,1.68-2.16,3-3c1.859-1.17,3.09-0.75,6-1
c2.45-2.55,1.08-8.92,4-11c3.87,0.46,6.08,2.59,6,7C91.01,46.109,94.3,46.05,97,51z"/>
<path fill="#FFFFFF" d="M87,13c0.609,3.21,2.32,4.98,2,8c-0.34,3.21-2.9,8.83-4,9c-1.17,0.18-1.34,1.78-2,2
c-4.66,1.57-12.391-1.48-14-7c-1.16-3.97,1.9-13.37,4-17c1.3-2.25,1.221-2.99,5-4c2.41-0.65,3.65-2.25,6,0
c0.471,0.45,1.3,0.49,1.85,0.89c-0.199,0,2,3.14,2.15,4.11C88.32,11.07,86.77,11.78,87,13z M79,22c1.779-1.89,3.29-4.04,3-8
C77.49,12.33,74.67,21.3,79,22z"/>
<path fill="#FFFFFF" d="M67,21c-0.07,5.81,2.48,10.7,0,15c-6.73,1.06-7.24-4.1-11-6c-1.939,1.39-1.49,5.18-3,7
c-3.78,0.44-4.69-1.97-7-3c2.47-7.81,1.26-18.98,2-26c8.58-0.58,7.68,8.32,12,12c0.52-4.34-0.359-15.52,3-20
C70.33,3.29,67.09,12.99,67,21z"/>
<path fill="#FFFFFF" d="M52,55c1.93,8.41,0.12,22.689-12,20c-1.59-0.35-8.42-5.22-9-7c-1.62-5,0.34-13.34,3-16
C39.03,46.97,45.48,50.359,52,55z M39,66c4.55,0.96,6.3-4.2,4-7C39.37,59.03,38.61,61.939,39,66z"/>
<path fill="#FFFFFF" d="M39,8c5.58,0.9,6.4,6.81,5,15c-1.43,8.38-3.02,14.59-9,15c-9.57,0.65-12.25-16.69-9-29
c8.32,1.27,6.59,10.36,6,17c2.71,0.83,2.2-0.85,3-2C37.05,21.04,37.82,13.61,39,8z"/>
<path fill="#FFFFFF" d="M28,62c0.1,5.67,4.4,11.33,2,17c-4.32-1.01-6.57-4.09-9-7c-3.15-0.48-2.26,3.07-6,2
c-0.67,5.061,2.29,7.57-1,10c-4.7-0.63-6.66-4-8-8c-2.61-1.38-5.48-2.52-6-6c0.14-3.53,4.48-2.85,7-4c0.47-5.53-1.41-13.41,2-16
c8.31,0.49,8.21,7.13,7,15c4.36,0.29,4.94-4.35,5-7c0.06-2.43-1.82-8.26,2-11c3.06-0.73,2.94,1.73,6,1
C32.35,52.7,27.92,57.439,28,62z"/>
<path fill="#FFFFFF" d="M24,12c1.07,7.07-3.86,8.14-6,12c0.21,6.88-0.47,12.86-2,18c-5.86-1.32-8.7-10.38-6-17
c-0.33-3.52-5.26-4.22-7-8c-0.3-0.66-0.47-4.43-1-7C1.09,5.63,0.55,4.31,3,1c8.16-0.49,7.21,8.13,9,14c5.05,0.39,3.91-5.42,8-6
C20.98,10.35,22.67,11,24,12z"/>
</svg>

After

Width:  |  Height:  |  Size: 2.6 KiB

View file

@ -0,0 +1,38 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 15.0.0, SVG Export Plug-In -->
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" [
<!ENTITY ns_flows "http://ns.adobe.com/Flows/1.0/">
]>
<svg version="1.1"
xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:a="http://ns.adobe.com/AdobeSVGViewerExtensions/3.0/"
x="0px" y="0px" width="98px" height="85px" viewBox="0 0 98 85" overflow="visible" enable-background="new 0 0 98 85"
xml:space="preserve">
<defs>
</defs>
<g id="XMLID_2_">
<g>
<path d="M97.25,51.25c-2.02,4.98-8.33,5.67-14,7c-0.61,6.29,3.05,10.95-1,16c-6.41-0.26-7.47-5.86-7-13c-1,0-2,0-3,0
c-2.09,2.77,0.9,4.52,0,8c-1.12,4.34-7.88,7.91-11,7c-2.18-0.64-5.96-6.63-5-12c2.82-2.71,2.76,3.12,6,3c5.05-7.84-9.63-8.55-8-17
c1.24-6.42,11.66-9.66,15-1c1.54,4.21-5.17,0.16-5,3c-0.28,1.62,0.95,1.72,1,3c2.52,0.77,1.68-2.16,3-3c1.86-1.17,3.09-0.75,6-1
c2.45-2.55,1.08-8.92,4-11c3.87,0.46,6.08,2.59,6,7C91.26,46.36,94.55,46.3,97.25,51.25z"/>
<path d="M87.25,13.25c0.61,3.21,2.32,4.98,2,8c-0.34,3.21-2.9,8.83-4,9c-1.17,0.18-1.34,1.78-2,2c-4.66,1.57-12.39-1.48-14-7
c-1.16-3.97,1.9-13.37,4-17c1.3-2.25,1.22-2.99,5-4c2.41-0.65,3.65-2.25,6,0c0.47,0.45,1.3,0.49,1.85,0.89
c-0.199,0,2,3.14,2.15,4.11C88.57,11.32,87.02,12.03,87.25,13.25z M79.25,22.25c1.78-1.89,3.29-4.04,3-8
C77.74,12.58,74.92,21.55,79.25,22.25z"/>
<path d="M67.25,21.25c-0.07,5.81,2.48,10.7,0,15c-6.73,1.06-7.24-4.1-11-6c-1.94,1.39-1.49,5.18-3,7c-3.78,0.44-4.69-1.97-7-3
c2.47-7.81,1.26-18.98,2-26c8.58-0.58,7.68,8.32,12,12c0.52-4.34-0.36-15.52,3-20C70.58,3.54,67.34,13.24,67.25,21.25z"/>
<path d="M52.25,55.25c1.93,8.41,0.12,22.69-12,20c-1.59-0.35-8.42-5.22-9-7c-1.62-5,0.34-13.34,3-16
C39.28,47.22,45.73,50.61,52.25,55.25z M39.25,66.25c4.55,0.96,6.3-4.2,4-7C39.62,59.28,38.86,62.19,39.25,66.25z"/>
<path d="M39.25,8.25c5.58,0.9,6.4,6.81,5,15c-1.43,8.38-3.02,14.59-9,15c-9.57,0.65-12.25-16.69-9-29c8.32,1.27,6.59,10.36,6,17
c2.71,0.83,2.2-0.85,3-2C37.3,21.29,38.07,13.86,39.25,8.25z"/>
<path d="M28.25,62.25c0.1,5.67,4.4,11.33,2,17c-4.32-1.01-6.57-4.09-9-7c-3.15-0.48-2.26,3.07-6,2c-0.67,5.06,2.29,7.57-1,10
c-4.7-0.63-6.66-4-8-8c-2.61-1.38-5.48-2.52-6-6c0.14-3.53,4.48-2.85,7-4c0.47-5.53-1.41-13.41,2-16c8.31,0.49,8.21,7.13,7,15
c4.36,0.29,4.94-4.35,5-7c0.06-2.43-1.82-8.26,2-11c3.06-0.73,2.94,1.73,6,1C32.6,52.95,28.17,57.69,28.25,62.25z"/>
<path d="M24.25,12.25c1.07,7.07-3.86,8.14-6,12c0.21,6.88-0.47,12.86-2,18c-5.86-1.32-8.7-10.38-6-17c-0.33-3.52-5.26-4.22-7-8
c-0.3-0.66-0.47-4.43-1-7c-0.91-4.37-1.45-5.69,1-9c8.16-0.49,7.21,8.13,9,14c5.05,0.39,3.91-5.42,8-6
C21.23,10.6,22.92,11.25,24.25,12.25z"/>
</g>
<g>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 2.7 KiB

View file

@ -0,0 +1,26 @@
document.addEventListener('DOMContentLoaded', function() {
var liMenu = document.querySelectorAll('#apps a'),
colors = ['bluebg','purplebg','redbg','orangebg','greenbg','darkbluebg','lightbluebg','yellowbg','lightpinkbg'],
addMailAlias = document.getElementById('add-mailalias'),
addMaildrop = document.getElementById('add-maildrop'),
formMailAlias = document.getElementById('form-add-mail-alias'),
formMailDrop = document.getElementById('form-add-mail-drop');
[].forEach.call(liMenu, function(el, i) {
var text = el.textContent,
splitText = text.split("");
el.classList.add(colors[i]);
el.querySelector('.first-letter').setAttribute('data-first-letter',splitText[0]+splitText[1]);
});
addMailAlias.addEventListener('click', function(){
var inputAlias = document.querySelector('.mailalias-input');
formMailAlias.insertBefore(inputAlias.cloneNode(true), addMailAlias);
});
addMaildrop.addEventListener('click', function(){
var inputDrop = document.querySelector('.maildrop-input');
formMailDrop.insertBefore(inputDrop.cloneNode(true), addMaildrop);
});
});

View file

@ -135,6 +135,16 @@ domReady(function(){
portal.setAttribute('href', '/ynhsso/');
document.body.insertBefore(portal, null);
// Create overlay element
var overlay = document.createElement("div");
overlay.setAttribute("id","ynhoverlay");
overlay.setAttribute("style","display:none");
document.body.insertBefore(overlay, null);
//Color Application
var colors = ['bluebg','purplebg','redbg','orangebg','greenbg','darkbluebg','lightbluebg','yellowbg','lightpinkbg'];
// Get user's app
var r = new XMLHttpRequest();
r.open("GET", "/ynhpanel.json", true);
@ -143,55 +153,102 @@ domReady(function(){
if (r.readyState != 4 || r.status != 200) return;
// Response is JSON
document.querySelector('body').classList.add('ynh-panel-active');
response = JSON.parse(r.responseText);
// Create overlay element
var overlay = document.createElement("div");
overlay.setAttribute("id","ynhoverlay");
// Append close button
var closeBtn = document.createElement("div");
/*var closeBtn = document.createElement("div");
closeBtn.setAttribute("id","ynhclose");
closeBtn.innerHTML = "X";
overlay.insertBefore(closeBtn, null);
overlay.insertBefore(closeBtn, null);*/
// Add overlay header
overlay.innerHTML += '<div class="header">' +
'<h1>'+ response.user.name +' <small>'+ response.user.mail +'</small></h1>' +
'' +
// '<a class="account-link" href="'+ response.portal_url +'">'+ response.user.uid +'</a>' +
'<a class="account-link" href="'+ response.portal_url +'edit.html">Edit</a>' +
' | <a class="logout-link" href="'+ response.portal_url +'password.html">Change password</a>' +
' | <a class="logout-link" href="'+ response.portal_url +'?action=logout">Logout</a>' +
overlay.innerHTML += '<div class="wrapper">' +
'<ul class="ul-reset user-menu"><li><a class="icon icon-connexion" href="'+ response.portal_url +'?action=logout">Logout</a></li></ul>'+
'<div id="yuno-user" class="user-container col colNomarge">'+
'<a class="user-img" href="'+ response.portal_url +'edit.html"><img src="'+ response.portal_url +'assets/img/avatar.png"></a>' +
'<div class="user-info">' +
'<h2><a href="'+ response.portal_url +'edit.html">'+ response.user.uid +'<small>'+ response.user.name +'</small></</a></h2>'+
'<span class="user-mail">'+ response.user.mail +'</span>'+
'</div>' +
'</div>' +
'</div>';
// Add application links
var links = [];
Array.each(response.app, function(app){
links.push('<li><a href="//'+app.url+'" data-first-letter="'+ app.name.substr(0,1) +'">'+app.name+'</a></li>');
Array.prototype.forEach.call(response.app, function(app, n){
links.push('<li><a class="'+colors[n]+'" href="//'+app.url+'"><span class="first-letter" data-first-letter="'+ app.name.substr(0,2) +'"></span><span class="sourcePro">'+app.name+'</span></a></li>');
});
overlay.innerHTML += '<ul>'+ links.join('') +'</ul>';
overlay.innerHTML += '<div id="yuno-apps" class="wrapper apps"><ul class="ul-reset listing-apps col colNomarge sourceProBold">'+ links.join('') +'</ul></div>';
// Add overlay to DOM
document.body.insertBefore(overlay, null);
var ynhssoPath = window.location.pathname;
if(ynhssoPath == '/ynhsso/') {
//Element.toggleClass(overlay, 'visible');
Element.toggleClass(portal, 'visible');
}
var btn = document.getElementById('logo'),
yunoverlay = document.getElementById('ynhoverlay'),
user = document.getElementById('yuno-user'),
apps = document.getElementById('yuno-apps');
/*var btnApps = document.querySelectorAll('.btnClick');
var closeBtn = document.querySelectorAll('.close');
Array.prototype.forEach.call(btnApps, function(el) {
el.addEventListener('click', function(e){
e.preventDefault();
var link = this.getAttribute('data-id');
//overlay.classList.add(link);
})
})*/
var pfx = ["webkit", "moz", "MS", "o", ""];
function PrefixedEvent(element, type, callback) {
for (var p = 0; p < pfx.length; p++) {
if (!pfx[p]) type = type.toLowerCase();
element.addEventListener(pfx[p]+type, callback, false);
}
}
// Bind YNH Button
window.addEvent(portal, 'click', function(e){
// Prevent default click
window.eventPreventDefault(e);
// Toggle overlay on YNHPortal button
Element.toggleClass(overlay, 'visible');
//Element.toggleClass(overlay, 'visible');
Element.toggleClass(portal, 'visible');
if(yunoverlay.classList.contains('yuno-active')) {
yunoverlay.classList.add('yuno-fadeOut');
PrefixedEvent(yunoverlay, "AnimationEnd", function(){
if(yunoverlay.classList.contains('yuno-fadeOut')) {
yunoverlay.classList.remove('yuno-active');
}
});
apps.classList.remove('yuno-fadeIn', 'yuno-delay');
apps.classList.remove('yuno-fadeInLeft', 'yuno-delay');
user.classList.remove('yuno-slideintop');
}else {
yunoverlay.classList.remove('yuno-fadeOut');
yunoverlay.classList.add('yuno-active');
apps.classList.add('yuno-fadeInLeft', 'yuno-delay');
user.classList.add('yuno-slideintop');
}
});
// Bind close button
window.addEvent(document.getElementById('ynhclose'), 'click', function(e){
/*window.addEvent(document.getElementById('ynhclose'), 'click', function(e){
// Prevent default click
window.eventPreventDefault(e);
// Hide overlay
Element.removeClass(overlay, 'visible');
Element.removeClass(portal, 'visible');
});
});*/
};
r.send();

View file

@ -1,83 +1,64 @@
<form class="form-horizontal" role="form" method="POST" action="edit.html">
<div class="form-group">
<label for="uid" class="col-sm-3 control-label">{{t_username}}</label>
<div class="col-sm-9">
<input type="text" name="uid" class="form-control" value="{{uid}}" disabled>
<div class="wrapper user">
<ul class="ul-reset user-menu">
<li><a class="icon icon-connexion" href="?action=logout">{{t_logout}}</a></li>
</ul>
<div class="user-container col colNomarge">
<a class="user-img" href="info.html"><img src="assets/img/avatar.png"></a>
<div class="user-info">
<h2><a href="info.html">{{{uid}}}<small>{{givenName}} {{sn}}</small></a></h2>
<span class="user-mail">{{mail}}</span>
</div>
</div>
</div>
<div class="wrapper edit">
<form class="form-edit" role="form" method="POST" action="edit.html">
<div class="form-section">
<div class="form-group">
<label for="uid" class="control-label">{{t_username}}</label>
<input id="uid" type="text" name="uid" class="form-control form-text" value="{{uid}}" disabled required>
</div>
<div class="form-group">
<label for="givenName" class="control-label">{{t_fullname}}</label>
<input type="text" id="givenName" name="givenName" class="form-control form-text" value="{{givenName}}" placeholder="{{t_firstname}}" required>
<input type="text" name="sn" class="form-control form-text" value="{{sn}}" placeholder="{{t_lastname}}" required>
</div>
<div class="btn-group">
<a href="password.html" class="btn validate-btn large-btn">{{t_change_password}}</a>
</div>
</div>
<div class="form-section">
<div class="form-group" id="form-add-mail-alias">
<label for="mail" class="control-label">{{t_mail_addresses}}</label>
<a class="help-link" href="#">?</a>
<input type="email" name="mail" class="form-control form-text" value="{{mail}}" placeholder="{{t_new_mail}}" required>
{{#mailalias}}
<input type="email" name="mailalias[]" class="form-control form-text" value="{{.}}">
{{/mailalias}}
<input id="mail" type="email" name="mailalias[]" class="form-control mailalias-input form-text" placeholder="{{t_new_mail}}">
<a class="btn link-btn" id="add-mailalias">{{t_add_mail}}</a>
</div>
<div class="form-group" id="form-add-mail-drop">
<label for="mailforward" class="control-label">{{t_mail_forward}}</label>
<a class="help-link" href="#">?</a>
{{#maildrop}}
<input type="email" name="maildrop[]" class="form-control form-text" value="{{.}}">
<br>
{{/maildrop}}
<input id="mailforward" type="email" name="maildrop[]" class="form-control maildrop-input form-text" placeholder="{{t_new_forward}}">
<a class="btn link-btn" id="add-maildrop">{{t_add_forward}}</a>
</div>
</div>
<div class="form-group">
<label for="givenName" class="col-sm-3 control-label">{{t_fullname}}</label>
<div class="clearfix visible-xs"></div>
<div class="col-sm-4 col-xs-6">
<input type="text" name="givenName" class="form-control" value="{{givenName}}" required>
<div class="btn-group">
<a href="info.html" class="btn large-btn">{{t_cancel}}</a>
<input type="submit" class="btn classic-btn large-btn" value="{{t_ok}}">
</div>
<div class="col-sm-5 col-xs-6">
<input type="text" name="sn" class="form-control" value="{{sn}}" required>
</div>
</div>
<hr>
<div class="form-group">
<label for="mail" class="col-sm-3 control-label">{{t_mail}}</label>
<div class="col-sm-9">
<input type="email" name="mail" class="form-control" value="{{mail}}" required>
</div>
</div>
<hr>
<div class="row">
<div class="col-sm-3 text-right hidden-xs"><strong>{{t_aliases}}</strong></div>
<div class="col-sm-3 text-left visible-xs"><h4>{{t_aliases}}</h4></div>
<div class="col-sm-9">
<blockquote>
{{#mailalias}}
<input type="email" name="mailalias[]" class="form-control" value="{{.}}">
<br>
{{/mailalias}}
<input type="email" name="mailalias[]" class="form-control mailalias-input" placeholder="{{t_newalias}}">
<div class="text-center" style="display: none;" id="add-mailalias"><a class="btn btn-success"><strong>+</strong></a></div>
<div class="clearfix"></div>
</blockquote>
</div>
</div>
<hr>
<div class="row">
<div class="col-sm-3 text-right hidden-xs"><strong>{{t_forward}}</strong></div>
<div class="col-sm-3 text-left visible-xs"><h4>{{t_forward}}</h4></div>
<div class="col-sm-9">
<blockquote>
{{#maildrop}}
<input type="email" name="maildrop[]" class="form-control" value="{{.}}">
<br>
{{/maildrop}}
<input type="email" name="maildrop[]" class="form-control maildrop-input" placeholder="{{t_newforward}}">
<div class="text-center" style="display: none;" id="add-maildrop"><a class="btn btn-success"><strong>+</strong></a></div>
<div class="clearfix"></div>
</blockquote>
</div>
</div>
<hr>
<div class="row">
<div class="col-sm-6 text-center">
<input type="submit" class="btn btn-lg btn-primary" value="{{t_ok}}">
</div>
<div class="visible-xs" style="height: 20px"></div>
<div class="col-sm-6 text-center">
<a href="info.html" class="btn btn-lg btn-default">{{t_cancel}}</a>
</div>
</div>
</form>
<script type="text/javascript">
$( document ).ready(function() {
$("#add-mailalias").show();
$("#add-maildrop").show();
$(".mailalias-input").hide();
$(".maildrop-input").hide();
$("#add-mailalias a").on("click", function() {
$("#add-mailalias").before($(".mailalias-input:first").clone().show());
$("#add-mailalias").before("<br><br>");
});
$("#add-maildrop a").on("click", function() {
$("#add-maildrop").before($(".maildrop-input:first").clone().show());
$("#add-maildrop").before("<br><br>");
});
});
</script>
</div>
</form>
</div>

View file

@ -1,7 +1,4 @@
</div>
</div>
</div>
</div>
<div style="height: 20px"></div>
</div>
<script src="assets/js/global.js"></script>
</body>
</html>

View file

@ -1,37 +1,34 @@
<html>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" >
<head>
<meta name="format-detection" content="telephone=no" />
<meta name="viewport" content="user-scalable=no, width=device-width, height=device-height" />
<title>{{t_portal}}</title>
<link rel="stylesheet" href="assets/css/bootstrap.min.css" type="text/css"/>
<script src="assets/js/jquery-1.10.2.min.js"></script>
<meta name="format-detection" content="telephone=no" />
<meta name="viewport" content="user-scalable=no, width=device-width, height=device-height" />
<title>{{t_portal}}</title>
<link rel="stylesheet" href="assets/css/artichaut.css">
<link rel="stylesheet" href="assets/css/artichaut-col.css">
<link rel="stylesheet" href="assets/css/artichaut-messages.css">
<link rel="stylesheet" href="assets/css/artichaut-buttons.css">
<link rel="stylesheet" href="assets/css/fonts.css">
<link rel="stylesheet" href="assets/css/ynh-style.css">
</head>
<body>
<!-- Padding bootstrap style -->
<div class="row">
<div class="col-xs-1 visible-xs"></div>
<div class="col-sm-10 col-sm-offset-1 col-xs-10 col-xs-offest-1">
<div class="row">
<div class="col-sm-8 col-sm-offset-2 col-xs-12" style="max-width: 750px;">
<body class="{{#connected}}logged{{/connected}}">
<h2>{{{title}}}</h2>
{{#connected}}
<div class="pull-right" style="margin-top: -31px">
<a href="?action=logout">{{t_logout}}</a>
</div>
{{/connected}}
<hr>
<h1 id="logo" class="logo">
<img src="assets/img/logo-ynh-white.svg"/><span class="element-invisible">Yunohost</span>
</h1>
{{#flash_win}}
<div class="alert alert-success">{{.}}</div>
{{/flash_win}}
<div class="overlay">
{{#flash_win}}
<div class="box messages success inner">{{.}}</div>
{{/flash_win}}
{{#flash_fail}}
<div class="alert alert-danger">{{.}}</div>
{{/flash_fail}}
{{#flash_fail}}
<div class="box messages danger inner">{{.}}</div>
{{/flash_fail}}
{{#flash_info}}
<div class="alert alert-info">{{.}}</div>
{{/flash_info}}
{{#flash_info}}
<div class="box messages info inner">{{.}}</div>
{{/flash_info}}

View file

@ -1,64 +1,23 @@
<div class="row">
<div class="col-md-4 text-center">
<h3>My apps</h3>
<div class="visible-sm visible-xs" style="height: 20px"></div>
</div>
<div class="col-md-8">
<div class="row">
{{#app}}
<div class="col-sm-3 text-center" style="float: left; width: 130px; height: 130px">
<a style="font-size: 44px; padding: 15%;" class="btn btn-lg btn-primary btn-block" href="https://{{url}}" title="{{name}}">
<div style="font-family: 'monospace'; width:28px; margin-left: 21px; overflow: hidden">{{name}}</div>
</a>
<a href="https://{{url}}"><h6>{{name}}</h6></a>
</div>
{{/app}}
</div>
</div>
</div>
<hr>
<div class="row">
<div class="col-md-4 text-center">
<h3>Profile</h3>
<div class="visible-sm visible-xs" style="height: 20px"></div>
<img src="assets/img/avatar.png">
</div>
<div class="visible-sm" style="height: 20px"></div>
<div class="col-md-8">
<div class="row">
<div class="col-sm-4 text-right hidden-xs"><strong>{{t_mail}}</strong></div>
<div class="col-sm-4 visible-xs "><h4>{{t_mail}}</h4></div>
<div class="col-sm-8"><blockquote>{{mail}}</blockquote></div>
<div class="clearfix"></div><br>
<div class="col-sm-4 text-right hidden-xs"><strong>{{t_aliases}}</strong></div>
<div class="col-sm-4 visible-xs "><h4>{{t_aliases}}</h4></div>
<div class="col-sm-8">
<blockquote>
{{#mailalias}}
<div style="line-height: 25px">{{.}}</div>
{{/mailalias}}
</blockquote>
</div>
<div class="clearfix"></div><br>
<div class="col-sm-4 text-right hidden-xs"><strong>{{t_forward}}</strong></div>
<div class="col-sm-4 visible-xs "><h4>{{t_forward}}</h4></div>
<div class="col-sm-8">
<blockquote>
{{#maildrop}}
<div style="line-height: 25px">{{.}}</div>
{{/maildrop}}
</blockquote>
</div>
</div>
</div>
</div>
<hr>
<div class="row">
<div class="col-sm-6 text-center">
<a href="password.html" class="btn btn-lg btn-danger">{{t_change_password}}</a>
</div>
<div class="visible-xs" style="height: 20px"></div>
<div class="col-sm-6 text-center">
<a href="edit.html" class="btn btn-lg btn-warning">{{t_edit}}</a>
<div class="wrapper user">
<ul class="ul-reset user-menu">
<li><a class="icon icon-connexion" href="?action=logout">Logout</a></li>
</ul>
<div class="user-container col colNomarge">
<a class="user-img" href="edit.html"><img src="assets/img/avatar.png"></a>
<div class="user-info">
<h2><a href="info.html">{{{uid}}}<small>{{givenName}} {{sn}}</small></a></h2>
<span class="user-mail">{{mail}}</span>
</div>
</div>
</div>
<div id="apps" class="wrapper apps">
<ul class="ul-reset listing-apps col colNomarge sourceProBold">
{{#app}}
<li>
<a href="https://{{url}}"><span class="first-letter"></span><span class="sourcePro">{{name}}</span></a>
</li>
{{/app}}
</ul>
</div>

View file

@ -4,13 +4,12 @@
"username": "Username",
"password": "Password",
"fullname": "Fullname",
"mail": "Mail",
"aliases": "Aliases",
"forward": "Forward",
"newalias": "newalias@mydomain.org",
"newforward": "newforward@myforeigndomain.org",
"add_mailalias": "Add a mail alias",
"add_mailforward": "Add a mail forward",
"mail_addresses": "Mail addresses",
"mail_forward": "Mail forward",
"new_mail": "newmail@mydomain.org",
"new_forward": "newforward@myforeigndomain.org",
"add_mail": "Add a mail alias",
"add_forward": "Add a mail forward",
"ok": "OK",
"cancel": "Cancel",
"change_password": "Change password",
@ -19,6 +18,7 @@
"new_password": "New password",
"confirm": "Confirm",
"login": "Login",
"logout": "Logout",
"password_changed": "Password successfully changed",
"password_changed_error": "An error occured on password changing",
"password_not_match": "New passwords don't match",

View file

@ -4,13 +4,12 @@
"username": "Nom d'utilisateur",
"password": "Mot de passe",
"fullname": "Nom complet",
"mail": "Email",
"aliases": "Alias",
"forward": "Transfert",
"newalias": "nouvel_alias@domaine.org",
"newforward": "nouveau_transfert@domainedistant.org",
"add_mailalias": "Ajouter un alias email",
"add_mailforward": "Ajouter un email vers lequel transférer",
"mail_addresses": "Adresses email",
"mail_forward": "Adresses de transfert",
"new_mail": "nouvelle_adresse@domaine.org",
"new_forward": "nouveau_transfert@domainedistant.org",
"add_mail": "Ajouter une adresse email",
"add_forward": "Ajouter une adresse de transfert",
"ok": "Valider",
"cancel": "Annuler",
"change_password": "Changer de mot de passe",
@ -19,6 +18,7 @@
"new_password": "Nouveau mot de passe",
"confirm": "Confirmation",
"login": "Connexion",
"logout": "Déconnexion",
"password_changed": "Mot de passe modifié",
"password_changed_error": "Une erreur s'est produite lors du changement de mot de passe",
"password_not_match": "Les nouveaux mots de passe ne correspondent pas",

View file

@ -1,11 +1,13 @@
<form name="input" action="" method="post">
<div class="wrapper login">
<form class="login-form" name="input" action="" method="post">
<div class="form-group">
<label for="user">{{t_username}}</label>
<input type="text" name="user" placeholder="john" class="form-control">
<label class="icon icon-user" for="user"><span class="element-invisible">{{t_username}}</span></label>
<input id="user" type="text" name="user" placeholder="{{t_username}}" class="form-control form-text" required>
</div>
<div class="form-group">
<label for="user">{{t_password}}</label>
<input type="password" name="password" placeholder="•••••" class="form-control">
<label class="icon icon-lock" for="password"><span class="element-invisible">{{t_password}}</span></label>
<input id="password" type="password" name="password" placeholder="{{t_password}}" class="form-control form-text" required>
</div>
<input type="submit" value="{{t_login}}" class="btn btn-success">
<input type="submit" value="{{t_login}}" class="btn classic-btn large-btn">
</form>
</div>

View file

@ -1,127 +0,0 @@
<!doctype html>
<!--[if lt IE 7]> <html class="no-js lt-ie9 lt-ie8 lt-ie7" lang="en"> <![endif]-->
<!--[if IE 7]> <html class="no-js lt-ie9 lt-ie8" lang="en"> <![endif]-->
<!--[if IE 8]> <html class="no-js lt-ie9" lang="en"> <![endif]-->
<!--[if gt IE 8]><!--> <html class="no-js" lang="en"> <!--<![endif]-->
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<meta name="format-detection" content="telephone=no" />
<meta name="viewport" content="user-scalable=no, width=device-width, height=device-height" />
<title>Yunohost Apps</title>
<link media="all" type="text/css" href="assets/css/panel.css" rel="stylesheet">
<script src="assets/js/jquery-1.10.2.min.js"></script>
</head>
<body class="gradient" style="overflow: hidden">
<iframe name="glu" id="glu" width="100%" src="/" style=""></iframe>
<script>
var ynh = {};
ynh.jquery = jQuery.noConflict();
(function( $ ) {
preventFire = false;
preventRefire = false;
function datScroll(to) {
preventRefire = true;
$("body,html").animate({scrollTop:to}, '100', 'swing', function() {
setTimeout(function() {
if (to == 0) {
$("#ynhtoggle").addClass("ynhopen");
} else {
$("#ynhtoggle").removeClass("ynhopen");
}
preventRefire = false;
}, 200);
});
}
function checkScroll (direction) {
if(preventRefire) return;
if((direction == "top") && ($("body").scrollTop() == 107 || $("html").scrollTop() == 107) && $("#ynhtoggle.ynhopen").length == 0) {
if(preventFire) return;
datScroll(0);
} else if((direction == "bottom") && $("#ynhtoggle.ynhopen").length > 0 ) {
datScroll(h);
}
}
function changeTitle() {
if (top.glu.document.title)
top.document.title = top.glu.document.title;
else
top.document.title = 'Yunohost Apps';
}
var tid = setInterval(changeTitle, 10000);
$( document ).ready(function($) {
h = 107;
$("#glu").load(function() {
setTimeout(function() {
changeTitle();
if ($("#ynhtopbar").length == 0) {
$('body').children().filter(function() {
return $(this).css("position") === 'absolute' || $(this).css("position") === 'fixed';
}).css({top: function(index, value) {
return parseFloat(value) + h + 3;
}});
$("body").append('<div id="ynhtopbar"><div id="ynhtoggle" class="ynhopen">YunoHost</div></div>');
{{#app}}
$("#ynhtopbar").append('<div class="ynhapp" data-href="https://{{url}}"><div class="ynhappsquare">R</div><div class="ynhappcaption">{{name}}</div></div>');
{{/app}}
}
$("body").css({marginTop: function(index, value) {
return parseFloat(value) + h + 3;
}});
if ($("body").scrollTop() == 0) {
$("body,html").scrollTop(h);
$("#ynhtoggle").removeClass("ynhopen");
}
$("#ynhtoggle").on("click", function() {
preventFire = false;
checkScroll("bottom");
checkScroll("top");
});
$(".ynhapp").on("click", function(event) {
event.preventDefault();
parent.glu.location.href = $(this).attr('data-href');
$('.ynhapp.active').removeClass('active');
$(this).addClass('active');
});
}, 10);
$(window).resize(function() {
if ($("#ynhtoggle.ynhopen").length == 0) {
$("body,html").scrollTop(h);
}
});
$( $(this)[0].contentWindow ).bind("DOMMouseScroll mousewheel scroll", function(event) {
if ((event.type == "DOMMouseScroll" && event.originalEvent.detail > 0)
|| (event.type == "mousewheel" && event.originalEvent.wheelDeltaY < 0)
|| event.currentTarget.scrollY > 0 ) {
checkScroll("bottom");
preventFire = true;
} else {
setTimeout(function() { preventFire = false; }, 500);
checkScroll("top");
}
});
$(document).bind("keyup keydown",function(event){
if($('input:focus,textarea:focus').length > 0) return; //If an input field is focused
if(event.which == 38 || event.which == 33) {
checkScroll("top");
} else if(event.which == 40 || event.which == 34) {
checkScroll("bottom");
}
});
});
});
})(ynh.jquery);
</script>
</body>
</html>

View file

@ -1,31 +1,35 @@
<form class="form-horizontal" role="form" method="POST" action="password.html">
<div class="form-group">
<label for="currentpassword" class="col-md-5 control-label">Current password</label>
<div class="col-md-7">
<input type="password" class="form-control" id="currentpassword" name="currentpassword">
</div>
<div class="wrapper user">
<ul class="ul-reset user-menu">
<li><a class="icon icon-connexion" href="?action=logout">{{t_logout}}</a></li>
</ul>
<div class="user-container col colNomarge">
<a class="user-img" href="info.html"><img src="assets/img/avatar.png"></a>
<div class="user-info">
<h2><a href="info.html">{{{uid}}}<small>{{givenName}} {{sn}}</small></a></h2>
<span class="user-mail">{{mail}}</span>
</div>
<hr>
<div class="form-group">
<label for="newpassword" class="col-md-5 control-label">New password</label>
<div class="col-md-7">
<input type="password" class="form-control" id="newpassword" name="newpassword">
</div>
</div>
</div>
<div class="wrapper password">
<form class="form-password" role="form" method="POST" action="password.html">
<div class="form-section">
<div class="form-group">
<label for="currentpassword">{{t_current_password}}</label>
<input type="password" class="form-control form-text" id="currentpassword" name="currentpassword" placeholder="•••••" required>
</div>
</div>
<div class="form-group">
<label for="confirm" class="col-md-5 control-label">Confirm</label>
<div class="col-md-7">
<input type="password" class="form-control" id="confirm" name="confirm">
</div>
<div class="form-section">
<div class="form-group">
<label for="newpassword">{{t_new_password}}</label>
<input type="password" class="form-control form-text" id="newpassword" name="newpassword" placeholder="•••••" required>
<input type="password" class="form-control form-text" id="confirm" name="confirm" placeholder="{{t_confirm}}" required>
</div>
<div class="btn-group">
<a href="info.html" class="btn large-btn btn-default">{{t_cancel}}</a>
<input type="submit" class="btn large-btn classic-btn" value="{{t_ok}}">
</div>
</div>
<hr>
<div class="row">
<div class="col-sm-6 text-center">
<input type="submit" class="btn btn-lg btn-primary" value="OK">
</div>
<div class="visible-xs" style="height: 20px"></div>
<div class="col-sm-6 text-center">
<a href="info.html" class="btn btn-lg btn-default">Cancel</a>
</div>
</div>
</form>
</form>
</div>