diff --git a/.gitignore b/.gitignore index 6256f565..fd81f60a 100644 --- a/.gitignore +++ b/.gitignore @@ -3,4 +3,5 @@ *.sublime* /node_modules +/bower_components /public \ No newline at end of file diff --git a/assets/style/docs.scss b/assets/style/docs.scss index 394004c2..a7045744 100644 --- a/assets/style/docs.scss +++ b/assets/style/docs.scss @@ -1,3 +1,15 @@ +.page-docs { + &.ng-leave { + transform-origin: 50% 50%; + animation: rotateOutNewspaper .3s both ease-in; + } + + &.ng-enter { + animation: scaleUp 0.3s both ease-in +// animation: slideInUp 0.5s both ease-in; + } +} + .act{ text-decoration: none; border-bottom: 1px dashed #688fff; diff --git a/assets/style/document.scss b/assets/style/document.scss index b1316d54..0f26f1c5 100644 --- a/assets/style/document.scss +++ b/assets/style/document.scss @@ -1,10 +1,28 @@ -* { - 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); + + &.transparent{ + opacity: 0.95; + } + } } -body { - font-family: "PT Sans"; +.document { + padding-top: 50px; + + .page { + img { + width: 100%; + } + } } .norm { @@ -19,29 +37,6 @@ body { /* 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; diff --git a/assets/style/home.scss b/assets/style/home.scss new file mode 100644 index 00000000..de77125d --- /dev/null +++ b/assets/style/home.scss @@ -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; + } +} diff --git a/assets/style/main.scss b/assets/style/main.scss index fd764892..5b17e060 100644 --- a/assets/style/main.scss +++ b/assets/style/main.scss @@ -1,70 +1,17 @@ -* { +//html { +// overflow-y: hidden; +//} + +body { + font-family: "PT Sans", Arial, sans-serif; margin: 0; padding: 0; } -body { - font-family: "PT Sans", Arial, sans-serif; -} - -.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; - } -} - -.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; - } +.background-picture{ + width: 100%; + position: fixed; + top:0; + left: 0; + z-index: -999; } \ No newline at end of file diff --git a/assets/style/menu.scss b/assets/style/menu.scss new file mode 100644 index 00000000..edcbfb8d --- /dev/null +++ b/assets/style/menu.scss @@ -0,0 +1,63 @@ +.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: $text_color; + } + + a:hover { + color: white; + } + + .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; + } + } +} + diff --git a/assets/style/page.scss b/assets/style/page.scss new file mode 100644 index 00000000..06449c78 --- /dev/null +++ b/assets/style/page.scss @@ -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; +} diff --git a/assets/style/pages-animations.scss b/assets/style/pages-animations.scss new file mode 100644 index 00000000..29496bad --- /dev/null +++ b/assets/style/pages-animations.scss @@ -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; + } +} \ No newline at end of file diff --git a/assets/style/schedule.scss b/assets/style/schedule.scss index 9f69ff98..77cd169b 100644 --- a/assets/style/schedule.scss +++ b/assets/style/schedule.scss @@ -1,3 +1,14 @@ +.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; @@ -30,17 +41,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 +147,7 @@ display: inline-block; padding: 0px; } - } + } thead.fix{ position: fixed; @@ -162,6 +165,8 @@ } th{ + height: auto; + :not(.group){ min-width: 150px; /* width: 15%;*/ @@ -172,6 +177,16 @@ &.group{ width: 63px; } + + .day{ + margin: 0; + line-height: 0; + } + + .date{ + margin: 15px 0; + line-height: 0; + } } } diff --git a/assets/style/team.scss b/assets/style/team.scss index cca00868..9a0b2092 100644 --- a/assets/style/team.scss +++ b/assets/style/team.scss @@ -1,9 +1,11 @@ -.main-picture{ - width: 100%; - position: fixed; - margin: 0; - left: 0; - z-index: -999; +.page-team { + &.ng-leave { + animation: slideOutLeft 0.3s both ease-in; + } + + &.ng-enter { + animation: slideInRight 0.3s both ease-in; + } } ul{ diff --git a/bower.json b/bower.json new file mode 100644 index 00000000..02dd1d59 --- /dev/null +++ b/bower.json @@ -0,0 +1,22 @@ +{ + "name": "hudozhka", + "version": "2.0.0", + "authors": [ + "Roman Timashev " + ], + "moduleType": [ + "amd", + "es6", + "globals", + "node" + ], + "license": "MIT", + "private": true, + "ignore": [ + "**/.*", + "node_modules", + "bower_components", + "test", + "tests" + ] +} diff --git a/client/app.js b/client/app.js new file mode 100644 index 00000000..415de296 --- /dev/null +++ b/client/app.js @@ -0,0 +1,62 @@ +/** + * 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("./ui/menu")(app); +require("./filters/uppercase-first")(app); +require("./pages/schedule")(app); +require("./pages/team")(app); +require("./pages/docs")(app); + +app.controller("HomePageController", function ($scope) { + $scope.pageClass = "page-home"; +}); + +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"; +}); \ No newline at end of file diff --git a/client/data.js b/client/data.js new file mode 100644 index 00000000..85502499 --- /dev/null +++ b/client/data.js @@ -0,0 +1,14 @@ +/** + * 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"); + }); \ No newline at end of file diff --git a/client/document.js b/client/document.js index b0687d2c..f5c350fc 100644 --- a/client/document.js +++ b/client/document.js @@ -1,132 +1,152 @@ -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, $routeProvider) { + $locationProvider.html5Mode(true); + //$routeProvider + // .when("/document/:doc", { + // controller: "DocumentPageController" + // }) + // .otherwise({ + // redirectTo: "/" + // }); +}); - } +app.controller("DocumentPageController", function ($scope, $location, docs) { + $scope.pageClass = "page-document"; - $("#buttonNext").click(function(event){ - loadNext(); - }); + var doc = $location.$$path.replace("/document/", ""); + $scope.doc = docs.doc(doc); +}); - $("#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) - ); - }); - } - } -})(); \ No newline at end of file +//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; +//})(); +// +//(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){ +// +// } +// +// $("#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) +// ); +// }); +// } +// } +//})(); \ No newline at end of file diff --git a/client/filters/uppercase-first.js b/client/filters/uppercase-first.js new file mode 100644 index 00000000..cfa78eb7 --- /dev/null +++ b/client/filters/uppercase-first.js @@ -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); + }; + }); +}; diff --git a/client/pages/docs.js b/client/pages/docs.js new file mode 100644 index 00000000..4631291a --- /dev/null +++ b/client/pages/docs.js @@ -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; +} \ No newline at end of file diff --git a/client/pages/schedule.js b/client/pages/schedule.js new file mode 100644 index 00000000..268c60ef --- /dev/null +++ b/client/pages/schedule.js @@ -0,0 +1,82 @@ +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 day = now.getDay(); + var dates = getDates(day); + + 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(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; +} \ No newline at end of file diff --git a/client/pages/team.js b/client/pages/team.js new file mode 100644 index 00000000..caca44ac --- /dev/null +++ b/client/pages/team.js @@ -0,0 +1,54 @@ +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; + }); + }); +}; + +/** + * 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; +} \ No newline at end of file diff --git a/client/schedule.js b/client/schedule.js deleted file mode 100644 index 8c66858b..00000000 --- a/client/schedule.js +++ /dev/null @@ -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 +

Лицензии, свидетельства и уставы

+ +
+ \ No newline at end of file diff --git a/views/document.html b/views/document.html new file mode 100644 index 00000000..fb32e364 --- /dev/null +++ b/views/document.html @@ -0,0 +1,69 @@ + + + + + + + + + + + + + + + + + + +
+ + +
+
+ +
+
+
+ + + + + + + + \ No newline at end of file diff --git a/views/home.html b/views/home.html new file mode 100644 index 00000000..10e9c129 --- /dev/null +++ b/views/home.html @@ -0,0 +1 @@ +
HELLO
\ No newline at end of file diff --git a/views/index.html b/views/index.html new file mode 100644 index 00000000..e4eb459d --- /dev/null +++ b/views/index.html @@ -0,0 +1,61 @@ + + + + + + + + + + + + + + + + + + + +
+ + + + + + + \ No newline at end of file diff --git a/views/schedule.html b/views/schedule.html new file mode 100644 index 00000000..2a94b75b --- /dev/null +++ b/views/schedule.html @@ -0,0 +1,49 @@ +
+

Расписание {{sem}} семестра {{year}} года

+ + + + + + + + + + + + + + + + + + + +
Гр. +

Понедельник

+

{{weekDay(0)}}

+
+

Вторник

+

{{weekDay(1)}}

+
+

Среда

+

{{weekDay(2)}}

+
+

Четверг

+

{{weekDay(3)}}

+
+

Пятница

+

{{weekDay(4)}}

+
+

Суббота

+

{{weekDay(5)}}

+
+

{{group.name}}

+

{{group.time}}

+
+

{{day.lesson}}

+

{{day.teacher}}

+

{{day.time[0]}}

+

{{day.time[1]}}

+
+
\ No newline at end of file diff --git a/views/team.html b/views/team.html new file mode 100644 index 00000000..a536f04b --- /dev/null +++ b/views/team.html @@ -0,0 +1,15 @@ + + +