TeamController -> CollectiveController, team-member-profile -> teacher-profile; team.js -> collective.js
This commit is contained in:
1 parent
f40f164e4d
commit
8031d83f56
13 files changed
+85
-196
No files matched your search
+8
-8
@@ -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));
|
||||
+2
-2
@@ -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;
|
||||
});
|
||||
});
|
||||
});
|
||||
};
|
||||
@@ -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;
|
||||
});
|
||||
});
|
||||
};
|
||||
@@ -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);
|
||||
}
|
||||
@@ -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);
|
||||
}
|
||||
@@ -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);
|
||||
}
|
||||
))
|
||||
};
|
||||
@@ -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;
|
||||
|
||||
+3
-3
@@ -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,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";
|
||||
|
||||
+4
-4
@@ -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>
|
||||
@@ -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>
|
||||
@@ -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>
|
||||
Reference in new issue
Block a user