12 Commits
Author SHA1 Message Date
tmshv f006207112 nginx https conf 2016-01-07 20:38:28 +03:00
tmshv d46d39a131 + letsenctypt conf file 2016-01-07 20:37:13 +03:00
tmshv 8a934cbf5c gulpfile update; packages update 2016-01-05 03:04:09 +03:00
tmshv c6f242693a - pdf.scss 2016-01-05 02:35:03 +03:00
tmshv 28471fe8c1 v3.4.0 2016-01-05 00:51:40 +03:00
tmshv aacc920796 package.json v3.2.0 2016-01-05 00:49:47 +03:00
tmshv d3c7e444ea big update for deployment system 2016-01-05 00:48:49 +03:00
tmshv 2c443568e8 nginx.conf: port 1800; other updates 2016-01-05 00:24:10 +03:00
tmshv 2b426f53b3 team.json update 2016-01-04 23:06:27 +03:00
tmshv 830cd80de1 team page update: background picture is temporary broken; + backgroundPicture directive (unstable); 2015-08-16 08:01:35 +03:00
tmshv d9ca65958c tape viewer update 2015-08-15 21:22:48 +03:00
tmshv 5e9889e3f4 main layout update 2015-08-15 21:22:28 +03:00
25 changed files with 322 additions and 423 deletions

No files matched your search

