TeamController -> CollectiveController, team-member-profile -> teacher-profile; team.js -> collective.js

This commit is contained in:
tmshv committed 2016-02-24 20:58:19 +03:00
1 parent f40f164e4d
commit 8031d83f56
13 files changed
+85 -196

No files matched your search

+8 -8
View File
@@ -7,7 +7,7 @@ import Breadcrumbs from './components/Breadcrumbs';
import Document from './components/Document';
import Award from './components/Award';
import GalleryItem from './components/GalleryItem';
import TeamMemberProfile from './components/TeamMemberProfile';
import TeacherProfile from './components/TeacherProfile';
import Timeline from './components/Timeline';
import TimelineRecord from './components/TimelineRecord';
import TimelineRecordPost from './components/TimelineRecordPost';
@@ -20,7 +20,7 @@ import ScheduleRecord from './components/ScheduleRecord';
import AppController from './controllers/AppController';
import HomeController from './controllers/HomeController';
import ScheduleController from './controllers/ScheduleController';
import TeamController from './controllers/TeamController';
import CollectiveController from './controllers/CollectiveController';
import GalleryController from './controllers/GalleryController';
import AlbumController from './controllers/AlbumController';
import DocumentsController from './controllers/DocumentsController';
@@ -61,8 +61,8 @@ app.config(($locationProvider, $routeProvider) => {
},
{
name: '/collective',
templateUrl: '/views/team.html',
controller: 'TeamPageController',
templateUrl: '/views/collective.html',
controller: 'CollectivePageController',
title: 'Преподаватели'
},
{
@@ -120,11 +120,11 @@ app.run(($location, $rootScope, $http) => {
Document,
Award,
GalleryItem,
TeamMemberProfile,
TeacherProfile,
AppController,
HomeController,
ScheduleController,
TeamController,
CollectiveController,
GalleryController,
AlbumController,
DocumentsController,
@@ -156,8 +156,8 @@ app.run(($location, $rootScope, $http) => {
$scope.pageClass = 'page-docs';
});
app.controller('TeamPageController', ($scope) => {
$scope.pageClass = 'page-team';
app.controller('CollectivePageController', ($scope) => {
$scope.pageClass = 'page-collective';
});
}
].map(i => i(app));
@@ -1,7 +1,7 @@
import template from '../../templates/components/team-member-profile.html';
import template from '../../templates/components/teacher-profile.html';
export default function (app) {
app.component('teamMemberProfile', {
app.component('teacherProfile', {
bindings: {
member: '='
},
@@ -0,0 +1,16 @@
import {splitName} from '../../models/collective';
export default function (app) {
app.controller('CollectiveController', ($scope, api) => {
let sort = ['as-timasheva', 'va-sarzhin', 'od-gogoleva', 'my-valkova', 'vv-voronova', 'nv-andreeva'];
api.collective.collective(sort)
.success(collective => {
$scope.members = collective.map(person => {
if(person.picture) person.image = person.picture.big.url;
person.names = splitName(person.name);
return person;
});
});
});
};
-8
View File
@@ -1,8 +0,0 @@
export default function (app) {
app.controller('TeamController', ($scope, team) => {
$scope.teamMembers = team.team.map(person => {
person.names = team.splitName(person.name);
return person;
});
});
};
+36
View File
@@ -0,0 +1,36 @@
//getPersonByID
export function person(collective, id){
for(var i=0; i<collective.length; i++){
var p = collective[i];
if(p.id == id){
return p;
}
}
return null;
}
//getNameByID
export function name(collective, id){
var p = person(collective, id);
if(p) return p.name;
else return null;
}
//getShortNameByID
export function short(collective, id){
var n = name(collective, id);
if(n) return shortifyName(n);
else return null;
}
export function shortifyName(name){
var m = splitName(name);
var n = m[1].replace(/^(.).+/, "$1. ") +
m[2].replace(/^(.).+/, "$1. ") +
m[3];
return n;
}
export function splitName(name){
return /(.+)\s(.+)\s(.+)/.exec(name);
}
-156
View File
@@ -1,156 +0,0 @@
const TEAM = [
{
"id": "mg-timasheva",
"name": "Марина Геннадьевна Тимашева",
"position": "Директор",
"edu": "Ленинградский инженерно-строительный институт",
"diploma": "НВ №222567",
"status": "",
"picture": "https://static.shburg.org/art/team/teacher5.jpg",
"anchor": "director"
},
{
"id": "va-sarzhin",
"name": "Валерий Александрович Саржин",
"position": "Преподаватель живописи",
"edu": "Академия художеств имени И. Е. Репина",
"diploma": "B-I №259798",
"status": "Первая квалификационная категория по живописи и станковой композиции",
"picture": "https://static.shburg.org/art/team/teacher10.jpg"
},
{
"id": "od-gogoleva",
"name": "Ольга Дмитриевна Гоголева",
"position": "Преподаватель живописи",
"edu": "Ленинградский инженерно-строительный институт",
"diploma": "B-I №222572",
"status": "Высшая квалификационная категория по живописи и станковой композиции",
"picture": "https://static.shburg.org/art/team/teacher11.jpg"
},
{
"id": "nv-andreeva",
"name": "Наталья Викторовна Андреева",
"position": "Преподаватель композиции",
"edu": "Санкт-Петербургский государственный университет технологии и дизайна",
"diploma": "ИВС 0514253",
"status": "Вторая квалификационная категория по прикладной композиции",
"picture": "https://static.shburg.org/art/team/teacher2.jpg"
},
{
"id": "vv-voronova",
"name": "Вера Викторовна Воронова",
"position": "Преподаватель композииции",
"edu": "Российский государственный университет имени А. И. Герцена",
"diploma": "ВСГ 0530340",
"status": "Вторая квалификационная категория по прикладной композиции",
"picture": "https://static.shburg.org/art/team/teacher1.jpg"
},
{
"id": "in-vturina",
"name": "Ирина Николаевна Втюрина",
"position": "Преподаватель скульптуры",
"edu": "Кировский государственный педагогический институт имени В. И. Ленина",
"diploma": "ШВ №164501",
"status": "Первая квалификационная категория по скульптуре",
"picture": "https://static.shburg.org/art/team/teacher8.jpg"
},
{
"id": "my-valkova",
"name": "Мария Юрьевна Валькова",
"position": "Преподаватель истории искусства",
"edu": "Педагогический институт имени А. И. Герцена",
"diploma": "ПП №224197",
"status": "Высшая квалификационная категория по истории искусства",
"picture": "https://static.shburg.org/art/team/teacher12.jpg"
},
{
"id": "rk-timashev",
"name": "Руслан Камилевич Тимашев",
"position": "Преподаватель компьютерной графики",
"edu": "Санкт-Петербургский государственный архитектурно-строительный университет",
"diploma": "ВСГ 5344910",
"status": "",
"picture": "https://static.shburg.org/art/team/teacher4.jpg"
},
{
"id": "as-timasheva",
"name": "Анна Сергеевна Тимашева",
"position": "Преподаватель рисунка",
"edu": "Московский архитектурный институт",
"diploma": "РН 70241",
"status": "",
"picture": "https://static.shburg.org/art/team/teacher3.jpg",
"contacts": {
"instagram": "annm101"
}
},
{
"id": "sa-latipova",
"name": "Серафима Александровна Латыпова",
"position": "Преподаватель рисунка",
"edu": "Незаконченный Ленинградский государственный педагогический университет имени А. С. Пушкина",
"diploma": "",
"status": "",
"picture": "https://static.shburg.org/art/team/teacher9.jpg"
},
{
"id": "ey-tarasova",
"name": "Евгения Юрьевна Тарасова",
"position": "Преподаватель гравюры",
"edu": "Санкт-Петербургский государственный архитектурно-строительный университет",
"diploma": "ВСВ 1321444",
"status": "",
"picture": "https://static.shburg.org/art/team/teacher.jpg"
},
{
"id": "ea-burovtseva",
"name": "Елена Александровна Буровцева",
"position": "Преподаватель керамики",
"edu": "",
"diploma": "",
"status": "",
"picture": "https://static.shburg.org/art/team/ea-burovtseva.jpg"
}
];
module.exports = {
team: TEAM,
person: getPersonByID,
name: getNameByID,
short: getShortNameByID,
splitName: splitName
};
function getPersonByID(id){
for(var i=0; i<TEAM.length; i++){
var p = TEAM[i];
if(p.id == id){
return p;
}
}
return null;
}
function getNameByID(id){
var p = getPersonByID(id);
if(p) return p.name;
else return null;
}
function getShortNameByID(id){
var n = getNameByID(id);
if(n) return shortifyName(n)
else return null;
}
function shortifyName(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);
}
+6 -3
View File
@@ -1,13 +1,16 @@
import route from 'koa-route';
import {index, json} from './';
import {sortByPattern} from '../utils/sort';
import db from '../core/db';
import {getCourseNameByID} from '../models/course';
import team from '../models/team';
let split = d => s => s.split(d);
let toArray = split(',');
export default function () {
return route.get('/collective', json(
function *() {
this.type = 'application/json';
let pattern = toArray(this.query.sort || '');
let data = yield db.c('collective').find();
if (!data) {
@@ -15,7 +18,7 @@ export default function () {
return;
}
this.body = data;
this.body = sortByPattern(data, pattern, i => i.id);
}
))
};
+6 -6
View File
@@ -7,8 +7,8 @@ var router = require("./");
var db = require("../core/db");
var schedule = require("../models/schedule");
var populate = require("../utils/populate").populate;
import {getCourseNameByID} from "../models/course";
const team = require("../models/team");
//import {getCourseNameByID} from "../models/course";
//const team = require("../models/team");
module.exports = function (app) {
app.use(
@@ -33,10 +33,10 @@ module.exports = function (app) {
}
if(doPopulate) {
data.schedule = schedule.populate(data.schedule, [
populate(team.short, "teacher"),
populate(getCourseNameByID, "lesson")
]);
//data.schedule = schedule.populate(data.schedule, [
// populate(team.short, "teacher"),
// populate(getCourseNameByID, "lesson")
//]);
}
this.body = data;
@@ -1,6 +1,6 @@
@import "../variables";
.team-member-profile {
.teacher-profile {
margin: 0 auto $double-margin;
display: flex;
@@ -8,7 +8,7 @@
flex-wrap: wrap;
}
.team-member-profile__picture {
.teacher-profile__picture {
width: 20%;
max-width: 15em;
min-width: 12em;
@@ -19,7 +19,7 @@
}
}
.team-member-profile__info {
.teacher-profile__info {
width: 60%;
margin: 0 1em;
+1 -1
View File
@@ -1,6 +1,6 @@
@import "./components/gallery-item";
@import "./components/document";
@import "./components/team-member-proifile";
@import "./components/teacher-proifile";
@import "./components/main-menu";
@import "./components/breadcrumbs";
@import "./components/timeline";
@@ -1,11 +1,11 @@
<div class="team-member-profile">
<div class="teacher-profile">
<a name="{{$ctrl.member.anchor}}"></a>
<div class="team-member-profile__picture">
<img ng-src="{{$ctrl.member.picture}}">
<div class="teacher-profile__picture">
<img ng-src="{{$ctrl.member.image }}">
</div>
<div class="team-member-profile__info">
<div class="teacher-profile__info">
<h3>{{$ctrl.member.names[1]}} {{$ctrl.member.names[2]}} <span>{{$ctrl.member.names[3]}}</span></h3>
<p>{{$ctrl.member.position}}</p>
+3
View File
@@ -0,0 +1,3 @@
<div class="content content_wide" ng-controller="CollectiveController">
<teacher-profile ng-repeat="person in members track by $index" member="person"></teacher-profile>
</div>
-5
View File
@@ -1,5 +0,0 @@
<!--<background-picture src="'http://static.shlisselburg.org/art/team/team.jpg'"></background-picture>-->
<div class="content content_wide" ng-controller="TeamController">
<team-member-profile ng-repeat="person in teamMembers track by $index" member="person"/>
</div>