@@ -19,6 +19,13 @@
+
+
diff --git a/client/src/components/content-forms/TextFormWithHelpText.vue b/client/src/components/content-forms/TextFormWithHelpText.vue
new file mode 100644
index 00000000..fabbe49a
--- /dev/null
+++ b/client/src/components/content-forms/TextFormWithHelpText.vue
@@ -0,0 +1,57 @@
+
+
+
{{title}}
+
+
+
+
+
+
+
+
+
diff --git a/client/src/components/portfolio/AddProject.vue b/client/src/components/portfolio/AddProject.vue
new file mode 100644
index 00000000..ff4e961d
--- /dev/null
+++ b/client/src/components/portfolio/AddProject.vue
@@ -0,0 +1,13 @@
+
+
+
+
+
diff --git a/client/src/components/portfolio/AddProjectEntry.vue b/client/src/components/portfolio/AddProjectEntry.vue
new file mode 100644
index 00000000..71d00f7d
--- /dev/null
+++ b/client/src/components/portfolio/AddProjectEntry.vue
@@ -0,0 +1,20 @@
+
+
+
+
+
diff --git a/client/src/components/portfolio/NewProjectEntryWizard.vue b/client/src/components/portfolio/NewProjectEntryWizard.vue
new file mode 100644
index 00000000..99968e16
--- /dev/null
+++ b/client/src/components/portfolio/NewProjectEntryWizard.vue
@@ -0,0 +1,30 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/client/src/components/portfolio/OwnerWidget.vue b/client/src/components/portfolio/OwnerWidget.vue
new file mode 100644
index 00000000..6bec8b66
--- /dev/null
+++ b/client/src/components/portfolio/OwnerWidget.vue
@@ -0,0 +1,40 @@
+
+
+
+
+ {{name}}
+
+
+
+
+
+
+
diff --git a/client/src/components/portfolio/Portfolio.vue b/client/src/components/portfolio/Portfolio.vue
new file mode 100644
index 00000000..7af4b136
--- /dev/null
+++ b/client/src/components/portfolio/Portfolio.vue
@@ -0,0 +1,65 @@
+
+
+
+
+
+
+
diff --git a/client/src/components/portfolio/ProjectEntry.vue b/client/src/components/portfolio/ProjectEntry.vue
new file mode 100644
index 00000000..31a5d4d5
--- /dev/null
+++ b/client/src/components/portfolio/ProjectEntry.vue
@@ -0,0 +1,50 @@
+
+
+
Tätigkeit
+
+ Ich führe das Interview mit meiner Kollegin durch.
+
+
Reflexion
+
+ Da ich geeignete Fragen hatte, konnte meine Kollegin umfangreiche Antworten zum Thema geben. Die Eingangshalle
+ eignete sich nicht als Interviewort, da es viele Nebengeräusche hatte. Wir fanden aber dann ein freies
+ Klassenzimmer. Nicht nur die Fragen sind wichtig. Auch die Ortswahl, wo man das Interview aufzeichnen möchte,
+ ist sehr wichtig für ein erfolgreiches Interview.
+
+
+ Nächste Schritte
+
+
+ Interview im Raum „Mein Lehrbetrieb“ ablegen.
+
+
+ 21. Juni 2018
+
+
+
+
+
diff --git a/client/src/components/portfolio/ProjectWidget.vue b/client/src/components/portfolio/ProjectWidget.vue
new file mode 100644
index 00000000..e96bd94e
--- /dev/null
+++ b/client/src/components/portfolio/ProjectWidget.vue
@@ -0,0 +1,67 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/client/src/components/rooms/AddRoom.vue b/client/src/components/rooms/AddRoom.vue
index 63a9ccb1..1263f526 100644
--- a/client/src/components/rooms/AddRoom.vue
+++ b/client/src/components/rooms/AddRoom.vue
@@ -1,33 +1,13 @@
-
-
-
+
-
-
diff --git a/client/src/components/rooms/RoomEntryCountWidget.vue b/client/src/components/rooms/EntryCountWidget.vue
similarity index 89%
rename from client/src/components/rooms/RoomEntryCountWidget.vue
rename to client/src/components/rooms/EntryCountWidget.vue
index 3424f6c2..46e81309 100644
--- a/client/src/components/rooms/RoomEntryCountWidget.vue
+++ b/client/src/components/rooms/EntryCountWidget.vue
@@ -1,5 +1,5 @@
-
+
{{entryCount}} {{entryCount === 1 ? 'Beitrag' : 'Beiträge'}}
@@ -20,7 +20,7 @@
diff --git a/client/src/layouts/DefaultLayout.vue b/client/src/layouts/DefaultLayout.vue
index 56bf13ed..49611e41 100644
--- a/client/src/layouts/DefaultLayout.vue
+++ b/client/src/layouts/DefaultLayout.vue
@@ -37,7 +37,7 @@
},
specialContainerClass() {
let cls = this.$store.state.specialContainerClass;
- return cls ? `skillbox--${cls}` : ''
+ return [cls ? `skillbox--${cls}` : '', {'skillbox--show-filter': this.showFilter}]
}
},
@@ -63,13 +63,19 @@
margin: 0 auto;
width: 100%;
display: grid;
- grid-template-rows: auto auto 1fr;
+ grid-template-rows: auto 1fr;
grid-row-gap: 32px;
min-height: 100vh;
+ grid-auto-rows: 1fr;
- grid-template-areas: "h" "." "c";
+ grid-template-areas: "h" "c";
padding-bottom: 50px;
+ &--show-filter {
+ grid-template-rows: auto auto 1fr;
+ grid-template-areas: "h" "." "c";
+ }
+
/*
* For IE10+
*/
diff --git a/client/src/pages/portfolio.vue b/client/src/pages/portfolio.vue
index e14fe602..f1b0686c 100644
--- a/client/src/pages/portfolio.vue
+++ b/client/src/pages/portfolio.vue
@@ -1,12 +1,23 @@
- Diese Funktion steht noch nicht zur Verfügung.
+
+
+
diff --git a/client/src/pages/project.vue b/client/src/pages/project.vue
new file mode 100644
index 00000000..ef1e017e
--- /dev/null
+++ b/client/src/pages/project.vue
@@ -0,0 +1,99 @@
+
+
+
+
+
+
+
diff --git a/client/src/pages/room.vue b/client/src/pages/room.vue
index c1967d83..f06fb5ae 100644
--- a/client/src/pages/room.vue
+++ b/client/src/pages/room.vue
@@ -7,7 +7,7 @@
-
+
@@ -23,13 +23,13 @@
import AddRoomEntryButton from '@/components/rooms/AddRoomEntryButton.vue';
import RoomEntry from '@/components/rooms/RoomEntry.vue';
import RoomGroupWidget from '@/components/rooms/RoomGroupWidget';
- import RoomEntryCountWidget from '@/components/rooms/RoomEntryCountWidget';
+ import EntryCountWidget from '@/components/rooms/EntryCountWidget';
export default {
props: ['slug'],
components: {
- RoomEntryCountWidget,
+ EntryCountWidget,
RoomGroupWidget,
AddRoomEntryButton,
RoomEntry
diff --git a/client/src/pages/start.vue b/client/src/pages/start.vue
index d22614cf..3c0d3b85 100644
--- a/client/src/pages/start.vue
+++ b/client/src/pages/start.vue
@@ -21,6 +21,7 @@
title="Portfolio"
subtitle="Dokumentieren & reflektieren"
link-text="Portfolio anzeigen"
+ route="/portfolio"
>
diff --git a/client/src/router/index.js b/client/src/router/index.js
index da6ae9ec..a2fbec0e 100644
--- a/client/src/router/index.js
+++ b/client/src/router/index.js
@@ -16,6 +16,7 @@ import p404 from '@/pages/p404'
import start from '@/pages/start'
import submission from '@/pages/studentSubmission'
import portfolio from '@/pages/portfolio'
+import project from '@/pages/project'
const routes = [
{path: '/', component: start, meta: {layout: 'blank'}},
@@ -47,6 +48,7 @@ const routes = [
{path: '/basic-knowledge/:slug', name: 'basic-knowledge', component: basicknowledge, meta: {layout: 'simple'}},
{path: '/submission/:id', name: 'submission', component: submission, meta: {layout: 'simple'}},
{path: '/portfolio', name: 'portfolio', component: portfolio},
+ {path: '/portfolio/:slug', name: 'project', component: project},
{
path: '/book',
name: 'book',
diff --git a/client/src/store/index.js b/client/src/store/index.js
index 5950370a..045a4362 100644
--- a/client/src/store/index.js
+++ b/client/src/store/index.js
@@ -17,7 +17,8 @@ export default new Vuex.Store({
parentRoom: null,
parentModule: '',
objectiveGroupType: '',
- currentObjectiveGroup: ''
+ currentObjectiveGroup: '',
+ parentProject: null
},
getters: {},
@@ -39,6 +40,7 @@ export default new Vuex.Store({
commit('setParentModule', '');
commit('setObjectiveGroupType', '');
commit('setCurrentObjectiveGroup', '');
+ commit('setParentProject', null);
},
resetContentBlockPosition({commit}) {
commit('setContentBlockPosition', {});
@@ -77,7 +79,11 @@ export default new Vuex.Store({
},
setfilterForSchoolClass({commit}, payload) {
commit('setfilterForSchoolClass', payload);
- }
+ },
+ addProjectEntry({commit, dispatch}, payload) {
+ commit('setParentProject', payload);
+ dispatch('showModal', 'new-project-entry-wizard');
+ },
},
mutations: {
@@ -116,6 +122,9 @@ export default new Vuex.Store({
},
setCurrentObjectiveGroup(state, payload) {
state.currentObjectiveGroup = payload;
+ },
+ setParentProject(state, payload) {
+ state.parentProject = payload;
}
}
})
diff --git a/client/src/styles/_mixins.scss b/client/src/styles/_mixins.scss
index 92a78309..ce0cfd61 100644
--- a/client/src/styles/_mixins.scss
+++ b/client/src/styles/_mixins.scss
@@ -1,11 +1,20 @@
@import 'variables';
-@mixin widget-shadow {
+@mixin widget-shadow-base {
border-radius: $default-border-radius;
box-shadow: 0 3px 9px 0 rgba(0, 0, 0, 0.12);
+}
+
+@mixin widget-shadow {
+ @include widget-shadow-base;
border: 1px solid $color-lightgrey-2;
}
+@mixin widget-shadow-reverse {
+ @include widget-shadow-base;
+ border: 2px solid $color-white;
+}
+
@mixin room-widget-text-style {
font-family: $sans-serif-font-family;
font-size: 1rem;
diff --git a/client/src/styles/_variables.scss b/client/src/styles/_variables.scss
index 2dec992f..92484050 100644
--- a/client/src/styles/_variables.scss
+++ b/client/src/styles/_variables.scss
@@ -25,12 +25,14 @@ $color-brand-light: #ddf3ee;
$color-darkgrey-1: #333333;
$color-darkgrey-2: #515151;
$color-grey: rgba(51, 51, 51, 0.5);
+$color-grey--lighter: rgba(51, 51, 51, 0.18);
$color-lightgrey-2: #dbdbdb;
$color-lightgrey: #f3f3f3;
$color-white: #ffffff;
$color-text-gray: rgb(161, 161, 161);
+
$header-color: $color-darkgrey-1;
$intro-color: $color-grey;
@@ -52,3 +54,6 @@ $input-border-radius: 3px;
//modal stuff
$modal-lateral-padding: 34px;
$modal-input-width: 560px;
+
+
+$default-padding: 30px;