+14
View File
@@ -0,0 +1,14 @@
.background-picture {
overflow-x: hidden;
width: 100%;
height: 95vh;
background-repeat: no-repeat;
&.vertical {
background-size: 100% auto;
}
&.horizontal {
background-size: auto 100%;
}
}
+6 -17
View File
@@ -9,28 +9,17 @@
} }
} }
.page.page-home{
width: 90%;
margin: 0 auto;
}
.main-block { .main-block {
width: 100%;
margin-top: 5px;
.telephone {
font-size: 1.25em;
margin-left: 30px;
}
h1 { h1 {
font-size: 18pt; font-size: 18pt;
text-align: center; text-align: center;
font-weight: normal; font-weight: normal;
margin: 1em 0 0; margin: 1.2em 0 0;
padding: 0; padding: 0;
} }
} }
@media screen and (max-device-width: 500px) {
.main-block {
.telephone {
display: none;
}
}
}
+1 -2
View File
@@ -20,8 +20,7 @@ body {
.content { .content {
flex: 1; flex: 1;
width: 90%; margin: 41px auto 0;
margin: 3em auto 0;
} }
a { a {
+1 -5
View File
@@ -1,10 +1,6 @@
.page { .page {
// position: absolute; padding-top: 0;
// bottom: 0;
// top: 0;
padding-top: 0px;
width: 100%; width: 100%;
// z-index: -1;
} }
.page.ng-leave { .page.ng-leave {
-179
View File
@@ -1,179 +0,0 @@
#page-container {
position: absolute;
top: 0;
left: 0;
margin: 0;
padding: 0;
border: 0;
z-index: -1;
}
@media screen {
#page-container {
bottom: 0;
right: 0;
overflow: auto;
}
.loading-indicator {
display: none;
&.active {
display: block;
position: absolute;
width: 64px;
height: 64px;
top: 50%;
left: 50%;
margin-top: -32px;
margin-left: -32px;
}
img {
position: absolute;
top: 0;
left: 0;
bottom: 0;
right: 0;
}
}
}
@media print {
@page {
margin: 0;
}
html {
margin: 0;
}
body {
margin: 0;
-webkit-print-color-adjust: exact;
}
#page-container {
width: auto;
height: auto;
overflow: visible;
background-color: transparent;
}
.d {
display: none;
}
}
.pf {
position: relative;
background-color: white;
overflow: hidden;
border: 0;
}
.pc {
position: absolute;
border: 0;
padding: 0;
margin: 0;
top: 0;
left: 0;
width: 100%;
height: 100%;
overflow: hidden;
display: block;
transform-origin: 0 0;
-ms-transform-origin: 0 0;
-webkit-transform-origin: 0 0;
&.opened {
display: block;
}
}
.bf {
position: absolute;
border: 0;
margin: 0;
top: 0;
bottom: 0;
width: 100%;
height: 100%;
-ms-user-select: none;
-moz-user-select: none;
-webkit-user-select: none;
user-select: none;
}
.bi {
position: absolute;
border: 0;
margin: 0;
-ms-user-select: none;
-moz-user-select: none;
-webkit-user-select: none;
user-select: none;
}
@media print {
.pf {
margin: 0;
box-shadow: none;
page-break-after: always;
page-break-inside: avoid;
}
@-moz-document url-prefix() {
.pf {
overflow: visible;
border: 1px solid #fff;
}
.pc {
overflow: visible;
}
}
}
.c {
position: absolute;
border: 0;
padding: 0;
margin: 0;
overflow: hidden;
display: block;
}
.t {
position: absolute;
white-space: pre;
font-size: 1px;
transform-origin: 0 100%;
-ms-transform-origin: 0 100%;
-webkit-transform-origin: 0 100%;
unicode-bidi: bidi-override;
-moz-font-feature-settings: "liga" 0;
}
._ {
color: transparent;
z-index: -1;
}
::selection {
background: rgba(127, 255, 255, 0.4);
}
::-moz-selection {
background: rgba(127, 255, 255, 0.4);
}
.pi {
display: none;
}
.d {
position: absolute;
transform-origin: 0 100%;
-ms-transform-origin: 0 100%;
-webkit-transform-origin: 0 100%;
}
// .@CSS_LINK_CN span {
// position: relative;
// vertical-align: baseline;
// display: inline-block;
// unicode-bidi: bidi-override;
// }
+3 -3
View File
@@ -1,5 +1,5 @@
.tape-block{ .tape-block{
width: 70%; width: 60%;
max-width: 1000px; max-width: 1000px;
margin: 2em auto; margin: 2em auto;
@@ -11,7 +11,7 @@
} }
} }
.tape-block-content{ .tape-block__body{
position: relative; position: relative;
width: 100%; width: 100%;
@@ -53,7 +53,7 @@
margin: 1.5em auto; margin: 1.5em auto;
} }
.tape-block-content { .tape-block__body {
.tape { .tape {
width: 62px; width: 62px;
height: 62px; height: 62px;
+38 -47
View File
@@ -1,57 +1,48 @@
.page-team { .page-team {
&.ng-leave { &.ng-leave {
animation: slideOutLeft 0.3s both ease-in; animation: slideOutLeft 0.3s both ease-in;
} }
&.ng-enter { &.ng-enter {
animation: slideInRight 0.3s both ease-in; animation: slideInRight 0.3s both ease-in;
} }
} }
.background-picture{ .team-block {
background-color: white;
width: 100%;
padding-top: 3em;
.team-member {
width: 80%;
margin: 0 auto 3em;
display: flex;
justify-content: center;
flex-wrap: wrap;
}
.team-member__picture {
width: 20%;
max-width: 15em;
min-width: 12em;
margin: 0 1em;
}
.team-member__picture img {
width: 100%; width: 100%;
position: fixed; }
top:0;
left: 0;
z-index: -999;
}
.team-block{ .team-member__info {
background-color: white; width: 60%;
width:100%; margin: 0 1em;
min-height: 100px;
padding-top: 100px;
padding-bottom: 100px;
margin-top: 63%;
ul{ h3 {
list-style:none; font-weight: 200;
}
.team-member{ span {
margin: 0 auto 50px auto; font-weight: 600;
width: 70%; }
img{
width: 40%;
max-width: 600px;
min-width: 200px;
display: inline-block;
}
.info{
display: inline-block;
float: right;
width: 55%;
line-height: 2em;
h3{
font-weight: 100;
span{
font-weight: 600;
}
}
}
} }
}
} }
+2 -4
View File
@@ -81,6 +81,8 @@ app.run(function ($location, $rootScope, $http) {
require("./api/api")(app); require("./api/api")(app);
require("./services/io")(app); require("./services/io")(app);
require("./directives/mainMenu")(app); require("./directives/mainMenu")(app);
require("./directives/teamMemberProfile")(app);
require("./directives/backgroundPicture")(app);
require("./ui/menu")(app); require("./ui/menu")(app);
require("./ui/breadcrumbs")(app); require("./ui/breadcrumbs")(app);
require("./ui/timeline")(app); require("./ui/timeline")(app);
@@ -100,10 +102,6 @@ app.controller("SchedulePageController", function ($scope) {
$scope.pageClass = "page-schedule"; $scope.pageClass = "page-schedule";
}); });
app.controller("TeamPageController", function ($scope) {
$scope.pageClass = "page-team";
});
app.controller("DocsPageController", function ($scope) { app.controller("DocsPageController", function ($scope) {
$scope.pageClass = "page-docs"; $scope.pageClass = "page-docs";
}); });
+26
View File
@@ -0,0 +1,26 @@
module.exports = function (app) {
app.directive('backgroundPicture', function () {
return {
restrict: 'E',
template: '<div class="background-picture" />',
scope: {
src: '='
},
link: function($scope, $element){
var element = $element.find('.background-picture').get(0);
element.style.backgroundImage = `url('${$scope.src}')`;
setTimeout(function () {
var w = element.offsetWidth;
var h = element.offsetHeight;
if (w > h) {
element.classList.add('horizontal');
} else {
element.classList.add('vertical');
}
}, 100);
}
}
});
};
+13
View File
@@ -0,0 +1,13 @@
module.exports = function (app) {
app.directive('teamMemberProfile', function (menu) {
return {
restrict: 'E',
templateUrl: '/views/team/profile.html',
scope: {
person: '=profile'
},
link: function(scope, element){
}
}
});
};
+18 -9
View File
@@ -3,27 +3,36 @@
*/ */
module.exports = function (app) { module.exports = function (app) {
app.controller("HomePageController", function ($scope, config) { app.controller('HomePageController', function ($scope, config) {
var fotorama; var fotorama;
$scope.pageClass = "page-home"; $scope.pageClass = 'page-home';
var $tape = $('.tape-block'); var $tape = $('.tape-block');
var $fotorama = $('.fotorama'); var $fotorama = $tape.find('.tape-block__content');
$tape.addClass('simplified'); $tape.addClass('simplified');
$fotorama.on('fotorama:ready', function () { $fotorama.on('fotorama:ready', function () {
$tape.removeClass('simplified'); $tape.removeClass('simplified');
fotorama.setOptions({ fotorama.setOptions({
nav: 'dots' nav: 'dots',
transition: 'crossfade',
autoplay: '6000',
arrows: 'false',
width: '100%',
fit: 'cover',
loop: 'true'
}); });
}); });
fotorama = $fotorama.fotorama().data('fotorama'); fotorama = $fotorama.fotorama().data('fotorama');
fotorama.load([
{img: 'http://static.shburg.org/art/img/cat1.jpg'}, setTimeout(function(){
{img: 'http://static.shburg.org/art/img/cat2.jpg'}, fotorama.load([
{img: 'http://static.shburg.org/art/img/cat3.jpg'} {img: 'https://static.shburg.org/art/img/cat1.jpg'},
]); {img: 'https://static.shburg.org/art/img/cat2.jpg'},
{img: 'https://static.shburg.org/art/img/cat3.jpg'}
]);
}, 100);
}); });
}; };
+6 -4
View File
@@ -1,9 +1,11 @@
var populate = require("../../utils/populate").populate; var populate = require('../../utils/populate').populate;
const course = require("../../models/course"); const course = require('../../models/course');
module.exports = function (app) { module.exports = function (app) {
app.controller("TeamController", function ($scope, team) { app.controller('TeamPageController', function ($scope, team) {
$scope.team = team.team.map(function (person) { $scope.pageClass = 'page-team';
$scope.teamMembers = team.team.map(function (person) {
person.names = team.splitName(person.name); person.names = team.splitName(person.name);
return person; return person;
}); });
+16 -7
View File
@@ -1,10 +1,16 @@
#!/bin/sh #!/bin/sh
echo "Deploying art.shburg.org"
NODE_ENV=production gulp NODE_ENV=production gulp
tarfile=build.tar.gz server="art.shburg.org"
app_port=1800
tarfile="build.tar.gz"
tarpath=$TMPDIR$tarfile tarpath=$TMPDIR$tarfile
destpath="~/www/art.shburg.org"
echo "Packing..."
env GZIP=-9 tar -czf $tarpath \ env GZIP=-9 tar -czf $tarpath \
--disable-copyfile \ --disable-copyfile \
--exclude=node_modules \ --exclude=node_modules \
@@ -14,11 +20,14 @@ env GZIP=-9 tar -czf $tarpath \
--exclude=deploy.sh \ --exclude=deploy.sh \
--exclude=install.sh . --exclude=install.sh .
echo "build file: $tarpath" echo "Build file: $tarpath"
ssh hoster.et "rm -rf $destpath/*"
scp $tarpath hoster@$server:$destpath
echo "Build file successfully uploaded on server"
echo "Installing..."
ssh hoster.et "bash -s" -- < ./install.sh $destpath $tarfile $app_port
ssh shburg.et "rm -rf art/*"
scp $tarpath shburg@146.185.183.243:~
scp install.sh shburg@146.185.183.243:~
ssh shburg.et "./install.sh"
rm $tarpath rm $tarpath
echo "art.shlisselburg.org deployment completed successfully" echo "Done"
+63 -59
View File
@@ -1,78 +1,82 @@
var path = require("path"); var gulp = require('gulp');
var gulp = require("gulp"); var _if = require('gulp-if');
var _if = require("gulp-if"); var postcss = require('gulp-postcss');
var sass = require("gulp-sass"); var sass = require('gulp-sass');
var babel = require("babelify"); var imageMin = require('gulp-imagemin');
var minify_css = require("gulp-minify-css"); var uglify = require('gulp-uglify');
var autoprefixer = require("gulp-autoprefixer"); var minify = require('gulp-minify');
var imageMin = require("gulp-imagemin"); var concat = require('gulp-concat');
var uglify = require("gulp-uglify"); var browserify = require('gulp-browserify');
var concat = require("gulp-concat");
var browserify = require("gulp-browserify");
var annotate = require("browserify-ngannotate");
var is_production = process.env['NODE_ENV'] == 'production'; var is_production = process.env['NODE_ENV'] == 'production';
gulp.task("concat-bower", function () { gulp.task("concat-bower", function () {
var files = [ var files = [
"public/bower_components/jquery/dist/jquery.min.js", "public/bower_components/jquery/dist/jquery.min.js",
"public/bower_components/angular/angular.min.js", "public/bower_components/angular/angular.min.js",
"public/bower_components/angular-route/angular-route.min.js", "public/bower_components/angular-route/angular-route.min.js",
"public/bower_components/angular-animate/angular-animate.min.js", "public/bower_components/angular-animate/angular-animate.min.js",
"public/bower_components/angulartics/dist/angulartics.min.js", "public/bower_components/angulartics/dist/angulartics.min.js",
"public/bower_components/angulartics/dist/angulartics-ga.min.js", "public/bower_components/angulartics/dist/angulartics-ga.min.js",
"public/bower_components/spin.js/spin.js", "public/bower_components/spin.js/spin.js",
"public/bower_components/angular-spinner/angular-spinner.min.js", "public/bower_components/angular-spinner/angular-spinner.min.js",
"public/bower_components/socket.io-client/socket.io.js" "public/bower_components/socket.io-client/socket.io.js"
]; ];
gulp.src(files) gulp.src(files)
.pipe(concat("libs.js")) .pipe(concat("libs.js"))
.pipe(uglify()) .pipe(uglify())
.pipe(gulp.dest("public")); .pipe(gulp.dest("public"));
}); });
gulp.task("sass", function () { gulp.task('styles', function () {
gulp.src("./assets/style/*.scss") var processors = [
require('autoprefixer')({browsers: ['last 1 version']}),
require('cssnano')()
];
gulp.src('./assets/style/*.scss')
.pipe(sass()) .pipe(sass())
.pipe(concat("style.css")) .pipe(postcss(processors))
.pipe(autoprefixer()) .pipe(concat('style.css'))
.pipe(minify_css({processImport:false})) .pipe(gulp.dest('./public'));
.pipe(gulp.dest("public"));
}); });
gulp.task("copy", function(){ gulp.task("copy", function () {
gulp.src("./assets/fonts/*") gulp.src("./assets/fonts/*")
.pipe(gulp.dest("./public/fonts")); .pipe(gulp.dest("./public/fonts"));
gulp.src("./assets/graphics/*") gulp.src("./assets/graphics/*")
.pipe(gulp.dest("./public/graphics")); .pipe(gulp.dest("./public/graphics"));
gulp.src([ gulp.src([
"./3rdparty/*", "./3rdparty/*",
"robots.txt" "robots.txt"
]) ])
.pipe(gulp.dest("./public")); .pipe(gulp.dest("./public"));
}); });
gulp.task("compile", function(){ gulp.task('compile', function () {
gulp.src([ gulp.src([
"client/app.js", 'client/app.js',
"client/document.js", 'client/document.js',
"client/data.js", 'client/data.js',
"client/instagram.js" 'client/instagram.js'
]) ])
.pipe(browserify({ .pipe(browserify({
transform: [annotate, babel] transform: [
})) require('browserify-ngannotate'),
.pipe(_if(is_production, uglify())) require('babelify')
.pipe(gulp.dest("public")); ]
}))
//.pipe(_if(is_production, minify()))
.pipe(gulp.dest('./public'));
}); });
gulp.task("imagemin", function(){ gulp.task("imagemin", function () {
gulp.src("./assets/img/**/*") gulp.src("./assets/img/**/*")
.pipe(imageMin()) .pipe(imageMin())
.pipe(gulp.dest("./public/img")); .pipe(gulp.dest("./public/img"));
}); });
gulp.task("default", ["sass", "compile"]); gulp.task('default', ['styles', 'compile']);
gulp.task("deploy", ["default", "copy", "imagemin"]); gulp.task('deploy', ['default', 'copy', 'imagemin']);
+10 -5
View File
@@ -1,14 +1,19 @@
#!/bin/sh #!/bin/sh
gunzip build.tar.gz dir_path="$1"
tar xf build.tar -C ~/art build_file="$2"
rm build.tar port="$3"
cd $dir_path
gunzip -c $build_file | tar xopf -
#rm build.tar
cd ~/art
npm install --production --loglevel error npm install --production --loglevel error
export NODE_ENV=production export NODE_ENV=production
export PORT=18010 export PORT=$port
#starting www #starting www
if forever restart bin/www.js; then if forever restart bin/www.js; then
+4
View File
@@ -0,0 +1,4 @@
rsa-key-size = 4096
email = roman@tmshv.ru
domains = art.shlisselburg.org, art.shburg.org
webroot-path = /home/hoster/www/art.shburg.org/public
+15 -15
View File
@@ -2,47 +2,47 @@
{ {
"name": "statue-2013", "name": "statue-2013",
"title": "устав школы за 2013 год", "title": "устав школы за 2013 год",
"url": "http://static.shburg.org/art/docs/hudozhka_statue-2013.pdf", "url": "https://static.shburg.org/art/docs/hudozhka_statue-2013.pdf",
"preview": "http://static.shburg.org/art/graphics/statue-2013-preview.png", "preview": "https://static.shburg.org/art/graphics/statue-2013-preview.png",
"files": ["http://static.shburg.org/art/docs/hudozhka_statue-2013.pdf"] "files": ["https://static.shburg.org/art/docs/hudozhka_statue-2013.pdf"]
}, },
{ {
"name": "edu-license", "name": "edu-license",
"title": "образовательная лицензия", "title": "образовательная лицензия",
"url": "/document/edu-license", "url": "/document/edu-license",
"preview": "http://static.shburg.org/art/graphics/license_edu-preview.png", "preview": "https://static.shburg.org/art/graphics/license_edu-preview.png",
"files": [ "files": [
"http://static.shburg.org/art/docs/hudozhka_license_edu.jpg", "https://static.shburg.org/art/docs/hudozhka_license_edu.jpg",
"http://static.shburg.org/art/docs/hudozhka_license_edu_back.jpg", "https://static.shburg.org/art/docs/hudozhka_license_edu_back.jpg",
"http://static.shburg.org/art/docs/hudozhka_license_edu_attachment.jpg" "https://static.shburg.org/art/docs/hudozhka_license_edu_attachment.jpg"
] ]
}, },
{ {
"name": "gov-certificate", "name": "gov-certificate",
"title": "свидетельство о государственной регистрации права", "title": "свидетельство о государственной регистрации права",
"url": "/document/gov-certificate", "url": "/document/gov-certificate",
"preview": "http://static.shburg.org/art/graphics/certificate_gov-preview.png", "preview": "https://static.shburg.org/art/graphics/certificate_gov-preview.png",
"files": ["http://static.shburg.org/art/docs/hudozhka_certificate_gov.jpg"] "files": ["https://static.shburg.org/art/docs/hudozhka_certificate_gov.jpg"]
}, },
{ {
"name": "VAT", "name": "VAT",
"title": "ИНН", "title": "ИНН",
"url": "/document/VAT", "url": "/document/VAT",
"preview": "http://static.shburg.org/art/graphics/vatin-preview.png", "preview": "https://static.shburg.org/art/graphics/vatin-preview.png",
"files": ["http://static.shburg.org/art/docs/hudozhka_vatin.jpg"] "files": ["https://static.shburg.org/art/docs/hudozhka_vatin.jpg"]
}, },
{ {
"name": "EGRYL1", "name": "EGRYL1",
"title": "свидетельство о внесении в «ЕГРЮЛ»", "title": "свидетельство о внесении в «ЕГРЮЛ»",
"url": "/document/EGRYL1", "url": "/document/EGRYL1",
"preview": "http://static.shburg.org/art/graphics/certificate_egryl1-preview.png", "preview": "https://static.shburg.org/art/graphics/certificate_egryl1-preview.png",
"files": ["http://static.shburg.org/art/docs/hudozhka_certificate_egryl1.jpg"] "files": ["https://static.shburg.org/art/docs/hudozhka_certificate_egryl1.jpg"]
}, },
{ {
"name": "EGRYL2", "name": "EGRYL2",
"title": "свидетельство о внесении в «ЕГРЮЛ»", "title": "свидетельство о внесении в «ЕГРЮЛ»",
"url": "/document/EGRYL2", "url": "/document/EGRYL2",
"preview": "http://static.shburg.org/art/graphics/certificate_egryl2-preview.png", "preview": "https://static.shburg.org/art/graphics/certificate_egryl2-preview.png",
"files": ["http://static.shburg.org/art/docs/hudozhka_certificate_egryl2.jpg"] "files": ["https://static.shburg.org/art/docs/hudozhka_certificate_egryl2.jpg"]
} }
] ]
+12 -12
View File
@@ -6,7 +6,7 @@
"edu": "Ленинградский инженерно-строительный институт", "edu": "Ленинградский инженерно-строительный институт",
"diploma": "НВ №222567", "diploma": "НВ №222567",
"status": "", "status": "",
"picture": "http://static.shburg.org/art/team/teacher5.jpg", "picture": "https://static.shburg.org/art/team/teacher5.jpg",
"anchor": "director" "anchor": "director"
}, },
{ {
@@ -16,7 +16,7 @@
"edu": "Академия художеств имени И. Е. Репина", "edu": "Академия художеств имени И. Е. Репина",
"diploma": "B-I №259798", "diploma": "B-I №259798",
"status": "Первая квалификационная категория по живописи и станковой композиции", "status": "Первая квалификационная категория по живописи и станковой композиции",
"picture": "http://static.shburg.org/art/team/teacher10.jpg" "picture": "https://static.shburg.org/art/team/teacher10.jpg"
}, },
{ {
"id": "od-gogoleva", "id": "od-gogoleva",
@@ -25,7 +25,7 @@
"edu": "Ленинградский инженерно-строительный институт", "edu": "Ленинградский инженерно-строительный институт",
"diploma": "B-I №222572", "diploma": "B-I №222572",
"status": "Высшая квалификационная категория по живописи и станковой композиции", "status": "Высшая квалификационная категория по живописи и станковой композиции",
"picture": "http://static.shburg.org/art/team/teacher11.jpg" "picture": "https://static.shburg.org/art/team/teacher11.jpg"
}, },
{ {
"id": "nv-andreeva", "id": "nv-andreeva",
@@ -34,7 +34,7 @@
"edu": "Санкт-Петербургский государственный университет технологии и дизайна", "edu": "Санкт-Петербургский государственный университет технологии и дизайна",
"diploma": "ИВС 0514253", "diploma": "ИВС 0514253",
"status": "Вторая квалификационная категория по прикладной композиции", "status": "Вторая квалификационная категория по прикладной композиции",
"picture": "http://static.shburg.org/art/team/teacher2.jpg" "picture": "https://static.shburg.org/art/team/teacher2.jpg"
}, },
{ {
"id": "vv-voronova", "id": "vv-voronova",
@@ -43,7 +43,7 @@
"edu": "Российский государственный университет имени А. И. Герцена", "edu": "Российский государственный университет имени А. И. Герцена",
"diploma": "ВСГ 0530340", "diploma": "ВСГ 0530340",
"status": "Вторая квалификационная категория по прикладной композиции", "status": "Вторая квалификационная категория по прикладной композиции",
"picture": "http://static.shburg.org/art/team/teacher1.jpg" "picture": "https://static.shburg.org/art/team/teacher1.jpg"
}, },
{ {
"id": "in-vturina", "id": "in-vturina",
@@ -52,7 +52,7 @@
"edu": "Кировский государственный педагогический институт имени В. И. Ленина", "edu": "Кировский государственный педагогический институт имени В. И. Ленина",
"diploma": "ШВ №164501", "diploma": "ШВ №164501",
"status": "Первая квалификационная категория по скульптуре", "status": "Первая квалификационная категория по скульптуре",
"picture": "http://static.shburg.org/art/team/teacher8.jpg" "picture": "https://static.shburg.org/art/team/teacher8.jpg"
}, },
{ {
"id": "my-valkova", "id": "my-valkova",
@@ -61,7 +61,7 @@
"edu": "Педагогический институт имени А. И. Герцена", "edu": "Педагогический институт имени А. И. Герцена",
"diploma": "ПП №224197", "diploma": "ПП №224197",
"status": "Высшая квалификационная категория по истории искусства", "status": "Высшая квалификационная категория по истории искусства",
"picture": "http://static.shburg.org/art/team/teacher.jpg" "picture": "https://static.shburg.org/art/team/teacher12.jpg"
}, },
{ {
"id": "rk-timashev", "id": "rk-timashev",
@@ -70,7 +70,7 @@
"edu": "Санкт-Петербургский государственный архитектурно-строительный университет", "edu": "Санкт-Петербургский государственный архитектурно-строительный университет",
"diploma": "ВСГ 5344910", "diploma": "ВСГ 5344910",
"status": "", "status": "",
"picture": "http://static.shburg.org/art/team/teacher4.jpg" "picture": "https://static.shburg.org/art/team/teacher4.jpg"
}, },
{ {
"id": "as-timasheva", "id": "as-timasheva",
@@ -79,7 +79,7 @@
"edu": "Московский архитектурный институт", "edu": "Московский архитектурный институт",
"diploma": "РН 70241", "diploma": "РН 70241",
"status": "", "status": "",
"picture": "http://static.shburg.org/art/team/teacher3.jpg", "picture": "https://static.shburg.org/art/team/teacher3.jpg",
"contacts": { "contacts": {
"instagram": "annm101" "instagram": "annm101"
} }
@@ -91,7 +91,7 @@
"edu": "Незаконченный Ленинградский государственный педагогический университет имени А. С. Пушкина", "edu": "Незаконченный Ленинградский государственный педагогический университет имени А. С. Пушкина",
"diploma": "", "diploma": "",
"status": "", "status": "",
"picture": "http://static.shburg.org/art/team/teacher9.jpg" "picture": "https://static.shburg.org/art/team/teacher9.jpg"
}, },
{ {
"id": "ey-tarasova", "id": "ey-tarasova",
@@ -100,11 +100,11 @@
"edu": "Санкт-Петербургский государственный архитектурно-строительный университет", "edu": "Санкт-Петербургский государственный архитектурно-строительный университет",
"diploma": "ВСВ 1321444", "diploma": "ВСВ 1321444",
"status": "", "status": "",
"picture": "http://static.shburg.org/art/team/teacher.jpg" "picture": "https://static.shburg.org/art/team/teacher.jpg"
}, },
{ {
"id": "ea-burovtseva", "id": "ea-burovtseva",
"name": "Ев Ал Буровцева", "name": "Елена Ал Буровцева",
"position": "Преподаватель керамики", "position": "Преподаватель керамики",
"edu": "", "edu": "",
"diploma": "", "diploma": "",
+29 -8
View File
@@ -1,9 +1,16 @@
server { server {
listen 80; listen 443 ssl;
charset utf-8; charset utf-8;
server_name art.shlisselburg.org; server_name art.shlisselburg.org;
ssl_certificate /etc/letsencrypt/live/art.shlisselburg.org/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/art.shlisselburg.org/privkey.pem;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_prefer_server_ciphers on;
ssl_ciphers AES256+EECDH:AES256+EDH:!aNULL;
location / { location / {
proxy_pass http://hudozka; proxy_pass http://hudozka;
proxy_http_version 1.1; proxy_http_version 1.1;
@@ -14,14 +21,28 @@ server {
proxy_set_header X-Forwarded-For $remote_addr; proxy_set_header X-Forwarded-For $remote_addr;
} }
error_log /var/log/nginx/hudozhka.error.log; error_log /var/log/nginx/art.shburg.error.log;
access_log /var/log/nginx/hudozhka.access.log; access_log /var/log/nginx/art.shburg.access.log;
}
server {
listen 443 ssl;
server_name art.shburg.org;
ssl_certificate /etc/letsencrypt/live/art.shlisselburg.org/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/art.shlisselburg.org/privkey.pem;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_prefer_server_ciphers on;
ssl_ciphers AES256+EECDH:AES256+EDH:!aNULL;
return 301 https://art.shlisselburg.org$request_uri;
} }
server { server {
listen 80; listen 80;
server_name art.shburg.org; server_name art.shlisselburg.org art.shburg.org;
return 301 $scheme://art.shlisselburg.org$request_uri; return 301 https://art.shlisselburg.org$request_uri;
} }
map $http_upgrade $connection_upgrade { map $http_upgrade $connection_upgrade {
@@ -30,5 +51,5 @@ map $http_upgrade $connection_upgrade {
} }
upstream hudozka { upstream hudozka {
server localhost:18010; server localhost:1800;
} }
+11 -10
View File
@@ -1,7 +1,7 @@
{ {
"name": "Hudozka", "name": "Hudozka",
"private": true, "private": true,
"version": "3.1.0", "version": "3.4.1",
"description": "", "description": "",
"main": "bin/www.js", "main": "bin/www.js",
"scripts": { "scripts": {
@@ -19,12 +19,11 @@
"koa-bodyparser": "^1.4.1", "koa-bodyparser": "^1.4.1",
"koa-conditional-get": "^1.0.2", "koa-conditional-get": "^1.0.2",
"koa-etag": "^2.0.0", "koa-etag": "^2.0.0",
"koa-helmet": "0.0.3", "koa-helmet": "^1.0.0",
"koa-logger": "^1.2.2", "koa-logger": "^1.2.2",
"koa-prerender": "^1.0.3", "koa-prerender": "^1.0.3",
"koa-route": "^2.4.0", "koa-route": "^2.4.0",
"koa-static": "^1.4.9", "koa-static": "^1.4.9",
"koa-useragent": "0.0.5",
"koa.io": "0.0.3", "koa.io": "0.0.3",
"mz": "^1.3.0", "mz": "^1.3.0",
"promised-mongo": "git+https://git@github.com/tmshv/promised-mongo", "promised-mongo": "git+https://git@github.com/tmshv/promised-mongo",
@@ -32,18 +31,20 @@
"thunkify": "^2.1.2" "thunkify": "^2.1.2"
}, },
"devDependencies": { "devDependencies": {
"babelify": "^6.1.3", "autoprefixer": "^6.2.3",
"babelify": "^7.2.0",
"bower": "^1.3.12", "bower": "^1.3.12",
"browserify-ngannotate": "^0.7.1", "browserify-ngannotate": "^2.0.0",
"cssnano": "^3.4.0",
"gulp": "^3.8.10", "gulp": "^3.8.10",
"gulp-autoprefixer": "0.0.6",
"gulp-browserify": "^0.5.0", "gulp-browserify": "^0.5.0",
"gulp-concat": "^2.4.1", "gulp-concat": "^2.4.1",
"gulp-if": "^1.2.5", "gulp-if": "^2.0.0",
"gulp-imagemin": "~0.1.5", "gulp-imagemin": "~0.1.5",
"gulp-minify-css": "~0.3.0", "gulp-minify": "0.0.5",
"gulp-sass": "^1.2.2", "gulp-postcss": "^6.0.1",
"gulp-uglify": "^1.1.0", "gulp-sass": "^2.1.1",
"gulp-uglify": "^1.5.0",
"mocha": "~1.17.1", "mocha": "~1.17.1",
"should": "~3.1.2" "should": "~3.1.2"
} }
+1 -1
View File
@@ -34,7 +34,7 @@ app.use(prerender(config.prerender));
app.use(serve(path.join(__dirname, "public"))); app.use(serve(path.join(__dirname, "public")));
app.use(serve(path.join(__dirname, "templates"))); app.use(serve(path.join(__dirname, "templates")));
app.use(helmet.defaults()); app.use(helmet());
app.use(function *(next) { app.use(function *(next) {
var q = this.query; var q = this.query;
+2 -2
View File
@@ -15,8 +15,8 @@
<script src="/libs.js"></script> <script src="/libs.js"></script>
<link href="http://cdnjs.cloudflare.com/ajax/libs/fotorama/4.6.4/fotorama.css" rel="stylesheet"> <link href="//cdnjs.cloudflare.com/ajax/libs/fotorama/4.6.4/fotorama.css" rel="stylesheet">
<script src="http://cdnjs.cloudflare.com/ajax/libs/fotorama/4.6.4/fotorama.js"></script> <script src="//cdnjs.cloudflare.com/ajax/libs/fotorama/4.6.4/fotorama.js"></script>
<link rel="stylesheet" href="//cdn.jsdelivr.net/jquery.slick/1.5.7/slick.css"/> <link rel="stylesheet" href="//cdn.jsdelivr.net/jquery.slick/1.5.7/slick.css"/>
<script src="//cdn.jsdelivr.net/jquery.slick/1.5.7/slick.min.js"></script> <script src="//cdn.jsdelivr.net/jquery.slick/1.5.7/slick.min.js"></script>
+11 -19
View File
@@ -1,36 +1,28 @@
<div class="main-block"> <div class="main-block">
<!--<div>--> <!--<div>-->
<!--&lt;!&ndash;<a href="tel://{{telephone}}"></a>&ndash;&gt;--> <!--&lt;!&ndash;<a href="tel://{{telephone}}"></a>&ndash;&gt;-->
<!--<span class="telephone">{{contact.telephone}}</span>--> <!--<span class="telephone">{{contact.telephone}}</span>-->
<!--&lt;!&ndash;<ul class="submenu">&ndash;&gt;--> <!--&lt;!&ndash;<ul class="submenu">&ndash;&gt;-->
<!--&lt;!&ndash;<li><a href="/team#director">директор</a><p>М. Г. Тимашева</p></li>&ndash;&gt;--> <!--&lt;!&ndash;<li><a href="/team#director">директор</a><p>М. Г. Тимашева</p></li>&ndash;&gt;-->
<!--&lt;!&ndash;<li><a href="/enter">поступление</a></li>&ndash;&gt;--> <!--&lt;!&ndash;<li><a href="/enter">поступление</a></li>&ndash;&gt;-->
<!--&lt;!&ndash;<li><a href="/contacts">контактная информация</a></li>&ndash;&gt;--> <!--&lt;!&ndash;<li><a href="/contacts">контактная информация</a></li>&ndash;&gt;-->
<!--&lt;!&ndash;<li><a href="/awards">награды</a></li>&ndash;&gt;--> <!--&lt;!&ndash;<li><a href="/awards">награды</a></li>&ndash;&gt;-->
<!--&lt;!&ndash;</ul>&ndash;&gt;--> <!--&lt;!&ndash;</ul>&ndash;&gt;-->
<!--</div>--> <!--</div>-->
<h1>Шлиссельбургская детская художественная&nbsp;школа</h1> <h1>Шлиссельбургская детская художественная&nbsp;школа</h1>
</div> </div>
<div class="tape-block"> <div class="tape-block">
<div class="tape-block-content"> <div class="tape-block__body">
<div class="tape tape-tl"></div> <div class="tape tape-tl"></div>
<div class="tape tape-tr"></div> <div class="tape tape-tr"></div>
<div class="tape tape-bl"></div> <div class="tape tape-bl"></div>
<div class="tape tape-br"></div> <div class="tape tape-br"></div>
<div class="fotorama" <div class="tape-block__content"></div>
data-transition="crossfade"
data-autoplay="6000"
data-nav="false"
data-arrows="false"
data-width="100%"
data-fit="cover"
data-loop="true">
</div>
</div> </div>
</div> </div>
<timeline></timeline> <timeline></timeline>
+2 -15
View File
@@ -1,18 +1,5 @@
<img class="background-picture" src="http://static.shlisselburg.org/art/team/team.jpg"> <!--<background-picture src="'http://static.shlisselburg.org/art/team/team.jpg'"></background-picture>-->
<div class="team-block"> <div class="team-block">
<ul ng-controller="TeamController"> <team-member-profile ng-repeat="person in teamMembers track by $index" profile="person"/>
<li class="team-member" ng-repeat="person in team">
<a name="{{person.anchor}}"></a>
<img ng-src="{{person.picture}}">
<div class="info">
<h3>{{person.names[1]}} {{person.names[2]}} <span>{{person.names[3]}}</span></h3>
<p>{{person.position}}</p>
<p>{{person.status}}</p>
<p></p>
<p class="edu">{{person.edu}} </p>
<p class="diploma">Диплом {{person.diploma}}</p>
</div>
</li>
</ul>
</div> </div>
+18
View File
@@ -0,0 +1,18 @@
<div class="team-member">
<a name="{{person.anchor}}"></a>
<div class="team-member__picture">
<img ng-src="{{person.picture}}">
</div>
<div class="team-member__info">
<h3>{{person.names[1]}} {{person.names[2]}} <span>{{person.names[3]}}</span></h3>
<p>{{person.position}}</p>
<p>{{person.status}}</p>
<p></p>
<p class="edu">{{person.edu}} </p>
<p class="diploma">Диплом {{person.diploma}}</p>
</div>
</div>