Skip to content

Commit b568693

Browse files
authored
Merge pull request #184 from bkd-mba-fbi/develop
Langenthal 3.5.0
2 parents 385bc03 + 4c9caec commit b568693

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

74 files changed

+24529
-11193
lines changed

.eslintrc.js

+34-16
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,20 @@
11
module.exports = {
22
root: true,
33
parserOptions: {
4-
ecmaVersion: 2017,
5-
sourceType: 'module'
4+
ecmaVersion: 2018,
5+
sourceType: 'module',
6+
ecmaFeatures: {
7+
legacyDecorators: true,
8+
},
69
},
7-
plugins: [
8-
'ember'
9-
],
10+
plugins: ['ember'],
1011
extends: [
1112
'eslint:recommended',
12-
'plugin:ember/recommended'
13+
'plugin:ember/recommended',
14+
'plugin:prettier/recommended',
1315
],
1416
env: {
15-
browser: true
17+
browser: true,
1618
},
1719
rules: {
1820
'semi': 'error',
@@ -22,19 +24,35 @@ module.exports = {
2224
// node files
2325
{
2426
files: [
25-
'testem.js',
26-
'ember-cli-build.js',
27-
'config/**/*.js',
28-
'lib/*/index.js'
27+
'./.eslintrc.js',
28+
'./.prettierrc.js',
29+
'./.template-lintrc.js',
30+
'./ember-cli-build.js',
31+
'./testem.js',
32+
'./blueprints/*/index.js',
33+
'./config/**/*.js',
34+
'./lib/*/index.js',
35+
'./server/**/*.js',
2936
],
3037
parserOptions: {
3138
sourceType: 'script',
32-
ecmaVersion: 2015
3339
},
3440
env: {
3541
browser: false,
36-
node: true
37-
}
38-
}
39-
]
42+
node: true,
43+
},
44+
plugins: ['node'],
45+
extends: ['plugin:node/recommended'],
46+
rules: {
47+
// this can be removed once the following is fixed
48+
// https://github.com/mysticatea/eslint-plugin-node/issues/77
49+
'node/no-unpublished-require': 'off',
50+
},
51+
},
52+
{
53+
// Test files:
54+
files: ['tests/**/*-test.{js,ts}'],
55+
extends: ['plugin:qunit/recommended'],
56+
},
57+
],
4058
};

.github/workflows/buildDeploy.yml

+1-1
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ jobs:
1414

1515
strategy:
1616
matrix:
17-
node-version: [10.x]
17+
node-version: [14.x]
1818
# See supported Node.js release schedule at https://nodejs.org/en/about/releases/
1919

2020
steps:

.gitignore

+1
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@
1515
# misc
1616
/.vscode
1717
/.sass-cache
18+
/.eslintcache
1819
/connect.lock
1920
/coverage/*
2021
/libpeerconnection.log

.prettierignore

+21
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
# unconventional js
2+
/blueprints/*/files/
3+
/vendor/
4+
5+
# compiled output
6+
/dist/
7+
/tmp/
8+
9+
# dependencies
10+
/bower_components/
11+
/node_modules/
12+
13+
# misc
14+
/coverage/
15+
!.*
16+
.eslintcache
17+
18+
# ember-try
19+
/.node_modules.ember-try/
20+
/bower.json.ember-try
21+
/package.json.ember-try

.prettierrc.js

+5
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
'use strict';
2+
3+
module.exports = {
4+
singleQuote: true,
5+
};

.travis.yml

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
---
22
language: node_js
33
node_js:
4-
- "10"
4+
- "12"
55

66
sudo: false
77
dist: trusty

README.md

