Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
e67c012ef9 | ||
|
|
3015e14e9c | ||
|
|
5f5909d2e9 | ||
|
|
9b843b21ca | ||
|
|
164975f21f | ||
|
|
3f4b07e6c9 | ||
|
|
65ec12a328 | ||
|
|
a09e4606d5 | ||
|
|
674aeace6a | ||
|
|
88bbf78ff1 | ||
|
|
0905db1753 | ||
|
|
a8bef3ea6b | ||
|
|
f583e1c7b2 | ||
|
|
4cd6c9464b | ||
|
|
30dd51f94b | ||
|
|
8e551ebd35 | ||
|
|
37d22b63ad | ||
|
|
0d6cf42c7f | ||
|
|
09412f288f | ||
|
|
9445496b94 | ||
|
|
0328dc745d | ||
|
|
d7521e5ac5 | ||
|
|
7e1c33fdda | ||
|
|
941acc708c | ||
|
|
efd77a62e3 |
No files matched your search
@@ -3,4 +3,5 @@
|
||||
*.sublime*
|
||||
|
||||
/node_modules
|
||||
/bower_components
|
||||
/public
|
||||
@@ -0,0 +1,22 @@
|
||||
/**
|
||||
* Created by tmshv on 22/11/14.
|
||||
*/
|
||||
|
||||
var Router = require("express").Router;
|
||||
var Post = require("../schema/post");
|
||||
|
||||
module.exports = function (app) {
|
||||
var router;
|
||||
router = new Router();
|
||||
router.route("/api/feed")
|
||||
.get(function (req, res) {
|
||||
Post.find({}).exec(function (error, list) {
|
||||
if (error) return res.error(error);
|
||||
|
||||
res.json(list.map(function (post) {
|
||||
return post.toObject();
|
||||
}));
|
||||
});
|
||||
});
|
||||
app.use(router);
|
||||
};
|
||||
|
After Width: | Height: | Size: 14 KiB |
|
After Width: | Height: | Size: 15 KiB |
|
After Width: | Height: | Size: 491 B |
|
After Width: | Height: | Size: 470 B |
|
After Width: | Height: | Size: 470 B |
|
After Width: | Height: | Size: 491 B |
|
After Width: | Height: | Size: 697 B |
|
After Width: | Height: | Size: 653 B |
|
After Width: | Height: | Size: 177 B |
|
Before Width: | Height: | Size: 324 KiB |
|
Before Width: | Height: | Size: 311 KiB |
|
Before Width: | Height: | Size: 212 KiB |
|
Before Width: | Height: | Size: 340 KiB |
|
Before Width: | Height: | Size: 54 KiB |
|
Before Width: | Height: | Size: 309 KiB |
@@ -1,12 +1,19 @@
|
||||
.page-docs {
|
||||
&.ng-leave {
|
||||
transform-origin: 50% 50%;
|
||||
animation: rotateOutNewspaper .3s both ease-in;
|
||||
}
|
||||
|
||||
&.ng-enter {
|
||||
animation: scaleUp 0.3s both ease-in
|
||||
}
|
||||
}
|
||||
|
||||
.act{
|
||||
text-decoration: none;
|
||||
border-bottom: 1px dashed #688fff;
|
||||
}
|
||||
|
||||
.main{
|
||||
margin-top: 50px;
|
||||
}
|
||||
|
||||
.docblock{
|
||||
// width:100%;
|
||||
margin-bottom: 40px;
|
||||
|
||||
@@ -1,10 +1,92 @@
|
||||
* {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
.document-block {
|
||||
h1{
|
||||
font-size: 14pt;
|
||||
margin-left: 15px;
|
||||
}
|
||||
|
||||
.menu{
|
||||
position: fixed;
|
||||
background-color: white;
|
||||
box-shadow: 0 1px 5px 0 rgba(0, 0, 0, 0.5);
|
||||
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
|
||||
&.transparent{
|
||||
opacity: 0.95;
|
||||
}
|
||||
}
|
||||
|
||||
.controls {
|
||||
input {
|
||||
width: 30px;
|
||||
height: 30px;
|
||||
margin: 0 2px;
|
||||
text-align: center;
|
||||
font-size: .9em;
|
||||
}
|
||||
|
||||
input:focus {
|
||||
outline: 0;
|
||||
}
|
||||
|
||||
button {
|
||||
height: 30px;
|
||||
border-radius: 6px;
|
||||
border: 1px solid #666;
|
||||
background-color: white;
|
||||
font-size: 1.25em;
|
||||
line-height: 0;
|
||||
text-align: center;
|
||||
outline: none;
|
||||
|
||||
&:hover {
|
||||
border-color: #4d62d9;
|
||||
color: #4d62d9;
|
||||
}
|
||||
|
||||
&:active {
|
||||
border-color: #3d4fb2;
|
||||
color: #3d4fb2;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.controls .block {
|
||||
display: inline-block;
|
||||
margin: 0 5px;
|
||||
vertical-align: middle;
|
||||
}
|
||||
|
||||
a.download {
|
||||
height:30px;
|
||||
width: 23px;
|
||||
vertical-align: middle;
|
||||
padding: 0 8px;
|
||||
display: inline-block;
|
||||
background: url(/graphics/download.png) no-repeat 50%;
|
||||
border-radius: 6px;
|
||||
border: 1px solid #666;
|
||||
|
||||
&:hover{
|
||||
border-color: #4d62d9;
|
||||
}
|
||||
|
||||
&:active {
|
||||
border-color: #3d4fb2;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
body {
|
||||
font-family: "PT Sans";
|
||||
.document {
|
||||
padding-top: 50px;
|
||||
|
||||
.page {
|
||||
img {
|
||||
width: 100%;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.norm {
|
||||
@@ -15,85 +97,6 @@ body {
|
||||
font-weight: 700;
|
||||
}
|
||||
|
||||
#page-container > div {
|
||||
/* box-shadow: 1px 1px 3px 1px #333;*/
|
||||
}
|
||||
|
||||
.menu {
|
||||
position: fixed;
|
||||
width: 100%;
|
||||
height: 45px;
|
||||
background-color: #fff;
|
||||
z-index: 100;
|
||||
box-shadow: 0 1px 5px 0px rgba(0, 0, 0, 0.5);
|
||||
&.opac {
|
||||
opacity: .97;
|
||||
}
|
||||
.panel {
|
||||
width: auto;
|
||||
display: inline-block;
|
||||
margin: 10px 25px 0;
|
||||
&.right {
|
||||
float: right;
|
||||
}
|
||||
}
|
||||
h1 {
|
||||
font-size: 14pt;
|
||||
}
|
||||
}
|
||||
|
||||
.controls {
|
||||
display: inline-block;
|
||||
margin-top: -4px;
|
||||
/* vertical-align: middle;*/
|
||||
.block {
|
||||
display: inline-block;
|
||||
/* height: 100%;*/
|
||||
margin: 0px 5px;
|
||||
vertical-align: middle;
|
||||
}
|
||||
input {
|
||||
width: 30px;
|
||||
height: 30px;
|
||||
margin: 0 2px;
|
||||
text-align: center;
|
||||
font-size: .9em;
|
||||
}
|
||||
button {
|
||||
display: inline-block;
|
||||
height: 30px;
|
||||
padding: 0 10px;
|
||||
border-radius: 6px;
|
||||
border: 2px solid #bbb;
|
||||
color: #555;
|
||||
background-color: white;
|
||||
font-size: 1.3em;
|
||||
text-align: center;
|
||||
outline: none;
|
||||
&:hover {
|
||||
/* border: 1px solid #666;*/
|
||||
/* background-color: #eee;*/
|
||||
border: 2px solid #4d62d9;
|
||||
color: #4d62d9;
|
||||
}
|
||||
&:active {
|
||||
border: 2px solid #3d4fb2;
|
||||
color: #3d4fb2;
|
||||
background-color: rgba(61, 79, 178, 0.3);
|
||||
}
|
||||
}
|
||||
a.download {
|
||||
width: 22px;
|
||||
height: 22px;
|
||||
padding: 5px 8px;
|
||||
display: inline-block;
|
||||
background: #f3f3f3 url(download-icon.png) no-repeat;
|
||||
background-position: 50%;
|
||||
border-radius: 3px;
|
||||
border: 1px solid #e0e0e0;
|
||||
}
|
||||
}
|
||||
|
||||
#page-container {
|
||||
background-color: #c3bfa3;
|
||||
transition: left 500ms;
|
||||
@@ -102,7 +105,7 @@ body {
|
||||
.pf {
|
||||
margin: 60px auto 20px;
|
||||
/* box-shadow: 1px 1px 3px 1px #333;*/
|
||||
box-shadow: 0px 1px 4px 0px rgba(0, 0, 0, 0.9);
|
||||
box-shadow: 0 1px 4px 0px rgba(0, 0, 0, 0.9);
|
||||
border-collapse: separate;
|
||||
}
|
||||
|
||||
|
||||
@@ -0,0 +1,31 @@
|
||||
footer{
|
||||
position: relative;
|
||||
background-color: black;
|
||||
color: #ffffff;
|
||||
|
||||
&:before{
|
||||
content: '';
|
||||
position: absolute;
|
||||
top: -3px;
|
||||
width: 100%;
|
||||
height: 3px;
|
||||
background-image: url('/graphics/rawline.png');
|
||||
}
|
||||
|
||||
.info-block{
|
||||
display: flex;
|
||||
margin: 0 20px;
|
||||
|
||||
& > div{
|
||||
margin: 0 30px 0 10px;
|
||||
}
|
||||
}
|
||||
|
||||
a{
|
||||
color: #738cdb;
|
||||
}
|
||||
|
||||
ul{
|
||||
list-style: none;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,10 @@
|
||||
.page-home {
|
||||
&.ng-leave {
|
||||
transform-origin: 0% 0%;
|
||||
animation: rotateFall .3s both ease-in;
|
||||
}
|
||||
|
||||
&.ng-enter {
|
||||
animation: scaleUp 0.3s both ease-in;
|
||||
}
|
||||
}
|
||||
@@ -1,70 +1,59 @@
|
||||
* {
|
||||
//html {
|
||||
// overflow-y: hidden;
|
||||
//}
|
||||
|
||||
body {
|
||||
font-family: "PT Sans", Arial, sans-serif;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
body {
|
||||
font-family: "PT Sans", Arial, sans-serif;
|
||||
.main {
|
||||
margin-top: 5px;
|
||||
|
||||
.telephone {
|
||||
font-size: 1.25em;
|
||||
margin-left: 30px;
|
||||
}
|
||||
|
||||
h1 {
|
||||
text-align: right;
|
||||
margin: 20px 50px 0 0;
|
||||
font-weight: normal;
|
||||
padding: 0;
|
||||
}
|
||||
}
|
||||
|
||||
.menu {
|
||||
$text_color: #666;
|
||||
|
||||
width: 100%;
|
||||
background-color: black;
|
||||
|
||||
font-size: 13pt;
|
||||
color: $text_color;
|
||||
|
||||
ul{
|
||||
margin-left: 50px;
|
||||
}
|
||||
|
||||
li {
|
||||
display: inline-block;
|
||||
padding: 5px 3px 13px 3px;
|
||||
margin-right: 30px;
|
||||
}
|
||||
|
||||
:link, :visited{
|
||||
text-decoration: none;
|
||||
border-bottom: 1px solid #333;
|
||||
color: $text_color;
|
||||
}
|
||||
a:hover{
|
||||
color: white;
|
||||
}
|
||||
|
||||
.vk {
|
||||
float: right;
|
||||
margin: 13px 15px 0 0;
|
||||
border: none;
|
||||
}
|
||||
a {
|
||||
color: #3f9cea;
|
||||
text-decoration: none;
|
||||
border-bottom: 1px solid rgba(63, 156, 234, 0.25);
|
||||
}
|
||||
|
||||
.selected {
|
||||
border-top: 4px solid white;
|
||||
font-weight: bold;
|
||||
a:hover {
|
||||
border-bottom: 1px solid rgba(63, 156, 234, 0.5);
|
||||
}
|
||||
|
||||
a:link, a:visited{
|
||||
color: white;
|
||||
text-decoration: none;
|
||||
border-bottom: none;
|
||||
}
|
||||
a:active {
|
||||
border-bottom: 1px solid rgb(63, 156, 234);
|
||||
}
|
||||
|
||||
&.blue{
|
||||
border-top: 4px solid #3f9cea;
|
||||
}
|
||||
ul.submenu {
|
||||
list-style: none;
|
||||
display: inline-block;
|
||||
margin: 0 auto;
|
||||
width: 70%;
|
||||
text-align: center;
|
||||
|
||||
&.green{
|
||||
border-top: 4px solid #5cbe40;
|
||||
}
|
||||
li {
|
||||
display: inline-block;
|
||||
vertical-align: top;
|
||||
margin: 0 30px 0 0;
|
||||
|
||||
&.yellow{
|
||||
border-top: 4px solid #ffee00;
|
||||
}
|
||||
|
||||
&.pink {
|
||||
border-top: 4px solid #f655a0;
|
||||
p {
|
||||
margin: 2px 0 0;
|
||||
font-size: 0.75em;
|
||||
color: #999;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,64 @@
|
||||
.menu {
|
||||
$text_color: #666;
|
||||
|
||||
position:relative;
|
||||
width: 100%;
|
||||
background-color: black;
|
||||
color: $text_color;
|
||||
font-size: 13pt;
|
||||
|
||||
ul {
|
||||
margin: 0 0 0 20px;
|
||||
|
||||
li {
|
||||
display: inline-block;
|
||||
padding: 5px 3px 13px 3px;
|
||||
margin-right: 30px;
|
||||
}
|
||||
}
|
||||
|
||||
:link, :visited {
|
||||
text-decoration: none;
|
||||
border-bottom: 1px solid #333;
|
||||
color: #ccc;
|
||||
}
|
||||
|
||||
a:hover {
|
||||
color: white;
|
||||
border-bottom: 1px solid #555;
|
||||
}
|
||||
|
||||
.vk {
|
||||
float: right;
|
||||
margin: 13px 15px 0 0;
|
||||
border: none;
|
||||
}
|
||||
|
||||
.selected {
|
||||
border-top: 4px solid white;
|
||||
font-weight: bold;
|
||||
|
||||
a:link, a:visited{
|
||||
color: white;
|
||||
text-decoration: none;
|
||||
border-bottom: none;
|
||||
}
|
||||
|
||||
&.blue{
|
||||
border-top: 4px solid #3f9cea;
|
||||
}
|
||||
|
||||
&.green{
|
||||
border-top: 4px solid #5cbe40;
|
||||
}
|
||||
|
||||
&.yellow{
|
||||
border-top: 4px solid #ffee00;
|
||||
}
|
||||
|
||||
&.pink {
|
||||
border-top: 4px solid #f655a0;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,16 @@
|
||||
.page {
|
||||
// position: absolute;
|
||||
// bottom: 0;
|
||||
// top: 0;
|
||||
padding-top: 0px;
|
||||
width: 100%;
|
||||
// z-index: -1;
|
||||
}
|
||||
|
||||
.page.ng-leave {
|
||||
// z-index: 9999;
|
||||
}
|
||||
|
||||
.page.ng-enter {
|
||||
// z-index: 8888;
|
||||
}
|
||||
@@ -0,0 +1,56 @@
|
||||
@keyframes rotateFall {
|
||||
0% {
|
||||
transform: rotateZ(0deg);
|
||||
}
|
||||
20% {
|
||||
transform: rotateZ(10deg);
|
||||
animation-timing-function: ease-out;
|
||||
}
|
||||
40% {
|
||||
transform: rotateZ(17deg);
|
||||
}
|
||||
60% {
|
||||
transform: rotateZ(16deg);
|
||||
}
|
||||
100% {
|
||||
transform: translateY(100%) rotateZ(17deg);
|
||||
}
|
||||
}
|
||||
|
||||
@keyframes scaleUp {
|
||||
from {
|
||||
opacity: 0.0;
|
||||
transform: scale(0.5);
|
||||
}
|
||||
}
|
||||
|
||||
@keyframes slideInRight {
|
||||
from {
|
||||
transform: translateX(100%);
|
||||
}
|
||||
to {
|
||||
transform: translateX(0);
|
||||
}
|
||||
}
|
||||
|
||||
@keyframes slideInUp {
|
||||
from {
|
||||
transform: translateY(100%);
|
||||
}
|
||||
to {
|
||||
transform: translateY(0);
|
||||
}
|
||||
}
|
||||
|
||||
@keyframes slideOutLeft {
|
||||
to {
|
||||
transform: translateX(-100%);
|
||||
}
|
||||
}
|
||||
|
||||
@keyframes rotateOutNewspaper {
|
||||
to {
|
||||
transform: translateZ(-3000px) rotateZ(360deg);
|
||||
opacity: 0;
|
||||
}
|
||||
}
|
||||
@@ -5,6 +5,7 @@
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
border: 0;
|
||||
z-index: -1;
|
||||
}
|
||||
|
||||
@media screen {
|
||||
@@ -62,7 +63,6 @@
|
||||
position: relative;
|
||||
background-color: white;
|
||||
overflow: hidden;
|
||||
margin: 0;
|
||||
border: 0;
|
||||
}
|
||||
|
||||
|
||||
@@ -1,6 +1,18 @@
|
||||
.page-schedule {
|
||||
&.ng-leave {
|
||||
transform-origin: 0% 0%;
|
||||
animation: rotateFall 0.3s both ease-in;
|
||||
}
|
||||
|
||||
&.ng-enter {
|
||||
animation: scaleUp 0.3s both ease-in;
|
||||
}
|
||||
}
|
||||
|
||||
.schedule{
|
||||
position: relative;
|
||||
margin: 30px auto 0 auto;
|
||||
padding-bottom: 50px;
|
||||
text-align: center;
|
||||
|
||||
table{
|
||||
@@ -30,17 +42,9 @@
|
||||
vertical-align:baseline;
|
||||
|
||||
p.name{
|
||||
// position: absolute;
|
||||
width:30px;
|
||||
height: 30px;
|
||||
left: 0;
|
||||
right: 0;
|
||||
margin: 7px auto 10px auto;
|
||||
padding: 7px;
|
||||
border: 1px solid #e8e8e8;
|
||||
// background-color: white;
|
||||
border-radius: 50%;
|
||||
font-size: 1.4em;
|
||||
font-weight: 800;
|
||||
color: #242424;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -144,7 +148,7 @@
|
||||
display: inline-block;
|
||||
padding: 0px;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
thead.fix{
|
||||
position: fixed;
|
||||
@@ -162,6 +166,8 @@
|
||||
}
|
||||
|
||||
th{
|
||||
height: auto;
|
||||
|
||||
:not(.group){
|
||||
min-width: 150px;
|
||||
/* width: 15%;*/
|
||||
@@ -172,6 +178,16 @@
|
||||
&.group{
|
||||
width: 63px;
|
||||
}
|
||||
|
||||
.day{
|
||||
margin: 0;
|
||||
line-height: 0;
|
||||
}
|
||||
|
||||
.date{
|
||||
margin: 15px 0;
|
||||
line-height: 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -0,0 +1,43 @@
|
||||
.tape-block{
|
||||
width: 70%;
|
||||
max-width: 700px;
|
||||
min-width: 300px;
|
||||
|
||||
margin: 100px auto 100px;
|
||||
}
|
||||
|
||||
.tape-block-content{
|
||||
position: relative;
|
||||
width: 100%;
|
||||
|
||||
.tape {
|
||||
width: 98px;
|
||||
height: 98px;
|
||||
position: absolute;
|
||||
z-index: 10;
|
||||
}
|
||||
|
||||
.tape-tl {
|
||||
top: -25px;
|
||||
left: -25px;
|
||||
background-image: url(/graphics/tape-tl.png);
|
||||
}
|
||||
|
||||
.tape-tr {
|
||||
top: -25px;
|
||||
right: -25px;
|
||||
background-image: url(/graphics/tape-tr.png);
|
||||
}
|
||||
|
||||
.tape-bl {
|
||||
bottom: 0;
|
||||
left: -25px;
|
||||
background-image: url(/graphics/tape-lb.png);
|
||||
}
|
||||
|
||||
.tape-br {
|
||||
bottom: 0;
|
||||
right: -25px;
|
||||
background-image: url(/graphics/tape-rb.png);
|
||||
}
|
||||
}
|
||||
@@ -1,47 +1,56 @@
|
||||
.main-picture{
|
||||
.page-team {
|
||||
&.ng-leave {
|
||||
animation: slideOutLeft 0.3s both ease-in;
|
||||
}
|
||||
|
||||
&.ng-enter {
|
||||
animation: slideInRight 0.3s both ease-in;
|
||||
}
|
||||
}
|
||||
|
||||
.background-picture{
|
||||
width: 100%;
|
||||
position: fixed;
|
||||
margin: 0;
|
||||
top:0;
|
||||
left: 0;
|
||||
z-index: -999;
|
||||
}
|
||||
|
||||
ul{
|
||||
display: block;
|
||||
}
|
||||
|
||||
.team-list{
|
||||
list-style:none;
|
||||
.team-block{
|
||||
background-color: white;
|
||||
width:100%;
|
||||
min-height: 100px;
|
||||
padding-top: 100px;
|
||||
padding-bottom: 100px;
|
||||
margin-top: 63%;
|
||||
}
|
||||
|
||||
.team-member{
|
||||
margin: 0 auto 50px auto;
|
||||
width: 70%;
|
||||
|
||||
img{
|
||||
width: 40%;
|
||||
max-width: 600px;
|
||||
min-width: 200px;
|
||||
display: inline-block;
|
||||
ul{
|
||||
list-style:none;
|
||||
}
|
||||
|
||||
.info{
|
||||
display: inline-block;
|
||||
float: right;
|
||||
width: 55%;
|
||||
line-height: 2em;
|
||||
.team-member{
|
||||
margin: 0 auto 50px auto;
|
||||
width: 70%;
|
||||
|
||||
h3{
|
||||
font-weight: 100;
|
||||
img{
|
||||
width: 40%;
|
||||
max-width: 600px;
|
||||
min-width: 200px;
|
||||
display: inline-block;
|
||||
}
|
||||
|
||||
span{
|
||||
font-weight: 600;
|
||||
.info{
|
||||
display: inline-block;
|
||||
float: right;
|
||||
width: 55%;
|
||||
line-height: 2em;
|
||||
|
||||
h3{
|
||||
font-weight: 100;
|
||||
|
||||
span{
|
||||
font-weight: 600;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,45 @@
|
||||
.timeline {
|
||||
.post {
|
||||
.user{
|
||||
margin-top: 4px;
|
||||
|
||||
span{
|
||||
vertical-align: top;
|
||||
line-height: 40px;
|
||||
}
|
||||
|
||||
img {
|
||||
width: 40px;
|
||||
height: 40px;
|
||||
border-radius: 50%;
|
||||
}
|
||||
}
|
||||
|
||||
.date{
|
||||
margin: 5px 0 0;
|
||||
color: #999;
|
||||
font-size: 0.75em;
|
||||
}
|
||||
|
||||
.body{
|
||||
padding: 20px 20px 50px;
|
||||
// padding: 12px 0 0;
|
||||
// h2{
|
||||
//
|
||||
// }
|
||||
|
||||
a{
|
||||
border-bottom: none;
|
||||
}
|
||||
|
||||
img {
|
||||
width: 100%;
|
||||
max-width: 500px;
|
||||
box-sizing: border-box;
|
||||
border-radius: 5px;
|
||||
border: 8px solid white;
|
||||
box-shadow: 1px 2px 5px rgba(0, 0, 0, 0.35);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,103 @@
|
||||
.timeline{
|
||||
min-width: 500px;
|
||||
position: relative;
|
||||
margin: 0 0 50px;
|
||||
|
||||
&:before{
|
||||
content: '';
|
||||
width: 10px;
|
||||
height: 10px;
|
||||
position: absolute;
|
||||
background-color: black;
|
||||
top: 0;
|
||||
left: calc(50% - 6px);
|
||||
border-radius: 50%;
|
||||
z-index: 1;
|
||||
}
|
||||
}
|
||||
|
||||
.post{
|
||||
position: relative;
|
||||
display: flex;
|
||||
|
||||
.head, .body{
|
||||
position: relative;
|
||||
width: 50%;
|
||||
box-sizing: border-box;
|
||||
}
|
||||
|
||||
.head {
|
||||
padding: 25px 20px;
|
||||
}
|
||||
|
||||
.body {
|
||||
padding: 0 20px;
|
||||
}
|
||||
|
||||
&.left{
|
||||
flex-flow: row-reverse;
|
||||
|
||||
.body{
|
||||
text-align: right;
|
||||
}
|
||||
|
||||
.head{
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
.body:after{
|
||||
content: '';
|
||||
position: absolute;
|
||||
width: 12px;
|
||||
height: calc(100% - 98px);
|
||||
top: 98px;
|
||||
right: 0;
|
||||
background: url(/graphics/timeline-line.png) no-repeat right;
|
||||
background-size: 2px 100%;
|
||||
}
|
||||
|
||||
.head:after{
|
||||
content: '';
|
||||
position: absolute;
|
||||
width: 12px;
|
||||
height: 98px;
|
||||
top: 0;
|
||||
left: -12px;
|
||||
background: url(/graphics/timeline-arrow-left.png) no-repeat;
|
||||
}
|
||||
}
|
||||
|
||||
&.right{
|
||||
flex-flow: row;
|
||||
|
||||
.body{
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
.head{
|
||||
text-align: right;
|
||||
margin: 0 10px;
|
||||
}
|
||||
|
||||
.body:after{
|
||||
content: '';
|
||||
position: absolute;
|
||||
width: 100px;
|
||||
height: calc(100% - 98px);
|
||||
top: 98px;
|
||||
left: -12px;
|
||||
background: url(/graphics/timeline-line.png) no-repeat;
|
||||
background-size: 2px 100%;
|
||||
}
|
||||
|
||||
.head:after{
|
||||
content: '';
|
||||
position: absolute;
|
||||
width: 12px;
|
||||
height: 98px;
|
||||
top: 0;
|
||||
left: calc(100% - 2px);
|
||||
background: url(/graphics/timeline-arrow-right.png) no-repeat;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,140 @@
|
||||
/**
|
||||
* Created by tmshv on 22/11/14.
|
||||
*/
|
||||
|
||||
var config = require("../config");
|
||||
var db = require("../core/db");
|
||||
var instagram = require("../core/instagram");
|
||||
var express = require("express");
|
||||
var Promise = require("promise");
|
||||
var methodOverride = require("method-override");
|
||||
var logger = require("morgan");
|
||||
var cookieParser = require("cookie-parser");
|
||||
var bodyParser = require("body-parser");
|
||||
|
||||
var Post = require("../schema/post");
|
||||
|
||||
db.init(config.db)
|
||||
.then(function () {
|
||||
server(config.port);
|
||||
});
|
||||
|
||||
function server(port) {
|
||||
var app = express();
|
||||
app.use(logger("dev"));
|
||||
app.use(cookieParser());
|
||||
app.use(bodyParser.json());
|
||||
app.use(bodyParser.urlencoded({extended: true}));
|
||||
app.use(methodOverride());
|
||||
|
||||
require("../routers/instagram")(app);
|
||||
|
||||
var Router = express.Router;
|
||||
var instagram = require("../core/instagram");
|
||||
var router = new Router();
|
||||
router.route("/").get(function (req, res) {
|
||||
if ("instagram_code" in req.cookies) {
|
||||
var client = instagram.client(req.cookies["instagram_code"]);
|
||||
instagramSandbox(client, res);
|
||||
} else {
|
||||
var ig = instagram.client();
|
||||
var url = ig.get_authorization_url(config.instagram.redirect_uri, {scope: ["basic"], state: "hello"});
|
||||
res.redirect(url);
|
||||
}
|
||||
});
|
||||
app.use(router);
|
||||
app.listen(port);
|
||||
}
|
||||
|
||||
function instagramSandbox(ig, res) {
|
||||
// //{"username":"mlazareffa","bio":"","website":"","profile_picture":"http://images.ak.instagram.com/profiles/anonymousUser.jpg","full_name":"","id":"1549382451"}
|
||||
// //ig.user_search("mlazareffa", [], function(err, users, remaining, limit) {
|
||||
// // console.log(err, users, remaining, limit);
|
||||
// // res.json(users);
|
||||
// //});
|
||||
//
|
||||
// // ig.user_media_recent("1549382451", [], function (err, medias, pagination, remaining, limit) {
|
||||
// // console.log(err, medias, pagination, remaining, limit);
|
||||
// // res.json(users);
|
||||
// // });
|
||||
//
|
||||
// //ig.subscriptions(function(err, result, remaining, limit){
|
||||
// // console.log(err, result, remaining, limit);
|
||||
// // res.json(result);
|
||||
// //});
|
||||
//
|
||||
// //ig.del_subscription({id: 14180526}, function (err, subscriptions, limit) {
|
||||
// // console.log(err, subscriptions, limit);
|
||||
// // res.json(subscriptions);
|
||||
// //});
|
||||
//
|
||||
// ///* OPTIONS: { [verify_token] }
|
||||
// // ig.add_tag_subscription("hello", "http://home.tmshv.ru:1337/instagram/tag/hello", [], function(err, result, remaining, limit){
|
||||
// // console.log(err, result, remaining, limit);
|
||||
// // res.json(result);
|
||||
// //});
|
||||
|
||||
findByTag(ig, "shlb_hudozka", 10)
|
||||
.catch(function (error) {
|
||||
console.log(error);
|
||||
})
|
||||
.then(function (params) {
|
||||
var list = params.medias;
|
||||
var pagination = params.pagination;
|
||||
var remaining = params.remaining;
|
||||
var limit = params.limit;
|
||||
|
||||
var posts = list.map(function (gram) {
|
||||
//var post = new Post();
|
||||
var post = {};
|
||||
post.id = gram.id;
|
||||
post.author = gram.user["username"];
|
||||
post.publishDate = new Date(parseInt(gram["created_time"]) * 1000);
|
||||
post.data = gram;
|
||||
post.body = "";
|
||||
post.type = "instagram";
|
||||
|
||||
return post;
|
||||
});
|
||||
|
||||
Promise.all(posts.map(function (post) {
|
||||
return new Promise(function (resolve, reject) {
|
||||
console.log('updating', post.id);
|
||||
Post.update({id: post.id}, post, {upsert: true}, function (error, num) {
|
||||
if (error) {
|
||||
reject(error);
|
||||
} else {
|
||||
resolve();
|
||||
}
|
||||
});
|
||||
});
|
||||
}))
|
||||
.catch(function (error) {
|
||||
console.log(error);
|
||||
})
|
||||
.then(function () {
|
||||
res.send("LOL");
|
||||
});
|
||||
|
||||
//if (pagination.next) {
|
||||
// pagination.next(mtr); // Will get second page results
|
||||
//}
|
||||
});
|
||||
}
|
||||
|
||||
function findByTag(ig, tag, count) {
|
||||
return new Promise(function (resolve, reject) {
|
||||
ig.tag_media_recent(tag, {count: count}, function (err, medias, pagination, remaining, limit) {
|
||||
if (err) {
|
||||
reject(err);
|
||||
} else {
|
||||
resolve({
|
||||
medias: medias,
|
||||
pagination: pagination,
|
||||
remaining: remaining,
|
||||
limit: limit
|
||||
});
|
||||
}
|
||||
});
|
||||
});
|
||||
}
|
||||
@@ -0,0 +1,12 @@
|
||||
/**
|
||||
* Created by tmshv on 22/11/14.
|
||||
*/
|
||||
|
||||
var config = require("../config");
|
||||
var db = require("../core/db");
|
||||
var server = require("../server");
|
||||
|
||||
db.init(config.db)
|
||||
.then(function () {
|
||||
server(config.port);
|
||||
});
|
||||
@@ -0,0 +1,29 @@
|
||||
{
|
||||
"name": "hudozhka",
|
||||
"version": "2.0.0",
|
||||
"authors": [
|
||||
"Roman Timashev <roman@tmshv.ru>"
|
||||
],
|
||||
"moduleType": [
|
||||
"amd",
|
||||
"es6",
|
||||
"globals",
|
||||
"node"
|
||||
],
|
||||
"license": "MIT",
|
||||
"private": true,
|
||||
"ignore": [
|
||||
"**/.*",
|
||||
"node_modules",
|
||||
"bower_components",
|
||||
"test",
|
||||
"tests"
|
||||
],
|
||||
"dependencies": {
|
||||
"fotorama": "~4.6.2",
|
||||
"jquery": "~2.1.1",
|
||||
"angular-route": "~1.3.3",
|
||||
"angular-animate": "~1.3.3",
|
||||
"angular": "~1.3.3"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,13 @@
|
||||
/**
|
||||
* Created by tmshv on 22/11/14.
|
||||
*/
|
||||
|
||||
module.exports = function(app) {
|
||||
app.factory("api", function ($http) {
|
||||
var api = {};
|
||||
var Endpoint = require("./feed");
|
||||
api.feed = new Endpoint($http);
|
||||
|
||||
return api;
|
||||
});
|
||||
};
|
||||
@@ -0,0 +1,13 @@
|
||||
/**
|
||||
* Created by tmshv on 22/11/14.
|
||||
*/
|
||||
|
||||
function APIFeed(http){
|
||||
this.request = http;
|
||||
}
|
||||
|
||||
APIFeed.prototype.post = function() {
|
||||
return this.request.get("/api/feed");
|
||||
};
|
||||
|
||||
module.exports = APIFeed;
|
||||
@@ -0,0 +1,61 @@
|
||||
/**
|
||||
* Created by tmshv on 04/11/14.
|
||||
*/
|
||||
|
||||
var app = angular.module("hudozhka", ["ngRoute", "data.hudozhka"]);
|
||||
|
||||
app.config(function ($locationProvider, $routeProvider) {
|
||||
$locationProvider.html5Mode(true);
|
||||
|
||||
var routes = [
|
||||
{
|
||||
name: "/",
|
||||
templateUrl: "/views/home.html",
|
||||
controller: "HomePageController"
|
||||
},
|
||||
{
|
||||
name: "/schedule",
|
||||
templateUrl: "/views/schedule.html",
|
||||
controller: "SchedulePageController"
|
||||
},
|
||||
{
|
||||
name: "/team",
|
||||
templateUrl: "/views/team.html",
|
||||
controller: "TeamPageController"
|
||||
},
|
||||
{
|
||||
name: "/docs",
|
||||
templateUrl: "/views/docs.html",
|
||||
controller: "DocsPageController"
|
||||
}
|
||||
];
|
||||
|
||||
routes.forEach(function (route) {
|
||||
$routeProvider.when(route.name, route);
|
||||
});
|
||||
|
||||
$routeProvider.otherwise({
|
||||
redirectTo: "/"
|
||||
});
|
||||
});
|
||||
|
||||
require("./api/api")(app);
|
||||
require("./ui/menu")(app);
|
||||
require("./ui/timeline")(app);
|
||||
require("./filters/uppercase-first")(app);
|
||||
require("./pages/home")(app);
|
||||
require("./pages/schedule")(app);
|
||||
require("./pages/team")(app);
|
||||
require("./pages/docs")(app);
|
||||
|
||||
app.controller("SchedulePageController", function ($scope) {
|
||||
$scope.pageClass = "page-schedule";
|
||||
});
|
||||
|
||||
app.controller("TeamPageController", function ($scope) {
|
||||
$scope.pageClass = "page-team";
|
||||
});
|
||||
|
||||
app.controller("DocsPageController", function ($scope) {
|
||||
$scope.pageClass = "page-docs";
|
||||
});
|
||||
@@ -0,0 +1,19 @@
|
||||
/**
|
||||
* Created by tmshv on 06/11/14.
|
||||
*/
|
||||
|
||||
angular.module("data.hudozhka", [])
|
||||
.service("team", function () {
|
||||
return require("../models/team");
|
||||
})
|
||||
.service("schedule", function () {
|
||||
return require("../models/schedule");
|
||||
})
|
||||
.service("docs", function () {
|
||||
return require("../models/document");
|
||||
})
|
||||
.service("config", function(){
|
||||
return {
|
||||
telephone: "8 (81362) 77-502"
|
||||
};
|
||||
});
|
||||
@@ -1,132 +1,36 @@
|
||||
var Doc = (function(){
|
||||
var Document = function(baseURL){
|
||||
this.pages = [];
|
||||
this.baseURL = baseURL;
|
||||
}
|
||||
|
||||
Document.prototype.hasPage = function(index){
|
||||
return index >= 0 && index < this.pages.length;
|
||||
}
|
||||
|
||||
Document.prototype.getPageURL = function(pageNumber){
|
||||
var s = pageNumber <2 ? "" : "/" + pageNumber;
|
||||
return this.baseURL + s;
|
||||
}
|
||||
|
||||
Document.prototype.page = function(index){
|
||||
return index + 1;
|
||||
}
|
||||
|
||||
return Document;
|
||||
})();
|
||||
var app = angular.module("document.hudozhka", ["ngRoute", "data.hudozhka"]);
|
||||
|
||||
(function(){
|
||||
const PAGES = [];
|
||||
var currentPageIndex = 0;
|
||||
var doc = new Doc(location.pathname.replace(/\/\d+$/, ""));
|
||||
$(document).ready(function(){
|
||||
try{
|
||||
var hrefPage = /\/(\d+)$/.exec(location.href)[1];
|
||||
currentPageIndex = parseInt(hrefPage) - 1;
|
||||
}catch(error){
|
||||
app.config(function ($locationProvider, $sceDelegateProvider, $routeProvider) {
|
||||
$locationProvider.html5Mode(true);
|
||||
//$routeProvider
|
||||
// .when("/document/:doc", {
|
||||
// controller: "DocumentPageController"
|
||||
// })
|
||||
// .otherwise({
|
||||
// redirectTo: "/"
|
||||
// });
|
||||
|
||||
}
|
||||
$sceDelegateProvider.resourceUrlWhitelist([
|
||||
"self",
|
||||
"http://static.shburg.org/**",
|
||||
"http://static.shlisselburg.org/**"
|
||||
]);
|
||||
});
|
||||
|
||||
$("#buttonNext").click(function(event){
|
||||
loadNext();
|
||||
});
|
||||
//app.factory("document", function () {
|
||||
// var document;
|
||||
// return {
|
||||
// init:function(doc) {
|
||||
// document = doc;
|
||||
// },
|
||||
//
|
||||
// document: document
|
||||
// };
|
||||
//});
|
||||
|
||||
$("#buttonPrev").click(function(event){
|
||||
loadPrevious();
|
||||
});
|
||||
|
||||
$("#page-container .pf").each(function(index, elem){
|
||||
var url = $(elem).data("page-url");
|
||||
doc.pages.push(url);
|
||||
});
|
||||
|
||||
$("#currentPage").attr("max", doc.pages.length);
|
||||
$("#totalPages").text(doc.pages.length);
|
||||
$("#currentPage").change(function(){
|
||||
var i = parseInt($(this).val()) - 1;
|
||||
if(i && doc.hasPage(i)){
|
||||
loadPage(i);
|
||||
}
|
||||
});
|
||||
|
||||
$("#page-container").html("");
|
||||
loadPage(currentPageIndex);
|
||||
app.controller("DocumentPageController", function ($scope) {
|
||||
$scope.pageClass = "page-document";
|
||||
});
|
||||
|
||||
window.addEventListener("popstate", function(event){
|
||||
console.log("pops");
|
||||
console.log(event);
|
||||
var i = event.state;
|
||||
loadPage(i);
|
||||
});
|
||||
});
|
||||
|
||||
function loadNext(){
|
||||
var i = currentPageIndex + 1;
|
||||
if(doc.hasPage(i)){
|
||||
loadPage(i);
|
||||
}else{
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
function loadPrevious(){
|
||||
var i = currentPageIndex - 1;
|
||||
if(doc.hasPage(i)){
|
||||
loadPage(i);
|
||||
}else{
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
function loadPage(index){
|
||||
if(doc.hasPage(index)){
|
||||
var url = doc.pages[index];
|
||||
// $.ajax(
|
||||
// url,
|
||||
|
||||
// {
|
||||
// xhrFields: {
|
||||
// crossDomain: true,
|
||||
// withCredentials: true
|
||||
// },
|
||||
|
||||
// success: function(data, status){
|
||||
// currentPageIndex = index;
|
||||
// $("#currentPage").val(doc.page(currentPageIndex));
|
||||
// $("#page-container").html(data);
|
||||
|
||||
// var p = doc.page(currentPageIndex);
|
||||
// console.log("look at page ", p);
|
||||
// window.history.pushState(
|
||||
// currentPageIndex,
|
||||
// "State 2013 — " + p,
|
||||
// doc.getPageURL(p)
|
||||
// );
|
||||
// },
|
||||
|
||||
// error: function(xhr, aaa, error){
|
||||
// console.log(error);
|
||||
// }
|
||||
// }
|
||||
// );
|
||||
$.get(url, function(data){
|
||||
currentPageIndex = index;
|
||||
$("#currentPage").val(doc.page(currentPageIndex));
|
||||
$("#page-container").html(data);
|
||||
|
||||
var p = doc.page(currentPageIndex);
|
||||
console.log("look at page ", p);
|
||||
window.history.pushState(
|
||||
currentPageIndex,
|
||||
"State 2013 — " + p,
|
||||
doc.getPageURL(p)
|
||||
);
|
||||
});
|
||||
}
|
||||
}
|
||||
})();
|
||||
require("./ui/pdf")(app);
|
||||
require("./ui/doc-controller")(app);
|
||||
@@ -0,0 +1,11 @@
|
||||
/**
|
||||
* Created by tmshv on 21/11/14.
|
||||
*/
|
||||
|
||||
module.exports = function(app) {
|
||||
app.filter("uppercaseFirst", function () {
|
||||
return function(string) {
|
||||
return string.charAt(0).toUpperCase() + string.slice(1);
|
||||
};
|
||||
});
|
||||
};
|
||||
@@ -0,0 +1,48 @@
|
||||
module.exports = function (app) {
|
||||
app.controller("DocumentsController", function ($scope, docs) {
|
||||
$scope.documents = docs.docs;
|
||||
});
|
||||
};
|
||||
|
||||
/**
|
||||
* Generates list of numbers
|
||||
* @param {Number} start starting value
|
||||
* @param {Number} num amount of numbers in list
|
||||
* @param {Number} step difference value
|
||||
* @return {Array} list of numbers
|
||||
*/
|
||||
function range(start, num, step) {
|
||||
var list = [];
|
||||
var val = start;
|
||||
for (var i = 0; i < num; i++) {
|
||||
list.push(val);
|
||||
val += step;
|
||||
}
|
||||
return list;
|
||||
}
|
||||
|
||||
///**
|
||||
// * Monday date of current week
|
||||
// * @param {[type]} d [description]
|
||||
// * @return {[type]} [description]
|
||||
// */
|
||||
//function getMonday(d) {
|
||||
// d = new Date(d);
|
||||
// var day = d.getDay();
|
||||
// var diff = d.getDate() - day + (day == 0 ? -6 : 1); // adjust when day is sunday
|
||||
// return new Date(d.setDate(diff));
|
||||
//}
|
||||
|
||||
function getDates(day) {
|
||||
var dates = [];
|
||||
var prev = day == 0 ? 0 : day - 1;
|
||||
var next = 6 - prev;
|
||||
var dayMask = range(-1, prev, -1).concat([0]).concat(range(1, next, 1));
|
||||
|
||||
dayMask.forEach(function (m) {
|
||||
var time = Date.now() + (1000 * 60 * 60 * 24) * m;
|
||||
var date = new Date(time);
|
||||
dates.push(date.getDate());
|
||||
});
|
||||
return dates;
|
||||
}
|
||||
@@ -0,0 +1,12 @@
|
||||
/**
|
||||
* Created by tmshv on 22/11/14.
|
||||
*/
|
||||
|
||||
module.exports = function (app) {
|
||||
app.controller("HomePageController", function ($scope, config) {
|
||||
$scope.pageClass = "page-home";
|
||||
$scope.telephone = config.telephone;
|
||||
|
||||
$(".fotorama").fotorama();
|
||||
});
|
||||
};
|
||||
@@ -0,0 +1,78 @@
|
||||
var populate = require("../../utils/populate").populate;
|
||||
const course = require("../../models/course");
|
||||
|
||||
module.exports = function (app) {
|
||||
app.controller("ScheduleController", function ($scope, schedule, team) {
|
||||
var now = new Date();
|
||||
var dates = getDates(now);
|
||||
|
||||
var sem = "late";
|
||||
$scope.sem = [["early", "весеннего"], ["late", "осеннего"]].reduce(function (s, word) {
|
||||
if (word[0] === sem) return word[1];
|
||||
});
|
||||
$scope.year = 2014;
|
||||
|
||||
$scope.schedule = schedule($scope.year, sem, [
|
||||
populate(team.short, "teacher"),
|
||||
populate(course.name, "lesson")
|
||||
]);
|
||||
|
||||
$scope.isToday = function (weekDayIndex) {
|
||||
return (now.getDay() - 1) === weekDayIndex;
|
||||
};
|
||||
|
||||
$scope.weekDay = function (weekDayIndex) {
|
||||
return dates[weekDayIndex];
|
||||
};
|
||||
|
||||
$(window).scroll(function () {
|
||||
if ($(this).scrollTop() >= 220) {
|
||||
$(".schedule table thead").addClass("fix animated fadeInDown");
|
||||
$(".schedule table tbody").addClass("fix");
|
||||
} else {
|
||||
$(".schedule table thead").removeClass("fix animated fadeInDown");
|
||||
$(".schedule table tbody").removeClass("fix");
|
||||
}
|
||||
});
|
||||
});
|
||||
};
|
||||
|
||||
/**
|
||||
* Generates list of numbers
|
||||
* @param {Number} start starting value
|
||||
* @param {Number} num amount of numbers in list
|
||||
* @param {Number} step difference value
|
||||
* @return {Array} list of numbers
|
||||
*/
|
||||
function range(start, num, step) {
|
||||
var list = [];
|
||||
var val = start;
|
||||
for (var i = 0; i < num; i++) {
|
||||
list.push(val);
|
||||
val += step;
|
||||
}
|
||||
return list;
|
||||
}
|
||||
|
||||
///**
|
||||
// * Monday date of current week
|
||||
// * @param {[type]} d [description]
|
||||
// * @return {[type]} [description]
|
||||
// */
|
||||
//function getMonday(d) {
|
||||
// d = new Date(d);
|
||||
// var day = d.getDay();
|
||||
// var diff = d.getDate() - day + (day == 0 ? -6 : 1); // adjust when day is sunday
|
||||
// return new Date(d.setDate(diff));
|
||||
//}
|
||||
|
||||
function getDates(start) {
|
||||
var day = start.getDay();
|
||||
return range(0, 6, 1).reduce(function (dates, weekDay) {
|
||||
var d = 1 + weekDay - day;
|
||||
var time = start.getTime() + (1000 * 60 * 60 * 24) * d;
|
||||
var date = new Date(time);
|
||||
dates.push(date.getDate());
|
||||
return dates;
|
||||
}, []);
|
||||
}
|
||||
@@ -0,0 +1,11 @@
|
||||
var populate = require("../../utils/populate").populate;
|
||||
const course = require("../../models/course");
|
||||
|
||||
module.exports = function (app) {
|
||||
app.controller("TeamController", function ($scope, team) {
|
||||
$scope.team = team.team.map(function (person) {
|
||||
person.names = team.splitName(person.name);
|
||||
return person;
|
||||
});
|
||||
});
|
||||
};
|
||||
@@ -1,83 +0,0 @@
|
||||
$(document).ready(function(){
|
||||
$(window).scroll(function(){
|
||||
if ($(window).scrollTop() >= 220) {
|
||||
$(".schedule table thead").addClass("fix animated fadeInDown");
|
||||
$(".schedule table tbody").addClass("fix");
|
||||
}else{
|
||||
$(".schedule table thead").removeClass("fix animated fadeInDown");
|
||||
$(".schedule table tbody").removeClass("fix");
|
||||
}
|
||||
});
|
||||
|
||||
var now = new Date();
|
||||
var day = now.getDay();
|
||||
// day = 3;
|
||||
if(day == 0) deselectDays();
|
||||
else selectDay(day);
|
||||
|
||||
var dates = getDates(day);
|
||||
$(".schedule thead .date").each(function(index, elem){
|
||||
$(elem).text(dates[index]);
|
||||
});
|
||||
|
||||
function selectDay(day){
|
||||
deselectDays();
|
||||
// day = Math.min(1, day);
|
||||
// day = Math.max(6, day);
|
||||
|
||||
$($(".schedule thead th")[day]).addClass("current first");
|
||||
$(".schedule tbody tr").each(function(index, elem){
|
||||
$($(elem).find("td")[day]).addClass("current");
|
||||
});
|
||||
$($(".schedule tbody tr").last().find("td")[day]).addClass("last");
|
||||
}
|
||||
|
||||
function deselectDays(){
|
||||
$(".schedule thead th").removeClass("current first");
|
||||
$(".schedule tbody td").removeClass("current last");
|
||||
}
|
||||
});
|
||||
|
||||
/**
|
||||
* Generates list of numbers
|
||||
* @param {Number} start starting value
|
||||
* @param {Number} num amount of numbers in list
|
||||
* @param {Number} step difference value
|
||||
* @return {Array} list of numbers
|
||||
*/
|
||||
function range(start, num, step){
|
||||
var list= [];
|
||||
var val = start;
|
||||
for(var i = 0; i<num; i++){
|
||||
list.push(val);
|
||||
val += step;
|
||||
}
|
||||
return list;
|
||||
}
|
||||
|
||||
/**
|
||||
* Monday date of current week
|
||||
* @param {[type]} d [description]
|
||||
* @return {[type]} [description]
|
||||
*/
|
||||
function getMonday(d) {
|
||||
d = new Date(d);
|
||||
var day = d.getDay();
|
||||
var diff = d.getDate() - day + (day == 0 ? -6:1); // adjust when day is sunday
|
||||
return new Date(d.setDate(diff));
|
||||
}
|
||||
|
||||
function getDates(day){
|
||||
var dates = [];
|
||||
var prev = day == 0 ? 0 : day - 1;
|
||||
var next = 6 - prev;
|
||||
var dayMask = range(-1, prev, -1).concat([0]).concat(range(1, next, 1));
|
||||
console.log("day mask", dayMask);
|
||||
dayMask.forEach(function(m){
|
||||
var time = Date.now() + (1000 * 60 * 60 * 24) * m;
|
||||
var date = new Date(time);
|
||||
console.log(date);
|
||||
dates.push(date.getDate());
|
||||
});
|
||||
return dates;
|
||||
}
|
||||
@@ -0,0 +1,52 @@
|
||||
/**
|
||||
* Created by tmshv on 24/11/14.
|
||||
*/
|
||||
|
||||
module.exports = function (app) {
|
||||
app.controller("DocumentController", function ($scope, $location, docs) {
|
||||
$scope.showControls = false;
|
||||
|
||||
var doc_uri = $location.$$path.replace("/document/", "");
|
||||
$scope.document = docs.doc(doc_uri);
|
||||
$scope.document.currentPage = 0;
|
||||
|
||||
$scope.viewDocument = function () {
|
||||
switch ($scope.document.viewer) {
|
||||
case "img-sheet":
|
||||
$scope.showControls = false;
|
||||
return "/views/document-image.html";
|
||||
|
||||
default:
|
||||
$scope.showControls = true;
|
||||
return "/views/document-paper.html";
|
||||
}
|
||||
};
|
||||
|
||||
$scope.totalPages = $scope.document.url.length;
|
||||
$scope.currentPage = 1;
|
||||
|
||||
$scope.prevPage = function () {
|
||||
var i = $scope.currentPage - 1;
|
||||
if (i > 0) {
|
||||
$scope.currentPage = i;
|
||||
$scope.document.currentPage = i - 1;
|
||||
}
|
||||
};
|
||||
|
||||
$scope.nextPage = function () {
|
||||
var i = $scope.currentPage + 1;
|
||||
if (i <= $scope.totalPages) {
|
||||
$scope.currentPage = i;
|
||||
$scope.document.currentPage = i - 1;
|
||||
}
|
||||
};
|
||||
|
||||
$scope.update = function () {
|
||||
var i = $scope.currentPage;
|
||||
if (i > 0 && i <= $scope.totalPages) {
|
||||
$scope.currentPage = i;
|
||||
$scope.document.currentPage = i - 1;
|
||||
}
|
||||
};
|
||||
});
|
||||
};
|
||||
@@ -0,0 +1,31 @@
|
||||
/**
|
||||
* Created by tmshv on 05/11/14.
|
||||
*/
|
||||
|
||||
var menu = require("../../models/menu.json");
|
||||
|
||||
module.exports = function(app) {
|
||||
app.service("menu", function ($route) {
|
||||
menu.isActive = function (path) {
|
||||
if ($route.current && $route.current.regexp) {
|
||||
return $route.current.regexp.test(path);
|
||||
}
|
||||
return false;
|
||||
};
|
||||
|
||||
return menu;
|
||||
});
|
||||
|
||||
app.controller("MenuController", function ($scope, menu) {
|
||||
$scope.vkgroup = menu.vkgroup;
|
||||
$scope.menu = menu.menu;
|
||||
|
||||
$scope.isCurrent = function(item) {
|
||||
return menu.isActive(item.url);
|
||||
};
|
||||
|
||||
$scope.isValid = function(item) {
|
||||
return Boolean(item.url);
|
||||
};
|
||||
});
|
||||
};
|
||||
@@ -0,0 +1,148 @@
|
||||
/**
|
||||
* Created by tmshv on 24/11/14.
|
||||
*/
|
||||
|
||||
module.exports = function (app) {
|
||||
app.directive("pdf", function () {
|
||||
return {
|
||||
scope: {
|
||||
document: "="
|
||||
},
|
||||
templateUrl: "/views/pdf.html",
|
||||
link: function (scope, element, attrs) {
|
||||
|
||||
},
|
||||
|
||||
controller: function ($scope) {
|
||||
var doc = $scope.document;
|
||||
if (doc.extra && doc.extra.style) {
|
||||
angular.element("head").append('<link href="' + doc.extra.style + '" rel="stylesheet">');
|
||||
}
|
||||
|
||||
$scope.$watch(
|
||||
function () {
|
||||
return $scope.document.currentPage;
|
||||
},
|
||||
function (value) {
|
||||
value = parseInt(value);
|
||||
try{
|
||||
$scope.pageURL = $scope.document.url[value];
|
||||
}catch (error){
|
||||
$scope.pageURL = "";
|
||||
}
|
||||
}
|
||||
);
|
||||
|
||||
//const PAGES = [];
|
||||
//var currentPageIndex = 0;
|
||||
//var doc = new Document(location.pathname.replace(/\/\d+$/, ""));
|
||||
|
||||
//$(document).ready(function(){
|
||||
// try{
|
||||
// var hrefPage = /\/(\d+)$/.exec(location.href)[1];
|
||||
// currentPageIndex = parseInt(hrefPage) - 1;
|
||||
// }catch(error){
|
||||
//
|
||||
// }
|
||||
|
||||
//$("#buttonNext").click(function(event){
|
||||
// loadNext();
|
||||
//});
|
||||
//
|
||||
//$("#buttonPrev").click(function(event){
|
||||
// loadPrevious();
|
||||
//});
|
||||
//
|
||||
//$("#page-container .pf").each(function(index, elem){
|
||||
// var url = $(elem).data("page-url");
|
||||
// doc.pages.push(url);
|
||||
//});
|
||||
//
|
||||
//$("#currentPage").attr("max", doc.pages.length);
|
||||
//$("#totalPages").text(doc.pages.length);
|
||||
//$("#currentPage").change(function(){
|
||||
// var i = parseInt($(this).val()) - 1;
|
||||
// if(i && doc.hasPage(i)){
|
||||
// loadPage(i);
|
||||
// }
|
||||
//});
|
||||
//
|
||||
//$("#page-container").html("");
|
||||
//loadPage(currentPageIndex);
|
||||
//
|
||||
//window.addEventListener("popstate", function(event){
|
||||
// console.log("pops");
|
||||
// console.log(event);
|
||||
// var i = event.state;
|
||||
// loadPage(i);
|
||||
//});
|
||||
//});
|
||||
|
||||
//function loadNext(){
|
||||
// var i = currentPageIndex + 1;
|
||||
// if(doc.hasPage(i)){
|
||||
// loadPage(i);
|
||||
// }else{
|
||||
//
|
||||
// }
|
||||
//}
|
||||
//
|
||||
//function loadPrevious(){
|
||||
// var i = currentPageIndex - 1;
|
||||
// if(doc.hasPage(i)){
|
||||
// loadPage(i);
|
||||
// }else{
|
||||
//
|
||||
// }
|
||||
//}
|
||||
//
|
||||
//function loadPage(index){
|
||||
// if(doc.hasPage(index)){
|
||||
// var url = doc.pages[index];
|
||||
// // $.ajax(
|
||||
// // url,
|
||||
//
|
||||
// // {
|
||||
// // xhrFields: {
|
||||
// // crossDomain: true,
|
||||
// // withCredentials: true
|
||||
// // },
|
||||
//
|
||||
// // success: function(data, status){
|
||||
// // currentPageIndex = index;
|
||||
// // $("#currentPage").val(doc.page(currentPageIndex));
|
||||
// // $("#page-container").html(data);
|
||||
//
|
||||
// // var p = doc.page(currentPageIndex);
|
||||
// // console.log("look at page ", p);
|
||||
// // window.history.pushState(
|
||||
// // currentPageIndex,
|
||||
// // "State 2013 — " + p,
|
||||
// // doc.getPageURL(p)
|
||||
// // );
|
||||
// // },
|
||||
//
|
||||
// // error: function(xhr, aaa, error){
|
||||
// // console.log(error);
|
||||
// // }
|
||||
// // }
|
||||
// // );
|
||||
// $.get(url, function(data){
|
||||
// currentPageIndex = index;
|
||||
// $("#currentPage").val(doc.page(currentPageIndex));
|
||||
// $("#page-container").html(data);
|
||||
//
|
||||
// var p = doc.page(currentPageIndex);
|
||||
// console.log("look at page ", p);
|
||||
// window.history.pushState(
|
||||
// currentPageIndex,
|
||||
// "State 2013 — " + p,
|
||||
// doc.getPageURL(p)
|
||||
// );
|
||||
// });
|
||||
// }
|
||||
//}
|
||||
}
|
||||
};
|
||||
});
|
||||
};
|
||||
@@ -0,0 +1,52 @@
|
||||
/**
|
||||
* Created by tmshv on 23/11/14.
|
||||
*/
|
||||
|
||||
function personByInstagram(list, instagram){
|
||||
list = list.filter(function (member) {
|
||||
try {
|
||||
return member.contacts.instagram === instagram;
|
||||
} catch (error) {
|
||||
return false;
|
||||
}
|
||||
});
|
||||
|
||||
if(list.length){
|
||||
return list[0].id;
|
||||
}else{
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
module.exports = function(app) {
|
||||
app.directive("timeline", function (team) {
|
||||
return {
|
||||
templateUrl: "/views/timeline.html",
|
||||
scope: {
|
||||
|
||||
},
|
||||
link: function(scope, element, attrs){
|
||||
scope.isEven = function(index){
|
||||
return index % 2 === 1;
|
||||
}
|
||||
},
|
||||
controller: function($scope, api){
|
||||
api.feed.post()
|
||||
.success(function (list) {
|
||||
$scope.feed = list.map(function (post) {
|
||||
var author_id = personByInstagram(team.team, post.data.user.username);
|
||||
var name = author_id ? team.short(author_id) : post.data.user.username;
|
||||
return {
|
||||
date: post.publishDate,
|
||||
image: post.data.images.standard_resolution.url,
|
||||
url: post.data.link,
|
||||
username: name,
|
||||
userpic: post.data.user.profile_picture,
|
||||
text: post.data.caption.text.replace(/#[\w_]+/, "")
|
||||
};
|
||||
});
|
||||
});
|
||||
}
|
||||
};
|
||||
});
|
||||
};
|
||||
@@ -1,5 +1,3 @@
|
||||
var populate = require("./utils/populate").populate;
|
||||
|
||||
const MENU = require("./models/menu.json");
|
||||
|
||||
const team = require("./models/team");
|
||||
@@ -8,17 +6,25 @@ const document = require("./models/document");
|
||||
const schedule = require("./models/schedule");
|
||||
|
||||
module.exports = {
|
||||
port: 18010,
|
||||
port: process.env["PORT"] || 3000,
|
||||
pub: "./",
|
||||
data:{
|
||||
data: {
|
||||
menu: MENU,
|
||||
documents: document.docs,
|
||||
team: team.team,
|
||||
courses: course.courses,
|
||||
schedule: schedule([
|
||||
populate(team.short, "teacher"),
|
||||
populate(course.name, "lesson")
|
||||
])
|
||||
}
|
||||
}
|
||||
courses: course.courses
|
||||
},
|
||||
|
||||
db: {
|
||||
uri: "mongodb://localhost:27017/hudozka"
|
||||
},
|
||||
|
||||
instagram:{
|
||||
client_id: "f17901a26a5e4a5ca4544dd0eebe2a15",
|
||||
client_secret: "ecce08509871427ab9f8f383318315fc",
|
||||
redirect_uri: "http://72.tmshv.ru:1337/auth/instagram/callback"
|
||||
},
|
||||
|
||||
tags: ["shlb_hudozka"]
|
||||
};
|
||||
|
||||
@@ -0,0 +1,18 @@
|
||||
/**
|
||||
* Created by tmshv on 22/11/14.
|
||||
*/
|
||||
|
||||
var mongoose = require("mongoose");
|
||||
var Promise = require("promise");
|
||||
|
||||
module.exports = {
|
||||
init: function (options) {
|
||||
return new Promise(function (resolve, reject) {
|
||||
mongoose.connect(options.uri, function (error) {
|
||||
if (error) return reject(error);
|
||||
resolve();
|
||||
});
|
||||
});
|
||||
|
||||
}
|
||||
};
|
||||
@@ -0,0 +1,46 @@
|
||||
/**
|
||||
* Created by tmshv on 22/11/14.
|
||||
*/
|
||||
|
||||
var config = require("../config");
|
||||
var Promise = require("promise");
|
||||
|
||||
var auth_clients = {};
|
||||
|
||||
module.exports = {
|
||||
client: function(param){
|
||||
if(param in auth_clients) {
|
||||
return auth_clients[param];
|
||||
}else{
|
||||
return createClient();
|
||||
}
|
||||
},
|
||||
|
||||
authorize: function(code){
|
||||
return new Promise(function(resolve, reject){
|
||||
var api = createClient();
|
||||
api.authorize_user(code, config.instagram.redirect_uri, function (err, result) {
|
||||
if (err) return reject(err);
|
||||
else {
|
||||
var token = result.access_token;
|
||||
var c = createClient(token);
|
||||
auth_clients[code] = c;
|
||||
resolve(c);
|
||||
}
|
||||
});
|
||||
});
|
||||
}
|
||||
};
|
||||
|
||||
function createClient(token) {
|
||||
var api = require('instagram-node').instagram();
|
||||
if (token) {
|
||||
api.use({access_token: token});
|
||||
} else {
|
||||
api.use({
|
||||
client_id: config.instagram.client_id,
|
||||
client_secret: config.instagram.client_secret
|
||||
});
|
||||
}
|
||||
return api;
|
||||
}
|
||||
@@ -0,0 +1,16 @@
|
||||
#!/bin/sh
|
||||
|
||||
tar cf ~/www-build.tar \
|
||||
--exclude=node_modules \
|
||||
--exclude=bower_components \
|
||||
--exclude=.git \
|
||||
--exclude=.idea \
|
||||
--exclude=deploy.sh \
|
||||
--exclude=install.sh .
|
||||
|
||||
ssh shburg.et "rm -rf art/*"
|
||||
scp ~/www-build.tar shburg@37.139.6.120:~
|
||||
scp install.sh shburg@37.139.6.120:~
|
||||
ssh shburg.et "./install.sh && rm ./install.sh"
|
||||
rm ~/www-build.tar
|
||||
echo "art.shburg.org deployment completed successfully"
|
||||
@@ -5,15 +5,16 @@ var minifyCSS = require("gulp-minify-css");
|
||||
var autoprefixer = require("gulp-autoprefixer");
|
||||
var imageMin = require("gulp-imagemin");
|
||||
var uglify = require("gulp-uglify");
|
||||
|
||||
var pub = "./public/";
|
||||
var concat = require("gulp-concat");
|
||||
var browserify = require("gulp-browserify");
|
||||
|
||||
gulp.task("sass", function () {
|
||||
gulp.src("./assets/style/*.scss")
|
||||
.pipe(sass())
|
||||
.pipe(minifyCSS())
|
||||
.pipe(autoprefixer())
|
||||
.pipe(gulp.dest("./public/s"));
|
||||
.pipe(concat("style.css"))
|
||||
.pipe(autoprefixer())
|
||||
//.pipe(minifyCSS({processImport:false}))
|
||||
.pipe(gulp.dest("public"));
|
||||
});
|
||||
|
||||
gulp.task("copy", function(){
|
||||
@@ -22,12 +23,23 @@ gulp.task("copy", function(){
|
||||
|
||||
gulp.src("./assets/style/*.css")
|
||||
.pipe(gulp.dest("./public/s"));
|
||||
|
||||
gulp.src("./assets/graphics/*")
|
||||
.pipe(gulp.dest("./public/graphics"));
|
||||
});
|
||||
|
||||
gulp.task("uglify", function(){
|
||||
gulp.src("./client/*.js")
|
||||
// .pipe(uglify())
|
||||
.pipe(gulp.dest("./public/c"));
|
||||
gulp.task("compile", function(){
|
||||
gulp.src("client/app.js")
|
||||
.pipe(browserify())
|
||||
.pipe(gulp.dest("public"));
|
||||
|
||||
gulp.src("client/document.js")
|
||||
.pipe(browserify())
|
||||
.pipe(gulp.dest("public"));
|
||||
|
||||
gulp.src("client/data.js")
|
||||
.pipe(browserify())
|
||||
.pipe(gulp.dest("public"));
|
||||
});
|
||||
|
||||
gulp.task("imagemin", function(){
|
||||
@@ -36,5 +48,5 @@ gulp.task("imagemin", function(){
|
||||
.pipe(gulp.dest("./public/img"));
|
||||
});
|
||||
|
||||
gulp.task("default", ["sass", "copy", "uglify"]);
|
||||
gulp.task("deploy", ["default", "imagemin"]);
|
||||
gulp.task("default", ["sass", "compile"]);
|
||||
gulp.task("deploy", ["default", "copy", "imagemin"]);
|
||||
@@ -0,0 +1,18 @@
|
||||
#!/bin/sh
|
||||
|
||||
cd ~/art
|
||||
tar xvf ../www-build.tar
|
||||
rm ../www-build.tar
|
||||
npm install --production
|
||||
node_modules/bower/bin/bower install
|
||||
|
||||
export NODE_ENV=production
|
||||
export PORT=18010
|
||||
|
||||
#starting www
|
||||
if forever restart bin/www.js; then
|
||||
echo www.js restarted
|
||||
else
|
||||
forever start bin/www.js
|
||||
echo www.js started
|
||||
fi
|
||||
@@ -3,47 +3,47 @@
|
||||
"name": "statue-2013",
|
||||
"title": "устав школы за 2013 год",
|
||||
"path": "/document/statue-2013",
|
||||
"preview": "/img/preview/statue-2013.png",
|
||||
"preview": "http://static.shburg.org/art/graphics/statue-2013-preview.png",
|
||||
"download": "http://static.shburg.org/art/docs/hudozhka_statue-2013.pdf",
|
||||
"url": [
|
||||
"/f/hudozhka_statue-2013-1.page",
|
||||
"/f/hudozhka_statue-2013-2.page",
|
||||
"/f/hudozhka_statue-2013-3.page",
|
||||
"/f/hudozhka_statue-2013-4.page",
|
||||
"/f/hudozhka_statue-2013-5.page",
|
||||
"/f/hudozhka_statue-2013-6.page",
|
||||
"/f/hudozhka_statue-2013-7.page",
|
||||
"/f/hudozhka_statue-2013-8.page",
|
||||
"/f/hudozhka_statue-2013-9.page",
|
||||
"/f/hudozhka_statue-2013-10.page",
|
||||
"/f/hudozhka_statue-2013-11.page",
|
||||
"/f/hudozhka_statue-2013-12.page",
|
||||
"/f/hudozhka_statue-2013-13.page",
|
||||
"/f/hudozhka_statue-2013-14.page",
|
||||
"/f/hudozhka_statue-2013-15.page",
|
||||
"/f/hudozhka_statue-2013-16.page",
|
||||
"/f/hudozhka_statue-2013-17.page",
|
||||
"/f/hudozhka_statue-2013-18.page",
|
||||
"/f/hudozhka_statue-2013-19.page",
|
||||
"/f/hudozhka_statue-2013-20.page",
|
||||
"/f/hudozhka_statue-2013-21.page",
|
||||
"/f/hudozhka_statue-2013-22.page",
|
||||
"/f/hudozhka_statue-2013-23.page",
|
||||
"/f/hudozhka_statue-2013-24.page",
|
||||
"/f/hudozhka_statue-2013-25.page",
|
||||
"/f/hudozhka_statue-2013-26.page",
|
||||
"/f/hudozhka_statue-2013-27.page"
|
||||
"http://static.shburg.org/art/html/hudozhka_statue-2013-1.page",
|
||||
"http://static.shburg.org/art/html/hudozhka_statue-2013-2.page",
|
||||
"http://static.shburg.org/art/html/hudozhka_statue-2013-3.page",
|
||||
"http://static.shburg.org/art/html/hudozhka_statue-2013-4.page",
|
||||
"http://static.shburg.org/art/html/hudozhka_statue-2013-5.page",
|
||||
"http://static.shburg.org/art/html/hudozhka_statue-2013-6.page",
|
||||
"http://static.shburg.org/art/html/hudozhka_statue-2013-7.page",
|
||||
"http://static.shburg.org/art/html/hudozhka_statue-2013-8.page",
|
||||
"http://static.shburg.org/art/html/hudozhka_statue-2013-9.page",
|
||||
"http://static.shburg.org/art/html/hudozhka_statue-2013-10.page",
|
||||
"http://static.shburg.org/art/html/hudozhka_statue-2013-11.page",
|
||||
"http://static.shburg.org/art/html/hudozhka_statue-2013-12.page",
|
||||
"http://static.shburg.org/art/html/hudozhka_statue-2013-13.page",
|
||||
"http://static.shburg.org/art/html/hudozhka_statue-2013-14.page",
|
||||
"http://static.shburg.org/art/html/hudozhka_statue-2013-15.page",
|
||||
"http://static.shburg.org/art/html/hudozhka_statue-2013-16.page",
|
||||
"http://static.shburg.org/art/html/hudozhka_statue-2013-17.page",
|
||||
"http://static.shburg.org/art/html/hudozhka_statue-2013-18.page",
|
||||
"http://static.shburg.org/art/html/hudozhka_statue-2013-19.page",
|
||||
"http://static.shburg.org/art/html/hudozhka_statue-2013-20.page",
|
||||
"http://static.shburg.org/art/html/hudozhka_statue-2013-21.page",
|
||||
"http://static.shburg.org/art/html/hudozhka_statue-2013-22.page",
|
||||
"http://static.shburg.org/art/html/hudozhka_statue-2013-23.page",
|
||||
"http://static.shburg.org/art/html/hudozhka_statue-2013-24.page",
|
||||
"http://static.shburg.org/art/html/hudozhka_statue-2013-25.page",
|
||||
"http://static.shburg.org/art/html/hudozhka_statue-2013-26.page",
|
||||
"http://static.shburg.org/art/html/hudozhka_statue-2013-27.page"
|
||||
],
|
||||
"extra": {
|
||||
"style": ["http://static.shburg.org/art/docs/preview/hudozhka_statue-2013.css"]
|
||||
},
|
||||
"viewer": "default"
|
||||
"viewer": "pdf"
|
||||
},
|
||||
{
|
||||
"name": "edu-license",
|
||||
"title": "образовательная лицензия",
|
||||
"path": "/document/edu-license",
|
||||
"preview": "/img/preview/license_edu.png",
|
||||
"preview": "http://static.shburg.org/art/graphics/license_edu-preview.png",
|
||||
"url": [
|
||||
"http://static.shburg.org/art/docs/hudozhka_license_edu.jpg",
|
||||
"http://static.shburg.org/art/docs/hudozhka_license_edu_back.jpg",
|
||||
@@ -55,7 +55,7 @@
|
||||
"name": "gov-certificate",
|
||||
"title": "свидетельство о государственной регистрации права",
|
||||
"path": "/document/gov-certificate",
|
||||
"preview": "/img/preview/certificate_gov.png",
|
||||
"preview": "http://static.shburg.org/art/graphics/certificate_gov-preview.png",
|
||||
"url": ["http://static.shburg.org/art/docs/hudozhka_certificate_gov.jpg"],
|
||||
"viewer": "img-sheet"
|
||||
},
|
||||
@@ -63,7 +63,7 @@
|
||||
"name": "VAT",
|
||||
"title": "ИНН",
|
||||
"path": "/document/VAT",
|
||||
"preview": "/img/preview/vatin.png",
|
||||
"preview": "http://static.shburg.org/art/graphics/vatin-preview.png",
|
||||
"url": ["http://static.shburg.org/art/docs/hudozhka_vatin.jpg"],
|
||||
"viewer": "img-sheet"
|
||||
},
|
||||
@@ -71,7 +71,7 @@
|
||||
"name": "EGRYL1",
|
||||
"title": "свидетельство о внесении в «ЕГРЮЛ»",
|
||||
"path": "/document/EGRYL1",
|
||||
"preview": "/img/preview/certificate_egryl1.png",
|
||||
"preview": "http://static.shburg.org/art/graphics/certificate_egryl1-preview.png",
|
||||
"url": ["http://static.shburg.org/art/docs/hudozhka_certificate_egryl1.jpg"],
|
||||
"viewer": "img-sheet"
|
||||
},
|
||||
@@ -79,7 +79,7 @@
|
||||
"name": "EGRYL2",
|
||||
"title": "свидетельство о внесении в «ЕГРЮЛ»",
|
||||
"path": "/document/EGRYL2",
|
||||
"preview": "/img/preview/certificate_egryl2.png",
|
||||
"preview": "http://static.shburg.org/art/graphics/certificate_egryl2-preview.png",
|
||||
"url": ["http://static.shburg.org/art/docs/hudozhka_certificate_egryl2.jpg"],
|
||||
"viewer": "img-sheet"
|
||||
}
|
||||
|
||||
@@ -1,33 +1,33 @@
|
||||
{
|
||||
"items":[
|
||||
{
|
||||
"text":"Школа",
|
||||
"url":"/",
|
||||
"class":"selected blue"
|
||||
},
|
||||
{
|
||||
"text":"Расписание",
|
||||
"url":"/schedule",
|
||||
"class":"selected green"
|
||||
},
|
||||
{
|
||||
"text":"Занятия",
|
||||
"class":"selected"
|
||||
},
|
||||
{
|
||||
"text":"Коллектив",
|
||||
"url":"/team",
|
||||
"class":"selected pink"
|
||||
},
|
||||
{
|
||||
"text":"Галерея",
|
||||
"class":"selected"
|
||||
},
|
||||
{
|
||||
"text":"Документы",
|
||||
"url":"/docs",
|
||||
"class":"selected yellow"
|
||||
}
|
||||
],
|
||||
"vkgroup":"https://vk.com/club10436104"
|
||||
"menu": [
|
||||
{
|
||||
"text": "Школа",
|
||||
"url": "/",
|
||||
"color": "blue"
|
||||
},
|
||||
{
|
||||
"text": "Расписание",
|
||||
"url": "/schedule",
|
||||
"color": "green"
|
||||
},
|
||||
{
|
||||
"text": "Занятия",
|
||||
"color": ""
|
||||
},
|
||||
{
|
||||
"text": "Коллектив",
|
||||
"url": "/team",
|
||||
"color": "pink"
|
||||
},
|
||||
{
|
||||
"text": "Галерея",
|
||||
"color": ""
|
||||
},
|
||||
{
|
||||
"text": "Документы",
|
||||
"url": "/docs",
|
||||
"color": "yellow"
|
||||
}
|
||||
],
|
||||
"vkgroup": "https://vk.com/club10436104"
|
||||
}
|
||||
@@ -5,24 +5,24 @@
|
||||
"lesson": "composition",
|
||||
"teacher": "vv-voronova",
|
||||
"time": [
|
||||
"15:00 – 15:45",
|
||||
"15:55 – 16:40"
|
||||
"15:00 15:45",
|
||||
"15:55 16:40"
|
||||
]
|
||||
},
|
||||
"thursday": {
|
||||
"lesson": "painting",
|
||||
"teacher": "od-gogoleva",
|
||||
"time": [
|
||||
"15:00 – 15:45",
|
||||
"15:55 – 16:40"
|
||||
"15:00 15:45",
|
||||
"15:55 16:40"
|
||||
]
|
||||
},
|
||||
"saturday": {
|
||||
"lesson": "sculpting",
|
||||
"teacher": "in-vturina",
|
||||
"time": [
|
||||
"11:00 – 11:45",
|
||||
"11:55 – 12:40"
|
||||
"11:00 11:45",
|
||||
"11:55 12:40"
|
||||
]
|
||||
}
|
||||
},
|
||||
@@ -32,24 +32,24 @@
|
||||
"lesson": "composition",
|
||||
"teacher": "vv-voronova",
|
||||
"time": [
|
||||
"17:00 – 17:45",
|
||||
"17:55 – 18:40"
|
||||
"17:00 17:45",
|
||||
"17:55 18:40"
|
||||
]
|
||||
},
|
||||
"thursday": {
|
||||
"lesson": "painting",
|
||||
"teacher": "od-gogoleva",
|
||||
"time": [
|
||||
"17:00 – 17:45",
|
||||
"17:55 – 18:40"
|
||||
"17:00 17:45",
|
||||
"17:55 18:40"
|
||||
]
|
||||
},
|
||||
"saturday": {
|
||||
"lesson": "sculpting",
|
||||
"teacher": "in-vturina",
|
||||
"time": [
|
||||
"13:00 – 13:45",
|
||||
"13:55 – 14:40"
|
||||
"13:00 13:45",
|
||||
"13:55 14:40"
|
||||
]
|
||||
}
|
||||
},
|
||||
@@ -59,24 +59,24 @@
|
||||
"lesson": "painting",
|
||||
"teacher": "od-gogoleva",
|
||||
"time": [
|
||||
"15:00 – 15:45",
|
||||
"15:55 – 16:40"
|
||||
"15:00 15:45",
|
||||
"15:55 16:40"
|
||||
]
|
||||
},
|
||||
"friday": {
|
||||
"lesson": "composition",
|
||||
"teacher": "vv-voronova",
|
||||
"time": [
|
||||
"15:00 – 15:45",
|
||||
"15:55 – 16:40"
|
||||
"15:00 15:45",
|
||||
"15:55 16:40"
|
||||
]
|
||||
},
|
||||
"saturday": {
|
||||
"lesson": "sculpting",
|
||||
"teacher": "in-vturina",
|
||||
"time": [
|
||||
"15:00 – 15:45",
|
||||
"15:55 – 16:40"
|
||||
"15:00 15:45",
|
||||
"15:55 16:40"
|
||||
]
|
||||
}
|
||||
},
|
||||
@@ -84,26 +84,26 @@
|
||||
"name": "2-1",
|
||||
"monday": {
|
||||
"lesson": "composition",
|
||||
"teacher": ".",
|
||||
"teacher": "nv-andreeva",
|
||||
"time": [
|
||||
"15:00 – 15:45",
|
||||
"15:55 – 16:40"
|
||||
"15:00 15:45",
|
||||
"15:55 16:40"
|
||||
]
|
||||
},
|
||||
"wednesday": {
|
||||
"lesson": "painting",
|
||||
"teacher": "od-gogoleva",
|
||||
"time": [
|
||||
"15:00 – 15:45",
|
||||
"15:55 – 16:40"
|
||||
"15:00 15:45",
|
||||
"15:55 16:40"
|
||||
]
|
||||
},
|
||||
"saturday": {
|
||||
"lesson": "composition",
|
||||
"teacher": "Тимашева А.С.",
|
||||
"teacher": "as-timasheva",
|
||||
"time": [
|
||||
"11:00 – 11:45",
|
||||
"11:55 – 12:40"
|
||||
"11:00 11:45",
|
||||
"11:55 12:40"
|
||||
]
|
||||
}
|
||||
},
|
||||
@@ -113,24 +113,24 @@
|
||||
"lesson": "composition",
|
||||
"teacher": "nv-andreeva",
|
||||
"time": [
|
||||
"17:00 – 17:45",
|
||||
"17:55 – 18:40"
|
||||
"17:00 17:45",
|
||||
"17:55 18:40"
|
||||
]
|
||||
},
|
||||
"wednesday": {
|
||||
"lesson": "painting",
|
||||
"teacher": "od-gogoleva",
|
||||
"time": [
|
||||
"17:00 – 17:45",
|
||||
"17:55 – 18:40"
|
||||
"17:00 17:45",
|
||||
"17:55 18:40"
|
||||
]
|
||||
},
|
||||
"saturday": {
|
||||
"lesson": "composition",
|
||||
"teacher": "Тимашева А.С.",
|
||||
"teacher": "as-timasheva",
|
||||
"time": [
|
||||
"13:00 – 13:45",
|
||||
"13:55 – 14:40"
|
||||
"13:00 13:45",
|
||||
"13:55 14:40"
|
||||
]
|
||||
}
|
||||
},
|
||||
@@ -138,26 +138,26 @@
|
||||
"name": "2-3",
|
||||
"monday": {
|
||||
"lesson": "painting",
|
||||
"teacher": " ",
|
||||
"teacher": "od-gogoleva",
|
||||
"time": [
|
||||
"17:00 – 17:45",
|
||||
"17:55 – 18:40"
|
||||
"17:00 17:45",
|
||||
"17:55 18:40"
|
||||
]
|
||||
},
|
||||
"thursday": {
|
||||
"lesson": "cg",
|
||||
"lesson": "composition",
|
||||
"teacher": "nv-andreeva",
|
||||
"time": [
|
||||
"15:00 – 15:45",
|
||||
"15:55 – 16:40"
|
||||
"15:00 15:45",
|
||||
"15:55 16:40"
|
||||
]
|
||||
},
|
||||
"friday": {
|
||||
"lesson": "composition",
|
||||
"teacher": "Тимашева А.С.",
|
||||
"teacher": "as-timasheva",
|
||||
"time": [
|
||||
"15:00 – 15:45",
|
||||
"15:55 – 16:40"
|
||||
"15:00 15:45",
|
||||
"15:55 16:40"
|
||||
]
|
||||
}
|
||||
},
|
||||
@@ -167,23 +167,23 @@
|
||||
"lesson": "drawing",
|
||||
"teacher": "sa-latipova",
|
||||
"time": [
|
||||
"15:00 – 15:45",
|
||||
"15:55 – 16:40"
|
||||
"15:00 15:45",
|
||||
"15:55 16:40"
|
||||
]
|
||||
},
|
||||
"tuesday": {
|
||||
"lesson": "composition",
|
||||
"teacher": "nv-andreeva",
|
||||
"time": [
|
||||
"15:00 – 15:45",
|
||||
"15:55 – 16:40"
|
||||
"15:00 15:45",
|
||||
"15:55 16:40"
|
||||
]
|
||||
},
|
||||
"wednesday": {
|
||||
"lesson": "history",
|
||||
"teacher": "my-valkova",
|
||||
"time": [
|
||||
"17:00 – 17:45",
|
||||
"17:00 17:45",
|
||||
""
|
||||
]
|
||||
},
|
||||
@@ -191,16 +191,16 @@
|
||||
"lesson": "painting",
|
||||
"teacher": "sa-latipova",
|
||||
"time": [
|
||||
"15:00 – 15:45",
|
||||
"15:55 – 16:40"
|
||||
"15:00 15:45",
|
||||
"15:55 16:40"
|
||||
]
|
||||
},
|
||||
"saturday": {
|
||||
"lesson": "cg",
|
||||
"teacher": "rk-timashev",
|
||||
"time": [
|
||||
"13:00 – 13:45",
|
||||
"13:55 – 14:40"
|
||||
"13:00 13:45",
|
||||
"13:55 14:40"
|
||||
]
|
||||
}
|
||||
},
|
||||
@@ -210,40 +210,40 @@
|
||||
"lesson": "drawing",
|
||||
"teacher": "sa-latipova",
|
||||
"time": [
|
||||
"17:00 – 17:45",
|
||||
"17:55 – 18:40"
|
||||
"17:00 17:45",
|
||||
"17:55 18:40"
|
||||
]
|
||||
},
|
||||
"tuesday": {
|
||||
"lesson": "composition",
|
||||
"teacher": "nv-andreeva",
|
||||
"time": [
|
||||
"17:00 – 17:45",
|
||||
"17:55 – 18:40"
|
||||
"17:00 17:45",
|
||||
"17:55 18:40"
|
||||
]
|
||||
},
|
||||
"wednesday": {
|
||||
"lesson": "history",
|
||||
"teacher": "my-valkova",
|
||||
"time": [
|
||||
"17:00 – 17:45",
|
||||
"17:00 17:45",
|
||||
""
|
||||
]
|
||||
},
|
||||
"thursday": {
|
||||
"lesson": "painting",
|
||||
"teacher": ".",
|
||||
"teacher": "sa-latipova",
|
||||
"time": [
|
||||
"17:00 – 17:45",
|
||||
"17:55 – 18:40"
|
||||
"17:00 17:45",
|
||||
"17:55 18:40"
|
||||
]
|
||||
},
|
||||
"saturday": {
|
||||
"lesson": "cg",
|
||||
"teacher": "rk-timashev",
|
||||
"time": [
|
||||
"15:00 – 15:45",
|
||||
"15:55 – 16:40"
|
||||
"15:00 15:45",
|
||||
"15:55 16:40"
|
||||
]
|
||||
}
|
||||
},
|
||||
@@ -253,7 +253,7 @@
|
||||
"lesson": "history",
|
||||
"teacher": "my-valkova",
|
||||
"time": [
|
||||
"17:00 – 17:45",
|
||||
"17:00 17:45",
|
||||
""
|
||||
]
|
||||
},
|
||||
@@ -261,24 +261,24 @@
|
||||
"lesson": "composition",
|
||||
"teacher": "nv-andreeva",
|
||||
"time": [
|
||||
"17:00 – 17:45",
|
||||
"17:55 – 18:40"
|
||||
"17:00 17:45",
|
||||
"17:55 18:40"
|
||||
]
|
||||
},
|
||||
"friday": {
|
||||
"lesson": "painting",
|
||||
"teacher": "Тимашева А.С.",
|
||||
"teacher": "as-timasheva",
|
||||
"time": [
|
||||
"17:00 – 17:45",
|
||||
"17:55 – 18:40"
|
||||
"17:00 17:45",
|
||||
"17:55 18:40"
|
||||
]
|
||||
},
|
||||
"saturday": {
|
||||
"lesson": "drawing",
|
||||
"teacher": "Тимашева А.С.",
|
||||
"teacher": "as-timasheva",
|
||||
"time": [
|
||||
"15:00 – 15:45",
|
||||
"15:55 – 16:40"
|
||||
"15:00 15:45",
|
||||
"15:55 16:40"
|
||||
]
|
||||
}
|
||||
},
|
||||
@@ -288,23 +288,23 @@
|
||||
"lesson": "composition",
|
||||
"teacher": "vv-voronova",
|
||||
"time": [
|
||||
"15:00 – 15:45",
|
||||
"15:55 – 16:40"
|
||||
"15:00 15:45",
|
||||
"15:55 16:40"
|
||||
]
|
||||
},
|
||||
"tuesday": {
|
||||
"lesson": "painting",
|
||||
"teacher": "va-sarzhin",
|
||||
"time": [
|
||||
"15:00 – 15:45",
|
||||
"15:55 – 16:40"
|
||||
"15:00 15:45",
|
||||
"15:55 16:40"
|
||||
]
|
||||
},
|
||||
"wednesday": {
|
||||
"lesson": "history",
|
||||
"teacher": "my-valkova",
|
||||
"time": [
|
||||
"18:00 – 18:45",
|
||||
"18:00 18:45",
|
||||
""
|
||||
]
|
||||
},
|
||||
@@ -312,8 +312,8 @@
|
||||
"lesson": "drawing",
|
||||
"teacher": "sa-latipova",
|
||||
"time": [
|
||||
"15:00 – 15:45",
|
||||
"15:55 – 16:40"
|
||||
"15:00 15:45",
|
||||
"15:55 16:40"
|
||||
]
|
||||
}
|
||||
},
|
||||
@@ -323,23 +323,23 @@
|
||||
"lesson": "composition",
|
||||
"teacher": "vv-voronova",
|
||||
"time": [
|
||||
"17:00 – 17:45",
|
||||
"17:55 – 18:40"
|
||||
"17:00 17:45",
|
||||
"17:55 18:40"
|
||||
]
|
||||
},
|
||||
"tuesday": {
|
||||
"lesson": "painting",
|
||||
"teacher": "va-sarzhin",
|
||||
"time": [
|
||||
"17:00 – 17:45",
|
||||
"17:55 – 18:40"
|
||||
"17:00 17:45",
|
||||
"17:55 18:40"
|
||||
]
|
||||
},
|
||||
"wednesday": {
|
||||
"lesson": "history",
|
||||
"teacher": "my-valkova",
|
||||
"time": [
|
||||
"18:00 – 18:45",
|
||||
"18:00 18:45",
|
||||
""
|
||||
]
|
||||
},
|
||||
@@ -347,8 +347,8 @@
|
||||
"lesson": "drawing",
|
||||
"teacher": "sa-latipova",
|
||||
"time": [
|
||||
"17:00 – 17:45",
|
||||
"17:55 – 18:40"
|
||||
"17:00 17:45",
|
||||
"17:55 18:40"
|
||||
]
|
||||
}
|
||||
},
|
||||
@@ -356,17 +356,17 @@
|
||||
"name": "5-1",
|
||||
"monday": {
|
||||
"lesson": "painting",
|
||||
"teacher": ".",
|
||||
"teacher": "va-sarzhin",
|
||||
"time": [
|
||||
"15:00 – 15:45",
|
||||
"15:55 – 16:40"
|
||||
"15:00 15:45",
|
||||
"15:55 16:40"
|
||||
]
|
||||
},
|
||||
"thursday": {
|
||||
"lesson": "history",
|
||||
"teacher": "my-valkova",
|
||||
"time": [
|
||||
"17:00 – 17:45",
|
||||
"17:00 17:45",
|
||||
""
|
||||
]
|
||||
}
|
||||
@@ -377,23 +377,23 @@
|
||||
"lesson": "painting",
|
||||
"teacher": "va-sarzhin",
|
||||
"time": [
|
||||
"17:00 – 17:45",
|
||||
"17:55 – 18:40"
|
||||
"17:00 17:45",
|
||||
"17:55 18:40"
|
||||
]
|
||||
},
|
||||
"tuesday": {
|
||||
"lesson": "drawing",
|
||||
"teacher": "mg-timasheva",
|
||||
"time": [
|
||||
"17:00 – 17:45",
|
||||
"17:55 – 18:40"
|
||||
"17:00 17:45",
|
||||
"17:55 18:40"
|
||||
]
|
||||
},
|
||||
"thursday": {
|
||||
"lesson": "history",
|
||||
"teacher": "my-valkova",
|
||||
"time": [
|
||||
"17:00 – 17:45",
|
||||
"17:00 17:45",
|
||||
""
|
||||
]
|
||||
}
|
||||
@@ -404,15 +404,15 @@
|
||||
"lesson": "painting",
|
||||
"teacher": "va-sarzhin",
|
||||
"time": [
|
||||
"17:00 – 17:45",
|
||||
"17:55 – 18:40"
|
||||
"17:00 17:45",
|
||||
"17:55 18:40"
|
||||
]
|
||||
},
|
||||
"thursday": {
|
||||
"lesson": "drawing",
|
||||
"teacher": "mg-timasheva",
|
||||
"time": [
|
||||
"16:00 – 17:45",
|
||||
"16:00 17:45",
|
||||
""
|
||||
]
|
||||
},
|
||||
@@ -420,8 +420,8 @@
|
||||
"lesson": "composition",
|
||||
"teacher": "vv-voronova",
|
||||
"time": [
|
||||
"17:00 – 17:45",
|
||||
"17:55 18:40"
|
||||
"17:00 17:45",
|
||||
"17:55 18:40"
|
||||
]
|
||||
}
|
||||
},
|
||||
@@ -430,7 +430,7 @@
|
||||
"lesson": "history",
|
||||
"teacher": "my-valkova",
|
||||
"time": [
|
||||
"18:00 – 18:45",
|
||||
"18:00 18:45",
|
||||
""
|
||||
]
|
||||
}
|
||||
@@ -1,56 +1,69 @@
|
||||
var pop = require("../utils/populate").pop;
|
||||
var populate = require("../utils/populate").populate;
|
||||
|
||||
const SCHEDULE = require("./schedule-2014-early.json");
|
||||
const WEEK = ["monday", "tuesday", "wednesday", "thursday", "friday", "saturday"];
|
||||
module.exports = schedule;
|
||||
const SCHEDULES = {
|
||||
"2014-early": require("./schedule-2014-early.json"),
|
||||
"2014-late": require("./schedule-2014-late.json")
|
||||
};
|
||||
|
||||
function schedule(pops){
|
||||
var days = function(group){
|
||||
module.exports = function (year, name, pops) {
|
||||
//var s = require(
|
||||
// [year, name].reduce(function (r, v, i) {
|
||||
// var n = "{i}".replace("i", i);
|
||||
// return r.replace(n, v);
|
||||
// }, "./schedule-{0}-{1}.json")
|
||||
//);
|
||||
|
||||
var s = SCHEDULES[year + "-" + name];
|
||||
return populateSchedule(s, pops);
|
||||
};
|
||||
|
||||
function populateSchedule(s, pops){
|
||||
var days = function (group) {
|
||||
var result = [];
|
||||
|
||||
WEEK.forEach(function(i){
|
||||
|
||||
WEEK.forEach(function (i) {
|
||||
var lesson = group[i];
|
||||
if(lesson){
|
||||
if (lesson) {
|
||||
result.push(
|
||||
pop(lesson)
|
||||
.populate(time())
|
||||
.populate(pops)
|
||||
.result()
|
||||
)
|
||||
}else{
|
||||
} else {
|
||||
result.push(null);
|
||||
}
|
||||
});
|
||||
return result;
|
||||
}
|
||||
};
|
||||
|
||||
var time = function(){
|
||||
return function(lesson){
|
||||
for(var i=0; i < lesson.time.length; i++){
|
||||
var time = function () {
|
||||
return function (lesson) {
|
||||
for (var i = 0; i < lesson.time.length; i++) {
|
||||
lesson.time[i] = lesson.time[i].replace(" ", "—");
|
||||
}
|
||||
return lesson;
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
var mondayTime = function(group){
|
||||
var mondayTime = function (group) {
|
||||
var day;
|
||||
for(var i=0; i<WEEK.length; i++){
|
||||
if(group[WEEK[i]]){
|
||||
for (var i = 0; i < WEEK.length; i++) {
|
||||
if (group[WEEK[i]]) {
|
||||
day = WEEK[i];
|
||||
break;
|
||||
}
|
||||
}
|
||||
if(day){
|
||||
if (day) {
|
||||
return group[day].time[0].substr(0, 5);
|
||||
}else{
|
||||
} else {
|
||||
return "00:00"
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
var result = [];
|
||||
SCHEDULE.forEach(function(group){
|
||||
s.forEach(function (group) {
|
||||
result.push({
|
||||
name: group.name,
|
||||
days: days(group),
|
||||
|
||||
@@ -1,9 +1,12 @@
|
||||
const TEAM = require("./team.json");
|
||||
|
||||
exports.team = TEAM;
|
||||
exports.person = getPersonByID;
|
||||
exports.name = getNameByID;
|
||||
exports.short = getShortNameByID;
|
||||
module.exports = {
|
||||
team: TEAM,
|
||||
person: getPersonByID,
|
||||
name: getNameByID,
|
||||
short: getShortNameByID,
|
||||
splitName: splitName
|
||||
};
|
||||
|
||||
function getPersonByID(id){
|
||||
for(var i=0; i<TEAM.length; i++){
|
||||
@@ -28,9 +31,13 @@ function getShortNameByID(id){
|
||||
}
|
||||
|
||||
function shortifyName(name){
|
||||
var m = /(.+)\s(.+)\s(.+)/.exec(name);
|
||||
var m = splitName(name);
|
||||
var n = m[1].replace(/^(.).+/, "$1. ") +
|
||||
m[2].replace(/^(.).+/, "$1. ") +
|
||||
m[3];
|
||||
return n;
|
||||
}
|
||||
|
||||
function splitName(name){
|
||||
return /(.+)\s(.+)\s(.+)/.exec(name);
|
||||
}
|
||||
@@ -4,16 +4,17 @@
|
||||
"name": "Марина Геннадьевна Тимашева",
|
||||
"position": "Директор",
|
||||
"edu": "Ленинградский инженерно-строительный институт",
|
||||
"diplom": "НВ №222567",
|
||||
"diploma": "НВ №222567",
|
||||
"status": "",
|
||||
"picture": "http://static.shburg.org/art/team/teacher5.jpg"
|
||||
"picture": "http://static.shburg.org/art/team/teacher5.jpg",
|
||||
"anchor": "director"
|
||||
},
|
||||
{
|
||||
"id": "va-sarzhin",
|
||||
"name": "Валерий Александрович Саржин",
|
||||
"position": "Преподаватель живописи",
|
||||
"edu": "Академия художеств имени И. Е. Репина",
|
||||
"diplom": "B-I №259798",
|
||||
"diploma": "B-I №259798",
|
||||
"status": "Первая квалификационная категория по живописи и станковой композиции",
|
||||
"picture": "http://static.shburg.org/art/team/teacher10.jpg"
|
||||
},
|
||||
@@ -22,7 +23,7 @@
|
||||
"name": "Ольга Дмитриевна Гоголева",
|
||||
"position": "Преподаватель живописи",
|
||||
"edu": "Ленинградский инженерно-строительный институт",
|
||||
"diplom": "B-I №222572",
|
||||
"diploma": "B-I №222572",
|
||||
"status": "Высшая квалификационная категория по живописи и станковой композиции",
|
||||
"picture": "http://static.shburg.org/art/team/teacher11.jpg"
|
||||
},
|
||||
@@ -31,7 +32,7 @@
|
||||
"name": "Наталья Викторовна Андреева",
|
||||
"position": "Преподаватель композиции",
|
||||
"edu": "Санкт-Петербургский государственный университет технологии и дизайна",
|
||||
"diplom": "ИВС 0514253",
|
||||
"diploma": "ИВС 0514253",
|
||||
"status": "Вторая квалификационная категория по прикладной композиции",
|
||||
"picture": "http://static.shburg.org/art/team/teacher2.jpg"
|
||||
},
|
||||
@@ -40,7 +41,7 @@
|
||||
"name": "Вера Викторовна Воронова",
|
||||
"position": "Преподаватель композииции",
|
||||
"edu": "Российский государственный университет имени А. И. Герцена",
|
||||
"diplom": "ВСГ 0530340",
|
||||
"diploma": "ВСГ 0530340",
|
||||
"status": "Вторая квалификационная категория по прикладной композиции",
|
||||
"picture": "http://static.shburg.org/art/team/teacher1.jpg"
|
||||
},
|
||||
@@ -49,7 +50,7 @@
|
||||
"name": "Ирина Николаевна Втюрина",
|
||||
"position": "Преподаватель скульптуры",
|
||||
"edu": "Кировский государственный педагогический институт имени В. И. Ленина",
|
||||
"diplom": "ШВ №164501",
|
||||
"diploma": "ШВ №164501",
|
||||
"status": "Первая квалификационная категория по скульптуре",
|
||||
"picture": "http://static.shburg.org/art/team/teacher8.jpg"
|
||||
},
|
||||
@@ -58,7 +59,7 @@
|
||||
"name": "Мария Юрьевна Валькова",
|
||||
"position": "Преподаватель истории искусства",
|
||||
"edu": "Педагогический институт имени А. И. Герцена",
|
||||
"diplom": "ПП №224197",
|
||||
"diploma": "ПП №224197",
|
||||
"status": "Высшая квалификационная категория по истории искусства",
|
||||
"picture": "http://static.shburg.org/art/team/teacher.jpg"
|
||||
},
|
||||
@@ -67,25 +68,28 @@
|
||||
"name": "Руслан Камилевич Тимашев",
|
||||
"position": "Преподаватель компьютерной графики",
|
||||
"edu": "Санкт-Петербургский государственный архитектурно-строительный университет",
|
||||
"diplom": "ВСГ 5344910",
|
||||
"diploma": "ВСГ 5344910",
|
||||
"status": "",
|
||||
"picture": "http://static.shburg.org/art/team/teacher4.jpg"
|
||||
},
|
||||
{
|
||||
"id": "as-timasheva",
|
||||
"name": "Анна Сергеевна Манцева",
|
||||
"name": "Анна Сергеевна Тимашева",
|
||||
"position": "Преподаватель рисунка",
|
||||
"edu": "Московский архитектурный институт",
|
||||
"diplom": "РН 70241",
|
||||
"diploma": "РН 70241",
|
||||
"status": "",
|
||||
"picture": "http://static.shburg.org/art/team/teacher3.jpg"
|
||||
"picture": "http://static.shburg.org/art/team/teacher3.jpg",
|
||||
"contacts": {
|
||||
"instagram": "annm101"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "sa-latipova",
|
||||
"name": "Серафима Александровна Латыпова",
|
||||
"position": "Преподаватель рисунка",
|
||||
"edu": "Незаконченный Ленинградский государственный педагогический университет имени А. С. Пушкина",
|
||||
"diplom": "",
|
||||
"diploma": "",
|
||||
"status": "",
|
||||
"picture": "http://static.shburg.org/art/team/teacher9.jpg"
|
||||
},
|
||||
@@ -94,7 +98,7 @@
|
||||
"name": "Евгения Юрьевна Тарасова",
|
||||
"position": "Преподаватель гравюры",
|
||||
"edu": "Санкт-Петербургский государственный архитектурно-строительный университет",
|
||||
"diplom": "ВСВ 1321444",
|
||||
"diploma": "ВСВ 1321444",
|
||||
"status": "",
|
||||
"picture": "http://static.shburg.org/art/team/teacher.jpg"
|
||||
}
|
||||
|
||||
@@ -1,12 +1,10 @@
|
||||
{
|
||||
"name": "app",
|
||||
"private": true,
|
||||
"version": "0.1.0",
|
||||
"version": "2.0.0",
|
||||
"description": "",
|
||||
"main": "main.js",
|
||||
"scripts": {
|
||||
"start": "node ./server.js",
|
||||
"install": "gulp deploy",
|
||||
"test": "mocha"
|
||||
},
|
||||
"repository": {
|
||||
@@ -16,18 +14,26 @@
|
||||
"author": "Roman Timashev",
|
||||
"license": "ISC",
|
||||
"dependencies": {
|
||||
"consolidate": "~0.10.0",
|
||||
"jade": "~1.1.5",
|
||||
"express": "~3.4.8",
|
||||
"gulp-uglify": "^0.2.1"
|
||||
"body-parser": "^1.9.3",
|
||||
"bower": "^1.3.12",
|
||||
"cookie-parser": "^1.3.3",
|
||||
"express": "^4.10.1",
|
||||
"instagram-node": "^0.5.1",
|
||||
"method-override": "^2.3.0",
|
||||
"mongoose": "^3.8.19",
|
||||
"morgan": "^1.5.0",
|
||||
"promise": "^6.0.1"
|
||||
},
|
||||
"devDependencies": {
|
||||
"gulp": "~3.5.2",
|
||||
"should": "~3.1.2",
|
||||
"mocha": "~1.17.1",
|
||||
"gulp-sass": "~0.6.0",
|
||||
"gulp-minify-css": "~0.3.0",
|
||||
"gulp": "^3.8.10",
|
||||
"gulp-autoprefixer": "0.0.6",
|
||||
"gulp-browserify": "^0.5.0",
|
||||
"gulp-concat": "^2.4.1",
|
||||
"gulp-imagemin": "~0.1.5",
|
||||
"gulp-autoprefixer": "0.0.6"
|
||||
"gulp-minify-css": "~0.3.0",
|
||||
"gulp-sass": "^1.2.2",
|
||||
"gulp-uglify": "^0.2.1",
|
||||
"mocha": "~1.17.1",
|
||||
"should": "~3.1.2"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,44 @@
|
||||
/**
|
||||
* Created by tmshv on 22/11/14.
|
||||
*/
|
||||
|
||||
var Router = require("express").Router;
|
||||
var instagram = require("./instagram");
|
||||
|
||||
module.exports = function (app) {
|
||||
var router;
|
||||
router = new Router();
|
||||
router.route("/auth/instagram/callback")
|
||||
.get(function (req, res) {
|
||||
var api = instagram.client();
|
||||
|
||||
var code = req.query.code;
|
||||
instagram.authorize(code)
|
||||
.catch(function(error){
|
||||
console.log(error.body);
|
||||
res.status(500).send('');
|
||||
})
|
||||
.then(function (client) {
|
||||
res.cookie("instagram_code", code);
|
||||
res.redirect("/");
|
||||
});
|
||||
});
|
||||
app.use(router);
|
||||
|
||||
//http://your-callback.com/url/?hub.mode=subscribe&hub.challenge=15f7d1a91c1f40f8a748fd134752feb3&hub.verify_token=myVerifyToken
|
||||
router = new Router();
|
||||
router.route("/instagram/tag/:tag")
|
||||
.get(function (req, res) {
|
||||
var hub_challenge = req.query["hub.challenge"];
|
||||
//var hub_verify_token = req.query["hub.verify_token"];
|
||||
|
||||
console.log("real time get", req.param("tag"), hub_challenge);
|
||||
res.send(hub_challenge);
|
||||
})
|
||||
.post(function (req, res) {
|
||||
console.log("real time tag", req.param("tag"));
|
||||
console.log(req.body);
|
||||
res.send("");
|
||||
});
|
||||
app.use(router);
|
||||
};
|
||||
@@ -1,15 +0,0 @@
|
||||
var Router = require("express").Router;
|
||||
var config = require("../config");
|
||||
var route = require("./route");
|
||||
|
||||
var router = new Router();
|
||||
module.exports = router.middleware;
|
||||
|
||||
router.get("/schedule", function(req, res){
|
||||
var url = "/schedule";
|
||||
|
||||
res.render("schedule/schedule", {
|
||||
menu: route.menu(url),
|
||||
groups: config.data.schedule
|
||||
});
|
||||
});
|
||||
@@ -0,0 +1,20 @@
|
||||
/**
|
||||
* Created by tmshv on 22/11/14.
|
||||
*/
|
||||
|
||||
var mongoose = require("mongoose");
|
||||
var Schema = mongoose.Schema;
|
||||
var ObjectId = Schema.Types.ObjectId;
|
||||
|
||||
var schema = new Schema({
|
||||
id: {type: String, required: true, index: {unique: true}},
|
||||
author: {type: String, default: []},
|
||||
type: {type: String, enum: ["post", "instagram"]},
|
||||
publishDate: Date,
|
||||
body: String,
|
||||
data: Object
|
||||
}
|
||||
);
|
||||
|
||||
var Post = mongoose.model("Post", schema, "posts");
|
||||
module.exports = Post;
|
||||
@@ -1,31 +1,35 @@
|
||||
var express = require("express");
|
||||
var consolidate = require("consolidate");
|
||||
var path = require("path");
|
||||
var config = require("./config");
|
||||
var Post = require("./schema/post");
|
||||
|
||||
var pub = "./public";
|
||||
// var pub = path.resolve("~/Dropbox/Dev/Hud school/public/");
|
||||
// console.log(pub);
|
||||
// console.log(pub);
|
||||
var Promise = require("promise");
|
||||
var methodOverride = require("method-override");
|
||||
var logger = require("morgan");
|
||||
var cookieParser = require("cookie-parser");
|
||||
var bodyParser = require("body-parser");
|
||||
|
||||
var server = express();
|
||||
server.engine("jade", consolidate.jade);
|
||||
server.set("view engine", "jade");
|
||||
server.set("views", [__dirname, "/pages"].join(""));
|
||||
server.use(express.static(pub));
|
||||
var app = express();
|
||||
app.use("/bower_components", express.static(path.join(__dirname, "bower_components")));
|
||||
app.use("/views", express.static(path.join(__dirname, "views")));
|
||||
app.use(express.static(path.join(__dirname, "public")));
|
||||
|
||||
server.get("/", function(req, res){
|
||||
var url = "/";
|
||||
var route = require("./routers/route");
|
||||
res.render("main/main", {
|
||||
menu: route.menu(url)
|
||||
});
|
||||
app.use(logger("dev"));
|
||||
app.use(cookieParser());
|
||||
app.use(bodyParser.json());
|
||||
app.use(bodyParser.urlencoded({extended: true}));
|
||||
app.use(methodOverride());
|
||||
|
||||
require("./api/feed")(app);
|
||||
require("./routers/instagram")(app);
|
||||
|
||||
app.get("/document/*", function (req, res) {
|
||||
res.sendFile(path.join(__dirname, "views/document.html"));
|
||||
});
|
||||
|
||||
server.use(require("./routers/schedule"));
|
||||
server.use(require("./routers/team.router").middleware);
|
||||
server.use(require("./routers/docs"));
|
||||
app.get("*", function (req, res) {
|
||||
res.sendFile(path.join(__dirname, "views/index.html"));
|
||||
});
|
||||
|
||||
server.listen(config.port);
|
||||
console.log("welcome!");
|
||||
// console.log(JSON.stringify(config.data.schedule, null, "\t"));
|
||||
module.exports = function (port) {
|
||||
app.listen(port);
|
||||
};
|
||||
@@ -0,0 +1,10 @@
|
||||
<div class="main" ng-controller="DocumentsController">
|
||||
<div class="docblock"><h2>Лицензии, свидетельства и уставы</h2>
|
||||
<div class="doc" ng-repeat="doc in documents">
|
||||
<a href="{{doc.path}}" target="_blank">
|
||||
<img ng-src="{{doc.preview}}">
|
||||
<span>{{doc.title | uppercaseFirst}}</span>
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -0,0 +1 @@
|
||||
<img ng-src="{{url}}" alt="" ng-repeat="url in document.url"/>
|
||||
@@ -0,0 +1 @@
|
||||
<pdf document="document"></pdf>
|
||||
@@ -0,0 +1,87 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<base href="/document">
|
||||
<link rel="stylesheet" href="/style.css">
|
||||
<link rel="stylesheet" href="/s/animate.min.css">
|
||||
<link rel="stylesheet" href="/fonts/stylesheet.css">
|
||||
<meta name="google-site-verification" content="8BxOTw-Q02DS2KAdcGcnIMwiPZ58DVB18XpOfRibCcg">
|
||||
|
||||
<script src="/bower_components/jquery/dist/jquery.min.js"></script>
|
||||
<script src="/bower_components/angular/angular.min.js"></script>
|
||||
<script src="/bower_components/angular-route/angular-route.min.js"></script>
|
||||
<script src="/bower_components/angular-animate/angular-animate.min.js"></script>
|
||||
<script src="data.js"></script>
|
||||
<script src="document.js"></script>
|
||||
</head>
|
||||
|
||||
<body ng-app="document.hudozhka" ng-controller="DocumentPageController">
|
||||
<div class="document-block" ng-controller="DocumentController">
|
||||
<div class="menu transparent">
|
||||
<div class="panel">
|
||||
<h1>
|
||||
<span class="bold">ДХШ</span>
|
||||
<span class="norm">Шлиссельбурга</span> ,
|
||||
<span class="norm">{{document.title}}</span>
|
||||
</h1>
|
||||
</div>
|
||||
|
||||
<div class="panel right">
|
||||
<div class="controls" ng-show="showControls">
|
||||
<p class="block">
|
||||
<span>Страница</span>
|
||||
<input ng-model="currentPage" ng-change="update()" type="text" pattern="[0-9]{,3}">
|
||||
из
|
||||
<span>{{totalPages}}</span>
|
||||
</p>
|
||||
|
||||
<p class="block">
|
||||
<button ng-click="prevPage()">←</button>
|
||||
<button ng-click="nextPage()">→</button>
|
||||
</p>
|
||||
|
||||
<p class="block">
|
||||
<a class="download" href="{{document.download}}"></a>
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="document">
|
||||
<div class="page {{pageClass}}" ng-include="viewDocument()"></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Yandex.Metrika counter -->
|
||||
<script>(function (d, w, c) {
|
||||
(w[c] = w[c] || []).push(function () {
|
||||
try {
|
||||
w.yaCounter24027460 = new Ya.Metrika({
|
||||
id: 24027460,
|
||||
webvisor: true,
|
||||
clickmap: true,
|
||||
trackLinks: true,
|
||||
accurateTrackBounce: true
|
||||
});
|
||||
} catch (e) {
|
||||
}
|
||||
});
|
||||
var n = d.getElementsByTagName("script")[0], s = d.createElement("script"), f = function () {
|
||||
n.parentNode.insertBefore(s, n);
|
||||
};
|
||||
s.type = "text/javascript";
|
||||
s.async = true;
|
||||
s.src = (d.location.protocol == "https:" ? "https:" : "http:") + "//mc.yandex.ru/metrika/watch.js";
|
||||
if (w.opera == "[object Opera]") {
|
||||
d.addEventListener("DOMContentLoaded", f, false);
|
||||
} else {
|
||||
f();
|
||||
}
|
||||
})(document, window, "yandex_metrika_callbacks");</script>
|
||||
<noscript>
|
||||
<div><img src="//mc.yandex.ru/watch/24027460" style="position: absolute; left: -9999px;" alt=""></div>
|
||||
</noscript>
|
||||
<!-- Yandex.Metrika counter -->
|
||||
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,38 @@
|
||||
<div>
|
||||
<div class="main">
|
||||
<div class="block">
|
||||
<span class="telephone">{{telephone}}</span>
|
||||
|
||||
<!--<ul class="submenu">-->
|
||||
<!--<li><a href="/team#director">директор</a><p>М. Г. Тимашева</p></li>-->
|
||||
<!--<li><a href="/enter">поступление</a></li>-->
|
||||
<!--<li><a href="/contacts">контактная информация</a></li>-->
|
||||
<!--<li><a href="/awards">награды</a></li>-->
|
||||
<!--</ul>-->
|
||||
</div>
|
||||
|
||||
<h1>«Художественная школа <strong>Шлиссельбурга</strong>»</h1>
|
||||
</div>
|
||||
|
||||
<div class="tape-block">
|
||||
<div class="tape-block-content">
|
||||
<div class="tape tape-tl"></div>
|
||||
<div class="tape tape-tr"></div>
|
||||
<div class="tape tape-bl"></div>
|
||||
<div class="tape tape-br"></div>
|
||||
<div class="fotorama"
|
||||
data-transition="crossfade"
|
||||
data-autoplay="6000"
|
||||
data-arrows="false"
|
||||
data-width="100%"
|
||||
data-fit="cover"
|
||||
data-loop="true">
|
||||
<img src="http://static.shlisselburg.org/art/graphics/sample2.jpg" alt="">
|
||||
<img src="http://static.shlisselburg.org/art/graphics/sample4.jpg" alt="">
|
||||
<img src="http://static.shlisselburg.org/art/graphics/sample5.jpg" alt="">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<timeline></timeline>
|
||||
</div>
|
||||
@@ -0,0 +1,99 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<base href="/">
|
||||
<link rel="stylesheet" href="/style.css">
|
||||
<link rel="stylesheet" href="/s/animate.min.css">
|
||||
<link rel="stylesheet" href="/fonts/stylesheet.css">
|
||||
<meta name="google-site-verification" content="8BxOTw-Q02DS2KAdcGcnIMwiPZ58DVB18XpOfRibCcg">
|
||||
|
||||
<script src="/bower_components/jquery/dist/jquery.min.js"></script>
|
||||
<script src="/bower_components/angular/angular.min.js"></script>
|
||||
<script src="/bower_components/angular-route/angular-route.min.js"></script>
|
||||
<script src="/bower_components/angular-animate/angular-animate.min.js"></script>
|
||||
|
||||
<link rel="stylesheet" href="/bower_components/fotorama/fotorama.css">
|
||||
<script src="/bower_components/fotorama/fotorama.js"></script>
|
||||
|
||||
<script src="data.js"></script>
|
||||
<script src="/app.js"></script>
|
||||
</head>
|
||||
<body ng-app="hudozhka">
|
||||
<div class="menu" ng-controller="MenuController">
|
||||
<ul>
|
||||
<li ng-repeat="item in menu" class="{{item.color}}" ng-class="{selected:isCurrent(item)}">
|
||||
<span ng-hide="isValid(item)">{{item.text}}</span>
|
||||
<a href="{{item.url}}" ng-show="isValid(item)">{{item.text}}</a>
|
||||
</li>
|
||||
<a href="{{vkgroup}}" class="vk"><img src="/graphics/icon.vk.png"></a>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<div class="page {{pageClass}}" ng-view></div>
|
||||
|
||||
<footer>
|
||||
<div class="info-block">
|
||||
<div>
|
||||
<h4>Ссылки на образовательные сайты</h4>
|
||||
<ul>
|
||||
<li><a href="http://минобрнауки.рф">минобрнауки.рф</a> — Министерство образования и науки Российской Федерации</li>
|
||||
<li><a href="http://edu.ru">edu.ru</a> — Федеральный сайт «Российское образование»</li>
|
||||
<li><a href="http://window.edu.ru">window.edu.ru</a> — Единое окно доступа к образовательным ресурсам</li>
|
||||
<li><a href="http://school-collection.edu.ru">school-collection.edu.ru</a> — Единая коллекция цифровых образовательных ресурсов</li>
|
||||
<li><a href="http://fcior.edu.ru">fcior.edu.ru</a> — Федеральный центр информационных образовательных ресурсов</li>
|
||||
</ul>
|
||||
<ul>
|
||||
<li><a href="http://dkhshmga.ru">dkhshmga.ru</a> — Художественная школа Мги</li>
|
||||
<li><a href="http://kirovskdmh.ucoz.ru">kirovskdmh.ucoz.ru</a> — Музыкальная школа Кировска</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<h4>Документы</h4>
|
||||
<ul>
|
||||
<li><a target="_blank" href="/document/edu-license">Лицензия на осуществление образовательной деятельности</a></li>
|
||||
<li><a target="_blank" href="/document/gov-certificate">Свидетельство о государственной регистрации права</a></li>
|
||||
<li><a target="_blank" href="/document/EGRYL1">Свидетельство о внесении в «ЕГРЮЛ»</a></li>
|
||||
<li><a target="_blank" href="/document/VAT">ИНН</a></li>
|
||||
<li><a target="_blank" href="/document/statue-2013">Устав школы</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="info-block">
|
||||
<p>Художественная школа Шлиссельбурга, 2014 год</p>
|
||||
</div>
|
||||
</footer>
|
||||
|
||||
<!-- Yandex.Metrika counter -->
|
||||
<script>(function (d, w, c) {
|
||||
(w[c] = w[c] || []).push(function () {
|
||||
try {
|
||||
w.yaCounter24027460 = new Ya.Metrika({
|
||||
id: 24027460,
|
||||
webvisor: true,
|
||||
clickmap: true,
|
||||
trackLinks: true,
|
||||
accurateTrackBounce: true
|
||||
});
|
||||
} catch (e) {
|
||||
}
|
||||
});
|
||||
var n = d.getElementsByTagName("script")[0], s = d.createElement("script"), f = function () {
|
||||
n.parentNode.insertBefore(s, n);
|
||||
};
|
||||
s.type = "text/javascript";
|
||||
s.async = true;
|
||||
s.src = (d.location.protocol == "https:" ? "https:" : "http:") + "//mc.yandex.ru/metrika/watch.js";
|
||||
if (w.opera == "[object Opera]") {
|
||||
d.addEventListener("DOMContentLoaded", f, false);
|
||||
} else {
|
||||
f();
|
||||
}
|
||||
})(document, window, "yandex_metrika_callbacks");</script>
|
||||
<noscript>
|
||||
<div><img src="//mc.yandex.ru/watch/24027460" style="position: absolute; left: -9999px;" alt=""></div>
|
||||
</noscript>
|
||||
<!-- Yandex.Metrika counter -->
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,3 @@
|
||||
<div id="page-container" ng-include="pageURL">
|
||||
|
||||
</div>
|
||||
@@ -0,0 +1,49 @@
|
||||
<div class="schedule" ng-controller="ScheduleController">
|
||||
<p> Расписание {{sem}} семестра {{year}} года</p>
|
||||
<table>
|
||||
<thead class="">
|
||||
<tr>
|
||||
<th class="group">Гр.</th>
|
||||
<th ng-class="{current: isToday(0)}">
|
||||
<p class="day">Понедельник</p>
|
||||
<p class="date">{{weekDay(0)}}</p>
|
||||
</th>
|
||||
<th ng-class="{current: isToday(1)}">
|
||||
<p class="day">Вторник</p>
|
||||
<p class="date">{{weekDay(1)}}</p>
|
||||
</th>
|
||||
<th ng-class="{current: isToday(2)}">
|
||||
<p class="day">Среда</p>
|
||||
<p class="date">{{weekDay(2)}}</p>
|
||||
</th>
|
||||
<th ng-class="{current: isToday(3)}">
|
||||
<p class="day">Четверг</p>
|
||||
<p class="date">{{weekDay(3)}}</p>
|
||||
</th>
|
||||
<th ng-class="{current: isToday(4)}">
|
||||
<p class="day">Пятница</p>
|
||||
<p class="date">{{weekDay(4)}}</p>
|
||||
</th>
|
||||
<th ng-class="{current: isToday(5)}">
|
||||
<p class="day">Суббота</p>
|
||||
<p class="date">{{weekDay(5)}}</p>
|
||||
</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody class="">
|
||||
<tr ng-repeat="group in schedule">
|
||||
<td class="group">
|
||||
<p class="name">{{group.name}}</p>
|
||||
<p class="time">{{group.time}}</p>
|
||||
</td>
|
||||
|
||||
<td ng-repeat="day in group.days track by $index" ng-class="{current: isToday($index)}">
|
||||
<p class="lesson"><a href="">{{day.lesson}}</a></p>
|
||||
<p class="teacher"><a href="">{{day.teacher}}</a></p>
|
||||
<p class="time">{{day.time[0]}}</p>
|
||||
<p class="time">{{day.time[1]}}</p>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
@@ -0,0 +1,18 @@
|
||||
<img class="background-picture" src="http://static.shlisselburg.org/art/team/team.jpg">
|
||||
|
||||
<div class="team-block">
|
||||
<ul ng-controller="TeamController">
|
||||
<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>
|
||||
@@ -0,0 +1,22 @@
|
||||
<div class="timeline">
|
||||
<div class="post"
|
||||
ng-repeat="post in feed"
|
||||
ng-class="{left: isEven($index), right: !isEven($index)}">
|
||||
|
||||
<div class="head">
|
||||
<div class="user">
|
||||
<img ng-src="{{post.userpic}}" alt=""/>
|
||||
<span>{{post.username}}</span>
|
||||
</div>
|
||||
<p class="date">{{post.date | date : "dd.MM.yyyy"}}</p>
|
||||
</div>
|
||||
|
||||
<div class="body">
|
||||
<!--<h2>Рисунок</h2>-->
|
||||
<p>{{post.text}}</p>
|
||||
<a href="{{post.url}}" target="_blank">
|
||||
<img ng-src="{{post.image}}" alt="">
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||