[enh] Use Gulp to process Less, JS and images files.

This commit is contained in:
opi 2015-08-29 15:24:20 +02:00
parent cf2bc45eb3
commit 6edab52e74
17 changed files with 384 additions and 263 deletions

4
.gitignore vendored
View file

@ -1,4 +1,8 @@
*.swp *.swp
# npm files
node_modules
npm-debug.log
# Symlink to ca.crt file # Symlink to ca.crt file
ca.crt ca.crt

View file

@ -1,12 +1,29 @@
YunoHost Admin # YunoHost Admin
==============
JS client for YunoHost API JS client for YunoHost API
Depends on Bootstrap 3.1.1 and Font-Awesome 4.0.3 ## Installation
Using less. To compile the css: This client is a part of the YunoHost projet, and can not be installed
directly. Please visit [YunoHost website](https://yunohost.org) for
more information.
cd css/ ## Contributing
lessc style.less -x style.min.css
Feel free to improve the plugin and send us a pull request.
We use gulp to compile Less files and minify the JavaScript.
Assuming [nodejs](http://nodejs.org/) is installed, you can run a
build with:
```sh
cd src
npm install
npm install -g gulp
gulp build
```
## Dependencies
* Bootstrap 3.1.1
* Font-Awesome 4.0.3

View file

@ -1,222 +0,0 @@
/* Source Code Pro */
@font-face {
font-family: 'Source Code Pro';
src: url('../fonts/SourceCodePro-ExtraLight-webfont.eot');
src: url('../fonts/SourceCodePro-ExtraLight-webfont.eot?#iefix') format('embedded-opentype'),
url('../fonts/SourceCodePro-ExtraLight-webfont.woff') format('woff'),
url('../fonts/SourceCodePro-ExtraLight-webfont.ttf') format('truetype'),
url('../fonts/SourceCodePro-ExtraLight-webfont.svg#fonts/SourceCodeProExtraLight') format('svg');
font-weight: 200;
font-style: normal;
}
@font-face {
font-family: 'Source Code Pro';
src: url('../fonts/SourceCodePro-Light-webfont.eot');
src: url('../fonts/SourceCodePro-Light-webfont.eot?#iefix') format('embedded-opentype'),
url('../fonts/SourceCodePro-Light-webfont.woff') format('woff'),
url('../fonts/SourceCodePro-Light-webfont.ttf') format('truetype'),
url('../fonts/SourceCodePro-Light-webfont.svg#fonts/SourceCodeProLight') format('svg');
font-weight: 300;
font-style: normal;
}
@font-face {
font-family: 'Source Code Pro';
src: url('../fonts/SourceCodePro-Regular-webfont.eot');
src: url('../fonts/SourceCodePro-Regular-webfont.eot?#iefix') format('embedded-opentype'),
url('../fonts/SourceCodePro-Regular-webfont.woff') format('woff'),
url('../fonts/SourceCodePro-Regular-webfont.ttf') format('truetype'),
url('../fonts/SourceCodePro-Regular-webfont.svg#fonts/SourceCodeProRegular') format('svg');
font-weight: 400;
font-style: normal;
}
@font-face {
font-family: 'Source Code Pro';
src: url('../fonts/SourceCodePro-Semibold-webfont.eot');
src: url('../fonts/SourceCodePro-Semibold-webfont.eot?#iefix') format('embedded-opentype'),
url('../fonts/SourceCodePro-Semibold-webfont.woff') format('woff'),
url('../fonts/SourceCodePro-Semibold-webfont.ttf') format('truetype'),
url('../fonts/SourceCodePro-Semibold-webfont.svg#fonts/SourceCodeProSemibold') format('svg');
font-weight: 500;
font-style: normal;
}
@font-face {
font-family: 'Source Code Pro';
src: url('../fonts/SourceCodePro-Bold-webfont.eot');
src: url('../fonts/SourceCodePro-Bold-webfont.eot?#iefix') format('embedded-opentype'),
url('../fonts/SourceCodePro-Bold-webfont.woff') format('woff'),
url('../fonts/SourceCodePro-Bold-webfont.ttf') format('truetype'),
url('../fonts/SourceCodePro-Bold-webfont.svg#fonts/SourceCodeProBold') format('svg');
font-weight: 700;
font-style: normal;
}
@font-face {
font-family: 'Source Code Pro';
src: url('../fonts/SourceCodePro-Black-webfont.eot');
src: url('../fonts/SourceCodePro-Black-webfont.eot?#iefix') format('embedded-opentype'),
url('../fonts/SourceCodePro-Black-webfont.woff') format('woff'),
url('../fonts/SourceCodePro-Black-webfont.ttf') format('truetype'),
url('../fonts/SourceCodePro-Black-webfont.svg#fonts/SourceCodeProBlack') format('svg');
font-weight: 800;
font-style: normal;
}
/* Source Sans Pro */
@font-face {
font-family: 'Source Sans Pro';
src: url('../fonts/SourceSansPro-SemiboldIt-webfont.eot');
src: url('../fonts/SourceSansPro-SemiboldIt-webfont.eot?#iefix') format('embedded-opentype'),
url('../fonts/SourceSansPro-SemiboldIt-webfont.woff') format('woff'),
url('../fonts/SourceSansPro-SemiboldIt-webfont.ttf') format('truetype'),
url('../fonts/SourceSansPro-SemiboldIt-webfont.svg#fonts/SourceSansProSemiboldItalic') format('svg');
font-weight: 600;
font-style: italic;
}
@font-face {
font-family: 'Source Sans Pro';
src: url('../fonts/SourceSansPro-Bold-webfont.eot');
src: url('../fonts/SourceSansPro-Bold-webfont.eot?#iefix') format('embedded-opentype'),
url('../fonts/SourceSansPro-Bold-webfont.woff') format('woff'),
url('../fonts/SourceSansPro-Bold-webfont.ttf') format('truetype'),
url('../fonts/SourceSansPro-Bold-webfont.svg#fonts/SourceSansProBold') format('svg');
font-weight: 700;
font-style: normal;
}
@font-face {
font-family: 'Source Sans Pro';
src: url('../fonts/SourceSansPro-BoldIt-webfont.eot');
src: url('../fonts/SourceSansPro-BoldIt-webfont.eot?#iefix') format('embedded-opentype'),
url('../fonts/SourceSansPro-BoldIt-webfont.woff') format('woff'),
url('../fonts/SourceSansPro-BoldIt-webfont.ttf') format('truetype'),
url('../fonts/SourceSansPro-BoldIt-webfont.svg#fonts/SourceSansProBoldItalic') format('svg');
font-weight: 700;
font-style: italic;
}
@font-face {
font-family: 'Source Sans Pro';
src: url('../fonts/SourceSansPro-Black-webfont.eot');
src: url('../fonts/SourceSansPro-Black-webfont.eot?#iefix') format('embedded-opentype'),
url('../fonts/SourceSansPro-Black-webfont.woff') format('woff'),
url('../fonts/SourceSansPro-Black-webfont.ttf') format('truetype'),
url('../fonts/SourceSansPro-Black-webfont.svg#fonts/SourceSansProBlack') format('svg');
font-weight: 900;
font-style: normal;
}
@font-face {
font-family: 'Source Sans Pro';
src: url('../fonts/SourceSansPro-BlackIt-webfont.eot');
src: url('../fonts/SourceSansPro-BlackIt-webfont.eot?#iefix') format('embedded-opentype'),
url('../fonts/SourceSansPro-BlackIt-webfont.woff') format('woff'),
url('../fonts/SourceSansPro-BlackIt-webfont.ttf') format('truetype'),
url('../fonts/SourceSansPro-BlackIt-webfont.svg#fonts/SourceSansProBlackItalic') format('svg');
font-weight: 900;
font-style: italic;
}
@font-face {
font-family: 'Source Sans Pro';
src: url('../fonts/SourceSansPro-ExtraLight-webfont.eot');
src: url('../fonts/SourceSansPro-ExtraLight-webfont.eot?#iefix') format('embedded-opentype'),
url('../fonts/SourceSansPro-ExtraLight-webfont.woff') format('woff'),
url('../fonts/SourceSansPro-ExtraLight-webfont.ttf') format('truetype'),
url('../fonts/SourceSansPro-ExtraLight-webfont.svg#fonts/SourceSansProExtraLight') format('svg');
font-weight: 200;
font-style: normal;
}
@font-face {
font-family: 'Source Sans Pro';
src: url('../fonts/SourceSansPro-ExtraLightIt-webfont.eot');
src: url('../fonts/SourceSansPro-ExtraLightIt-webfont.eot?#iefix') format('embedded-opentype'),
url('../fonts/SourceSansPro-ExtraLightIt-webfont.woff') format('woff'),
url('../fonts/SourceSansPro-ExtraLightIt-webfont.ttf') format('truetype'),
url('../fonts/SourceSansPro-ExtraLightIt-webfont.svg#fonts/SourceSansProExtraLightItalic') format('svg');
font-weight: 200;
font-style: italic;
}
@font-face {
font-family: 'Source Sans Pro';
src: url('../fonts/SourceSansPro-Light-webfont.eot');
src: url('../fonts/SourceSansPro-Light-webfont.eot?#iefix') format('embedded-opentype'),
url('../fonts/SourceSansPro-Light-webfont.woff') format('woff'),
url('../fonts/SourceSansPro-Light-webfont.ttf') format('truetype'),
url('../fonts/SourceSansPro-Light-webfont.svg#fonts/SourceSansProLight') format('svg');
font-weight: 300;
font-style: normal;
}
@font-face {
font-family: 'Source Sans Pro';
src: url('../fonts/SourceSansPro-LightIt-webfont.eot');
src: url('../fonts/SourceSansPro-LightIt-webfont.eot?#iefix') format('embedded-opentype'),
url('../fonts/SourceSansPro-LightIt-webfont.woff') format('woff'),
url('../fonts/SourceSansPro-LightIt-webfont.ttf') format('truetype'),
url('../fonts/SourceSansPro-LightIt-webfont.svg#fonts/SourceSansProLightItalic') format('svg');
font-weight: 300;
font-style: italic;
}
@font-face {
font-family: 'Source Sans Pro';
src: url('../fonts/SourceSansPro-Regular-webfont.eot');
src: url('../fonts/SourceSansPro-Regular-webfont.eot?#iefix') format('embedded-opentype'),
url('../fonts/SourceSansPro-Regular-webfont.woff') format('woff'),
url('../fonts/SourceSansPro-Regular-webfont.ttf') format('truetype'),
url('../fonts/SourceSansPro-Regular-webfont.svg#fonts/SourceSansProRegular') format('svg');
font-weight: 400;
font-style: normal;
}
@font-face {
font-family: 'Source Sans Pro';
src: url('../fonts/SourceSansPro-It-webfont.eot');
src: url('../fonts/SourceSansPro-It-webfont.eot?#iefix') format('embedded-opentype'),
url('../fonts/SourceSansPro-It-webfont.woff') format('woff'),
url('../fonts/SourceSansPro-It-webfont.ttf') format('truetype'),
url('../fonts/SourceSansPro-It-webfont.svg#fonts/SourceSansProItalic') format('svg');
font-weight: 400;
font-style: italic;
}
@font-face {
font-family: 'Source Sans Pro';
src: url('../fonts/SourceSansPro-Semibold-webfont.eot');
src: url('../fonts/SourceSansPro-Semibold-webfont.eot?#iefix') format('embedded-opentype'),
url('../fonts/SourceSansPro-Semibold-webfont.woff') format('woff'),
url('../fonts/SourceSansPro-Semibold-webfont.ttf') format('truetype'),
url('../fonts/SourceSansPro-Semibold-webfont.svg#fonts/SourceSansProSemibold') format('svg');
font-weight: 600;
font-style: normal;
}

222
src/css/fonts.less Normal file
View file

@ -0,0 +1,222 @@
/* Source Code Pro */
@font-face {
font-family: 'Source Code Pro';
src: url('@{ynh-font-path}SourceCodePro-ExtraLight-webfont.eot');
src: url('@{ynh-font-path}SourceCodePro-ExtraLight-webfont.eot?#iefix') format('embedded-opentype'),
url('@{ynh-font-path}SourceCodePro-ExtraLight-webfont.woff') format('woff'),
url('@{ynh-font-path}SourceCodePro-ExtraLight-webfont.ttf') format('truetype'),
url('@{ynh-font-path}SourceCodePro-ExtraLight-webfont.svg#fonts/SourceCodeProExtraLight') format('svg');
font-weight: 200;
font-style: normal;
}
@font-face {
font-family: 'Source Code Pro';
src: url('@{ynh-font-path}SourceCodePro-Light-webfont.eot');
src: url('@{ynh-font-path}SourceCodePro-Light-webfont.eot?#iefix') format('embedded-opentype'),
url('@{ynh-font-path}SourceCodePro-Light-webfont.woff') format('woff'),
url('@{ynh-font-path}SourceCodePro-Light-webfont.ttf') format('truetype'),
url('@{ynh-font-path}SourceCodePro-Light-webfont.svg#fonts/SourceCodeProLight') format('svg');
font-weight: 300;
font-style: normal;
}
@font-face {
font-family: 'Source Code Pro';
src: url('@{ynh-font-path}SourceCodePro-Regular-webfont.eot');
src: url('@{ynh-font-path}SourceCodePro-Regular-webfont.eot?#iefix') format('embedded-opentype'),
url('@{ynh-font-path}SourceCodePro-Regular-webfont.woff') format('woff'),
url('@{ynh-font-path}SourceCodePro-Regular-webfont.ttf') format('truetype'),
url('@{ynh-font-path}SourceCodePro-Regular-webfont.svg#fonts/SourceCodeProRegular') format('svg');
font-weight: 400;
font-style: normal;
}
@font-face {
font-family: 'Source Code Pro';
src: url('@{ynh-font-path}SourceCodePro-Semibold-webfont.eot');
src: url('@{ynh-font-path}SourceCodePro-Semibold-webfont.eot?#iefix') format('embedded-opentype'),
url('@{ynh-font-path}SourceCodePro-Semibold-webfont.woff') format('woff'),
url('@{ynh-font-path}SourceCodePro-Semibold-webfont.ttf') format('truetype'),
url('@{ynh-font-path}SourceCodePro-Semibold-webfont.svg#fonts/SourceCodeProSemibold') format('svg');
font-weight: 500;
font-style: normal;
}
@font-face {
font-family: 'Source Code Pro';
src: url('@{ynh-font-path}SourceCodePro-Bold-webfont.eot');
src: url('@{ynh-font-path}SourceCodePro-Bold-webfont.eot?#iefix') format('embedded-opentype'),
url('@{ynh-font-path}SourceCodePro-Bold-webfont.woff') format('woff'),
url('@{ynh-font-path}SourceCodePro-Bold-webfont.ttf') format('truetype'),
url('@{ynh-font-path}SourceCodePro-Bold-webfont.svg#fonts/SourceCodeProBold') format('svg');
font-weight: 700;
font-style: normal;
}
@font-face {
font-family: 'Source Code Pro';
src: url('@{ynh-font-path}SourceCodePro-Black-webfont.eot');
src: url('@{ynh-font-path}SourceCodePro-Black-webfont.eot?#iefix') format('embedded-opentype'),
url('@{ynh-font-path}SourceCodePro-Black-webfont.woff') format('woff'),
url('@{ynh-font-path}SourceCodePro-Black-webfont.ttf') format('truetype'),
url('@{ynh-font-path}SourceCodePro-Black-webfont.svg#fonts/SourceCodeProBlack') format('svg');
font-weight: 800;
font-style: normal;
}
/* Source Sans Pro */
@font-face {
font-family: 'Source Sans Pro';
src: url('@{ynh-font-path}SourceSansPro-SemiboldIt-webfont.eot');
src: url('@{ynh-font-path}SourceSansPro-SemiboldIt-webfont.eot?#iefix') format('embedded-opentype'),
url('@{ynh-font-path}SourceSansPro-SemiboldIt-webfont.woff') format('woff'),
url('@{ynh-font-path}SourceSansPro-SemiboldIt-webfont.ttf') format('truetype'),
url('@{ynh-font-path}SourceSansPro-SemiboldIt-webfont.svg#fonts/SourceSansProSemiboldItalic') format('svg');
font-weight: 600;
font-style: italic;
}
@font-face {
font-family: 'Source Sans Pro';
src: url('@{ynh-font-path}SourceSansPro-Bold-webfont.eot');
src: url('@{ynh-font-path}SourceSansPro-Bold-webfont.eot?#iefix') format('embedded-opentype'),
url('@{ynh-font-path}SourceSansPro-Bold-webfont.woff') format('woff'),
url('@{ynh-font-path}SourceSansPro-Bold-webfont.ttf') format('truetype'),
url('@{ynh-font-path}SourceSansPro-Bold-webfont.svg#fonts/SourceSansProBold') format('svg');
font-weight: 700;
font-style: normal;
}
@font-face {
font-family: 'Source Sans Pro';
src: url('@{ynh-font-path}SourceSansPro-BoldIt-webfont.eot');
src: url('@{ynh-font-path}SourceSansPro-BoldIt-webfont.eot?#iefix') format('embedded-opentype'),
url('@{ynh-font-path}SourceSansPro-BoldIt-webfont.woff') format('woff'),
url('@{ynh-font-path}SourceSansPro-BoldIt-webfont.ttf') format('truetype'),
url('@{ynh-font-path}SourceSansPro-BoldIt-webfont.svg#fonts/SourceSansProBoldItalic') format('svg');
font-weight: 700;
font-style: italic;
}
@font-face {
font-family: 'Source Sans Pro';
src: url('@{ynh-font-path}SourceSansPro-Black-webfont.eot');
src: url('@{ynh-font-path}SourceSansPro-Black-webfont.eot?#iefix') format('embedded-opentype'),
url('@{ynh-font-path}SourceSansPro-Black-webfont.woff') format('woff'),
url('@{ynh-font-path}SourceSansPro-Black-webfont.ttf') format('truetype'),
url('@{ynh-font-path}SourceSansPro-Black-webfont.svg#fonts/SourceSansProBlack') format('svg');
font-weight: 900;
font-style: normal;
}
@font-face {
font-family: 'Source Sans Pro';
src: url('@{ynh-font-path}SourceSansPro-BlackIt-webfont.eot');
src: url('@{ynh-font-path}SourceSansPro-BlackIt-webfont.eot?#iefix') format('embedded-opentype'),
url('@{ynh-font-path}SourceSansPro-BlackIt-webfont.woff') format('woff'),
url('@{ynh-font-path}SourceSansPro-BlackIt-webfont.ttf') format('truetype'),
url('@{ynh-font-path}SourceSansPro-BlackIt-webfont.svg#fonts/SourceSansProBlackItalic') format('svg');
font-weight: 900;
font-style: italic;
}
@font-face {
font-family: 'Source Sans Pro';
src: url('@{ynh-font-path}SourceSansPro-ExtraLight-webfont.eot');
src: url('@{ynh-font-path}SourceSansPro-ExtraLight-webfont.eot?#iefix') format('embedded-opentype'),
url('@{ynh-font-path}SourceSansPro-ExtraLight-webfont.woff') format('woff'),
url('@{ynh-font-path}SourceSansPro-ExtraLight-webfont.ttf') format('truetype'),
url('@{ynh-font-path}SourceSansPro-ExtraLight-webfont.svg#fonts/SourceSansProExtraLight') format('svg');
font-weight: 200;
font-style: normal;
}
@font-face {
font-family: 'Source Sans Pro';
src: url('@{ynh-font-path}SourceSansPro-ExtraLightIt-webfont.eot');
src: url('@{ynh-font-path}SourceSansPro-ExtraLightIt-webfont.eot?#iefix') format('embedded-opentype'),
url('@{ynh-font-path}SourceSansPro-ExtraLightIt-webfont.woff') format('woff'),
url('@{ynh-font-path}SourceSansPro-ExtraLightIt-webfont.ttf') format('truetype'),
url('@{ynh-font-path}SourceSansPro-ExtraLightIt-webfont.svg#fonts/SourceSansProExtraLightItalic') format('svg');
font-weight: 200;
font-style: italic;
}
@font-face {
font-family: 'Source Sans Pro';
src: url('@{ynh-font-path}SourceSansPro-Light-webfont.eot');
src: url('@{ynh-font-path}SourceSansPro-Light-webfont.eot?#iefix') format('embedded-opentype'),
url('@{ynh-font-path}SourceSansPro-Light-webfont.woff') format('woff'),
url('@{ynh-font-path}SourceSansPro-Light-webfont.ttf') format('truetype'),
url('@{ynh-font-path}SourceSansPro-Light-webfont.svg#fonts/SourceSansProLight') format('svg');
font-weight: 300;
font-style: normal;
}
@font-face {
font-family: 'Source Sans Pro';
src: url('@{ynh-font-path}SourceSansPro-LightIt-webfont.eot');
src: url('@{ynh-font-path}SourceSansPro-LightIt-webfont.eot?#iefix') format('embedded-opentype'),
url('@{ynh-font-path}SourceSansPro-LightIt-webfont.woff') format('woff'),
url('@{ynh-font-path}SourceSansPro-LightIt-webfont.ttf') format('truetype'),
url('@{ynh-font-path}SourceSansPro-LightIt-webfont.svg#fonts/SourceSansProLightItalic') format('svg');
font-weight: 300;
font-style: italic;
}
@font-face {
font-family: 'Source Sans Pro';
src: url('@{ynh-font-path}SourceSansPro-Regular-webfont.eot');
src: url('@{ynh-font-path}SourceSansPro-Regular-webfont.eot?#iefix') format('embedded-opentype'),
url('@{ynh-font-path}SourceSansPro-Regular-webfont.woff') format('woff'),
url('@{ynh-font-path}SourceSansPro-Regular-webfont.ttf') format('truetype'),
url('@{ynh-font-path}SourceSansPro-Regular-webfont.svg#fonts/SourceSansProRegular') format('svg');
font-weight: 400;
font-style: normal;
}
@font-face {
font-family: 'Source Sans Pro';
src: url('@{ynh-font-path}SourceSansPro-It-webfont.eot');
src: url('@{ynh-font-path}SourceSansPro-It-webfont.eot?#iefix') format('embedded-opentype'),
url('@{ynh-font-path}SourceSansPro-It-webfont.woff') format('woff'),
url('@{ynh-font-path}SourceSansPro-It-webfont.ttf') format('truetype'),
url('@{ynh-font-path}SourceSansPro-It-webfont.svg#fonts/SourceSansProItalic') format('svg');
font-weight: 400;
font-style: italic;
}
@font-face {
font-family: 'Source Sans Pro';
src: url('@{ynh-font-path}SourceSansPro-Semibold-webfont.eot');
src: url('@{ynh-font-path}SourceSansPro-Semibold-webfont.eot?#iefix') format('embedded-opentype'),
url('@{ynh-font-path}SourceSansPro-Semibold-webfont.woff') format('woff'),
url('@{ynh-font-path}SourceSansPro-Semibold-webfont.ttf') format('truetype'),
url('@{ynh-font-path}SourceSansPro-Semibold-webfont.svg#fonts/SourceSansProSemibold') format('svg');
font-weight: 600;
font-style: normal;
}

View file

@ -1,3 +1,5 @@
@font-path: "../../fonts/";
/* /*
* Bootstrap * Bootstrap
*/ */
@ -11,25 +13,27 @@
@font-size-h5: ceil((@font-size-base * 0.85)); // ~12px @font-size-h5: ceil((@font-size-base * 0.85)); // ~12px
@font-size-h6: ceil((@font-size-base * 0.7)); // ~10px @font-size-h6: ceil((@font-size-base * 0.7)); // ~10px
@icon-font-path: @font-path;
/* /*
* FontAwesome * FontAwesome
*/ */
@import "../fonts/font-awesome-4.0.3/less/font-awesome.less"; @import "../fonts/font-awesome-4.0.3/less/font-awesome.less";
// variables override // variables override
@fa-font-path: "../fonts/font-awesome-4.0.3/fonts"; @fa-font-path: "@{font-path}font-awesome-4.0.3/fonts";
// Fixes // Fixes
[class*="fa-"] {.fa;} [class*="fa-"] {.fa;}
a[class*="fa-"]:hover {text-decoration:none;} a[class*="fa-"]:hover {text-decoration:none;}
/* /*
* YNH Fonts * YNH Fonts
*/ */
@import "fonts.css"; @import "fonts.less";
@ynh-font-path: @font-path;
/* Comments: /* Comments:
@ -83,10 +87,6 @@ body {
.move { .move {
-webkit-transition: margin-left 0.2s ease-in-out;
-moz-transition: margin-left 0.2s ease-in-out;
-o-transition: margin-left 0.2s ease-in-out;
-ms-transition: margin-left 0.2s ease-in-out;
transition: margin-left 0.2s ease-in-out; transition: margin-left 0.2s ease-in-out;
} }
@ -133,8 +133,7 @@ body {
font-size: 1em; font-size: 1em;
line-height: 1; line-height: 1;
color: @gray-light; color: @gray-light;
-webkit-transition: all 0.1s ease; transition: all 0.1s ease;
transition: all 0.1s ease;
} }
&:hover { &:hover {
@ -155,8 +154,7 @@ body {
a.fa-sign-out { a.fa-sign-out {
.fa-2x; .fa-2x;
color: @gray-light; color: @gray-light;
-webkit-transition: all 0.1s ease; transition: all 0.1s ease;
transition: all 0.1s ease;
&:hover { &:hover {
color: @gray; color: @gray;
} }
@ -323,10 +321,7 @@ div.br {
z-index: 2000; z-index: 2000;
text-align: center; text-align: center;
background: rgba(255, 255, 255, 0.5) url(../img/ajax-loader.gif) center 15% no-repeat; background: rgba(255, 255, 255, 0.5) url(../img/ajax-loader.gif) center 15% no-repeat;
-webkit-animation: pacmanlinearmove 5s linear infinite; animation: pacmanlinearmove 5s linear infinite;
-moz-animation: pacmanlinearmove 5s linear infinite;
-o-animation: pacmanlinearmove 5s linear infinite;
animation: pacmanlinearmove 5s linear infinite;
} }
.loader-content { .loader-content {
position: fixed; position: fixed;

File diff suppressed because one or more lines are too long

4
src/dist/README.md vendored Normal file
View file

@ -0,0 +1,4 @@
================================
These files are built with gulp.
Do not edit directly.
================================

4
src/dist/css/style.min.css vendored Normal file

File diff suppressed because one or more lines are too long

BIN
src/dist/img/ajax-loader.gif vendored Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2 KiB

BIN
src/dist/img/icon.png vendored Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 9 KiB

3
src/dist/img/logo-ynh.svg vendored Normal file
View file

@ -0,0 +1,3 @@
<!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 xmlns="http://www.w3.org/2000/svg" width="98" height="85" viewBox="0 0 98 85" overflow="visible"><path d="M97.25 51.25c-2.02 4.98-8.33 5.67-14 7-.61 6.29 3.05 10.95-1 16-6.41-.26-7.47-5.86-7-13h-3c-2.09 2.77.9 4.52 0 8-1.12 4.34-7.88 7.91-11 7-2.18-.64-5.96-6.63-5-12 2.82-2.71 2.76 3.12 6 3 5.05-7.84-9.63-8.55-8-17 1.24-6.42 11.66-9.66 15-1 1.54 4.21-5.17.16-5 3-.28 1.62.95 1.72 1 3 2.52.77 1.68-2.16 3-3 1.86-1.17 3.09-.75 6-1 2.45-2.55 1.08-8.92 4-11 3.87.46 6.08 2.59 6 7 7.01-.89 10.3-.95 13 4zM87.25 13.25c.61 3.21 2.32 4.98 2 8-.34 3.21-2.9 8.83-4 9-1.17.18-1.34 1.78-2 2-4.66 1.57-12.39-1.48-14-7-1.16-3.97 1.9-13.37 4-17 1.3-2.25 1.22-2.99 5-4 2.41-.65 3.65-2.25 6 0 .47.45 1.3.49 1.85.89-.2 0 2 3.14 2.15 4.11.32 2.07-1.23 2.78-1 4zm-8 9c1.78-1.89 3.29-4.04 3-8-4.51-1.67-7.33 7.3-3 8z"/><path d="M67.25 21.25c-.07 5.81 2.48 10.7 0 15-6.73 1.06-7.24-4.1-11-6-1.94 1.39-1.49 5.18-3 7-3.78.44-4.69-1.97-7-3 2.47-7.81 1.26-18.98 2-26 8.58-.58 7.68 8.32 12 12 .52-4.34-.36-15.52 3-20 7.33 3.29 4.09 12.99 4 21zM52.25 55.25c1.93 8.41.12 22.69-12 20-1.59-.35-8.42-5.22-9-7-1.62-5 .34-13.34 3-16 5.03-5.03 11.48-1.64 18 3zm-13 11c4.55.96 6.3-4.2 4-7-3.63.03-4.39 2.94-4 7zM39.25 8.25c5.58.9 6.4 6.81 5 15-1.43 8.38-3.02 14.59-9 15-9.57.65-12.25-16.69-9-29 8.32 1.27 6.59 10.36 6 17 2.71.83 2.2-.85 3-2 2.05-2.96 2.82-10.39 4-16z"/><path d="M28.25 62.25c.1 5.67 4.4 11.33 2 17-4.32-1.01-6.57-4.09-9-7-3.15-.48-2.26 3.07-6 2-.67 5.06 2.29 7.57-1 10-4.7-.63-6.66-4-8-8-2.61-1.38-5.48-2.52-6-6 .14-3.53 4.48-2.85 7-4 .47-5.53-1.41-13.41 2-16 8.31.49 8.21 7.13 7 15 4.36.29 4.94-4.35 5-7 .06-2.43-1.82-8.26 2-11 3.06-.73 2.94 1.73 6 1 3.35 4.7-1.08 9.44-1 14zM24.25 12.25c1.07 7.07-3.86 8.14-6 12 .21 6.88-.47 12.86-2 18-5.86-1.32-8.7-10.38-6-17-.33-3.52-5.26-4.22-7-8-.3-.66-.47-4.43-1-7-.91-4.37-1.45-5.69 1-9 8.16-.49 7.21 8.13 9 14 5.05.39 3.91-5.42 8-6 .98 1.35 2.67 2 4 3z"/></svg>

After

Width:  |  Height:  |  Size: 2 KiB

BIN
src/dist/img/ynhadmin_icon.png vendored Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

14
src/dist/js/script.min.js vendored Normal file

File diff suppressed because one or more lines are too long

69
src/gulpfile.js Normal file
View file

@ -0,0 +1,69 @@
// Include Gulp
var gulp = require('gulp');
// Include required Gulp packages
var concat = require('gulp-concat'),
uglify = require('gulp-uglify'),
jshint = require('gulp-jshint'),
less = require('gulp-less'),
autoprefixer = require('gulp-autoprefixer'),
cssmin = require('gulp-cssmin'),
imagemin = require('gulp-imagemin'),
rename = require('gulp-rename')
;
// Global build task
gulp.task('build', [
'css',
'js',
'img',
]);
// JS task
gulp.task('js', function() {
return gulp.src([
'js/vendor/jquery-1.10.1.min.js',
'js/vendor/jquery.cookie.js',
'js/vendor/handlebars-v1.3.0.js',
'js/vendor/sammy.js',
'js/vendor/sammy.handlebars.js',
'js/vendor/sammy.json.js',
'js/vendor/sammy.storage.js',
'js/vendor/bootstrap.min.js',
'js/y18n.js',
'js/app.js'
])
.pipe(uglify())
.pipe(concat('script.min.js'))
.pipe(gulp.dest('./dist/js'))
});
// JS Lint task
gulp.task('js-lint', function() {
return gulp.src('js/*.js')
.pipe(jshint())
.pipe(jshint.reporter('default'));
});
// CSS task
gulp.task('css', function () {
return gulp.src('css/style.less')
.pipe(less())
.pipe(autoprefixer())
.pipe(rename({
suffix: '.min'
}))
.pipe(cssmin())
.pipe(gulp.dest('./dist/css'))
});
// Images task
gulp.task('img', function () {
return gulp.src('img/*')
.pipe(imagemin())
.pipe(gulp.dest('./dist/img'))
});

View file

@ -7,15 +7,15 @@
<meta name="format-detection" content="telephone=no" /> <meta name="format-detection" content="telephone=no" />
<meta name="viewport" content="user-scalable=no, width=device-width, height=device-height" /> <meta name="viewport" content="user-scalable=no, width=device-width, height=device-height" />
<meta name="robots" content="noindex, nofollow"> <meta name="robots" content="noindex, nofollow">
<link href="css/style.min.css" rel="stylesheet" media="screen"> <link rel="stylesheet" media="screen" href="dist/css/style.min.css?version=VERSION">
<link rel="shortcut icon" href="img/ynhadmin_icon.png"> <link rel="shortcut icon" href="dist/img/ynhadmin_icon.png">
</head> </head>
<body> <body>
<div id="slider" role="application"> <div id="slider" role="application">
<header id="masthead" class="page-header"> <header id="masthead" class="page-header">
<a href="#/" class="homelink slide back"> <a href="#/" class="homelink slide back">
<img src="img/icon.png" style="width: 70px;"> <img src="dist/img/icon.png" style="width: 70px;">
</a> </a>
<span class="logout-button pull-right" role="button"> <span class="logout-button pull-right" role="button">
<a class="fa-sign-out" href="#/logout" title="Logout" data-y18n-title="logout"><span class="sr-only" data-y18n="logout">Logout</span></a> <a class="fa-sign-out" href="#/logout" title="Logout" data-y18n-title="logout"><span class="sr-only" data-y18n="logout">Logout</span></a>
@ -60,17 +60,7 @@
</div></div> </div></div>
</div> </div>
<script type="text/javascript" src="dist/js/script.min.js?version=VERSION"></script>
<script type="text/javascript" src="js/vendor/jquery-1.10.1.min.js"></script>
<script type="text/javascript" src="js/vendor/handlebars-v1.3.0.js"></script>
<script type="text/javascript" src="js/vendor/sammy.js"></script>
<script type="text/javascript" src="js/vendor/sammy.handlebars.js"></script>
<script type="text/javascript" src="js/vendor/sammy.json.js"></script>
<script type="text/javascript" src="js/vendor/sammy.storage.js"></script>
<script type="text/javascript" src="js/vendor/bootstrap.min.js"></script>
<script type="text/javascript" src="js/vendor/jquery.cookie.js"></script>
<script type="text/javascript" src="js/y18n.js"></script>
<script type="text/javascript" src="js/app.js"></script>
<script type="text/javascript"> <script type="text/javascript">
app.initialize = app.initialize || function(){} app.initialize = app.initialize || function(){}
app.initialize(); app.initialize();

View file

@ -1,4 +1,4 @@
app = Sammy('#main', function (sam) { var app = Sammy('#main', function (sam) {
/** /**
* Sammy Configuration * Sammy Configuration

25
src/package.json Normal file
View file

@ -0,0 +1,25 @@
{
"name": "yunohost-admin",
"description": "YunoHost Admin web interface",
"repository": {
"type": "git",
"url": "https://github.com/YunoHost/yunohost-admin"
},
"author": "Yunohost",
"license": "AGPL v3",
"bugs": {
"url": "https://github.com/YunoHost/yunohost-admin/issues"
},
"homepage": "https://github.com/YunoHost/yunohost-admin",
"devDependencies": {
"gulp": "^3.9.0",
"gulp-autoprefixer": "^2.3.1",
"gulp-concat": "^2.6.0",
"gulp-cssmin": "^0.1.7",
"gulp-imagemin": "^2.3.0",
"gulp-jshint": "^1.11.2",
"gulp-less": "^3.0.3",
"gulp-rename": "^1.2.2",
"gulp-uglify": "^1.2.0"
}
}