+3-3
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
# kursausschreibung 3.4.1
1+
# kursausschreibung 3.5.0
22
[![Build 🏭🚀](https://github.com/bkd-mba-fbi/kursausschreibung/actions/workflows/buildDeploy.yml/badge.svg)](https://github.com/bkd-mba-fbi/kursausschreibung/actions/workflows/buildDeploy.yml)
33

44
# Documentation
@@ -64,8 +64,8 @@ Make use of the many generators for code, try `ember help generate` for more det
6464

6565
### Linting
6666

67-
* `npm run lint:js`
68-
* `npm run lint:js -- --fix`
67+
* `npm run lint`
68+
* `npm run lint:fix`
6969

7070
### Building
7171

app/components/event-list-search.js

+8-4
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,8 @@ import { setParameterByName, getParameterByName } from 'kursausschreibung/framew
55
import { sortAs } from '../framework/gui-helpers';
66
import { getSortAs } from '../framework/storage';
77
import settings from '../framework/settings';
8+
import { getString } from '../framework/translate';
9+
import { htmlSafe } from '@ember/string';
810

911
// tests if a query matches a value
1012
function match(value, query) {
@@ -32,15 +34,15 @@ export default Component.extend({
3234
this.send('queryChanged');
3335
}
3436

35-
let sortOptions = [];
37+
let options = '';
3638
if(settings.sortOptions === undefined) {
37-
sortOptions.push({key:'error', value:'configure key sortoptions array in settings'});
39+
options = '<option value=error>configure key sortoptions array in settings</option>';
3840
} else {
3941
settings.sortOptions.forEach(option => {
40-
sortOptions.push({key:option, value:"sort"+option});
42+
options = options + '<option value='+option+'>'+getString("sort"+option)+'</option>';
4143
});
4244
}
43-
this.set('sortOptions',sortOptions);
45+
this.set('sortOptions',htmlSafe(options));
4446
},
4547

4648
didRender() {
@@ -50,7 +52,9 @@ export default Component.extend({
5052
filteredEvents: oneWay('events'),
5153

5254
keyUp(){
55+
this.set('query',document.getElementById('searchEvents').value)
5356
setParameterByName('search',this.get('query'));
57+
this.send('queryChanged');
5458
},
5559

5660
actions: {

app/components/input/input-dropdown.js

+12
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,22 @@
11
import Component from '@ember/component';
22
import { vssDependency } from 'kursausschreibung/framework/form-helpers';
3+
import { htmlSafe } from '@ember/string';
34

45
export default Component.extend({
6+
willRender() {
7+
let options = this.get('field.options.options');
8+
let dropdownOptions = '';
9+
options.forEach(option => {
10+
dropdownOptions = dropdownOptions + '<option value='+option.Key+'>'+option.Value+'</option>';
11+
});
12+
this.set('dropdownOptions',htmlSafe(dropdownOptions));
13+
},
14+
515
change(){
616
let field = this.get('field');
717
let currentValue = null;
18+
19+
document.getElementById(this.elementId).children[0].classList.remove('required');
820

921
document.getElementsByName(field.id).forEach(input => {
1022
if(field.options.showAsRadioButtons) {

app/components/input/input-email.js

+2-1
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,11 @@
11
import Component from '@ember/component';
22
import { formFieldError } from 'kursausschreibung/framework/form-helpers';
3+
import jQuery from 'jquery';
34

45
export default Component.extend({
56
change() {
67
// show an error message for duplicate e-mails
7-
const emailFields = this.$().closest('form').find('input[type="email"]').toArray();
8+
const emailFields = jQuery('#subscriptionForm').closest('form').find('input[type="email"]').toArray();
89
const emailFieldValues = emailFields.map(field => field.value);
910

1011
emailFields.forEach((field, fieldIndex) => {

app/components/input/input-freeform-dropdown.js

+3-2
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,14 @@
11
import Component from '@ember/component';
22
import { vssDependency } from 'kursausschreibung/framework/form-helpers';
3+
import jQuery from 'jquery';
34

45
export default Component.extend({
56
didInsertElement() {
67
this._super(...arguments);
78

89
let options = this.get('field.options').options.map(option => option.Value);
910

10-
this.$('.typeahead').typeahead(
11+
jQuery('.typeahead').typeahead(
1112
{
1213
hint: true,
1314
highlight: true,
@@ -26,7 +27,7 @@ export default Component.extend({
2627
},
2728

2829
willDestroyElement() {
29-
this.$('.typeahead').typeahead('destroy');
30+
jQuery('.typeahead').typeahead('destroy');
3031
this._super(...arguments);
3132
},
3233

app/components/input/input-postal-code.js

+5-3
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
import Component from '@ember/component';
22
import { debounce } from '@ember/runloop';
33
import { getPostalCodes } from 'kursausschreibung/framework/api';
4+
import jQuery from 'jquery';
45

56

67
export default Component.extend({
@@ -11,8 +12,9 @@ export default Component.extend({
1112
getPostalCodes(query).then(response => asyncResults(response));
1213
};
1314

14-
let $typeahead = this.$('.typeahead');
15-
let $locationFields = this.$().closest('fieldset').find('input[name="Location"]');
15+
let elementId = '#'+this.elementId
16+
let $typeahead = jQuery(elementId).children(0);
17+
let $locationFields = jQuery(elementId).closest('fieldset').find('input[name="Location"]');
1618

1719
$typeahead.typeahead(
1820
{
@@ -38,7 +40,7 @@ export default Component.extend({
3840
},
3941

4042
willDestroyElement() {
41-
this.$('.typeahead').typeahead('destroy');
43+
jQuery('.typeaheadZip').typeahead('destroy');
4244
this._super(...arguments);
4345
}
4446
});

app/components/subscription-form.js

+10-2
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import Component from '@ember/component';
22
import { computed } from '@ember/object';
3-
import $ from 'jquery';
3+
import jQuery from 'jquery';
44
import { formatDate, getDMY, getYMD } from 'kursausschreibung/framework/date-helpers';
55
import { setDataToSubmit } from 'kursausschreibung/framework/storage';
66
import { getString } from 'kursausschreibung/framework/translate';
@@ -30,10 +30,18 @@ export default Component.extend({
3030
submit(event) {
3131
event.preventDefault();
3232

33-
subscribe(this.$('form'), this);
33+
subscribe(jQuery('form'), this);
3434
this.get('subscribe')();
3535
},
3636

37+
useCompanyAddress(){
38+
var value = this.get('useCompanyAddress');
39+
if(value){
40+
this.set('useCompanyAddress',false);
41+
} else {
42+
this.set('useCompanyAddress',true);
43+
}
44+
},
3745
addPerson() {
3846
if (this.get('event.FreeSeats') - 1 - this.get('additionalPeopleCount') <= 0) {
3947
uikit.modal.alert(getString('noSeatsAvailable'));
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,9 @@
11
import Controller from '@ember/controller';
22
import settings from 'kursausschreibung/framework/settings';
3-
import LinkComponent from '@ember/routing/link-component';
43

54
let badgeFreeSeatsEnabled = typeof settings.badgeFreeSeats === 'object' && settings.badgeFreeSeats.enabled === true;
65

76
export default Controller.extend({
87
showBreadcrumbs: settings.showBreadcrumbs,
98
badgeFreeSeatsEnabled
10-
});
11-
12-
// bindings for tooltip and disabled attributes
13-
LinkComponent.reopen({
14-
attributeBindings: ['data-uk-tooltip', 'disabled']
15-
});
9+
});
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,11 @@
11
import Controller from '@ember/controller';
2+
import { inject as service } from '@ember/service';
3+
import { action } from '@ember/object';
24

3-
export default Controller.extend({
4-
actions: {
5-
subscribe() {
6-
this.transitionToRoute('list.category.event.confirmation');
5+
export default class subscribeController extends Controller {
6+
@service router;
7+
@action
8+
subscribe() {
9+
this.router.transitionTo('list.category.event.confirmation');
710
}
8-
}
9-
});
11+
};

app/framework/api.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ function ajax(method, relativeUrl, readableError = true, data = null, file = fal
3737
dataFilter: data => data === '' ? 'null' : data,
3838

3939
headers: {
40-
'CLX-Authorization': `token_type=${appConfig.tokenType}, access_token=${accessToken}`
40+
'Authorization': `Bearer ${accessToken}`
4141
}
4242
});
4343

app/framework/form-helpers.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -110,7 +110,7 @@ if(field.options.dependencyItems !== undefined) {
110110

111111
if(vssDependencyCheck(formValue,operator,values)) {
112112
hidden.classList.remove(hiddenClass);
113-
requiredElement.required = true;
113+
requiredElement.required = element.required;
114114
} else {
115115
hidden.classList.add(hiddenClass);
116116
requiredElement.required = false;

app/framework/gui-helpers.js

+1
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ export function displayAsGrid(bool) {
2020
var list = document.getElementById('list-cards');
2121
var btGrid = document.getElementById('bt-grid');
2222
var btList = document.getElementById('bt-list');
23+
var bool = (String(bool).toLowerCase() === 'true');
2324

2425
if (typeof bool === "boolean") {
2526
setListViewGrid(bool);

0 commit comments

Comments
 (0)