mirror of
https://gitlab.com/openstapps/openstapps.git
synced 2026-01-04 20:42:52 +00:00
486 lines
12 KiB
TypeScript
486 lines
12 KiB
TypeScript
// tslint:disable:no-default-export
|
|
// tslint:disable:no-magic-numbers
|
|
import {SCConfigFile, SCSettingInputType, SCThingOriginType, SCThingType} from '@openstapps/core';
|
|
import {readFileSync} from 'fs';
|
|
import {resolve} from 'path';
|
|
|
|
/**
|
|
* This is the default configuration for app and backend
|
|
*
|
|
* University specific files can be created with following naming scheme: default-<university license plate>.ts
|
|
*
|
|
* To select your university specific configuration which is merged from this default file and your university specific
|
|
* file, you have to supply the `NODE_APP_INSTANCE` environment variable with your license plate
|
|
*
|
|
* To get more information about the meaning of specific fields please have a look at `@openstapps/core` or use your
|
|
* IDE to read the TSDoc documentation.
|
|
*/
|
|
const config: Partial<SCConfigFile> = {
|
|
app: {
|
|
campusPolygon: {
|
|
coordinates: [
|
|
[
|
|
[
|
|
8.660432999690723,
|
|
50.123027017044436,
|
|
],
|
|
[
|
|
8.675496285518358,
|
|
50.123027017044436,
|
|
],
|
|
[
|
|
8.675496285518358,
|
|
50.13066176448642,
|
|
],
|
|
[
|
|
8.660432999690723,
|
|
50.13066176448642,
|
|
],
|
|
[
|
|
8.660432999690723,
|
|
50.123027017044436,
|
|
],
|
|
],
|
|
],
|
|
type: 'Polygon',
|
|
},
|
|
features: {
|
|
widgets: true,
|
|
},
|
|
menus: [
|
|
{
|
|
icon: 'menu',
|
|
id: 'main',
|
|
items: [
|
|
{
|
|
icon: 'newspaper',
|
|
route: '/',
|
|
title: 'news',
|
|
translations: {
|
|
de: {
|
|
title: 'Aktuelles',
|
|
},
|
|
en: {
|
|
title: 'news',
|
|
},
|
|
},
|
|
},
|
|
{
|
|
icon: 'search',
|
|
route: '/search',
|
|
title: 'search',
|
|
translations: {
|
|
de: {
|
|
title: 'Suche',
|
|
},
|
|
en: {
|
|
title: 'search',
|
|
},
|
|
},
|
|
},
|
|
{
|
|
icon: 'map',
|
|
route: '/map',
|
|
title: 'campus map',
|
|
translations: {
|
|
de: {
|
|
title: 'Campus Karte',
|
|
},
|
|
en: {
|
|
title: 'campus map',
|
|
},
|
|
},
|
|
},
|
|
// TODO: put back after app module is ready
|
|
// {
|
|
// icon: 'cafe',
|
|
// route: '/canteen',
|
|
// title: 'canteen',
|
|
// translations: {
|
|
// de: {
|
|
// title: 'Mensa',
|
|
// },
|
|
// en: {
|
|
// title: 'canteen',
|
|
// },
|
|
// },
|
|
// },
|
|
],
|
|
name: 'main menu',
|
|
translations: {
|
|
de: {
|
|
name: 'Hauptmenü',
|
|
},
|
|
en: {
|
|
name: 'main menu',
|
|
},
|
|
},
|
|
},
|
|
{
|
|
icon: 'person',
|
|
id: 'personal',
|
|
items: [
|
|
{
|
|
icon: 'settings',
|
|
route: '/settings',
|
|
title: 'settings',
|
|
translations: {
|
|
de: {
|
|
title: 'Einstellungen',
|
|
},
|
|
en: {
|
|
title: 'settings',
|
|
},
|
|
},
|
|
},
|
|
{
|
|
icon: 'information',
|
|
route: '/about',
|
|
title: 'about',
|
|
translations: {
|
|
de: {
|
|
title: 'Über StApps',
|
|
},
|
|
en: {
|
|
title: 'About StApps',
|
|
},
|
|
},
|
|
},
|
|
],
|
|
name: 'Your Study-App',
|
|
translations: {
|
|
de: {
|
|
name: 'Deine Studi-App',
|
|
},
|
|
en: {
|
|
name: 'Your Study-App',
|
|
},
|
|
},
|
|
},
|
|
],
|
|
name: 'Goethe-Uni',
|
|
privacyPolicyUrl: 'https://mobile.server.uni-frankfurt.de/_static/privacy.md',
|
|
settings: [
|
|
{
|
|
categories: ['profile'],
|
|
defaultValue: 'student',
|
|
description: 'The user group the app is going to be used.'
|
|
+ 'This settings for example is getting used for the predefined price category of mensa meals.',
|
|
inputType: SCSettingInputType.SingleChoice,
|
|
name: 'group',
|
|
order: 1,
|
|
origin: {
|
|
indexed: '2018-09-11T12:30:00Z',
|
|
name: 'SCConfigFile Default Values',
|
|
type: SCThingOriginType.Remote,
|
|
},
|
|
translations: {
|
|
de: {
|
|
description: 'Mit welcher Benutzergruppe soll die App verwendet werden?'
|
|
+ ' Die Einstellung wird beispielsweise für die Vorauswahl der Preiskategorie der Mensa verwendet.',
|
|
name: 'Gruppe',
|
|
values: [
|
|
'Student',
|
|
'Angestellter',
|
|
'Gast',
|
|
],
|
|
},
|
|
en: {
|
|
description: 'The user group the app is going to be used.'
|
|
+ 'This settings for example is getting used for the predefined price category of mensa meals.',
|
|
name: 'Group',
|
|
values: [
|
|
'Student',
|
|
'Employee',
|
|
'Guest',
|
|
],
|
|
},
|
|
},
|
|
type: SCThingType.Setting,
|
|
uid: '2c97aa36-4aa2-43de-bc5d-a2b2cb3a530e',
|
|
values: ['student', 'employee', 'guest'],
|
|
},
|
|
{
|
|
categories: ['profile'],
|
|
defaultValue: 'en',
|
|
description: 'The language this app is going to use.',
|
|
inputType: SCSettingInputType.SingleChoice,
|
|
name: 'language',
|
|
order: 0,
|
|
origin: {
|
|
indexed: '2018-09-11T12:30:00Z',
|
|
name: 'SCConfigFile Default Values',
|
|
type: SCThingOriginType.Remote,
|
|
},
|
|
translations: {
|
|
de: {
|
|
description: 'Die Sprache in der die App angezeigt wird.',
|
|
name: 'Sprache',
|
|
values: [
|
|
'Deutsch',
|
|
'English',
|
|
],
|
|
},
|
|
en: {
|
|
description: 'The language this app is going to use.',
|
|
name: 'Language',
|
|
values: [
|
|
'Deutsch',
|
|
'English',
|
|
],
|
|
},
|
|
},
|
|
type: SCThingType.Setting,
|
|
uid: 'dc9d6dec-6576-45ef-9e35-3598c0d6a662',
|
|
values: ['de', 'en'],
|
|
},
|
|
{
|
|
categories: ['privacy'],
|
|
defaultValue: false,
|
|
description: 'Allow the App to use the device location to provide additional information\'s based ' +
|
|
'on your actual location.',
|
|
inputType: SCSettingInputType.SingleChoice,
|
|
name: 'geoLocation',
|
|
order: 0,
|
|
origin: {
|
|
indexed: '2018-09-11T12:30:00Z',
|
|
name: 'SCConfigFile Default Values',
|
|
type: SCThingOriginType.Remote,
|
|
},
|
|
translations: {
|
|
de: {
|
|
description: `Berechtigung für die Verwendung des Ortungsdienstes, für die Anzeige der aktuellen Position '
|
|
auf der Karte und zur Berechnung der Entfernung zu Gebäuden und Orten des Campus.`,
|
|
name: 'Position',
|
|
values: ['ja', 'nein'],
|
|
},
|
|
en: {
|
|
description: 'Allow the App to use the device location to provide additional information\'s based ' +
|
|
'on your actual location.',
|
|
name: 'Position',
|
|
values: ['yes', 'no'],
|
|
},
|
|
},
|
|
type: SCThingType.Setting,
|
|
uid: '0dbff2de-23b4-442b-9aa7-7bd2c707c199',
|
|
values: [true, false],
|
|
},
|
|
],
|
|
|
|
},
|
|
backend: {
|
|
SCVersion: JSON.parse((readFileSync(resolve('.', '.', 'package.json'), 'utf-8')).toString())
|
|
.dependencies['@openstapps/core'],
|
|
externalRequestTimeout: 5000,
|
|
hiddenTypes: [
|
|
SCThingType.DateSeries,
|
|
SCThingType.Diff,
|
|
SCThingType.Floor,
|
|
],
|
|
mappingIgnoredTags: ['minlength', 'pattern', 'see', 'tjs-format'],
|
|
maxMultiSearchRouteQueries: 5,
|
|
maxRequestBodySize: 512 * 1024,
|
|
name: 'Goethe-Universität Frankfurt am Main',
|
|
namespace: '909a8cbc-8520-456c-b474-ef1525f14209',
|
|
sortableFields: [
|
|
{
|
|
fieldName: 'name',
|
|
sortTypes: ['ducet'],
|
|
},
|
|
{
|
|
fieldName: 'type',
|
|
sortTypes: ['ducet'],
|
|
},
|
|
{
|
|
fieldName: 'categories',
|
|
onlyOnTypes: [
|
|
SCThingType.AcademicEvent,
|
|
SCThingType.Building,
|
|
SCThingType.Catalog,
|
|
SCThingType.Dish,
|
|
SCThingType.PointOfInterest,
|
|
SCThingType.Room,
|
|
],
|
|
sortTypes: ['ducet'],
|
|
},
|
|
{
|
|
fieldName: 'geo.point.coordinates',
|
|
onlyOnTypes: [
|
|
SCThingType.Building,
|
|
SCThingType.PointOfInterest,
|
|
SCThingType.Room,
|
|
],
|
|
sortTypes: ['distance'],
|
|
},
|
|
{
|
|
fieldName: 'geo.point.coordinates',
|
|
onlyOnTypes: [
|
|
SCThingType.Building,
|
|
SCThingType.PointOfInterest,
|
|
SCThingType.Room,
|
|
],
|
|
sortTypes: ['distance'],
|
|
},
|
|
{
|
|
fieldName: 'inPlace.geo.point.coordinates',
|
|
onlyOnTypes: [
|
|
SCThingType.DateSeries,
|
|
SCThingType.Dish,
|
|
SCThingType.Floor,
|
|
SCThingType.Organization,
|
|
SCThingType.PointOfInterest,
|
|
SCThingType.Room,
|
|
SCThingType.Ticket,
|
|
],
|
|
sortTypes: ['distance'],
|
|
},
|
|
{
|
|
fieldName: 'offers',
|
|
onlyOnTypes: [
|
|
SCThingType.Dish,
|
|
],
|
|
sortTypes: ['price'],
|
|
},
|
|
],
|
|
},
|
|
internal: {
|
|
aggregations: [
|
|
{
|
|
fieldName: 'categories',
|
|
onlyOnTypes: [
|
|
SCThingType.AcademicEvent,
|
|
SCThingType.Article,
|
|
SCThingType.Building,
|
|
SCThingType.Catalog,
|
|
SCThingType.Dish,
|
|
SCThingType.PointOfInterest,
|
|
SCThingType.Room,
|
|
],
|
|
},
|
|
{
|
|
fieldName: 'inPlace.name',
|
|
onlyOnTypes: [
|
|
SCThingType.DateSeries,
|
|
SCThingType.Dish,
|
|
SCThingType.Floor,
|
|
SCThingType.Organization,
|
|
SCThingType.PointOfInterest,
|
|
SCThingType.Room,
|
|
SCThingType.Ticket,
|
|
],
|
|
},
|
|
{
|
|
fieldName: 'academicTerms.acronym',
|
|
onlyOnTypes: [
|
|
SCThingType.AcademicEvent,
|
|
SCThingType.SportCourse,
|
|
],
|
|
},
|
|
{
|
|
fieldName: 'academicTerm.acronym',
|
|
onlyOnTypes: [
|
|
SCThingType.Catalog,
|
|
],
|
|
},
|
|
{
|
|
fieldName: 'majors',
|
|
onlyOnTypes: [
|
|
SCThingType.AcademicEvent,
|
|
],
|
|
},
|
|
{
|
|
fieldName: 'keywords',
|
|
onlyOnTypes: [
|
|
SCThingType.Article,
|
|
SCThingType.Book,
|
|
SCThingType.Message,
|
|
SCThingType.Video,
|
|
],
|
|
},
|
|
{
|
|
fieldName: 'type',
|
|
},
|
|
],
|
|
boostings: {
|
|
default: [
|
|
{
|
|
factor: 1,
|
|
fields: {
|
|
'categories': {
|
|
'course': 1.08,
|
|
'integrated course': 1.08,
|
|
'introductory class': 1.05,
|
|
'lecture': 1.1,
|
|
'seminar': 1.01,
|
|
'tutorial': 1.05,
|
|
},
|
|
},
|
|
type: SCThingType.AcademicEvent,
|
|
},
|
|
{
|
|
factor: 1.6,
|
|
type: SCThingType.Building,
|
|
},
|
|
{
|
|
factor: 1,
|
|
fields: {
|
|
'categories': {
|
|
'cafe': 1.1,
|
|
'learn': 1.1,
|
|
'library': 1.2,
|
|
'restaurant': 1.1,
|
|
},
|
|
},
|
|
type: SCThingType.PointOfInterest,
|
|
},
|
|
{
|
|
factor: 1,
|
|
fields: {
|
|
'categories': {
|
|
'main dish': 2,
|
|
},
|
|
},
|
|
type: SCThingType.Dish,
|
|
},
|
|
],
|
|
dining: [
|
|
{
|
|
factor: 1,
|
|
fields: {
|
|
'categories': {
|
|
'cafe': 2,
|
|
'canteen': 2,
|
|
'restaurant': 2,
|
|
'restroom': 1.2,
|
|
'student canteen': 2,
|
|
},
|
|
},
|
|
type: SCThingType.Building,
|
|
},
|
|
{
|
|
factor: 2,
|
|
type: SCThingType.Dish,
|
|
},
|
|
],
|
|
place: [
|
|
{
|
|
factor: 2,
|
|
type: SCThingType.Building,
|
|
},
|
|
{
|
|
factor: 2,
|
|
type: SCThingType.PointOfInterest,
|
|
},
|
|
{
|
|
factor: 2,
|
|
type: SCThingType.Room,
|
|
},
|
|
],
|
|
},
|
|
},
|
|
uid: 'f-u',
|
|
};
|
|
|
|
// tslint:disable-next-line:no-default-export
|
|
export default config;
|