From 1bf57da6f3e34fd264b0762c3754ad2f21d07bb6 Mon Sep 17 00:00:00 2001 From: akavm <max.henze@student.uni-halle.de> Date: Sat, 19 Dec 2020 13:35:15 +0100 Subject: [PATCH] Iteration --- week03/app/controllers/modules.js | 4 + week03/app/router.js | 1 + week03/app/routes/modules.js | 92 +++++++++++++++++++ week03/app/styles/app.scss | 10 ++ week03/app/templates/modules.hbs | 55 +++++++++++ week03/tests/unit/controllers/modules-test.js | 12 +++ week03/tests/unit/routes/modules-test.js | 11 +++ 7 files changed, 185 insertions(+) create mode 100644 week03/app/controllers/modules.js create mode 100644 week03/app/routes/modules.js create mode 100644 week03/app/templates/modules.hbs create mode 100644 week03/tests/unit/controllers/modules-test.js create mode 100644 week03/tests/unit/routes/modules-test.js diff --git a/week03/app/controllers/modules.js b/week03/app/controllers/modules.js new file mode 100644 index 0000000..cec9059 --- /dev/null +++ b/week03/app/controllers/modules.js @@ -0,0 +1,4 @@ +import Controller from '@ember/controller'; + +export default class ModulesController extends Controller { +} diff --git a/week03/app/router.js b/week03/app/router.js index 83186bc..039e702 100644 --- a/week03/app/router.js +++ b/week03/app/router.js @@ -8,4 +8,5 @@ export default class Router extends EmberRouter { Router.map(function() { this.route('login'); + this.route('modules'); }); diff --git a/week03/app/routes/modules.js b/week03/app/routes/modules.js new file mode 100644 index 0000000..4c01cab --- /dev/null +++ b/week03/app/routes/modules.js @@ -0,0 +1,92 @@ +import Route from '@ember/routing/route'; + +export default class ModulesRoute extends Route { + model() { + return [ + { + code: 'INF.06528.01', + name: 'Cient-seitige Web-Anwendungen', + actions: { + 'delete': { + title: 'Delete this module', + icon: 'mdi mdi-delete warning' + } + }, + sections: { + 'dates': { + title: 'Show all dates', + icon: 'mdi mdi-calendar-clock' + }, + 'documents': { + title: 'Show all documents', + icon: 'mdi mdi-file-document-box-multiple-outline' + }, + 'excercises': { + title: 'Show all excercises', + icon: 'mdi mdi-test-tube' + }, + 'participants': { + title: 'Show all participants', + icon: 'mdi mdi-account-multiple' + } + } + }, + { + code: 'INF.05370.01', + name: 'Informatik in den Geistes- und Kulturwissenschaften', + actions: { + 'delete': { + title: 'Delete this module', + icon: 'mdi mdi-delete warning' + } + }, + sections: { + 'dates': { + title: 'Show all dates', + icon: 'mdi mdi-calendar-clock' + }, + 'documents': { + title: 'Show all documents', + icon: 'mdi mdi-file-document-box-multiple-outline' + }, + 'excercises': { + title: 'Show all excercises', + icon: 'mdi mdi-test-tube' + }, + 'participants': { + title: 'Show all participants', + icon: 'mdi mdi-account-multiple' + } + } + }, + { + code: 'INF.06450.01', + name: 'eHumanities Grundlagen', + actions: { + 'delete': { + title: 'Delete this module', + icon: 'mdi mdi-delete warning' + } + }, + sections: { + 'dates': { + title: 'Show all dates', + icon: 'mdi mdi-calendar-clock' + }, + 'documents': { + title: 'Show all documents', + icon: 'mdi mdi-file-document-box-multiple-outline' + }, + 'excercises': { + title: 'Show all excercises', + icon: 'mdi mdi-test-tube' + }, + 'participants': { + title: 'Show all participants', + icon: 'mdi mdi-account-multiple' + } + } + } + ] + } +} diff --git a/week03/app/styles/app.scss b/week03/app/styles/app.scss index 9d645da..0f11a7f 100644 --- a/week03/app/styles/app.scss +++ b/week03/app/styles/app.scss @@ -28,4 +28,14 @@ ul[role="menu"] { } } } +} + +/* + * Icon styles + */ + .mdi.warning:link, .mdi.warning:visited { + color: get-color('alert'); +} +.mdi.warning:hover, .mdi.warning:focus { + color: lighten(get-color('alert'), 10%); } \ No newline at end of file diff --git a/week03/app/templates/modules.hbs b/week03/app/templates/modules.hbs new file mode 100644 index 0000000..8582987 --- /dev/null +++ b/week03/app/templates/modules.hbs @@ -0,0 +1,55 @@ +<main class="grid-container"> + <div class="grid-x grid-padding-x"> + <h1 class="cell">My Modules</h1> + </div> + <div class="grid-x grid-padding-x"> + <nav class="cell shrink" aria-label="Modules"> + <ul role="menu" aria-label="Modules"> + <li><a href="" tabindex="0" role="menuitem" class="active">Current Semester</a></li> + <li><a href="" tabindex="-1" role="menuitem">Last Semester</a></li> + <li role="separator"></li> + <li><a href="" tabindex="-1" role="menuitem">Enroll in Module</a></li> + </ul> + </nav> + <section class="cell auto"> + <table> + <thead> + <tr> + <th>Code</th> + <th>Name</th> + <th>Sections</th> + <th>Actions</th> + </tr> + </thead> + <tbody> + {{#each model as |module|}} + <tr> + <td><a href="">{{module.code}}</a></td> + <td><a href="">{{module.name}}</a></td> + <td> + <nav aria-label="Sections of {{module.name}}"> + <ul role="menu" class="horizontal" aria-label="Sections"> + {{#each-in module.sections as |section display|}} + <li><a href="" role="menuitem" aria-label={{display.title}} title={{display.title}} class={{display.icon}} tabindex="0"></a></li> + {{/each-in}} + </ul> + </nav> + </td> + <td> + <nav aria-label="Actions for {{module.name}}"> + <ul role="menu" class="horizontal" aria-label="Actions"> + {{#each-in module.actions as |action display|}} + <li><a href="" role="menuitem" aria-label={{display.title}} title={{display.title}} class={{display.icon}} tabindex="0"></a></li> + {{/each-in}} + </ul> + </nav> + </td> + </tr> + {{/each}} + </tbody> + </table> + </section> + </div> +</main> + +{{outlet}} \ No newline at end of file diff --git a/week03/tests/unit/controllers/modules-test.js b/week03/tests/unit/controllers/modules-test.js new file mode 100644 index 0000000..a0101af --- /dev/null +++ b/week03/tests/unit/controllers/modules-test.js @@ -0,0 +1,12 @@ +import { module, test } from 'qunit'; +import { setupTest } from 'ember-qunit'; + +module('Unit | Controller | modules', function(hooks) { + setupTest(hooks); + + // TODO: Replace this with your real tests. + test('it exists', function(assert) { + let controller = this.owner.lookup('controller:modules'); + assert.ok(controller); + }); +}); diff --git a/week03/tests/unit/routes/modules-test.js b/week03/tests/unit/routes/modules-test.js new file mode 100644 index 0000000..6130f1f --- /dev/null +++ b/week03/tests/unit/routes/modules-test.js @@ -0,0 +1,11 @@ +import { module, test } from 'qunit'; +import { setupTest } from 'ember-qunit'; + +module('Unit | Route | modules', function(hooks) { + setupTest(hooks); + + test('it exists', function(assert) { + let route = this.owner.lookup('route:modules'); + assert.ok(route); + }); +}); -- GitLab