Compare commits

..

475 Commits

Author SHA1 Message Date
ande453h d34d0023c4 v1.5.25a - Updated UserController 2021-05-21 13:53:27 +02:00
ande453h 9e08dba586 v1.5.25 - setup guide video added 2021-05-21 13:44:26 +02:00
Neerholt f801455703 Merge remote-tracking branch 'origin/master' 2021-05-21 12:28:55 +02:00
Neerholt 3b0b2ff759 v1.5.24bb Added comments 2021-05-21 12:28:38 +02:00
ande453h 9edf378ba3 v1.5.24ba - Updated package.json 2021-05-20 12:29:41 +02:00
Anders 3465e30c8f v1.5.24b - Fixed package.json with new npm
Added comments in middleware
2021-05-20 08:42:09 +02:00
Anders 20fe7dbcee v1.5.24ab - Changed Handler.php 2021-05-19 08:28:31 +02:00
Neerholt 38e60c94d1 v1.5.24aa Added a back button on the 500 pages 2021-05-17 14:26:36 +02:00
Neerholt 9f6842d6a2 v1.5.24a Disabled debugger and made 500 pages 2021-05-17 14:18:41 +02:00
Anders e24b06d27c v1.5.24a - Fixed code 2021-05-17 10:32:19 +02:00
Neerholt ad3a1e7570 v1.5.24 Added archive function 2021-05-17 10:15:15 +02:00
Anders f865213763 v1.5.23aa - Removed Commented Code 2021-05-17 09:29:14 +02:00
Anders be09caaf34 v1.5.23a - Fix of multiple events 2021-05-11 12:47:44 +02:00
Neerholt d1b083bae1 Merge remote-tracking branch 'origin/master'
# Conflicts:
#	skolehjem/app/Notifications/PushNews.php
2021-05-10 12:18:21 +02:00
Neerholt 3908a6b00c v1.5.23 added when a multi or just a event is achieve remove it from index pages 2021-05-10 12:17:48 +02:00
Anders 4e8e2831da v1.5.22 - Updated Push News
Added old() to different create & Edit pages
Added the removal
2021-05-10 11:18:05 +02:00
Neerholt 322dbaf31e v1.5.21d Dix small error with some unix timestamp 2021-05-07 09:05:15 +02:00
Neerholt f8073d8686 v1.5.21c Made the last changes to multiple events on the app 2021-05-07 09:01:21 +02:00
Anders 7560cfe1a3 v1.5.21b - Updated remove multiple event color 2021-05-07 08:49:46 +02:00
Anders df6aef332d v1.5.21a - Fixed multiple events 2021-05-07 08:29:56 +02:00
Anders e7184cd820 v1.5.21 - Added edit feature to multiple events
Updated events
Fixed (maybe) htaccess
2021-05-06 15:25:36 +02:00
Neerholt b6105d0e0b v1.5.20d added multiple events to nav bar 2021-05-06 08:56:22 +02:00
Neerholt d636beaba5 v1.5.20c Made pdf layout, added maxlength 2021-05-05 15:27:51 +02:00
Neerholt 87006ae54f v1.5.20b You can now cancel a event from view my events 2021-05-04 15:00:37 +02:00
Anders 0757f6daef v1.5.20a - Fixed event destroy 2021-05-04 14:28:14 +02:00
Anders 6cc43257b7 v1.5.20 - Removed event_end & Updated Migration
Updated Delete of multiple event
Started on deletion of single event & multiple-event edit
Removed userevent $key variable
Updated multipdf
Fixed web.php
2021-05-04 12:32:24 +02:00
Neerholt c617012187 v1.5.19d Add the add function in create multiple events 2021-05-04 11:24:56 +02:00
Neerholt 574534fe2a v1.5.19b bad back and frontend work 2021-05-04 08:15:21 +02:00
Neerholt 125ea424e3 v1.5.19c only bugs 2 2021-04-29 10:43:35 +02:00
Anders 99a29094d8 v1.5.19b - Fixed MultipleEvents
Updated DomPDF
2021-04-29 10:12:59 +02:00
Neerholt 7d6f501986 v1.5.19a only bugs 2021-04-29 09:16:08 +02:00
Neerholt ddad00f0f8 v1.5.19 Added multiple events pdf 2021-04-29 08:23:09 +02:00
Neerholt 7a31a204b8 Merge remote-tracking branch 'origin/master' 2021-04-28 15:15:13 +02:00
Neerholt 09af792636 v1.5.18a Added yourevents 2021-04-28 15:15:02 +02:00
Neerholt 027a99b002 v1.5.18 Multiple events works, only admin pages is missing some pdf, view user and jpg functions 2021-04-28 15:14:31 +02:00
Anders f5a2c1a862 Merge remote-tracking branch 'origin/master' 2021-04-28 14:35:15 +02:00
Anders 9528e3169b v1.5.17b - Fixed modals 2021-04-28 14:35:08 +02:00
Neerholt 42de425aba v1.5.17a Update to controller index 2021-04-27 15:23:01 +02:00
Anders 7e5c1f8dbe v1.5.17 - Added multiple events to event index 2021-04-27 15:15:23 +02:00
Anders e1d6bd95f5 v1.5.16c - MultipleEventsController.php fix for admin 2021-04-27 13:03:04 +02:00
Neerholt cb60d93c63 v1.5.16b Update to controller index, added inner join 2021-04-27 12:46:37 +02:00
Neerholt cb690a470d v1.5.15a - Changes by Anders 2021-04-27 12:27:46 +02:00
Neerholt e5126ae5ae v1.5.15 Added multiple events, not done 2021-04-27 11:23:25 +02:00
Anders 384070c40b v1.5.14b - DataTables and JS Fix 2021-04-26 13:28:32 +02:00
Anders 580a56d5ca v1.5.14a - DataTables Fix 2021-04-26 13:10:59 +02:00
Anders d0d74cdb96 v1.5.14 - Added Allow Actions (Registering)
Fixed User Pictures
2021-04-26 13:02:17 +02:00
Neerholt fe1cda993a v1.5.13 Added crud files 2021-04-22 15:31:42 +02:00
Neerholt 9056bc6335 v1.5.13 multiple events, semi done but has to be commite so we dont loses our process we have made 2021-04-22 15:31:08 +02:00
neerholt ef39c3e6ec v1.5.12a Fix a error with resource_id on the preview function 2021-04-21 01:39:03 +02:00
Neerholt 19fdb63ad2 v1.5.12 Added the last things to the preview function, its all working now 2021-04-19 14:42:03 +02:00
Anders 493a8aeb34 v1.5.11a - Fixed Victor mistake (Missing s) 2021-04-19 12:43:56 +02:00
Anders 0563422aec Merge remote-tracking branch 'origin/master' 2021-04-19 09:12:01 +02:00
Anders 40d082291f v1.5.11 - Event, News & Reservation deletion in sql db - And deletion of files in uploads when you go onto home pages and they're not used in DB 2021-04-19 09:11:51 +02:00
Neerholt 5b06144ad1 v1.5.10 Fix new splash screen 2021-04-19 09:09:34 +02:00
Neerholt b024d6e821 v1.5.9 Added some css to modal 2021-04-19 08:12:50 +02:00
neerholt 68d2b65814 v1.5.10 Semi fix the error on the display user profil 2021-04-11 23:21:59 +02:00
neerholt a7fc873245 v1.5.10 I fix some stuff 2021-04-10 13:43:06 +02:00
neerholt dd7acc1d24 v1.5.9 Added and fixed preview, the only problem is that images on event, guide category and guide resource id is not display on the different pages 2021-04-10 01:43:05 +02:00
Neerholt abe4a9dda9 v1.5.8 Added model, but there is some problems. 2021-04-09 11:23:52 +02:00
Neerholt 3d2f07d3d8 v1.5.8 Made backend to modal and preview, only frontend 2021-04-09 10:32:45 +02:00
Neerholt b5075fe209 v1.5.7 You can now see who has joined a event from the admin index pages 2021-04-09 08:54:25 +02:00
Neerholt e3aea65ec5 v1.5.6 User images is now deleted for the uploads folder when a user is deleted or gets a new one 2021-04-08 15:27:01 +02:00
Neerholt 4a13c17ab2 v1.5.5 Deleted some event deleter 2021-04-08 08:41:16 +02:00
Anders 5f7bb3f62f v1.5.4 - Fixed update/create of news/menu/guide/event 2020-12-09 20:07:11 +01:00
Anders dc9c1bf113 v1.5.3 - Added Swal on all index pages 2020-12-01 12:05:18 +01:00
victor f42d401ac7 Merge branch 'master' of https://github.com/sebathefox/skolehjem-webapp into master 2020-12-01 11:15:31 +01:00
victor 8dea52a607 v1.5.2h Small css fix 2020-12-01 11:15:23 +01:00
Frederik Milling Pytlick 41c9d8c42a
v1.5.2g - Fixed css 2020-12-01 11:14:41 +01:00
Frederik Milling Pytlick 00569144ef
v1.5.2f - Added dark/light mode support for apple bar 2020-12-01 10:41:48 +01:00
Frederik Milling Pytlick f2414ccfe1
v1.5.2e - Added dark/lightmode support for apple bar 2020-12-01 10:40:47 +01:00
Frederik Milling Pytlick a9d06766d2
v1.5.2d - Added apple icons 2020-12-01 10:34:51 +01:00
Frederik Milling Pytlick cf260cfe77
v1.5.2C - Added apple icons 2020-12-01 10:34:06 +01:00
victor 330cb62fd0 Merge branch 'master' of https://github.com/sebathefox/skolehjem-webapp into master 2020-12-01 09:17:25 +01:00
victor cba8109a0d v1.5.2b Css 2020-12-01 09:17:05 +01:00
Frederik Milling Pytlick 3d94f32bd5
v1.5.2A - Notification fixes 2020-12-01 08:37:17 +01:00
Frederik Milling Pytlick 2a5a194604
v1.5.2 - Notification fixes 2020-12-01 08:35:53 +01:00
Frederik Milling Pytlick adfedee25f
v1.5.1 - Fixed caching 2020-11-30 21:13:20 +01:00
victor 4db9d2836b Merge branch 'master' of https://github.com/sebathefox/skolehjem-webapp into master 2020-11-30 15:14:48 +01:00
victor f44133285d v1.5.0 Added notifications - Pytlick 2020-11-30 15:14:35 +01:00
Anders 489e0ca0e4 Merge remote-tracking branch 'origin/master' 2020-11-27 11:30:10 +01:00
Anders c3ca99c9e0 v1.4.12 - Added Category created funtion on guides & web.php route
fixed css
Added guide picture on guides show on app
2020-11-27 11:29:58 +01:00
victor a082ac9cea Merge branch 'master' of https://github.com/sebathefox/skolehjem-webapp into master 2020-11-27 11:27:47 +01:00
victor 520aa99ff5 v1.4.11 Add dynamic Cache 2020-11-27 11:27:21 +01:00
Anders 3bf8329434 v1.4.10 - Event, Guide & Menuplan pictures can now be updated and changed correctly (Menuplan is determined when creating, can't change picture later)
There is no longer a second news, when updating an event or such

Added Select2 when chosing roles for users

Removed guide button
2020-11-26 15:22:59 +01:00
victor 6d0cb5333d v1.4.9b Service worker cache works now 2020-11-26 12:44:53 +01:00
Anders baaf0f954d v1.4.9a - Fixed CSS 2020-11-26 11:26:28 +01:00
Anders e0bbcf8fd0 Merge remote-tracking branch 'origin/master'
# Conflicts:
#	skolehjem/public/css/admin.css
#	skolehjem/public/css/webapp.css
#	skolehjem/public/css/webappdark.css
#	skolehjem/resources/views/app/news/index.blade.php
2020-11-26 10:21:16 +01:00
Anders cd8fcb8cac v1.4.9 - Fixed (most of) style in all documents 2020-11-26 10:19:12 +01:00
victor 5a073b5cb4 v1.4.8r Add service worker to cache the webpages, but i dont know if it works 2020-11-26 09:20:34 +01:00
victor f7f449f366 v1.4.8qq Add images link tags new file 2020-11-25 14:44:38 +01:00
victor e309f70918 v1.4.8q Add images link tags 2020-11-25 14:39:46 +01:00
victor 29a2cf487e Merge branch 'master' of https://github.com/sebathefox/skolehjem-webapp into master 2020-11-25 14:20:25 +01:00
victor 9fee6cefd4 v1.4.8p Add manifest images support form 72x72 to 512x512 2020-11-25 14:20:17 +01:00
Anders 541b06aef3 v1.4.8o - Added new image.svg + Added new layout for Guides on APP 2020-11-25 10:37:28 +01:00
victor 1c3486f4ac v1.4.8n Try to fix meta tags 3 2020-11-24 15:04:58 +01:00
victor d4a6f7be41 v1.4.8n Try to fix meta tags 2 2020-11-24 14:52:04 +01:00
victor cf425404bb v1.4.8m Try to fix meta tags 2020-11-24 14:49:29 +01:00
Anders 5cabfed070 v1.4.8l - Fixed CSS 2020-11-24 13:22:44 +01:00
victor c74f48dde5 v1.4.8k Fixed overflow hidden. forgot password and signup now works on pc 2020-11-24 13:14:25 +01:00
victor dc314bb2bc v1.4.8j Fix manifest and meta tags NO 2020-11-23 12:53:19 +01:00
victor 03c1562f5b Merge remote-tracking branch 'origin/master' into master
# Conflicts:
#	skolehjem/resources/views/app/news/index.blade.php
2020-11-23 12:28:28 +01:00
Anders cfe2e68529 v1.4.8g - Images on news.index style 2020-11-19 11:23:41 +01:00
victor 0ae9dfd5d4 v1.4.8i Fix border on the X, and added substr 2020-10-30 14:18:28 +01:00
victor 16eba9cd62 v1.4.8h Fix guides category again :) 2020-10-28 08:20:50 +01:00
victor f51f92b218 v1.4.8g Fix a bug where if you made a guide without a images the category would not show up 2020-10-27 09:32:23 +01:00
victor 304f565421 v1.4.8f Fixed text om menuplan 2020-10-26 15:25:59 +01:00
victor 005cf821c9 v1.4.8e Fixed so when you edit a guide or a event the images gets added and its not just blank for some strange reason, but you cant edit images yet . 2020-10-26 14:59:16 +01:00
victor 1109990fba v1.4.8e Fixed a bug where when you updated a event, it would add a extra r buttons 2020-10-26 14:10:39 +01:00
victor ab5a7477d4 v1.4.8e Fixed a bug where when you updated a guide, it would add a extra read more button 2020-10-26 14:03:52 +01:00
victor 08889eb5e5 v1.4.8d Trying ti fix manifest 2020-10-23 09:32:23 +02:00
victor 077a6c57ea v1.4.8c Add new icons, added a new tab in the navbar, added manifest to git 2020-10-23 08:43:42 +02:00
victor 0d84fcd1ca v1.4.8b Add one meta tag 2020-10-21 13:22:57 +02:00
victor 93604aafca v1.4.8a Semi fixed manifest 2020-10-21 12:49:39 +02:00
victor 94749fcf21 v1.4.8 Fixed alot of the areas the graphic designer told me to. 2020-10-21 09:12:53 +02:00
victor 26ae5f1212 v1.4.7c Code shift 2020-10-16 12:36:56 +02:00
victor da2dce56e7 v1.4.7b Debugging fullscreen 2020-10-16 08:30:05 +02:00
victor 0095a3f887 v1.4.7a Add fullscreen support 2020-10-15 12:54:59 +02:00
victor 4a8cd4cc9c Merge branch 'master' of https://github.com/sebathefox/skolehjem-webapp into master 2020-10-15 11:14:44 +02:00
victor eb6c5dbfeb v1.4.7 Add favicon 2020-10-15 11:14:29 +02:00
Anders 82fccd4c3a v1.4.5a Fixed ContactSeeder.php 2020-10-14 10:05:01 +02:00
victor 845b097501 v1.4.5 Fixed some languages settings, add to home screen script, fixed skolehjem to Erhvervskollegiet, flytte noget css 2020-10-14 09:07:13 +02:00
victor 2681472772 Merge branch 'master' of https://github.com/sebathefox/skolehjem-webapp into master
 Conflicts:
	skolehjem/database/migrations/2020_08_06_092000_create_news_table.php
	skolehjem/resources/views/admin/news/create.blade.php
	skolehjem/resources/views/admin/news/edit.blade.php
2020-10-07 15:28:47 +02:00
victor 22694bd0fb v1.4.4 Made news expiration date, add category to app homepages, made small css things 2020-10-07 15:27:29 +02:00
frederikpyt 3e44501cd4 Merge branch 'master' of https://github.com/sebathefox/skolehjem-webapp into master 2020-10-07 12:21:07 +02:00
frederikpyt 19f38e214c v1.4.3 - Small fixes 2020-10-07 12:20:58 +02:00
Anders 491ecc9d6e v1.4.2 - Fixed QL Editor
Added Feedback to menu bar
2020-10-07 11:59:58 +02:00
frederikpyt 233bc2b35e Merge branch 'master' of https://github.com/sebathefox/skolehjem-webapp into master 2020-10-07 08:25:14 +02:00
frederikpyt 1d92c12ecf v1.4.1 - Small fixes 2020-10-07 08:25:00 +02:00
frederikpyt 159c3f3764 v1.4.1 - Small fixes 2020-10-07 08:23:26 +02:00
Anders164a f70d6a7a95 v1.4.0a - Fixed Category Dropdown CSS 2020-10-05 21:06:45 +02:00
Anders f95318a8f2 v1.4.0 - Added category search on the app
Added comments
Fixed code
Fixed pagination still being there without using it
2020-09-22 10:45:27 +02:00
frederikpyt 505ed3710b v1.3.4 - Small fixes 2020-09-22 09:07:36 +02:00
frederikpyt cc3d78200a v1.3.3 - Added comments and removed code 2020-09-22 08:56:03 +02:00
frederikpyt 13197b8be8 v1.3.2 - Fixed table css and removed pagination in backend 2020-09-21 08:32:05 +02:00
frederikpyt 7b99cd7f4e v1.3.1 - Removed search functions 2020-09-18 10:30:44 +02:00
frederikpyt 9096f64569 v1.3.0 - Implemented DataTables 2020-09-18 10:04:33 +02:00
Anders 2a2511daf4 v1.2.1a - Changed guies_categories name (Fixed seeding error) 2020-09-15 08:26:49 +02:00
Anders 580c38e940 v1.2.1 - Fixed Category for guides 2020-09-14 08:57:31 +02:00
Anders cab8ad604c v1.2.0 - You can now create and edit guides 2020-09-11 12:30:37 +02:00
Neerholt 78ab6be31a v1.1.0c -Fixed some small things 2020-09-11 09:08:07 +02:00
Neerholt de3ed9c326 v1.1.0b -Added guides categorys 2020-09-10 15:31:06 +02:00
Neerholt 5f7d37e08a v1.1.0b -Newest event gets shown on home pages now 2020-09-10 12:59:12 +02:00
Neerholt 89ea2c971b v1.1.0a - Added "andet option" til feedback 2020-09-10 12:35:38 +02:00
Neerholt 201e2b5b35 Merge branch 'master' of https://github.com/sebathefox/skolehjem-webapp into master 2020-09-10 10:39:16 +02:00
Neerholt e08a8aa509 v1.1.0 - Washing machines and locations is on the same pages now, made bruger roles immortal so you cant delete it or edit it 2020-09-10 10:39:07 +02:00
Anders e483400d82 v1.1.0 - Users can now sign up (Automatically gets 'Bruger' role) 2020-09-10 10:25:27 +02:00
Anders 3b86e29c00 v1.0.0c - Fixed CSS 2020-09-09 12:20:50 +02:00
Anders a1cda94b13 Small change for ekapp (No need for comit number) 2020-09-09 09:20:50 +02:00
Anders cc49bf4252 v1.0.0b - Removed name + emails (Only commented out) 2020-09-09 09:16:56 +02:00
Anders 5d82e7251b v1.0.0a - Edited CSS & Controller img's 2020-09-09 09:15:17 +02:00
Anders ee47ffc0ed Merge remote-tracking branch 'origin/master' 2020-09-08 14:12:29 +02:00
Anders 720faac2ff v1.0.0 - Version 1 [Open Beta] Open for launch!
Added tooltips for roles.create & roles.edit
#900Commits
2020-09-08 14:12:22 +02:00
frederikpyt 6c4fceb697 v0.12.3 - Fixed reset password and email charset 2020-09-08 08:48:30 +02:00
Anders 66762efb8a v0.12.2 - Added feedback storing to ajax instead of backend 2020-09-07 14:21:59 +02:00
Anders 1030bcc13f v0.12.1 - Added css to headers 2020-09-07 13:10:20 +02:00
Anders d4ac70de70 v0.12.0 - Fixed pagination
Fixed RolesController.php - Changes "User" to "Bruger"
Added æøåÆØÅ to roles pattern
Fixed bugs/mistakes
2020-09-07 12:44:24 +02:00
Anders 02527035c9 v0.11.4a - Removed unused script 2020-09-07 09:54:14 +02:00
Anders 976f1b5bf0 v0.11.4 - Added AJAX onclick function to users.edit (Now it checks if email & phone number already exists) 2020-09-07 09:53:15 +02:00
Anders 5f234d95dc v0.11.3 - Fixed roles
Added pattern to passwords
2020-09-07 08:33:46 +02:00
Neerholt 84f5c51c48 v0.11.2b - Made a support user account 2020-09-07 08:28:49 +02:00
Neerholt b62582e039 Merge branch 'master' of https://github.com/sebathefox/skolehjem-webapp into master 2020-09-03 08:31:42 +02:00
Neerholt ed51bb99fa v0.11.2a - Fixed pagination, made a create user 2020-09-03 08:31:31 +02:00
frederikpyt b4d80ac76f v0.11.2 - Added autoscroll 2020-09-02 15:19:18 +02:00
frederikpyt ebd80a31b8 Merge branch 'master' of https://github.com/sebathefox/skolehjem-webapp into master 2020-09-02 15:11:07 +02:00
frederikpyt 4811c5f7af v0.11.1f - Fixed css 2020-09-02 15:10:58 +02:00
Anders 842933f4df v0.11.1e - Fixed roles.create/edit - Added comment to users.create (To add a pattern later) 2020-09-02 13:31:56 +02:00
Anders 821428c150 v0.11.1d - Fixed WashingReservation 2020-09-02 13:15:11 +02:00
Anders 2f5a03343a Merge remote-tracking branch 'origin/master' 2020-09-02 12:32:36 +02:00
Anders ff7cb033d5 v0.11.1c - Fixed CSS & HTML 2020-09-02 12:32:30 +02:00
frederikpyt 211a68c81b v0.11.1b - Fixed 2020-09-02 12:31:44 +02:00
frederikpyt f2500730ec v0.11.1a - Maybe fix? 2020-09-02 12:20:49 +02:00
frederikpyt 4a64d49902 v0.11.1 - Fixed roles and permissions 2020-09-02 11:40:36 +02:00
Anders d7bfdaebf6 v0.11.0 - You can now edit roles
Fixed minor details
2020-09-02 08:56:02 +02:00
Anders ca855f3349 v0.10.20d - Fixed RootController.php 2020-08-31 15:26:25 +02:00
Anders 25c279653b v0.10.20c - Changed type_id to type on news.index, so it's no longer a number 2020-08-31 14:54:25 +02:00
frederikpyt 101be37dfe Merge branch 'master' of https://github.com/sebathefox/skolehjem-webapp into master
 Conflicts:
	skolehjem/resources/views/app/news/index.blade.php
2020-08-31 14:44:15 +02:00
frederikpyt 34b078b21a v0.10.20b - Darkmode fixes 2020-08-31 14:41:44 +02:00
Anders 9b26e5f1af Merge remote-tracking branch 'origin/master'
# Conflicts:
#	skolehjem/app/Http/Controllers/RootController.php
#	skolehjem/resources/views/app/news/index.blade.php
2020-08-31 14:35:03 +02:00
Anders cf1baac983 v0.10.20a - Changed type_id to type on news.index, so it's no longer a number 2020-08-31 14:31:56 +02:00
Neerholt efb2840ff0 Merge branch 'master' of https://github.com/sebathefox/skolehjem-webapp into master
 Conflicts:
	skolehjem/app/Http/Controllers/RootController.php
2020-08-31 14:29:24 +02:00
Neerholt 20aa9c52af v0.10.20 - Made some small design changes to home pages 2020-08-31 14:28:15 +02:00
Anders bccd00683f v0.10.19 - Added building name to reservation site
Fixed $eventsToDelete in EventController.php
2020-08-31 14:04:02 +02:00
frederikpyt a6ffea7016 Merge branch 'master' of https://github.com/sebathefox/skolehjem-webapp into master 2020-08-31 13:20:57 +02:00
frederikpyt f29fe0180a v0.10.18a - Various fixes 2020-08-31 13:20:49 +02:00
Anders b6f4fdb138 v0.10.18 - When deleting a menu, guide or event - The news according to the menu,guide or event will also get deleted (correctly now) 2020-08-31 12:48:59 +02:00
frederikpyt 56cdd63fbb Merge branch 'master' of https://github.com/sebathefox/skolehjem-webapp into master 2020-08-31 11:56:17 +02:00
frederikpyt 34e123ee19 v0.10.17a - Various fixes 2020-08-31 11:56:05 +02:00
Anders 10bd0c021c Merge remote-tracking branch 'origin/master' 2020-08-31 10:57:31 +02:00
Anders 7b157fcd90 v0.10.17 - Added permission check (create/edit/delete) on all admin sites 2020-08-31 10:57:26 +02:00
frederikpyt 59bd705d89 v0.10.16a - Various fixes 2020-08-31 10:15:12 +02:00
frederikpyt 0418805b7c Merge branch 'master' of https://github.com/sebathefox/skolehjem-webapp into master
 Conflicts:
	skolehjem/database/seeds/RoleSeeder.php
2020-08-31 09:38:20 +02:00
frederikpyt c6c54996b5 v0.10.16 - Various fixes 2020-08-31 09:36:10 +02:00
Neerholt 3856541790 Merge branch 'master' of https://github.com/sebathefox/skolehjem-webapp into master
 Conflicts:
	skolehjem/database/seeds/RoleSeeder.php
2020-08-31 09:16:04 +02:00
Neerholt e36ddf78f8 v0.10.15r - Remove ExternalLink 2020-08-31 09:14:20 +02:00
frederikpyt d8a754d398 Merge branch 'master' of https://github.com/sebathefox/skolehjem-webapp into master 2020-08-31 08:16:36 +02:00
frederikpyt 08362b24cb v0.10.15q - Various fixes 2020-08-31 08:16:26 +02:00
Anders 1dafdfe052 Merge remote-tracking branch 'origin/master' 2020-08-28 12:54:49 +02:00
Anders c86b8eba03 v0.10.15p - Fixed 'msg.telefontid' 2020-08-28 12:54:39 +02:00
Neerholt 7d4bd47ab8 Merge branch 'master' of https://github.com/sebathefox/skolehjem-webapp into master 2020-08-28 08:28:44 +02:00
Neerholt 3235cea505 v0.10.15o - Permissions semi works 2020-08-28 08:28:32 +02:00
Anders e0af87ba97 v0.10.15n - Added a functional Full Control button to roles.create 2020-08-28 08:26:32 +02:00
Neerholt b6d819e5f8 v0.10.15m - added the last value to roles permissions 2020-08-27 16:40:46 +02:00
Neerholt 4beadfb223 Merge branch 'master' of https://github.com/sebathefox/skolehjem-webapp into master 2020-08-27 15:30:26 +02:00
Neerholt a766bfea95 v0.10.15l - Made role permissions semi done, sometimes it works sometimes it doesn't, it needs some touch up 2020-08-27 15:29:59 +02:00
frederikpyt 78794074b2 v0.10.15k - Fixed admin access 2020-08-27 13:59:11 +02:00
frederikpyt 033d8f7c15 v0.10.15j - Fixed admin access 2020-08-27 12:46:07 +02:00
frederikpyt fc91a2f06b v0.10.15i - Fixed admin access 2020-08-27 11:12:43 +02:00
frederikpyt c0669d6eda v0.10.15h - Fixed admin access 2020-08-27 10:59:19 +02:00
Neerholt 5766770a4b v0.10.15g - Added roles permissions selection, semi done 2020-08-27 10:20:48 +02:00
Anders 7b2d6fcf60 Merge remote-tracking branch 'origin/master' 2020-08-26 10:49:19 +02:00
Anders b72ca3fbde v0.10.15f - Added video to guides (Still in need of <iframe></iframe> to be removed on news site) 2020-08-26 10:49:11 +02:00
Neerholt a9608bdf3a v0.10.15e - Administration can now changes a users profile images 2020-08-26 08:56:18 +02:00
Anders f33cf609da v0.10.15d - Changed remember password to remember me
Added pattern to user edit on admin site
2020-08-25 15:08:54 +02:00
Anders 0bd324e996 Merge remote-tracking branch 'origin/master' 2020-08-25 14:48:58 +02:00
Anders 3b6b20f934 v0.10.15c - Changed error message when changing password (removed quotes). Added placeholder to email & phone number + added pattern to phone number 2020-08-25 14:48:52 +02:00
frederikpyt c1972e70c8 v0.10.15b - Fixed scroll 2020-08-25 14:16:47 +02:00
Neerholt f5e3e0c6e0 Merge branch 'master' of https://github.com/sebathefox/skolehjem-webapp into master 2020-08-25 14:07:29 +02:00
Neerholt e758a3ddac v0.10.15a - Added hide Menu on Scroll 2020-08-25 14:07:20 +02:00
frederikpyt 5a1c1ee6fd Merge branch 'master' of https://github.com/sebathefox/skolehjem-webapp into master 2020-08-25 12:28:39 +02:00
frederikpyt 725b34f6bf v0.10.15 - Fixed EventController.php deletion of old events 2020-08-25 12:28:28 +02:00
Anders bc847b38b0 v0.14.15 - Removed the first foreach in location show, and made an inner join instead, so it comes in correct order (by time), instead of by time and by machine id.
Added: The Reservations now gets deleted when time is past their washing time, as soon as you go onto your own reservations, the admin page for reservations or when the location show page reloads (every 1 minut)
2020-08-25 12:26:48 +02:00
Neerholt 0c8791683f Merge branch 'master' of https://github.com/sebathefox/skolehjem-webapp into master 2020-08-25 12:00:33 +02:00
Neerholt fa606bd89f v0.10.14h - Added tooltips to navbar 2020-08-25 12:00:10 +02:00
Anders e1a2fd87f7 v0.14.14g - Fixed mails 2020-08-25 09:49:45 +02:00
Neerholt f33b2bb45c v0.10.14g - Fixed images error on washing machines 2020-08-25 09:25:42 +02:00
Anders 6569255d32 v0.14.14f - Fixed text in about.index 2020-08-25 08:15:25 +02:00
Anders 7cb88d8b58 Merge remote-tracking branch 'origin/master' 2020-08-24 14:25:56 +02:00
Anders 3e18809584 v0.10.14e - Location site now reloads with the div instead of the whole page 2020-08-24 14:25:50 +02:00
Neerholt abcc484e7c v0.10.14d - No can now see the users images on user admin 2020-08-24 14:09:03 +02:00
Neerholt fa5cd1c3e2 v0.10.14c - Various fixes 2020-08-24 11:27:17 +02:00
Neerholt 6b3af7e667 v0.10.14b - We now delete events from the database if the event passes the event data 2020-08-24 10:43:24 +02:00
Neerholt 5c087c9b11 Merge branch 'master' of https://github.com/sebathefox/skolehjem-webapp into master 2020-08-24 10:20:43 +02:00
Neerholt 5ebb8bc5a2 v0.10.14a - small css fix on event 2020-08-24 10:20:34 +02:00
frederikpyt 9a1b6873d2 Merge branch 'master' of https://github.com/sebathefox/skolehjem-webapp into master 2020-08-24 10:17:15 +02:00
frederikpyt 7a02f4a48f v0.10.14 - Fixed localstorage saving for the admin menu and added ResourceCategorySeeder.php 2020-08-24 10:17:08 +02:00
Neerholt e60c386b0e v0.10.13c - Small css fix made to user search filter 2020-08-24 10:08:19 +02:00
Neerholt 137d878748 Merge branch 'master' of https://github.com/sebathefox/skolehjem-webapp into master 2020-08-24 10:01:26 +02:00
Neerholt c2ddfcf346 v0.10.13b - Fixed images error after you had searched 2020-08-24 10:01:18 +02:00
Anders 0655611a77 v0.10.13a - Fixed feedback so date can be seen - Fixed about page 2020-08-24 09:55:20 +02:00
Neerholt 7719b4b77b Merge branch 'master' of https://github.com/sebathefox/skolehjem-webapp into master 2020-08-24 09:05:25 +02:00
Anders 556821ec8f Merge remote-tracking branch 'origin/master' 2020-08-24 09:00:27 +02:00
Anders 43893ab8ed v0.10.13 - Fixed: You can't see an event, if it's one day over time
Removed search bar from events
Added: You can't click on sites you're already on at the admin panel
2020-08-24 09:00:21 +02:00
Neerholt 679d5a0c3e v0.10.12a - Feedback fix 2020-08-24 09:00:15 +02:00
frederikpyt d280f6c7bc v0.10.12b - Fixed localstorage saving for the admin menu 2020-08-24 08:59:50 +02:00
macuser ba94e32ce2 Merge remote-tracking branch 'refs/remotes/origin/master' 2020-08-21 14:19:47 +02:00
macuser 0c39a9e485 updated app 2020-08-21 14:19:27 +02:00
macuser 4dc26fd229 Added iOS app 2020-08-21 14:18:39 +02:00
Frederik Milling Pytlick 6d551b42d0
Update base.blade.php 2020-08-21 13:44:33 +02:00
Sebastian D 6e277e9e79
Update base.blade.php 2020-08-21 13:41:06 +02:00
Sebastian D 78f97cbe9f
Create normalize.css 2020-08-21 13:39:45 +02:00
Neerholt 814695b720 Merge branch 'master' of https://github.com/sebathefox/skolehjem-webapp into master 2020-08-21 10:54:09 +02:00
Neerholt 522cf9cdf7 v0.10.12a - Made filter for washing machines done 2020-08-21 10:54:00 +02:00
frederikpyt 3d61c20a5a v0.10.12 - Localstorage saving for the admin menu 2020-08-21 08:45:39 +02:00
frederikpyt a0566360e0 v0.10.11d - Small optimizations 2020-08-21 07:59:14 +02:00
frederikpyt 27e3eed6f4 v0.10.11c - Removed <br> 2020-08-21 07:57:48 +02:00
frederikpyt e35c8ae491 Merge branch 'master' of https://github.com/sebathefox/skolehjem-webapp into master 2020-08-20 15:12:12 +02:00
frederikpyt 2b1c284b6a v0.10.11b - Added active site 2020-08-20 15:12:06 +02:00
Neerholt f403c464c7 Merge branch 'master' of https://github.com/sebathefox/skolehjem-webapp into master 2020-08-20 14:59:31 +02:00
Neerholt 89276c5af1 v0.10.11a - Made hide filter, filter washing machine search semi done, and texts fixs 2020-08-20 14:59:22 +02:00
frederikpyt ab5a6206ce Merge branch 'master' of https://github.com/sebathefox/skolehjem-webapp into master 2020-08-20 14:56:18 +02:00
frederikpyt c0d336a8e0 v0.10.11 - Collapse-able admin menu 2020-08-20 14:56:11 +02:00
Anders a145c88e2c v0.10.10f - You can no longer see your own reservations if they're an hour past due (Samt with admin) 2020-08-20 12:18:30 +02:00
Neerholt 4f9cf41656 Merge branch 'master' of https://github.com/sebathefox/skolehjem-webapp into master 2020-08-19 15:30:47 +02:00
Neerholt 0516acba78 v0.10.10e - Made a hide show filter button, not done but works, css fix tomorrow 2020-08-19 15:30:39 +02:00
Anders b47c06372b v0.10.10d - Fixed quill asset mistake 2020-08-19 15:09:54 +02:00
frederikpyt cca543bf4a Merge branch 'master' of https://github.com/sebathefox/skolehjem-webapp into master 2020-08-19 14:59:20 +02:00
frederikpyt 41af387399 v0.10.10c - Not done 2020-08-19 14:59:13 +02:00
Neerholt ec4fdca414 Merge branch 'master' of https://github.com/sebathefox/skolehjem-webapp into master 2020-08-19 10:44:07 +02:00
Neerholt a8fc584304 v0.10.10b - Added small fixs to pagination 2020-08-19 10:43:59 +02:00
Anders ae306c8f1b Merge remote-tracking branch 'origin/master' 2020-08-19 10:35:51 +02:00
Anders 3f2dcf1a0c v0.10.10a - Added Quill.js & Quill.snow.css to our own files, instead of calling it. - Removed uneccesary quill.snow.css in menuplan 2020-08-19 10:35:44 +02:00
frederikpyt 5aebe1328d Merge branch 'master' of https://github.com/sebathefox/skolehjem-webapp into master 2020-08-19 10:01:38 +02:00
frederikpyt 7e9277bd21 v0.10.10 - Fixed it so you can only upload image resources when uploading your profile picture 2020-08-19 10:01:22 +02:00
Neerholt 2f003600c5 Merge branch 'master' of https://github.com/sebathefox/skolehjem-webapp into master 2020-08-19 09:54:31 +02:00
Neerholt 6934c2d992 v0.10.9 - Added pagination onto guides, washing-reservations, events and news 2020-08-19 09:54:26 +02:00
Anders 82ac44133b v0.10.8 - Added - You can only see washingreservations for the day, and are maximum an hour after 'time' in column - Reloads the page after every 5 minutes (This needs a fix) 2020-08-19 09:01:21 +02:00
frederikpyt 2430a6a381 v0.10.7b - Fixed washing_reservation creation on app, hopefully forever 2020-08-18 22:55:50 +02:00
frederikpyt abd9ebbe3e v0.10.7 - Fixed washing_reservation creation on app, hopefully forever 2020-08-18 22:47:39 +02:00
frederikpyt 52b42124a1 v0.10.6 - Uniformily changed the event name 2020-08-18 19:09:40 +02:00
Neerholt 4233a35e66 v0.10.5d - dompdf 2020-08-18 15:28:49 +02:00
Neerholt d2441250fb v0.10.5c - Made menuplan pdf better 2020-08-18 15:27:58 +02:00
Anders f6feb8a818 Merge remote-tracking branch 'origin/master' 2020-08-18 13:01:45 +02:00
Anders 19b1176718 v0.10.5b - Added Date to feedbacks.index 2020-08-18 13:01:39 +02:00
Neerholt 70437aaffa Merge branch 'master' of https://github.com/sebathefox/skolehjem-webapp into master 2020-08-18 12:33:12 +02:00
Neerholt d851354086 v0.10.5 - Added middelware 2020-08-18 12:33:04 +02:00
Anders ddbc3b8b60 v0.10.5 - Fixed vagttelefon
Added: Washing Machines & their reservations now delete when the location gets removed
2020-08-18 12:25:32 +02:00
frederikpyt d49a896fc0 v0.10.4 - Downloaded moment-js 2020-08-18 11:54:26 +02:00
frederikpyt 088fcd7f39 v0.10.3c - Fixed dark mode css 2020-08-18 09:02:03 +02:00
frederikpyt af751e2352 Merge branch 'master' of https://github.com/sebathefox/skolehjem-webapp into master 2020-08-18 08:36:07 +02:00
frederikpyt 1e405d9f3c v0.10.3 - Added user "X X" to seeder, and fixed analytics 2020-08-18 08:35:53 +02:00
Anders a19d8b91b0 Merge remote-tracking branch 'origin/master' 2020-08-18 08:30:28 +02:00
Anders 556f242595 v0.10.3a - Fixed: When deleting a location you now also delete the washing machines 2020-08-18 08:30:20 +02:00
frederikpyt 55153521b4 Merge branch 'master' of https://github.com/sebathefox/skolehjem-webapp into master 2020-08-18 08:19:20 +02:00
frederikpyt 44ade93240 v0.10.3 - Fixed darkmode css on app/washing-reservations/create.blade.php. Fixed frontend file upload valdiation. Fixed analytics 2020-08-18 08:19:14 +02:00
Anders e6e0e3c95d v0.10.2 - Full functioning AJAX check submit code on User controller create & edit
- Plus all other pages where you create or update something of an unique value
2020-08-18 08:16:25 +02:00
Anders c08933ba9b v0.10.1b - Added error message when creating a user with a difference in `Adgangskode` & `Bekræft Adgangskode`
Removed old error messages
2020-08-17 15:25:26 +02:00
Anders 58c6d08ca2 Merge remote-tracking branch 'origin/master' 2020-08-17 15:10:52 +02:00
Anders d19b9c1d1a v0.10.1a - Added AJAX check on update WashingMachine
Added AJAX check on create (missing on update) UserController - Only checks when submitting
2020-08-17 15:10:44 +02:00
frederikpyt 4a72493f9b Merge branch 'master' of https://github.com/sebathefox/skolehjem-webapp into master 2020-08-17 15:06:55 +02:00
frederikpyt 983b02e00e v0.10.1 - Added location on washing_reservations and created a WashingMachineSeeder.php 2020-08-17 15:06:48 +02:00
Neerholt e6fbafb011 v0.10.0i - :( 2020-08-17 15:06:35 +02:00
Neerholt 0144fb8586 v0.10.0h - Fixed phone number bug, changed phone number from int to string 2020-08-17 14:42:58 +02:00
Neerholt d4bc3f5520 v0.10.0g - Fixed stuff :) 2020-08-17 14:24:27 +02:00
Neerholt 25f1dc80d4 v0.10.0f - Fixed a route error on main index pages, when you clicked on see participants 2020-08-17 13:52:51 +02:00
Neerholt 7f42423599 v0.10.0e - Made some css fix to the main index dashboard pages 2020-08-17 13:22:08 +02:00
Neerholt 8bba60fa5a Merge branch 'master' of https://github.com/sebathefox/skolehjem-webapp into master 2020-08-17 12:24:49 +02:00
Neerholt 9db169aadb v0.10.0d - Rolled back menuplan to old system layout and functionality 2020-08-17 12:24:43 +02:00
Anders 5ac480454a v0.10.0c - Fixed WashingMachine create & update AJAX 2020-08-17 11:07:26 +02:00
Anders 3bde377caa v0.10.0b - Fixed Location update AJAX
Added - You are now able to delete a location
2020-08-17 10:43:52 +02:00
Neerholt 773655c294 Merge branch 'master' of https://github.com/sebathefox/skolehjem-webapp into master 2020-08-17 10:31:41 +02:00
Neerholt fe9eb4fd4d v0.10.0a - Added last support for NameCheck 2020-08-17 10:31:33 +02:00
frederikpyt e82c793820 Merge branch 'master' of https://github.com/sebathefox/skolehjem-webapp into master 2020-08-17 10:29:02 +02:00
frederikpyt 9596a426fa v0.10.0 - Added admin dashboard 2020-08-17 10:28:54 +02:00
Anders cf957429c3 v0.9.15i - Fixed EN/DK Reservations 2020-08-17 10:27:29 +02:00
Anders e6f03ad72b v0.9.15h - NameCheck - Fixed Updates 2020-08-17 10:21:02 +02:00
Neerholt 5f516992d7 Merge branch 'master' of https://github.com/sebathefox/skolehjem-webapp into master 2020-08-17 09:21:57 +02:00
Neerholt ea623a72ca v0.9.15g - NameCheck 2020-08-17 09:21:47 +02:00
Anders 4358f272ed Merge remote-tracking branch 'origin/master' 2020-08-17 08:26:08 +02:00
Anders 4b44f24be4 v0.9.15f - Fixed Feedback backend 2020-08-17 08:26:01 +02:00
Neerholt fce970de65 v0.9.15e - made nameCheck for guides 2020-08-17 08:23:48 +02:00
frederikpyt 604d5dad19 v0.9.15d - Fixed bug 2020-08-14 12:10:18 +02:00
frederikpyt 7dfcc36d07 v0.9.15c - Delete news when you delete its guide 2020-08-14 12:07:18 +02:00
frederikpyt dccc084dee Merge branch 'master' of https://github.com/sebathefox/skolehjem-webapp into master 2020-08-14 11:22:25 +02:00
Neerholt a4509fa412 Merge branch 'master' of https://github.com/sebathefox/skolehjem-webapp into master 2020-08-14 11:22:59 +02:00
Neerholt 8a71d1d5ae v0.9.15a - optimized nameCheck 2020-08-14 11:22:51 +02:00
frederikpyt 051aceb041 v0.9.15b - Updated the menuplan pdf design 2020-08-14 11:22:18 +02:00
frederikpyt 3461803b25 Merge branch 'master' of https://github.com/sebathefox/skolehjem-webapp into master 2020-08-14 11:20:18 +02:00
frederikpyt 116806a613 v0.9.15 - Updated the android app to support file picking 2020-08-14 11:20:09 +02:00
Anders 45d1906497 v0.9.14 - Made an `Do you want email` slider on settings site 2020-08-14 10:17:52 +02:00
Neerholt c37645fe85 v0.9.13b - Made your event taben look better 2020-08-14 09:03:15 +02:00
frederikpyt 804a39e2a1 v0.9.13a - Updated .env.example 2020-08-14 07:44:33 +02:00
frederikpyt 55eed84b86 Merge branch 'master' of https://github.com/sebathefox/skolehjem-webapp into master
 Conflicts:
	skolehjem/app/Http/Controllers/EventController.php
2020-08-14 07:39:27 +02:00
frederikpyt 9e0f449bd3 v0.9.13 - Added notifications in events, when an event you're signed up to gets canceled. 2020-08-14 07:36:42 +02:00
Anders 9232ed99a1 v0.9.12 - Fixed CSS - Started working on wants_email button in account 2020-08-13 15:28:20 +02:00
victor 8bfcfb6441 Merge branch 'master' of https://github.com/sebathefox/skolehjem-webapp 2020-08-13 14:41:19 +02:00
victor 3a78734b7f v0.9.11 - Check if event name already exist. 2020-08-13 14:41:10 +02:00
frederikpyt bd0d504ab8 v0.9.10 - Added wants_emails 2020-08-13 13:50:00 +02:00
frederikpyt 7b52c43a05 v0.9.9a - Fixed order 2020-08-13 12:36:45 +02:00
frederikpyt d64e8fc4b8 v0.9.9 - Added custom 404 page 2020-08-13 12:06:28 +02:00
frederikpyt 0e266c2583 v0.9.8 - Fixed participate/stop participating, so that you no longer hard refresh 2020-08-13 11:39:10 +02:00
frederikpyt 2c8f947eb4 Merge branch 'master' of https://github.com/sebathefox/skolehjem-webapp into master 2020-08-13 10:27:03 +02:00
frederikpyt 1f1ea3c832 v0.9.7 - Edited about 2020-08-13 10:26:43 +02:00
Neerholt f0a11000a6 Merge branch 'master' of https://github.com/sebathefox/skolehjem-webapp into master 2020-08-13 10:03:14 +02:00
Neerholt ea3ddb38a6 v0.9.5 - css stuff compile 2020-08-13 10:02:56 +02:00
frederikpyt a521b5ddea Merge branch 'master' of https://github.com/sebathefox/skolehjem-webapp into master 2020-08-13 09:36:00 +02:00
frederikpyt d969c76dcf v0.9.6 - Added print icons 2020-08-13 09:35:53 +02:00
Neerholt 58fba39538 Merge branch 'master' of https://github.com/sebathefox/skolehjem-webapp into master 2020-08-13 09:20:04 +02:00
Neerholt 9c70a0c4b4 v0.9.5 - Removed images support from pdf menuplan, added dynamic name support for the pdf document 2020-08-13 09:19:44 +02:00
frederikpyt 6b9f77e7e7 Merge branch 'master' of https://github.com/sebathefox/skolehjem-webapp into master 2020-08-13 09:09:19 +02:00
frederikpyt aef8aa5d2c v0.9.4 - Added email notification when news gets added 2020-08-13 09:09:11 +02:00
Anders 0300a6a76b v0.9.4 - Added remove function to feedback admin page
Added - You can now see if you're participating an event on event.index and yourevents.blade.php
Fixed `Tilbage` buttons
2020-08-13 09:08:34 +02:00
Neerholt 4a46817265 v0.9.3 - Menuplan pdf converter now supports images download 2020-08-13 08:22:39 +02:00
frederikpyt 5c871c3fb7 Merge branch 'master' of https://github.com/sebathefox/skolehjem-webapp into master
 Conflicts:
	skolehjem/app/Http/Controllers/MenuPlanController.php
2020-08-12 15:28:15 +02:00
frederikpyt fff03fd131 v0.9.2 - Added send notifications 2020-08-12 15:26:32 +02:00
Neerholt 0886c8f583 Merge branch 'master' of https://github.com/sebathefox/skolehjem-webapp into master 2020-08-12 15:25:36 +02:00
Neerholt c84d2a3d73 v0.9.1 - You can now convert menuplan to pdf 2020-08-12 15:25:29 +02:00
Anders 2cbb517ef1 v0.9.0 - Added individual `Read more` buttons on news.index
Added NewsType - To see if it's a news, menu, guide or event
Added type column to News type_id & arrangement_id (Both needed to see what type (menu,guide,news,event) and arrangement(The individual types ID))
Added NewsTypeSeeder.php
Fixed CSS
Added & Fixed messages en/dk
Fixed Editors
Added routing when removing yourself from an event, on events.index
2020-08-12 15:17:48 +02:00
frederikpyt e06504b5fb Merge branch 'master' of https://github.com/sebathefox/skolehjem-webapp into master
 Conflicts:
	skolehjem/resources/lang/dk/msg.php
	skolehjem/resources/lang/en/msg.php
2020-08-12 13:10:37 +02:00
frederikpyt 4a8b22d6dd v0.8.5 - Fixed lang and css 2020-08-12 13:09:47 +02:00
Neerholt 6671cd6aa8 v0.8.4b - Made about pages 2020-08-12 13:08:47 +02:00
Neerholt d016ea6c4c v0.8.4a - Added last support for images uploade 2020-08-12 12:49:05 +02:00
Neerholt 7784623efe v0.8.4 - Images gitignore 2020-08-12 12:41:36 +02:00
Neerholt d0b286c714 Merge branch 'master' of https://github.com/sebathefox/skolehjem-webapp into master 2020-08-12 12:28:13 +02:00
Neerholt e080b69d98 v0.8.3 - Added uploade images function 2020-08-12 12:28:05 +02:00
Neerholt 9c26526740 Merge branch 'master' of https://github.com/sebathefox/skolehjem-webapp into master 2020-08-12 11:15:49 +02:00
Neerholt 1c6aa5c398 v0.8.1 - Added uploade images function to menuplan 2020-08-12 11:15:41 +02:00
frederikpyt edbdd7a292 v0.8.2 - Fixed user profile pic upload 2020-08-12 11:15:08 +02:00
frederikpyt 37d915a37f Merge branch 'master' of https://github.com/sebathefox/skolehjem-webapp into master 2020-08-12 10:46:45 +02:00
frederikpyt 55ab591b4e v0.8.1 - Started adding user profile pic 2020-08-12 10:46:36 +02:00
frederikpyt fb88bfa4c8 v0.8.0 - Fixed ResourceController.php 2020-08-12 10:44:54 +02:00
Anders 746926d439 v0.7.8 - Added Quill Editor to all sites - Fixed Event name/subname showance in news.index 2020-08-12 08:42:58 +02:00
frederikpyt 511e0b783f v0.7.7 - Various fixes 2020-08-11 18:21:51 +02:00
Neerholt 17434eb81d v0.7.5 - Added helpers to support substr closetag function 2020-08-11 15:30:34 +02:00
frederikpyt 2aaadd00b0 Merge branch 'master' of https://github.com/sebathefox/skolehjem-webapp into master 2020-08-11 15:08:36 +02:00
Neerholt ed568d12a8 Merge branch 'master' of https://github.com/sebathefox/skolehjem-webapp into master 2020-08-11 15:09:19 +02:00
Neerholt fc631ef66e v0.7.5 - Added substr to guide and event 2020-08-11 15:09:11 +02:00
frederikpyt b1b96ad080 v0.7.6 - Added snackbar 2020-08-11 15:08:09 +02:00
frederikpyt 1e4d55ef26 v0.7.4 - removed redundant code 2020-08-11 13:45:34 +02:00
frederikpyt e8278b7125 v0.7.3 - It now extends the layout 2020-08-11 13:44:18 +02:00
frederikpyt a9a9d42fb8 v0.7.3 - Major Fixes 2020-08-11 13:16:54 +02:00
frederikpyt 80ec936a0c v0.7.2 - Remember Me 2020-08-11 13:05:30 +02:00
frederikpyt b51704cc26 v0.7.1 - Major css fixes 2020-08-11 12:54:28 +02:00
frederikpyt c2ae6e08c3 v0.7.0 - Settings tab 2020-08-11 12:37:31 +02:00
Neerholt 76e0d7997a v0.6.2e - Made setting controller. Made on resource controller 2020-08-11 12:26:52 +02:00
Neerholt 2ae0c1661c v0.6.2d - Added are you sure you want to leave alert if you have unsaved data on a pages 2020-08-11 10:54:01 +02:00
Neerholt a223d5484e Merge branch 'master' of https://github.com/sebathefox/skolehjem-webapp into master 2020-08-11 10:40:08 +02:00
Neerholt 37b53a5480 v0.6.2c 2020-08-11 10:39:22 +02:00
frederikpyt 14fb54c5df v0.6.2b - Are you sure 2020-08-11 10:38:49 +02:00
Neerholt 7e985aef49 Merge branch 'master' of https://github.com/sebathefox/skolehjem-webapp into master 2020-08-11 10:24:49 +02:00
frederikpyt 366f66215e v0.6.2a - Fixed css 2020-08-11 10:16:07 +02:00
frederikpyt 6e7cc443b8 v0.6.2a - Fixed css 2020-08-11 10:03:27 +02:00
frederikpyt 81af08ef24 v0.6.2 - Fixed various bugs 2020-08-11 09:55:01 +02:00
frederikpyt e5cf13c4c2 v0.6.1 - Fixed env 2020-08-11 09:32:36 +02:00
frederikpyt 5137d6da9d v0.6.1 - Added jquery 2020-08-11 09:27:19 +02:00
frederikpyt e391acf261 v0.6.1 - Added jquery 2020-08-11 09:27:07 +02:00
Neerholt 40b0c8c805 Merge branch 'master' of https://github.com/sebathefox/skolehjem-webapp into master 2020-08-11 09:15:43 +02:00
frederikpyt 64c260a63f v0.6.0 - Darkmode 2020-08-11 09:13:48 +02:00
Neerholt dd017311f7 Merge branch 'master' of https://github.com/sebathefox/skolehjem-webapp into master
 Conflicts:
	skolehjem/public/css/webappdark.css
2020-08-11 08:39:15 +02:00
Neerholt d071e583f5 Merge branch 'master' of https://github.com/sebathefox/skolehjem-webapp into master
 Conflicts:
	skolehjem/public/css/webappdark.css
2020-08-11 08:14:15 +02:00
Neerholt 0fbda9e12b v0.5.18s - bare commit det 2020-08-10 15:28:25 +02:00
frederikpyt 1428d88716 Merge branch 'master' of https://github.com/sebathefox/skolehjem-webapp into master 2020-08-10 15:20:01 +02:00
frederikpyt 3d0afb2d6a v0.5.18 - Darkmode 2020-08-10 15:19:53 +02:00
Neerholt ea0d544509 v0.5.17c - Fix small bugs on darkmode 2020-08-10 14:59:22 +02:00
frederikpyt 72824d87f2 v0.5.17b - Darkmode 2020-08-10 14:53:49 +02:00
Neerholt 511b4a288b v0.5.17a - Made darkmode 2020-08-10 14:49:00 +02:00
Neerholt 89f8b2be44 Merge branch 'master' of https://github.com/sebathefox/skolehjem-webapp into master 2020-08-10 13:26:56 +02:00
Neerholt 86536ba978 v0.5.17 - Made some small css changes to guides layout 2020-08-10 13:26:48 +02:00
frederikpyt 534fbe2efd Merge branch 'master' of https://github.com/sebathefox/skolehjem-webapp into master 2020-08-10 12:44:45 +02:00
frederikpyt 2ad27412a3 v0.5.17 - Fixed bugs 2020-08-10 12:44:29 +02:00
Neerholt c410f3feb6 v0.5.16a - Fixed SSL bug 2020-08-10 12:44:26 +02:00
frederikpyt 79d09464f2 v0.5.17 - Fixed bugs 2020-08-10 12:44:20 +02:00
Anders 2cc78c5d7c Merge remote-tracking branch 'origin/master' 2020-08-10 12:29:44 +02:00
Anders 2e187524bf v0.5.16 - Fixed Cookie Problem on controllers. Added quill editor on event. Added message in msg.php en/dk 2020-08-10 12:29:38 +02:00
frederikpyt 50b495ee01 v0.5.15i - Fixed bugs 2020-08-10 12:14:09 +02:00
frederikpyt bb1aade947 v0.5.15h - Fixed bugs 2020-08-10 12:07:41 +02:00
Neerholt 74767b3336 Merge branch 'master' of https://github.com/sebathefox/skolehjem-webapp into master 2020-08-10 12:06:52 +02:00
Neerholt 8dba709ce1 v0.5.15g - added https support 2020-08-10 12:06:44 +02:00
frederikpyt 6cabc6250c Merge branch 'master' of https://github.com/sebathefox/skolehjem-webapp into master 2020-08-10 11:47:07 +02:00
frederikpyt d1a2ec8210 v0.5.15f - Fixed small visual bug 2020-08-10 11:46:08 +02:00
Neerholt 332fdc3347 v0.5.15e - Removed search function from menuplan and fix some css on event search 2020-08-10 11:45:58 +02:00
Neerholt 1d8d89d299 Merge branch 'master' of https://github.com/sebathefox/skolehjem-webapp into master 2020-08-10 11:06:41 +02:00
Neerholt 9a11e4b52c v0.5.15b - optimized user search, so it now works like a charm :) 2020-08-10 11:06:27 +02:00
frederikpyt bc6626f997 v0.5.15d - Fixed bug 2020-08-10 10:29:52 +02:00
frederikpyt c077b0e55f v0.5.15c - Fixed bug 2020-08-10 10:28:40 +02:00
frederikpyt 1bea8401b4 v0.5.15b - Fixed bug 2020-08-10 10:21:09 +02:00
Neerholt 3263663f3d Merge branch 'master' of https://github.com/sebathefox/skolehjem-webapp into master
 Conflicts:
	skolehjem/app/Http/Controllers/EventController.php
2020-08-10 10:17:41 +02:00
Neerholt b27d05e55c v0.5.15a - Made read more 2020-08-10 10:16:05 +02:00
frederikpyt fead36dd52 Merge branch 'master' of https://github.com/sebathefox/skolehjem-webapp into master
 Conflicts:
	skolehjem/resources/views/app/news/index.blade.php
2020-08-10 09:39:12 +02:00
frederikpyt bd7800f5a0 v0.5.15 - Added subname to news 2020-08-10 09:37:19 +02:00
Neerholt a011df41ee v0.5.14c - Fixed middelware typo 2020-08-10 09:18:00 +02:00
Neerholt 2db8032635 v0.5.14c - Fixed route error when you clicked on participate 2020-08-10 09:17:21 +02:00
Neerholt 9c0f46e665 v0.5.14b - index event fix 2020-08-10 09:08:48 +02:00
Neerholt 15962e4114 v0.5.14b -Added Css 2020-08-10 09:05:53 +02:00
Neerholt 9841cbd24e v0.5.14a -Made cookies more oo oriented 2020-08-08 23:51:24 +02:00
Neerholt a97cd7cda5 Merge branch 'master' of https://github.com/sebathefox/skolehjem-webapp into master 2020-08-07 14:25:08 +02:00
Anders 726cb52aee v0.5.14 - Fixed signups on event. Added en/dk versions. Added TinyMCEditor on events create/edit. Removed menuplans monday-thursday 2020-08-07 14:11:13 +02:00
Neerholt 0cea9e50c1 v0.5.14 -Added see participant to events taben it self 2020-08-07 13:50:26 +02:00
Anders 9d6fc22b0f v0.5.13 - Added signups.blade.php to see who have joined an event + en/dk versions 2020-08-07 13:31:09 +02:00
Anders 8388fecfb6 v0.5.12b - Fixed description of events (string to longText) 2020-08-07 13:00:37 +02:00
Anders d921803dfd v0.5.12a - Fixed store of event 2020-08-07 12:59:21 +02:00
Neerholt 376f37da8c Merge branch 'master' of https://github.com/sebathefox/skolehjem-webapp into master 2020-08-07 12:48:15 +02:00
Neerholt 04c280e602 v0.5.12 - Add read more to guides, and made specific pages to read a specific guide 2020-08-07 12:48:08 +02:00
Anders 9a6d1b64c1 v0.5.11 - Changed CKEditor to TinyMCEditor / Removed Monday-Thursday in menu_plans and added a TinyMCEditor instead. 2020-08-07 12:20:15 +02:00
frederikpyt c268440021 Merge branch 'master' of https://github.com/sebathefox/skolehjem-webapp 2020-08-07 10:59:02 +02:00
frederikpyt b0eda7f8e7 v0.5.10 - Added support for menuplan as news creation 2020-08-07 10:58:50 +02:00
Anders e0b998dec0 Merge remote-tracking branch 'origin/master'
# Conflicts:
#	skolehjem/app/Http/Controllers/UserEventController.php
2020-08-07 10:52:25 +02:00
Anders a23337b9d4 v0.5.9 - Fixed en/dk messages + added backend en/dk messages 2020-08-07 10:51:10 +02:00
frederikpyt c02c1aacd3 v0.5.8b - Fix 2020-08-07 10:36:08 +02:00
frederikpyt f7941841fe v0.5.8a - Fix 2020-08-07 10:25:46 +02:00
frederikpyt 4c2b58f33b Merge branch 'master' of https://github.com/sebathefox/skolehjem-webapp
 Conflicts:
	skolehjem/resources/views/admin/events/create.blade.php
2020-08-07 09:49:31 +02:00
frederikpyt 246004ebfd v0.5.8 - Added create news option on guide and event create/edit 2020-08-07 09:47:23 +02:00
Neerholt b5fb505eaa
Merge pull request #3 from sebathefox/Multi-language
v.0.5.8 - Multi language
2020-08-07 08:53:29 +02:00
Neerholt 60391793fc v0.5.7b - Added middelware 2020-08-07 08:52:01 +02:00
Neerholt e5e057a51a v0.5.7a - Added middelware 2020-08-07 08:51:05 +02:00
Anders 76e3638706 v0.5.6b - Added error messages when loggin in with wrong credentials, when changing password and when logging out - Admin & User 2020-08-07 08:35:23 +02:00
Neerholt 23929310f7 v0.5.7 - Add the last support for english 2020-08-06 20:33:46 +02:00
Neerholt f96d23814b v0.5.7 - Add msg English and msg Danish 2020-08-06 15:32:21 +02:00
Neerholt 7cc871ae90 v0.5.7 - Made multi language option 2020-08-06 15:31:38 +02:00
Anders 6e2ffa8de4 v0.5.6a - Fixed description when seeing your events 2020-08-06 14:50:07 +02:00
Anders 1b7738fd09 Merge remote-tracking branch 'origin/master' 2020-08-06 14:47:28 +02:00
Anders 708313a4b3 v0.5.6 - Fixed Guide when destroying.
Added accountable in Event table to see who is the accountable for the event. Changed description field to CKEditor
2020-08-06 14:47:22 +02:00
frederikpyt c472ae80fa v0.5.5B - Change app home page to news page 2020-08-06 14:30:18 +02:00
frederikpyt 4c2fc5f5f0 v0.5.5A - Small fixes 2020-08-06 13:35:07 +02:00
frederikpyt 3e4e6e71ab v0.5.5 - Added news on the admin panel 2020-08-06 12:21:19 +02:00
frederikpyt ab4275dc33 v0.5.4C - Added a back button on forgot password 2020-08-06 11:17:55 +02:00
frederikpyt c56fb6a96d v0.5.4B - Fixed some css 2020-08-06 10:57:18 +02:00
frederikpyt 2d9bd2e11c v0.5.4A - Added a no reservations message on "reservations in location" page 2020-08-06 10:49:16 +02:00
frederikpyt 4b0ad949ba v0.5.4 - Created the "reservations in location" screen and added a location option when creating reservations. 2020-08-06 10:32:34 +02:00
frederikpyt 358e47b703 v0.5.3A - Added permission requirements to GuideController.php 2020-08-06 08:44:21 +02:00
frederikpyt f4a277185d Merge branch 'master' of https://github.com/sebathefox/skolehjem-webapp 2020-08-06 08:37:28 +02:00
frederikpyt 5452711665 v0.5.3 - Added Locations and a location_id to washing machines 2020-08-06 08:37:16 +02:00
Neerholt 7ea2208b4a Merge branch 'master' of https://github.com/sebathefox/skolehjem-webapp into master 2020-08-05 14:59:59 +02:00
Neerholt a04c38636b v0.5.2 - Made the new menuplan, so you now can use CKeditor. 2020-08-05 14:59:41 +02:00
frederikpyt 9b631843b0 Merge branch 'master' of https://github.com/sebathefox/skolehjem-webapp
 Conflicts:
	skolehjem/database/seeds/ContactSeeder.php
2020-08-05 13:30:32 +02:00
frederikpyt 76bea82eea v0.5.1 - Made contact phone number optional and updated data in seeders. 2020-08-05 13:29:45 +02:00
413 changed files with 105434 additions and 20837 deletions

View File

@ -94,7 +94,6 @@
<XML_NAMESPACE>http://schemas.android.com/apk/res/android</XML_NAMESPACE> <XML_NAMESPACE>http://schemas.android.com/apk/res/android</XML_NAMESPACE>
</AND> </AND>
</match> </match>
<order>ANDROID_ATTRIBUTE_ORDER</order>
</rule> </rule>
</section> </section>
<section> <section>

View File

@ -0,0 +1,5 @@
<component name="ProjectCodeStyleConfiguration">
<state>
<option name="PREFERRED_PROJECT_CODE_STYLE" value="Default" />
</state>
</component>

View File

@ -1,11 +1,12 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<project version="4"> <project version="4">
<component name="DataSourceManagerImpl" format="xml" multifile-model="true"> <component name="DataSourceManagerImpl" format="xml" multifile-model="true">
<data-source source="LOCAL" name="laravel.sqlite" uuid="bf392a85-1584-4a27-a552-e491a55b9410"> <data-source source="LOCAL" name="laravel.sqlite" uuid="f7be1ece-08dd-4ce3-8bc7-5dce0780cc96">
<driver-ref>sqlite.xerial</driver-ref> <driver-ref>sqlite.xerial</driver-ref>
<synchronize>true</synchronize> <synchronize>true</synchronize>
<jdbc-driver>org.sqlite.JDBC</jdbc-driver> <jdbc-driver>org.sqlite.JDBC</jdbc-driver>
<jdbc-url>jdbc:sqlite:$PROJECT_DIR$/skolehjem/database/laravel.sqlite</jdbc-url> <jdbc-url>jdbc:sqlite:$PROJECT_DIR$/skolehjem/database/laravel.sqlite</jdbc-url>
<working-dir>$ProjectFileDir$</working-dir>
</data-source> </data-source>
</component> </component>
</project> </project>

View File

@ -1,6 +1,18 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<project version="4"> <project version="4">
<component name="Encoding"> <component name="Encoding">
<file url="file://$PROJECT_DIR$/skolehjem/public/images/icons/backpack-hvid.svg" charset="UTF-8" />
<file url="file://$PROJECT_DIR$/skolehjem/public/images/icons/eye-dark.svg" charset="UTF-8" /> <file url="file://$PROJECT_DIR$/skolehjem/public/images/icons/eye-dark.svg" charset="UTF-8" />
<file url="file://$PROJECT_DIR$/skolehjem/public/images/icons/feedback.svg" charset="UTF-8" />
<file url="file://$PROJECT_DIR$/skolehjem/public/images/icons/food.svg" charset="UTF-8" />
<file url="file://$PROJECT_DIR$/skolehjem/public/images/icons/location.svg" charset="UTF-8" />
<file url="file://$PROJECT_DIR$/skolehjem/public/images/icons/phone.svg" charset="UTF-8" />
<file url="file://$PROJECT_DIR$/skolehjem/public/images/icons/preview-dark.svg" charset="UTF-8" />
<file url="file://$PROJECT_DIR$/skolehjem/public/images/icons/preview.svg" charset="UTF-8" />
<file url="file://$PROJECT_DIR$/skolehjem/public/images/icons/print-hvid.svg" charset="UTF-8" />
<file url="file://$PROJECT_DIR$/skolehjem/public/images/icons/questionmark.svg" charset="UTF-8" />
<file url="file://$PROJECT_DIR$/skolehjem/public/images/icons/statistics.svg" charset="UTF-8" />
<file url="file://$PROJECT_DIR$/skolehjem/public/images/icons/users-hvid.svg" charset="UTF-8" />
<file url="file://$PROJECT_DIR$/skolehjem/public/images/icons/wash.svg" charset="UTF-8" />
</component> </component>
</project> </project>

View File

@ -4,30 +4,23 @@
<include_path> <include_path>
<path value="$PROJECT_DIR$/skolehjem/vendor/psr/container" /> <path value="$PROJECT_DIR$/skolehjem/vendor/psr/container" />
<path value="$PROJECT_DIR$/skolehjem/vendor/psr/event-dispatcher" /> <path value="$PROJECT_DIR$/skolehjem/vendor/psr/event-dispatcher" />
<path value="$PROJECT_DIR$/skolehjem/vendor/psr/http-factory" />
<path value="$PROJECT_DIR$/skolehjem/vendor/psr/http-message" /> <path value="$PROJECT_DIR$/skolehjem/vendor/psr/http-message" />
<path value="$PROJECT_DIR$/skolehjem/vendor/psr/log" /> <path value="$PROJECT_DIR$/skolehjem/vendor/psr/log" />
<path value="$PROJECT_DIR$/skolehjem/vendor/psr/simple-cache" /> <path value="$PROJECT_DIR$/skolehjem/vendor/psr/simple-cache" />
<path value="$PROJECT_DIR$/skolehjem/vendor/psy/psysh" />
<path value="$PROJECT_DIR$/skolehjem/vendor/opis/closure" /> <path value="$PROJECT_DIR$/skolehjem/vendor/opis/closure" />
<path value="$PROJECT_DIR$/skolehjem/vendor/voku/portable-ascii" /> <path value="$PROJECT_DIR$/skolehjem/vendor/voku/portable-ascii" />
<path value="$PROJECT_DIR$/skolehjem/vendor/asm89/stack-cors" /> <path value="$PROJECT_DIR$/skolehjem/vendor/asm89/stack-cors" />
<path value="$PROJECT_DIR$/skolehjem/vendor/brick/math" /> <path value="$PROJECT_DIR$/skolehjem/vendor/brick/math" />
<path value="$PROJECT_DIR$/skolehjem/vendor/nikic/php-parser" /> <path value="$PROJECT_DIR$/skolehjem/vendor/nikic/php-parser" />
<path value="$PROJECT_DIR$/skolehjem/vendor/defuse/php-encryption" /> <path value="$PROJECT_DIR$/skolehjem/vendor/defuse/php-encryption" />
<path value="$PROJECT_DIR$/skolehjem/vendor/league/commonmark" />
<path value="$PROJECT_DIR$/skolehjem/vendor/league/event" /> <path value="$PROJECT_DIR$/skolehjem/vendor/league/event" />
<path value="$PROJECT_DIR$/skolehjem/vendor/league/flysystem" /> <path value="$PROJECT_DIR$/skolehjem/vendor/league/flysystem" />
<path value="$PROJECT_DIR$/skolehjem/vendor/league/oauth2-server" /> <path value="$PROJECT_DIR$/skolehjem/vendor/league/oauth2-server" />
<path value="$PROJECT_DIR$/skolehjem/vendor/nesbot/carbon" />
<path value="$PROJECT_DIR$/skolehjem/vendor/nyholm/psr7" /> <path value="$PROJECT_DIR$/skolehjem/vendor/nyholm/psr7" />
<path value="$PROJECT_DIR$/skolehjem/vendor/ramsey/collection" /> <path value="$PROJECT_DIR$/skolehjem/vendor/ramsey/collection" />
<path value="$PROJECT_DIR$/skolehjem/vendor/ramsey/uuid" /> <path value="$PROJECT_DIR$/skolehjem/vendor/ramsey/uuid" />
<path value="$PROJECT_DIR$/skolehjem/vendor/vlucas/phpdotenv" /> <path value="$PROJECT_DIR$/skolehjem/vendor/vlucas/phpdotenv" />
<path value="$PROJECT_DIR$/skolehjem/vendor/dnoegel/php-xdg-base-dir" />
<path value="$PROJECT_DIR$/skolehjem/vendor/egulias/email-validator" /> <path value="$PROJECT_DIR$/skolehjem/vendor/egulias/email-validator" />
<path value="$PROJECT_DIR$/skolehjem/vendor/laminas/laminas-diactoros" />
<path value="$PROJECT_DIR$/skolehjem/vendor/laminas/laminas-zendframework-bridge" />
<path value="$PROJECT_DIR$/skolehjem/vendor/laravel/framework" /> <path value="$PROJECT_DIR$/skolehjem/vendor/laravel/framework" />
<path value="$PROJECT_DIR$/skolehjem/vendor/laravel/passport" /> <path value="$PROJECT_DIR$/skolehjem/vendor/laravel/passport" />
<path value="$PROJECT_DIR$/skolehjem/vendor/laravel/tinker" /> <path value="$PROJECT_DIR$/skolehjem/vendor/laravel/tinker" />
@ -62,16 +55,12 @@
<path value="$PROJECT_DIR$/skolehjem/vendor/doctrine/inflector" /> <path value="$PROJECT_DIR$/skolehjem/vendor/doctrine/inflector" />
<path value="$PROJECT_DIR$/skolehjem/vendor/doctrine/lexer" /> <path value="$PROJECT_DIR$/skolehjem/vendor/doctrine/lexer" />
<path value="$PROJECT_DIR$/skolehjem/vendor/firebase/php-jwt" /> <path value="$PROJECT_DIR$/skolehjem/vendor/firebase/php-jwt" />
<path value="$PROJECT_DIR$/skolehjem/vendor/lcobucci/jwt" />
<path value="$PROJECT_DIR$/skolehjem/vendor/php-http/message-factory" />
<path value="$PROJECT_DIR$/skolehjem/vendor/fideloper/proxy" />
<path value="$PROJECT_DIR$/skolehjem/vendor/fruitcake/laravel-cors" /> <path value="$PROJECT_DIR$/skolehjem/vendor/fruitcake/laravel-cors" />
<path value="$PROJECT_DIR$/skolehjem/vendor/paragonie/random_compat" /> <path value="$PROJECT_DIR$/skolehjem/vendor/paragonie/random_compat" />
<path value="$PROJECT_DIR$/skolehjem/vendor/phpoption/phpoption" /> <path value="$PROJECT_DIR$/skolehjem/vendor/phpoption/phpoption" />
<path value="$PROJECT_DIR$/skolehjem/vendor/phpseclib/phpseclib" /> <path value="$PROJECT_DIR$/skolehjem/vendor/phpseclib/phpseclib" />
<path value="$PROJECT_DIR$/skolehjem/vendor/ralouphie/getallheaders" /> <path value="$PROJECT_DIR$/skolehjem/vendor/ralouphie/getallheaders" />
<path value="$PROJECT_DIR$/skolehjem/vendor/guzzlehttp/guzzle" /> <path value="$PROJECT_DIR$/skolehjem/vendor/guzzlehttp/guzzle" />
<path value="$PROJECT_DIR$/skolehjem/vendor/guzzlehttp/promises" />
<path value="$PROJECT_DIR$/skolehjem/vendor/guzzlehttp/psr7" /> <path value="$PROJECT_DIR$/skolehjem/vendor/guzzlehttp/psr7" />
<path value="$PROJECT_DIR$/skolehjem/vendor/swiftmailer/swiftmailer" /> <path value="$PROJECT_DIR$/skolehjem/vendor/swiftmailer/swiftmailer" />
<path value="$PROJECT_DIR$/skolehjem/vendor/tijsverkoyen/css-to-inline-styles" /> <path value="$PROJECT_DIR$/skolehjem/vendor/tijsverkoyen/css-to-inline-styles" />
@ -79,21 +68,12 @@
<path value="$PROJECT_DIR$/skolehjem/vendor/composer" /> <path value="$PROJECT_DIR$/skolehjem/vendor/composer" />
<path value="$PROJECT_DIR$/skolehjem/vendor/spatie/laravel-permission" /> <path value="$PROJECT_DIR$/skolehjem/vendor/spatie/laravel-permission" />
<path value="$PROJECT_DIR$/skolehjem/vendor/laravel/ui" /> <path value="$PROJECT_DIR$/skolehjem/vendor/laravel/ui" />
<path value="$PROJECT_DIR$/skolehjem/vendor/jaybizzle/crawler-detect" />
<path value="$PROJECT_DIR$/skolehjem/vendor/jenssegers/agent" />
<path value="$PROJECT_DIR$/skolehjem/vendor/mobiledetect/mobiledetectlib" />
<path value="$PROJECT_DIR$/skolehjem/vendor/scrivo/highlight.php" />
<path value="$PROJECT_DIR$/skolehjem/vendor/filp/whoops" />
<path value="$PROJECT_DIR$/skolehjem/vendor/facade/ignition-contracts" /> <path value="$PROJECT_DIR$/skolehjem/vendor/facade/ignition-contracts" />
<path value="$PROJECT_DIR$/skolehjem/vendor/facade/flare-client-php" />
<path value="$PROJECT_DIR$/skolehjem/vendor/mockery/mockery" /> <path value="$PROJECT_DIR$/skolehjem/vendor/mockery/mockery" />
<path value="$PROJECT_DIR$/skolehjem/vendor/theseer/tokenizer" /> <path value="$PROJECT_DIR$/skolehjem/vendor/theseer/tokenizer" />
<path value="$PROJECT_DIR$/skolehjem/vendor/webmozart/assert" /> <path value="$PROJECT_DIR$/skolehjem/vendor/webmozart/assert" />
<path value="$PROJECT_DIR$/skolehjem/vendor/fzaninotto/faker" /> <path value="$PROJECT_DIR$/skolehjem/vendor/fzaninotto/faker" />
<path value="$PROJECT_DIR$/skolehjem/vendor/facade/ignition" />
<path value="$PROJECT_DIR$/skolehjem/vendor/phpunit/php-timer" />
<path value="$PROJECT_DIR$/skolehjem/vendor/phpunit/php-code-coverage" /> <path value="$PROJECT_DIR$/skolehjem/vendor/phpunit/php-code-coverage" />
<path value="$PROJECT_DIR$/skolehjem/vendor/phpunit/php-file-iterator" />
<path value="$PROJECT_DIR$/skolehjem/vendor/phpunit/php-text-template" /> <path value="$PROJECT_DIR$/skolehjem/vendor/phpunit/php-text-template" />
<path value="$PROJECT_DIR$/skolehjem/vendor/phpunit/php-token-stream" /> <path value="$PROJECT_DIR$/skolehjem/vendor/phpunit/php-token-stream" />
<path value="$PROJECT_DIR$/skolehjem/vendor/sebastian/version" /> <path value="$PROJECT_DIR$/skolehjem/vendor/sebastian/version" />
@ -119,9 +99,52 @@
<path value="$PROJECT_DIR$/skolehjem/vendor/phpunit/phpunit" /> <path value="$PROJECT_DIR$/skolehjem/vendor/phpunit/phpunit" />
<path value="$PROJECT_DIR$/skolehjem/vendor/myclabs/deep-copy" /> <path value="$PROJECT_DIR$/skolehjem/vendor/myclabs/deep-copy" />
<path value="$PROJECT_DIR$/skolehjem/vendor/phar-io/manifest" /> <path value="$PROJECT_DIR$/skolehjem/vendor/phar-io/manifest" />
<path value="$PROJECT_DIR$/skolehjem/vendor/laravelcollective/html" />
<path value="$PROJECT_DIR$/skolehjem/vendor/directorytree/ldaprecord" />
<path value="$PROJECT_DIR$/skolehjem/vendor/directorytree/ldaprecord-laravel" />
<path value="$PROJECT_DIR$/skolehjem/vendor/tightenco/collect" />
<path value="$PROJECT_DIR$/skolehjem/vendor/dompdf/dompdf" />
<path value="$PROJECT_DIR$/skolehjem/vendor/barryvdh/laravel-dompdf" />
<path value="$PROJECT_DIR$/skolehjem/vendor/phenx/php-font-lib" />
<path value="$PROJECT_DIR$/skolehjem/vendor/phenx/php-svg-lib" />
<path value="$PROJECT_DIR$/skolehjem/vendor/laravel-notification-channels/webpush" />
<path value="$PROJECT_DIR$/skolehjem/vendor/minishlink/web-push" />
<path value="$PROJECT_DIR$/skolehjem/vendor/psr/http-client" />
<path value="$PROJECT_DIR$/skolehjem/vendor/psr/http-factory" />
<path value="$PROJECT_DIR$/skolehjem/vendor/web-token/jwt-key-mgmt" />
<path value="$PROJECT_DIR$/skolehjem/vendor/laminas/laminas-diactoros" />
<path value="$PROJECT_DIR$/skolehjem/vendor/laminas/laminas-zendframework-bridge" />
<path value="$PROJECT_DIR$/skolehjem/vendor/lcobucci/jwt" />
<path value="$PROJECT_DIR$/skolehjem/vendor/php-http/message-factory" />
<path value="$PROJECT_DIR$/skolehjem/vendor/symfony/http-client-contracts" />
<path value="$PROJECT_DIR$/skolehjem/vendor/phpunit/php-timer" />
<path value="$PROJECT_DIR$/skolehjem/vendor/phpunit/php-file-iterator" />
<path value="$PROJECT_DIR$/skolehjem/vendor/nesbot/carbon" />
<path value="$PROJECT_DIR$/skolehjem/vendor/league/commonmark" />
<path value="$PROJECT_DIR$/skolehjem/vendor/sabberworm/php-css-parser" />
<path value="$PROJECT_DIR$/skolehjem/vendor/filp/whoops" />
<path value="$PROJECT_DIR$/skolehjem/vendor/facade/ignition" />
<path value="$PROJECT_DIR$/skolehjem/vendor/fgrosse/phpasn1" />
<path value="$PROJECT_DIR$/skolehjem/vendor/fideloper/proxy" />
<path value="$PROJECT_DIR$/skolehjem/vendor/guzzlehttp/promises" />
<path value="$PROJECT_DIR$/skolehjem/vendor/mobiledetect/mobiledetectlib" />
<path value="$PROJECT_DIR$/skolehjem/vendor/jaybizzle/crawler-detect" />
<path value="$PROJECT_DIR$/skolehjem/vendor/jenssegers/agent" />
<path value="$PROJECT_DIR$/skolehjem/vendor/web-token/jwt-util-ecc" />
<path value="$PROJECT_DIR$/skolehjem/vendor/spomky-labs/base64url" />
<path value="$PROJECT_DIR$/skolehjem/vendor/web-token/jwt-core" />
<path value="$PROJECT_DIR$/skolehjem/vendor/web-token/jwt-signature" />
<path value="$PROJECT_DIR$/skolehjem/vendor/web-token/jwt-signature-algorithm-ecdsa" />
<path value="$PROJECT_DIR$/skolehjem/vendor/league/mime-type-detection" />
<path value="$PROJECT_DIR$/skolehjem/vendor/scrivo/highlight.php" />
<path value="$PROJECT_DIR$/skolehjem/vendor/thecodingmachine/safe" />
<path value="$PROJECT_DIR$/skolehjem/vendor/facade/flare-client-php" />
<path value="$PROJECT_DIR$/skolehjem/vendor/psy/psysh" />
<path value="$PROJECT_DIR$/skolehjem/vendor/postcss/postcss" />
<path value="$PROJECT_DIR$/skolehjem/vendor/react/promise" />
</include_path> </include_path>
</component> </component>
<component name="PhpProjectSharedConfiguration" php_language_level="7.2" /> <component name="PhpProjectSharedConfiguration" php_language_level="8.0" />
<component name="PhpUnit"> <component name="PhpUnit">
<phpunit_settings> <phpunit_settings>
<PhpUnitSettings custom_loader_path="$PROJECT_DIR$/skolehjem/vendor/autoload.php" /> <PhpUnitSettings custom_loader_path="$PROJECT_DIR$/skolehjem/vendor/autoload.php" />

View File

@ -2,23 +2,25 @@
<module type="WEB_MODULE" version="4"> <module type="WEB_MODULE" version="4">
<component name="NewModuleRootManager"> <component name="NewModuleRootManager">
<content url="file://$MODULE_DIR$"> <content url="file://$MODULE_DIR$">
<sourceFolder url="file://$MODULE_DIR$/skolehjem/app" isTestSource="false" packagePrefix="App\" />
<sourceFolder url="file://$MODULE_DIR$/skolehjem/tests" isTestSource="true" packagePrefix="Tests\" /> <sourceFolder url="file://$MODULE_DIR$/skolehjem/tests" isTestSource="true" packagePrefix="Tests\" />
<sourceFolder url="file://$MODULE_DIR$/tests" isTestSource="true" /> <sourceFolder url="file://$MODULE_DIR$/tests" isTestSource="true" />
<sourceFolder url="file://$MODULE_DIR$/skolehjem/app" isTestSource="false" packagePrefix="App\" />
<sourceFolder url="file://$MODULE_DIR$/spec" isTestSource="true" /> <sourceFolder url="file://$MODULE_DIR$/spec" isTestSource="true" />
<excludeFolder url="file://$MODULE_DIR$/skolehjem/vendor/asm89/stack-cors" /> <excludeFolder url="file://$MODULE_DIR$/skolehjem/vendor/asm89/stack-cors" />
<excludeFolder url="file://$MODULE_DIR$/skolehjem/vendor/barryvdh/laravel-dompdf" />
<excludeFolder url="file://$MODULE_DIR$/skolehjem/vendor/brick/math" /> <excludeFolder url="file://$MODULE_DIR$/skolehjem/vendor/brick/math" />
<excludeFolder url="file://$MODULE_DIR$/skolehjem/vendor/composer" /> <excludeFolder url="file://$MODULE_DIR$/skolehjem/vendor/composer" />
<excludeFolder url="file://$MODULE_DIR$/skolehjem/vendor/defuse/php-encryption" /> <excludeFolder url="file://$MODULE_DIR$/skolehjem/vendor/defuse/php-encryption" />
<excludeFolder url="file://$MODULE_DIR$/skolehjem/vendor/dnoegel/php-xdg-base-dir" />
<excludeFolder url="file://$MODULE_DIR$/skolehjem/vendor/doctrine/inflector" /> <excludeFolder url="file://$MODULE_DIR$/skolehjem/vendor/doctrine/inflector" />
<excludeFolder url="file://$MODULE_DIR$/skolehjem/vendor/doctrine/instantiator" /> <excludeFolder url="file://$MODULE_DIR$/skolehjem/vendor/doctrine/instantiator" />
<excludeFolder url="file://$MODULE_DIR$/skolehjem/vendor/doctrine/lexer" /> <excludeFolder url="file://$MODULE_DIR$/skolehjem/vendor/doctrine/lexer" />
<excludeFolder url="file://$MODULE_DIR$/skolehjem/vendor/dompdf/dompdf" />
<excludeFolder url="file://$MODULE_DIR$/skolehjem/vendor/dragonmantank/cron-expression" /> <excludeFolder url="file://$MODULE_DIR$/skolehjem/vendor/dragonmantank/cron-expression" />
<excludeFolder url="file://$MODULE_DIR$/skolehjem/vendor/egulias/email-validator" /> <excludeFolder url="file://$MODULE_DIR$/skolehjem/vendor/egulias/email-validator" />
<excludeFolder url="file://$MODULE_DIR$/skolehjem/vendor/facade/flare-client-php" /> <excludeFolder url="file://$MODULE_DIR$/skolehjem/vendor/facade/flare-client-php" />
<excludeFolder url="file://$MODULE_DIR$/skolehjem/vendor/facade/ignition" /> <excludeFolder url="file://$MODULE_DIR$/skolehjem/vendor/facade/ignition" />
<excludeFolder url="file://$MODULE_DIR$/skolehjem/vendor/facade/ignition-contracts" /> <excludeFolder url="file://$MODULE_DIR$/skolehjem/vendor/facade/ignition-contracts" />
<excludeFolder url="file://$MODULE_DIR$/skolehjem/vendor/fgrosse/phpasn1" />
<excludeFolder url="file://$MODULE_DIR$/skolehjem/vendor/fideloper/proxy" /> <excludeFolder url="file://$MODULE_DIR$/skolehjem/vendor/fideloper/proxy" />
<excludeFolder url="file://$MODULE_DIR$/skolehjem/vendor/filp/whoops" /> <excludeFolder url="file://$MODULE_DIR$/skolehjem/vendor/filp/whoops" />
<excludeFolder url="file://$MODULE_DIR$/skolehjem/vendor/firebase/php-jwt" /> <excludeFolder url="file://$MODULE_DIR$/skolehjem/vendor/firebase/php-jwt" />
@ -30,17 +32,18 @@
<excludeFolder url="file://$MODULE_DIR$/skolehjem/vendor/hamcrest/hamcrest-php" /> <excludeFolder url="file://$MODULE_DIR$/skolehjem/vendor/hamcrest/hamcrest-php" />
<excludeFolder url="file://$MODULE_DIR$/skolehjem/vendor/jaybizzle/crawler-detect" /> <excludeFolder url="file://$MODULE_DIR$/skolehjem/vendor/jaybizzle/crawler-detect" />
<excludeFolder url="file://$MODULE_DIR$/skolehjem/vendor/jenssegers/agent" /> <excludeFolder url="file://$MODULE_DIR$/skolehjem/vendor/jenssegers/agent" />
<excludeFolder url="file://$MODULE_DIR$/skolehjem/vendor/laminas/laminas-diactoros" /> <excludeFolder url="file://$MODULE_DIR$/skolehjem/vendor/laravel-notification-channels/webpush" />
<excludeFolder url="file://$MODULE_DIR$/skolehjem/vendor/laminas/laminas-zendframework-bridge" />
<excludeFolder url="file://$MODULE_DIR$/skolehjem/vendor/laravel/framework" /> <excludeFolder url="file://$MODULE_DIR$/skolehjem/vendor/laravel/framework" />
<excludeFolder url="file://$MODULE_DIR$/skolehjem/vendor/laravel/passport" /> <excludeFolder url="file://$MODULE_DIR$/skolehjem/vendor/laravel/passport" />
<excludeFolder url="file://$MODULE_DIR$/skolehjem/vendor/laravel/tinker" /> <excludeFolder url="file://$MODULE_DIR$/skolehjem/vendor/laravel/tinker" />
<excludeFolder url="file://$MODULE_DIR$/skolehjem/vendor/laravel/ui" /> <excludeFolder url="file://$MODULE_DIR$/skolehjem/vendor/laravel/ui" />
<excludeFolder url="file://$MODULE_DIR$/skolehjem/vendor/lcobucci/jwt" /> <excludeFolder url="file://$MODULE_DIR$/skolehjem/vendor/laravelcollective/html" />
<excludeFolder url="file://$MODULE_DIR$/skolehjem/vendor/league/commonmark" /> <excludeFolder url="file://$MODULE_DIR$/skolehjem/vendor/league/commonmark" />
<excludeFolder url="file://$MODULE_DIR$/skolehjem/vendor/league/event" /> <excludeFolder url="file://$MODULE_DIR$/skolehjem/vendor/league/event" />
<excludeFolder url="file://$MODULE_DIR$/skolehjem/vendor/league/flysystem" /> <excludeFolder url="file://$MODULE_DIR$/skolehjem/vendor/league/flysystem" />
<excludeFolder url="file://$MODULE_DIR$/skolehjem/vendor/league/mime-type-detection" />
<excludeFolder url="file://$MODULE_DIR$/skolehjem/vendor/league/oauth2-server" /> <excludeFolder url="file://$MODULE_DIR$/skolehjem/vendor/league/oauth2-server" />
<excludeFolder url="file://$MODULE_DIR$/skolehjem/vendor/minishlink/web-push" />
<excludeFolder url="file://$MODULE_DIR$/skolehjem/vendor/mobiledetect/mobiledetectlib" /> <excludeFolder url="file://$MODULE_DIR$/skolehjem/vendor/mobiledetect/mobiledetectlib" />
<excludeFolder url="file://$MODULE_DIR$/skolehjem/vendor/mockery/mockery" /> <excludeFolder url="file://$MODULE_DIR$/skolehjem/vendor/mockery/mockery" />
<excludeFolder url="file://$MODULE_DIR$/skolehjem/vendor/monolog/monolog" /> <excludeFolder url="file://$MODULE_DIR$/skolehjem/vendor/monolog/monolog" />
@ -53,7 +56,8 @@
<excludeFolder url="file://$MODULE_DIR$/skolehjem/vendor/paragonie/random_compat" /> <excludeFolder url="file://$MODULE_DIR$/skolehjem/vendor/paragonie/random_compat" />
<excludeFolder url="file://$MODULE_DIR$/skolehjem/vendor/phar-io/manifest" /> <excludeFolder url="file://$MODULE_DIR$/skolehjem/vendor/phar-io/manifest" />
<excludeFolder url="file://$MODULE_DIR$/skolehjem/vendor/phar-io/version" /> <excludeFolder url="file://$MODULE_DIR$/skolehjem/vendor/phar-io/version" />
<excludeFolder url="file://$MODULE_DIR$/skolehjem/vendor/php-http/message-factory" /> <excludeFolder url="file://$MODULE_DIR$/skolehjem/vendor/phenx/php-font-lib" />
<excludeFolder url="file://$MODULE_DIR$/skolehjem/vendor/phenx/php-svg-lib" />
<excludeFolder url="file://$MODULE_DIR$/skolehjem/vendor/phpdocumentor/reflection-common" /> <excludeFolder url="file://$MODULE_DIR$/skolehjem/vendor/phpdocumentor/reflection-common" />
<excludeFolder url="file://$MODULE_DIR$/skolehjem/vendor/phpdocumentor/reflection-docblock" /> <excludeFolder url="file://$MODULE_DIR$/skolehjem/vendor/phpdocumentor/reflection-docblock" />
<excludeFolder url="file://$MODULE_DIR$/skolehjem/vendor/phpdocumentor/type-resolver" /> <excludeFolder url="file://$MODULE_DIR$/skolehjem/vendor/phpdocumentor/type-resolver" />
@ -68,6 +72,7 @@
<excludeFolder url="file://$MODULE_DIR$/skolehjem/vendor/phpunit/phpunit" /> <excludeFolder url="file://$MODULE_DIR$/skolehjem/vendor/phpunit/phpunit" />
<excludeFolder url="file://$MODULE_DIR$/skolehjem/vendor/psr/container" /> <excludeFolder url="file://$MODULE_DIR$/skolehjem/vendor/psr/container" />
<excludeFolder url="file://$MODULE_DIR$/skolehjem/vendor/psr/event-dispatcher" /> <excludeFolder url="file://$MODULE_DIR$/skolehjem/vendor/psr/event-dispatcher" />
<excludeFolder url="file://$MODULE_DIR$/skolehjem/vendor/psr/http-client" />
<excludeFolder url="file://$MODULE_DIR$/skolehjem/vendor/psr/http-factory" /> <excludeFolder url="file://$MODULE_DIR$/skolehjem/vendor/psr/http-factory" />
<excludeFolder url="file://$MODULE_DIR$/skolehjem/vendor/psr/http-message" /> <excludeFolder url="file://$MODULE_DIR$/skolehjem/vendor/psr/http-message" />
<excludeFolder url="file://$MODULE_DIR$/skolehjem/vendor/psr/log" /> <excludeFolder url="file://$MODULE_DIR$/skolehjem/vendor/psr/log" />
@ -76,7 +81,7 @@
<excludeFolder url="file://$MODULE_DIR$/skolehjem/vendor/ralouphie/getallheaders" /> <excludeFolder url="file://$MODULE_DIR$/skolehjem/vendor/ralouphie/getallheaders" />
<excludeFolder url="file://$MODULE_DIR$/skolehjem/vendor/ramsey/collection" /> <excludeFolder url="file://$MODULE_DIR$/skolehjem/vendor/ramsey/collection" />
<excludeFolder url="file://$MODULE_DIR$/skolehjem/vendor/ramsey/uuid" /> <excludeFolder url="file://$MODULE_DIR$/skolehjem/vendor/ramsey/uuid" />
<excludeFolder url="file://$MODULE_DIR$/skolehjem/vendor/scrivo/highlight.php" /> <excludeFolder url="file://$MODULE_DIR$/skolehjem/vendor/sabberworm/php-css-parser" />
<excludeFolder url="file://$MODULE_DIR$/skolehjem/vendor/sebastian/code-unit-reverse-lookup" /> <excludeFolder url="file://$MODULE_DIR$/skolehjem/vendor/sebastian/code-unit-reverse-lookup" />
<excludeFolder url="file://$MODULE_DIR$/skolehjem/vendor/sebastian/comparator" /> <excludeFolder url="file://$MODULE_DIR$/skolehjem/vendor/sebastian/comparator" />
<excludeFolder url="file://$MODULE_DIR$/skolehjem/vendor/sebastian/diff" /> <excludeFolder url="file://$MODULE_DIR$/skolehjem/vendor/sebastian/diff" />
@ -90,6 +95,7 @@
<excludeFolder url="file://$MODULE_DIR$/skolehjem/vendor/sebastian/type" /> <excludeFolder url="file://$MODULE_DIR$/skolehjem/vendor/sebastian/type" />
<excludeFolder url="file://$MODULE_DIR$/skolehjem/vendor/sebastian/version" /> <excludeFolder url="file://$MODULE_DIR$/skolehjem/vendor/sebastian/version" />
<excludeFolder url="file://$MODULE_DIR$/skolehjem/vendor/spatie/laravel-permission" /> <excludeFolder url="file://$MODULE_DIR$/skolehjem/vendor/spatie/laravel-permission" />
<excludeFolder url="file://$MODULE_DIR$/skolehjem/vendor/spomky-labs/base64url" />
<excludeFolder url="file://$MODULE_DIR$/skolehjem/vendor/swiftmailer/swiftmailer" /> <excludeFolder url="file://$MODULE_DIR$/skolehjem/vendor/swiftmailer/swiftmailer" />
<excludeFolder url="file://$MODULE_DIR$/skolehjem/vendor/symfony/console" /> <excludeFolder url="file://$MODULE_DIR$/skolehjem/vendor/symfony/console" />
<excludeFolder url="file://$MODULE_DIR$/skolehjem/vendor/symfony/css-selector" /> <excludeFolder url="file://$MODULE_DIR$/skolehjem/vendor/symfony/css-selector" />
@ -98,6 +104,7 @@
<excludeFolder url="file://$MODULE_DIR$/skolehjem/vendor/symfony/event-dispatcher" /> <excludeFolder url="file://$MODULE_DIR$/skolehjem/vendor/symfony/event-dispatcher" />
<excludeFolder url="file://$MODULE_DIR$/skolehjem/vendor/symfony/event-dispatcher-contracts" /> <excludeFolder url="file://$MODULE_DIR$/skolehjem/vendor/symfony/event-dispatcher-contracts" />
<excludeFolder url="file://$MODULE_DIR$/skolehjem/vendor/symfony/finder" /> <excludeFolder url="file://$MODULE_DIR$/skolehjem/vendor/symfony/finder" />
<excludeFolder url="file://$MODULE_DIR$/skolehjem/vendor/symfony/http-client-contracts" />
<excludeFolder url="file://$MODULE_DIR$/skolehjem/vendor/symfony/http-foundation" /> <excludeFolder url="file://$MODULE_DIR$/skolehjem/vendor/symfony/http-foundation" />
<excludeFolder url="file://$MODULE_DIR$/skolehjem/vendor/symfony/http-kernel" /> <excludeFolder url="file://$MODULE_DIR$/skolehjem/vendor/symfony/http-kernel" />
<excludeFolder url="file://$MODULE_DIR$/skolehjem/vendor/symfony/mime" /> <excludeFolder url="file://$MODULE_DIR$/skolehjem/vendor/symfony/mime" />
@ -122,7 +129,14 @@
<excludeFolder url="file://$MODULE_DIR$/skolehjem/vendor/tijsverkoyen/css-to-inline-styles" /> <excludeFolder url="file://$MODULE_DIR$/skolehjem/vendor/tijsverkoyen/css-to-inline-styles" />
<excludeFolder url="file://$MODULE_DIR$/skolehjem/vendor/vlucas/phpdotenv" /> <excludeFolder url="file://$MODULE_DIR$/skolehjem/vendor/vlucas/phpdotenv" />
<excludeFolder url="file://$MODULE_DIR$/skolehjem/vendor/voku/portable-ascii" /> <excludeFolder url="file://$MODULE_DIR$/skolehjem/vendor/voku/portable-ascii" />
<excludeFolder url="file://$MODULE_DIR$/skolehjem/vendor/web-token/jwt-core" />
<excludeFolder url="file://$MODULE_DIR$/skolehjem/vendor/web-token/jwt-key-mgmt" />
<excludeFolder url="file://$MODULE_DIR$/skolehjem/vendor/web-token/jwt-signature" />
<excludeFolder url="file://$MODULE_DIR$/skolehjem/vendor/web-token/jwt-signature-algorithm-ecdsa" />
<excludeFolder url="file://$MODULE_DIR$/skolehjem/vendor/web-token/jwt-util-ecc" />
<excludeFolder url="file://$MODULE_DIR$/skolehjem/vendor/webmozart/assert" /> <excludeFolder url="file://$MODULE_DIR$/skolehjem/vendor/webmozart/assert" />
<excludeFolder url="file://$MODULE_DIR$/skolehjem/vendor/postcss/postcss" />
<excludeFolder url="file://$MODULE_DIR$/skolehjem/vendor/react/promise" />
</content> </content>
<orderEntry type="inheritedJdk" /> <orderEntry type="inheritedJdk" />
<orderEntry type="sourceFolder" forTests="false" /> <orderEntry type="sourceFolder" forTests="false" />

BIN
SetupHelpVideo.part01.rar Normal file

Binary file not shown.

BIN
SetupHelpVideo.part02.rar Normal file

Binary file not shown.

BIN
SetupHelpVideo.part03.rar Normal file

Binary file not shown.

BIN
SetupHelpVideo.part04.rar Normal file

Binary file not shown.

BIN
SetupHelpVideo.part05.rar Normal file

Binary file not shown.

BIN
SetupHelpVideo.part06.rar Normal file

Binary file not shown.

BIN
SetupHelpVideo.part07.rar Normal file

Binary file not shown.

View File

@ -1,35 +1,101 @@
package sde.odense.skolehjem; package sde.odense.skolehjem;
import androidx.annotation.NonNull;
import androidx.appcompat.app.AppCompatActivity; import androidx.appcompat.app.AppCompatActivity;
import androidx.core.app.ActivityCompat;
import androidx.core.content.ContextCompat;
import android.Manifest;
import android.annotation.SuppressLint; import android.annotation.SuppressLint;
import android.app.Activity;
import android.app.AlertDialog; import android.app.AlertDialog;
import android.content.Context; import android.content.Context;
import android.content.DialogInterface; import android.content.DialogInterface;
import android.content.Intent; import android.content.Intent;
import android.content.pm.PackageManager;
import android.content.res.Configuration;
import android.net.Uri; import android.net.Uri;
import android.os.Build;
import android.os.Bundle; import android.os.Bundle;
import android.webkit.JavascriptInterface; import android.os.Environment;
import android.provider.MediaStore;
import android.util.Log;
import android.view.KeyEvent;
import android.view.View;
import android.webkit.JsResult; import android.webkit.JsResult;
import android.webkit.ValueCallback;
import android.webkit.WebChromeClient; import android.webkit.WebChromeClient;
import android.webkit.WebSettings; import android.webkit.WebSettings;
import android.webkit.WebView; import android.webkit.WebView;
import android.webkit.WebViewClient; import android.webkit.WebViewClient;
import android.widget.Toast;
import java.io.File;
import java.io.IOException;
import java.text.SimpleDateFormat;
import java.util.Date;
public class MainActivity extends AppCompatActivity { public class MainActivity extends AppCompatActivity {
private WebView webView; private WebView webView;
private static final String TEL_PREFIX = "tel:"; private static final String TEL_PREFIX = "tel:";
private static final String TAG = MainActivity.class.getSimpleName();
private final static int FCR = 1;
private String mCM;
private ValueCallback<Uri> mUM;
private ValueCallback<Uri[]> mUMA;
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent intent) {
super.onActivityResult(requestCode, resultCode, intent);
if (Build.VERSION.SDK_INT >= 21) {
Uri[] results = null;
//Check if response is positive
if (resultCode == Activity.RESULT_OK) {
if (requestCode == FCR) {
if (null == mUMA) {
return;
}
if (intent == null) {
//Capture Photo if no image available
if (mCM != null) {
results = new Uri[]{Uri.parse(mCM)};
}
} else {
String dataString = intent.getDataString();
if (dataString != null) {
results = new Uri[]{Uri.parse(dataString)};
}
}
}
}
mUMA.onReceiveValue(results);
mUMA = null;
} else {
if (requestCode == FCR) {
if (null == mUM) return;
Uri result = intent == null || resultCode != RESULT_OK ? null : intent.getData();
mUM.onReceiveValue(result);
mUM = null;
}
}
}
@SuppressLint({"SetJavaScriptEnabled", "AddJavascriptInterface"}) @SuppressLint({"SetJavaScriptEnabled", "AddJavascriptInterface"})
@Override @Override
protected void onCreate(Bundle savedInstanceState) { protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState); super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main); setContentView(R.layout.activity_main);
if (Build.VERSION.SDK_INT >= 23 && (ContextCompat.checkSelfPermission(this, Manifest.permission.WRITE_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED || ContextCompat.checkSelfPermission(this, Manifest.permission.CAMERA) != PackageManager.PERMISSION_GRANTED)) {
ActivityCompat.requestPermissions(MainActivity.this, new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE, Manifest.permission.CAMERA}, 1);
}
webView = findViewById(R.id.webView); webView = findViewById(R.id.webView);
webView.setWebViewClient(new CustomWebViewClient());
webView.setWebChromeClient(new CustomWebChromeClient(this));
//Settings //Settings
WebSettings webSettings = webView.getSettings(); WebSettings webSettings = webView.getSettings();
@ -42,38 +108,20 @@ public class MainActivity extends AppCompatActivity {
webSettings.setSupportZoom(true); webSettings.setSupportZoom(true);
webSettings.setDefaultTextEncodingName("utf-8"); webSettings.setDefaultTextEncodingName("utf-8");
webSettings.setCacheMode(WebSettings.LOAD_NO_CACHE); webSettings.setCacheMode(WebSettings.LOAD_NO_CACHE);
webSettings.setAllowFileAccess(true);
webView.loadUrl("https://ekapp.sde.dk"); if (Build.VERSION.SDK_INT >= 21) {
webSettings.setMixedContentMode(0);
webView.setLayerType(View.LAYER_TYPE_HARDWARE, null);
} else if (Build.VERSION.SDK_INT >= 19) {
webView.setLayerType(View.LAYER_TYPE_HARDWARE, null);
} else if (Build.VERSION.SDK_INT < 19) {
webView.setLayerType(View.LAYER_TYPE_SOFTWARE, null);
} }
@Override webView.setWebViewClient(new CustomWebViewClient());
public void onBackPressed() { webView.setWebChromeClient(new WebChromeClient(){
if(webView.canGoBack()) Context myApp = getApplicationContext();
webView.goBack();
else
super.onBackPressed();
}
private class CustomWebViewClient extends WebViewClient {
@Override
public boolean shouldOverrideUrlLoading(WebView wv, String url) {
if(url.startsWith(TEL_PREFIX)) {
Intent intent = new Intent(Intent.ACTION_DIAL);
intent.setData(Uri.parse(url));
startActivity(intent);
return true;
}
return false;
}
}
static final class CustomWebChromeClient extends WebChromeClient {
Context myApp;
CustomWebChromeClient(Context mContext){
myApp = mContext;
}
@Override @Override
public boolean onJsConfirm(WebView view, String url, String message, final JsResult result) { public boolean onJsConfirm(WebView view, String url, String message, final JsResult result) {
@ -101,5 +149,148 @@ public class MainActivity extends AppCompatActivity {
return true; return true;
} }
//For Android 3.0+
public void openFileChooser(ValueCallback<Uri> uploadMsg) {
mUM = uploadMsg;
Intent i = new Intent(Intent.ACTION_GET_CONTENT);
i.addCategory(Intent.CATEGORY_OPENABLE);
i.setType("*/*");
MainActivity.this.startActivityForResult(Intent.createChooser(i, "File Chooser"), FCR);
}
// For Android 3.0+, above method not supported in some android 3+ versions, in such case we use this
public void openFileChooser(ValueCallback uploadMsg, String acceptType) {
mUM = uploadMsg;
Intent i = new Intent(Intent.ACTION_GET_CONTENT);
i.addCategory(Intent.CATEGORY_OPENABLE);
i.setType("*/*");
MainActivity.this.startActivityForResult(
Intent.createChooser(i, "File Browser"),
FCR);
}
//For Android 4.1+
public void openFileChooser(ValueCallback<Uri> uploadMsg, String acceptType, String capture) {
mUM = uploadMsg;
Intent i = new Intent(Intent.ACTION_GET_CONTENT);
i.addCategory(Intent.CATEGORY_OPENABLE);
i.setType("*/*");
MainActivity.this.startActivityForResult(Intent.createChooser(i, "File Chooser"), MainActivity.FCR);
}
//For Android 5.0+
public boolean onShowFileChooser(
WebView webView, ValueCallback<Uri[]> filePathCallback,
WebChromeClient.FileChooserParams fileChooserParams) {
if (mUMA != null) {
mUMA.onReceiveValue(null);
}
mUMA = filePathCallback;
Intent takePictureIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
if (takePictureIntent.resolveActivity(MainActivity.this.getPackageManager()) != null) {
File photoFile = null;
try {
photoFile = createImageFile();
takePictureIntent.putExtra("PhotoPath", mCM);
} catch (IOException ex) {
Log.e(TAG, "Image file creation failed", ex);
}
if (photoFile != null) {
mCM = "file:" + photoFile.getAbsolutePath();
takePictureIntent.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(photoFile));
} else {
takePictureIntent = null;
}
}
Intent contentSelectionIntent = new Intent(Intent.ACTION_GET_CONTENT);
contentSelectionIntent.addCategory(Intent.CATEGORY_OPENABLE);
contentSelectionIntent.setType("*/*");
Intent[] intentArray;
if (takePictureIntent != null) {
intentArray = new Intent[]{takePictureIntent};
} else {
intentArray = new Intent[0];
}
Intent chooserIntent = new Intent(Intent.ACTION_CHOOSER);
chooserIntent.putExtra(Intent.EXTRA_INTENT, contentSelectionIntent);
chooserIntent.putExtra(Intent.EXTRA_TITLE, "Image Chooser");
chooserIntent.putExtra(Intent.EXTRA_INITIAL_INTENTS, intentArray);
startActivityForResult(chooserIntent, FCR);
return true;
}
});
webView.loadUrl("https://ekapp.sde.dk");
}
// Create an image file
private File createImageFile() throws IOException {
@SuppressLint("SimpleDateFormat") String timeStamp = new SimpleDateFormat("yyyyMMdd_HHmmss").format(new Date());
String imageFileName = "img_" + timeStamp + "_";
File storageDir = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES);
return File.createTempFile(imageFileName, ".jpg", storageDir);
}
@Override
public void onBackPressed() {
if(webView.canGoBack())
webView.goBack();
else
super.onBackPressed();
}
@Override
public boolean onKeyDown(int keyCode, @NonNull KeyEvent event) {
if (event.getAction() == KeyEvent.ACTION_DOWN) {
switch (keyCode) {
case KeyEvent.KEYCODE_BACK:
if (webView.canGoBack()) {
webView.goBack();
} else {
finish();
}
return true;
}
}
return super.onKeyDown(keyCode, event);
}
@Override
public void onConfigurationChanged(Configuration newConfig) {
super.onConfigurationChanged(newConfig);
}
private class CustomWebViewClient extends WebViewClient {
@Override
public boolean shouldOverrideUrlLoading(WebView wv, String url) {
if(url.startsWith(TEL_PREFIX)) {
Intent intent = new Intent(Intent.ACTION_DIAL);
intent.setData(Uri.parse(url));
startActivity(intent);
return true;
}
return false;
}
public void onReceivedError(WebView view, int errorCode, String description, String failingUrl) {
Toast.makeText(getApplicationContext(), "Failed loading app!", Toast.LENGTH_SHORT).show();
}
} }
} }

View File

@ -1,5 +1,5 @@
<?xml version='1.0' encoding='UTF-8'?> <?xml version='1.0' encoding='UTF-8'?>
<androidx.appcompat> <androidx.appcompat>
<appcompat versions="1.0.0-alpha1,1.0.0-alpha3,1.0.0-beta01,1.0.0-rc01,1.0.0-rc02,1.0.0,1.0.1,1.0.2,1.1.0-alpha01,1.1.0-alpha02,1.1.0-alpha03,1.1.0-alpha04,1.1.0-alpha05,1.1.0-beta01,1.1.0-rc01,1.1.0,1.2.0-alpha01,1.2.0-alpha02,1.2.0-alpha03,1.2.0-beta01,1.2.0-rc01,1.2.0-rc02,1.3.0-alpha01"/> <appcompat versions="1.0.0-alpha1,1.0.0-alpha3,1.0.0-beta01,1.0.0-rc01,1.0.0-rc02,1.0.0,1.0.1,1.0.2,1.1.0-alpha01,1.1.0-alpha02,1.1.0-alpha03,1.1.0-alpha04,1.1.0-alpha05,1.1.0-beta01,1.1.0-rc01,1.1.0,1.2.0-alpha01,1.2.0-alpha02,1.2.0-alpha03,1.2.0-beta01,1.2.0-rc01,1.2.0-rc02,1.2.0,1.3.0-alpha01"/>
<appcompat-resources versions="1.1.0-alpha03,1.1.0-alpha04,1.1.0-alpha05,1.1.0-beta01,1.1.0-rc01,1.1.0,1.2.0-alpha01,1.2.0-alpha02,1.2.0-alpha03,1.2.0-beta01,1.2.0-rc01,1.2.0-rc02,1.3.0-alpha01"/> <appcompat-resources versions="1.1.0-alpha03,1.1.0-alpha04,1.1.0-alpha05,1.1.0-beta01,1.1.0-rc01,1.1.0,1.2.0-alpha01,1.2.0-alpha02,1.2.0-alpha03,1.2.0-beta01,1.2.0-rc01,1.2.0-rc02,1.2.0,1.3.0-alpha01"/>
</androidx.appcompat> </androidx.appcompat>

View File

@ -1,10 +1,10 @@
<?xml version='1.0' encoding='UTF-8'?> <?xml version='1.0' encoding='UTF-8'?>
<androidx.test.espresso> <androidx.test.espresso>
<espresso-accessibility versions="3.1.0-alpha1,3.1.0-alpha2,3.1.0-alpha3,3.1.0-alpha4,3.1.0-beta01,3.1.0-beta02,3.1.0,3.1.1-alpha01,3.1.1-beta01,3.1.1,3.1.2-alpha01,3.2.0-alpha02,3.2.0-alpha03,3.2.0-alpha04,3.2.0-alpha05,3.2.0-beta01,3.2.0,3.3.0-alpha01,3.3.0-alpha02,3.3.0-alpha03,3.3.0-alpha04,3.3.0-alpha05,3.3.0-beta01,3.3.0-beta02,3.3.0-rc01,3.3.0-rc02"/> <espresso-accessibility versions="3.1.0-alpha1,3.1.0-alpha2,3.1.0-alpha3,3.1.0-alpha4,3.1.0-beta01,3.1.0-beta02,3.1.0,3.1.1-alpha01,3.1.1-beta01,3.1.1,3.1.2-alpha01,3.2.0-alpha02,3.2.0-alpha03,3.2.0-alpha04,3.2.0-alpha05,3.2.0-beta01,3.2.0,3.3.0-alpha01,3.3.0-alpha02,3.3.0-alpha03,3.3.0-alpha04,3.3.0-alpha05,3.3.0-beta01,3.3.0-beta02,3.3.0-rc01,3.3.0-rc02,3.3.0-rc03"/>
<espresso-contrib versions="3.1.0-alpha1,3.1.0-alpha2,3.1.0-alpha3,3.1.0-alpha4,3.1.0-beta01,3.1.0-beta02,3.1.0,3.1.1-alpha01,3.1.1-beta01,3.1.1,3.1.2-alpha01,3.2.0-alpha02,3.2.0-alpha03,3.2.0-alpha04,3.2.0-alpha05,3.2.0-beta01,3.2.0,3.3.0-alpha01,3.3.0-alpha02,3.3.0-alpha03,3.3.0-alpha04,3.3.0-alpha05,3.3.0-beta01,3.3.0-beta02,3.3.0-rc01,3.3.0-rc02"/> <espresso-contrib versions="3.1.0-alpha1,3.1.0-alpha2,3.1.0-alpha3,3.1.0-alpha4,3.1.0-beta01,3.1.0-beta02,3.1.0,3.1.1-alpha01,3.1.1-beta01,3.1.1,3.1.2-alpha01,3.2.0-alpha02,3.2.0-alpha03,3.2.0-alpha04,3.2.0-alpha05,3.2.0-beta01,3.2.0,3.3.0-alpha01,3.3.0-alpha02,3.3.0-alpha03,3.3.0-alpha04,3.3.0-alpha05,3.3.0-beta01,3.3.0-beta02,3.3.0-rc01,3.3.0-rc02,3.3.0-rc03"/>
<espresso-core versions="3.1.0-alpha1,3.1.0-alpha2,3.1.0-alpha3,3.1.0-alpha4,3.1.0-beta01,3.1.0-beta02,3.1.0,3.1.1-alpha01,3.1.1-beta01,3.1.1,3.1.2-alpha01,3.2.0-alpha02,3.2.0-alpha03,3.2.0-alpha04,3.2.0-alpha05,3.2.0-beta01,3.2.0,3.3.0-alpha01,3.3.0-alpha02,3.3.0-alpha03,3.3.0-alpha04,3.3.0-alpha05,3.3.0-beta01,3.3.0-beta02,3.3.0-rc01,3.3.0-rc02"/> <espresso-core versions="3.1.0-alpha1,3.1.0-alpha2,3.1.0-alpha3,3.1.0-alpha4,3.1.0-beta01,3.1.0-beta02,3.1.0,3.1.1-alpha01,3.1.1-beta01,3.1.1,3.1.2-alpha01,3.2.0-alpha02,3.2.0-alpha03,3.2.0-alpha04,3.2.0-alpha05,3.2.0-beta01,3.2.0,3.3.0-alpha01,3.3.0-alpha02,3.3.0-alpha03,3.3.0-alpha04,3.3.0-alpha05,3.3.0-beta01,3.3.0-beta02,3.3.0-rc01,3.3.0-rc02,3.3.0-rc03"/>
<espresso-idling-resource versions="3.1.0-alpha1,3.1.0-alpha2,3.1.0-alpha3,3.1.0-alpha4,3.1.0-beta01,3.1.0-beta02,3.1.0,3.1.1-alpha01,3.1.1-beta01,3.1.1,3.1.2-alpha01,3.2.0-alpha02,3.2.0-alpha03,3.2.0-alpha04,3.2.0-alpha05,3.2.0-beta01,3.2.0,3.3.0-alpha01,3.3.0-alpha02,3.3.0-alpha03,3.3.0-alpha04,3.3.0-alpha05,3.3.0-beta01,3.3.0-beta02,3.3.0-rc01,3.3.0-rc02"/> <espresso-idling-resource versions="3.1.0-alpha1,3.1.0-alpha2,3.1.0-alpha3,3.1.0-alpha4,3.1.0-beta01,3.1.0-beta02,3.1.0,3.1.1-alpha01,3.1.1-beta01,3.1.1,3.1.2-alpha01,3.2.0-alpha02,3.2.0-alpha03,3.2.0-alpha04,3.2.0-alpha05,3.2.0-beta01,3.2.0,3.3.0-alpha01,3.3.0-alpha02,3.3.0-alpha03,3.3.0-alpha04,3.3.0-alpha05,3.3.0-beta01,3.3.0-beta02,3.3.0-rc01,3.3.0-rc02,3.3.0-rc03"/>
<espresso-intents versions="3.1.0-alpha1,3.1.0-alpha2,3.1.0-alpha3,3.1.0-alpha4,3.1.0-beta01,3.1.0-beta02,3.1.0,3.1.1-alpha01,3.1.1-beta01,3.1.1,3.1.2-alpha01,3.2.0-alpha02,3.2.0-alpha03,3.2.0-alpha04,3.2.0-alpha05,3.2.0-beta01,3.2.0,3.3.0-alpha01,3.3.0-alpha02,3.3.0-alpha03,3.3.0-alpha04,3.3.0-alpha05,3.3.0-beta01,3.3.0-beta02,3.3.0-rc01,3.3.0-rc02"/> <espresso-intents versions="3.1.0-alpha1,3.1.0-alpha2,3.1.0-alpha3,3.1.0-alpha4,3.1.0-beta01,3.1.0-beta02,3.1.0,3.1.1-alpha01,3.1.1-beta01,3.1.1,3.1.2-alpha01,3.2.0-alpha02,3.2.0-alpha03,3.2.0-alpha04,3.2.0-alpha05,3.2.0-beta01,3.2.0,3.3.0-alpha01,3.3.0-alpha02,3.3.0-alpha03,3.3.0-alpha04,3.3.0-alpha05,3.3.0-beta01,3.3.0-beta02,3.3.0-rc01,3.3.0-rc02,3.3.0-rc03"/>
<espresso-remote versions="3.1.0-alpha1,3.1.0-alpha2,3.1.0-alpha3,3.1.0-alpha4,3.1.0-beta01,3.1.0-beta02,3.1.0,3.1.1-alpha01,3.1.1-beta01,3.1.1,3.1.2-alpha01,3.2.0-alpha02,3.2.0-alpha03,3.2.0-alpha04,3.2.0-alpha05,3.2.0-beta01,3.2.0,3.3.0-alpha01,3.3.0-alpha02,3.3.0-alpha03,3.3.0-alpha04,3.3.0-alpha05,3.3.0-beta01,3.3.0-beta02,3.3.0-rc01,3.3.0-rc02"/> <espresso-remote versions="3.1.0-alpha1,3.1.0-alpha2,3.1.0-alpha3,3.1.0-alpha4,3.1.0-beta01,3.1.0-beta02,3.1.0,3.1.1-alpha01,3.1.1-beta01,3.1.1,3.1.2-alpha01,3.2.0-alpha02,3.2.0-alpha03,3.2.0-alpha04,3.2.0-alpha05,3.2.0-beta01,3.2.0,3.3.0-alpha01,3.3.0-alpha02,3.3.0-alpha03,3.3.0-alpha04,3.3.0-alpha05,3.3.0-beta01,3.3.0-beta02,3.3.0-rc01,3.3.0-rc02,3.3.0-rc03"/>
<espresso-web versions="3.1.0-alpha1,3.1.0-alpha2,3.1.0-alpha3,3.1.0-alpha4,3.1.0-beta01,3.1.0-beta02,3.1.0,3.1.1-alpha01,3.1.1-beta01,3.1.1,3.1.2-alpha01,3.2.0-alpha02,3.2.0-alpha03,3.2.0-alpha04,3.2.0-alpha05,3.2.0-beta01,3.2.0,3.3.0-alpha01,3.3.0-alpha02,3.3.0-alpha03,3.3.0-alpha04,3.3.0-alpha05,3.3.0-beta01,3.3.0-beta02,3.3.0-rc01,3.3.0-rc02"/> <espresso-web versions="3.1.0-alpha1,3.1.0-alpha2,3.1.0-alpha3,3.1.0-alpha4,3.1.0-beta01,3.1.0-beta02,3.1.0,3.1.1-alpha01,3.1.1-beta01,3.1.1,3.1.2-alpha01,3.2.0-alpha02,3.2.0-alpha03,3.2.0-alpha04,3.2.0-alpha05,3.2.0-beta01,3.2.0,3.3.0-alpha01,3.3.0-alpha02,3.3.0-alpha03,3.3.0-alpha04,3.3.0-alpha05,3.3.0-beta01,3.3.0-beta02,3.3.0-rc01,3.3.0-rc02,3.3.0-rc03"/>
</androidx.test.espresso> </androidx.test.espresso>

View File

@ -1,6 +1,6 @@
<?xml version='1.0' encoding='UTF-8'?> <?xml version='1.0' encoding='UTF-8'?>
<androidx.test.ext> <androidx.test.ext>
<junit versions="1.0.0-beta01,1.0.0-beta02,1.0.0,1.1.0-alpha01,1.1.0-beta01,1.1.0,1.1.1-alpha01,1.1.1-alpha02,1.1.1-alpha03,1.1.1-alpha04,1.1.1-alpha05,1.1.1-beta01,1.1.1,1.1.2-alpha01,1.1.2-alpha02,1.1.2-alpha03,1.1.2-alpha04,1.1.2-alpha05,1.1.2-beta01,1.1.2-beta02,1.1.2-rc01,1.1.2-rc02"/> <junit versions="1.0.0-beta01,1.0.0-beta02,1.0.0,1.1.0-alpha01,1.1.0-beta01,1.1.0,1.1.1-alpha01,1.1.1-alpha02,1.1.1-alpha03,1.1.1-alpha04,1.1.1-alpha05,1.1.1-beta01,1.1.1,1.1.2-alpha01,1.1.2-alpha02,1.1.2-alpha03,1.1.2-alpha04,1.1.2-alpha05,1.1.2-beta01,1.1.2-beta02,1.1.2-rc01,1.1.2-rc02,1.1.2-rc03"/>
<junit-ktx versions="1.1.0-alpha01,1.1.0-beta01,1.1.0,1.1.1-alpha01,1.1.1-alpha02,1.1.1-alpha03,1.1.1-alpha04,1.1.1-alpha05,1.1.1-beta01,1.1.1,1.1.2-alpha01,1.1.2-alpha02,1.1.2-alpha03,1.1.2-alpha04,1.1.2-alpha05,1.1.2-beta01,1.1.2-beta02,1.1.2-rc01,1.1.2-rc02"/> <junit-ktx versions="1.1.0-alpha01,1.1.0-beta01,1.1.0,1.1.1-alpha01,1.1.1-alpha02,1.1.1-alpha03,1.1.1-alpha04,1.1.1-alpha05,1.1.1-beta01,1.1.1,1.1.2-alpha01,1.1.2-alpha02,1.1.2-alpha03,1.1.2-alpha04,1.1.2-alpha05,1.1.2-beta01,1.1.2-beta02,1.1.2-rc01,1.1.2-rc02,1.1.2-rc03"/>
<truth versions="1.0.0-alpha2,1.0.0-alpha3,1.0.0-alpha4,1.0.0-beta01,1.0.0-beta02,1.0.0,1.1.0-alpha01,1.1.0-beta01,1.1.0,1.1.1-alpha01,1.2.0-alpha02,1.2.0-alpha03,1.2.0-alpha04,1.2.0-alpha05,1.2.0-beta01,1.2.0,1.3.0-alpha01,1.3.0-alpha02,1.3.0-alpha03,1.3.0-alpha04,1.3.0-alpha05,1.3.0-beta01,1.3.0-beta02,1.3.0-rc01,1.3.0-rc02"/> <truth versions="1.0.0-alpha2,1.0.0-alpha3,1.0.0-alpha4,1.0.0-beta01,1.0.0-beta02,1.0.0,1.1.0-alpha01,1.1.0-beta01,1.1.0,1.1.1-alpha01,1.2.0-alpha02,1.2.0-alpha03,1.2.0-alpha04,1.2.0-alpha05,1.2.0-beta01,1.2.0,1.3.0-alpha01,1.3.0-alpha02,1.3.0-alpha03,1.3.0-alpha04,1.3.0-alpha05,1.3.0-beta01,1.3.0-beta02,1.3.0-rc01,1.3.0-rc02,1.3.0-rc03"/>
</androidx.test.ext> </androidx.test.ext>

View File

@ -42,6 +42,7 @@
<androidx.enterprise/> <androidx.enterprise/>
<androidx.exifinterface/> <androidx.exifinterface/>
<androidx.fragment/> <androidx.fragment/>
<androidx.games/>
<androidx.gaming/> <androidx.gaming/>
<androidx.gridlayout/> <androidx.gridlayout/>
<androidx.heifwriter/> <androidx.heifwriter/>

View File

@ -0,0 +1,338 @@
// !$*UTF8*$!
{
archiveVersion = 1;
classes = {
};
objectVersion = 50;
objects = {
/* Begin PBXBuildFile section */
63D90CA924EFD14600E5833A /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 63D90CA824EFD14600E5833A /* AppDelegate.swift */; };
63D90CAB24EFD14600E5833A /* ViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 63D90CAA24EFD14600E5833A /* ViewController.swift */; };
63D90CAE24EFD14600E5833A /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 63D90CAC24EFD14600E5833A /* Main.storyboard */; };
63D90CB024EFD16000E5833A /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 63D90CAF24EFD16000E5833A /* Assets.xcassets */; };
63D90CB324EFD16100E5833A /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 63D90CB124EFD16100E5833A /* LaunchScreen.storyboard */; };
/* End PBXBuildFile section */
/* Begin PBXFileReference section */
63D90CA524EFD14600E5833A /* skolehjem.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = skolehjem.app; sourceTree = BUILT_PRODUCTS_DIR; };
63D90CA824EFD14600E5833A /* AppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = "<group>"; };
63D90CAA24EFD14600E5833A /* ViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ViewController.swift; sourceTree = "<group>"; };
63D90CAD24EFD14600E5833A /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main.storyboard; sourceTree = "<group>"; };
63D90CAF24EFD16000E5833A /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = "<group>"; };
63D90CB224EFD16100E5833A /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = "<group>"; };
63D90CB424EFD16300E5833A /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
/* End PBXFileReference section */
/* Begin PBXFrameworksBuildPhase section */
63D90CA224EFD14600E5833A /* Frameworks */ = {
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXFrameworksBuildPhase section */
/* Begin PBXGroup section */
63D90C9C24EFD14600E5833A = {
isa = PBXGroup;
children = (
63D90CA724EFD14600E5833A /* skolehjem */,
63D90CA624EFD14600E5833A /* Products */,
);
sourceTree = "<group>";
};
63D90CA624EFD14600E5833A /* Products */ = {
isa = PBXGroup;
children = (
63D90CA524EFD14600E5833A /* skolehjem.app */,
);
name = Products;
sourceTree = "<group>";
};
63D90CA724EFD14600E5833A /* skolehjem */ = {
isa = PBXGroup;
children = (
63D90CA824EFD14600E5833A /* AppDelegate.swift */,
63D90CAA24EFD14600E5833A /* ViewController.swift */,
63D90CAC24EFD14600E5833A /* Main.storyboard */,
63D90CAF24EFD16000E5833A /* Assets.xcassets */,
63D90CB124EFD16100E5833A /* LaunchScreen.storyboard */,
63D90CB424EFD16300E5833A /* Info.plist */,
);
path = skolehjem;
sourceTree = "<group>";
};
/* End PBXGroup section */
/* Begin PBXNativeTarget section */
63D90CA424EFD14600E5833A /* skolehjem */ = {
isa = PBXNativeTarget;
buildConfigurationList = 63D90CB724EFD16400E5833A /* Build configuration list for PBXNativeTarget "skolehjem" */;
buildPhases = (
63D90CA124EFD14600E5833A /* Sources */,
63D90CA224EFD14600E5833A /* Frameworks */,
63D90CA324EFD14600E5833A /* Resources */,
);
buildRules = (
);
dependencies = (
);
name = skolehjem;
productName = skolehjem;
productReference = 63D90CA524EFD14600E5833A /* skolehjem.app */;
productType = "com.apple.product-type.application";
};
/* End PBXNativeTarget section */
/* Begin PBXProject section */
63D90C9D24EFD14600E5833A /* Project object */ = {
isa = PBXProject;
attributes = {
LastSwiftUpdateCheck = 1010;
LastUpgradeCheck = 1010;
TargetAttributes = {
63D90CA424EFD14600E5833A = {
CreatedOnToolsVersion = 10.1;
};
};
};
buildConfigurationList = 63D90CA024EFD14600E5833A /* Build configuration list for PBXProject "skolehjem" */;
compatibilityVersion = "Xcode 9.3";
developmentRegion = en;
hasScannedForEncodings = 0;
knownRegions = (
en,
Base,
);
mainGroup = 63D90C9C24EFD14600E5833A;
productRefGroup = 63D90CA624EFD14600E5833A /* Products */;
projectDirPath = "";
projectRoot = "";
targets = (
63D90CA424EFD14600E5833A /* skolehjem */,
);
};
/* End PBXProject section */
/* Begin PBXResourcesBuildPhase section */
63D90CA324EFD14600E5833A /* Resources */ = {
isa = PBXResourcesBuildPhase;
buildActionMask = 2147483647;
files = (
63D90CB324EFD16100E5833A /* LaunchScreen.storyboard in Resources */,
63D90CB024EFD16000E5833A /* Assets.xcassets in Resources */,
63D90CAE24EFD14600E5833A /* Main.storyboard in Resources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXResourcesBuildPhase section */
/* Begin PBXSourcesBuildPhase section */
63D90CA124EFD14600E5833A /* Sources */ = {
isa = PBXSourcesBuildPhase;
buildActionMask = 2147483647;
files = (
63D90CAB24EFD14600E5833A /* ViewController.swift in Sources */,
63D90CA924EFD14600E5833A /* AppDelegate.swift in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXSourcesBuildPhase section */
/* Begin PBXVariantGroup section */
63D90CAC24EFD14600E5833A /* Main.storyboard */ = {
isa = PBXVariantGroup;
children = (
63D90CAD24EFD14600E5833A /* Base */,
);
name = Main.storyboard;
sourceTree = "<group>";
};
63D90CB124EFD16100E5833A /* LaunchScreen.storyboard */ = {
isa = PBXVariantGroup;
children = (
63D90CB224EFD16100E5833A /* Base */,
);
name = LaunchScreen.storyboard;
sourceTree = "<group>";
};
/* End PBXVariantGroup section */
/* Begin XCBuildConfiguration section */
63D90CB524EFD16300E5833A /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO;
CLANG_ANALYZER_NONNULL = YES;
CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;
CLANG_CXX_LANGUAGE_STANDARD = "gnu++14";
CLANG_CXX_LIBRARY = "libc++";
CLANG_ENABLE_MODULES = YES;
CLANG_ENABLE_OBJC_ARC = YES;
CLANG_ENABLE_OBJC_WEAK = YES;
CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
CLANG_WARN_BOOL_CONVERSION = YES;
CLANG_WARN_COMMA = YES;
CLANG_WARN_CONSTANT_CONVERSION = YES;
CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
CLANG_WARN_EMPTY_BODY = YES;
CLANG_WARN_ENUM_CONVERSION = YES;
CLANG_WARN_INFINITE_RECURSION = YES;
CLANG_WARN_INT_CONVERSION = YES;
CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
CLANG_WARN_STRICT_PROTOTYPES = YES;
CLANG_WARN_SUSPICIOUS_MOVE = YES;
CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE;
CLANG_WARN_UNREACHABLE_CODE = YES;
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
CODE_SIGN_IDENTITY = "iPhone Developer";
COPY_PHASE_STRIP = NO;
DEBUG_INFORMATION_FORMAT = dwarf;
ENABLE_STRICT_OBJC_MSGSEND = YES;
ENABLE_TESTABILITY = YES;
GCC_C_LANGUAGE_STANDARD = gnu11;
GCC_DYNAMIC_NO_PIC = NO;
GCC_NO_COMMON_BLOCKS = YES;
GCC_OPTIMIZATION_LEVEL = 0;
GCC_PREPROCESSOR_DEFINITIONS = (
"DEBUG=1",
"$(inherited)",
);
GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
GCC_WARN_UNDECLARED_SELECTOR = YES;
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
GCC_WARN_UNUSED_FUNCTION = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
IPHONEOS_DEPLOYMENT_TARGET = 12.1;
MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE;
MTL_FAST_MATH = YES;
ONLY_ACTIVE_ARCH = YES;
SDKROOT = iphoneos;
SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG;
SWIFT_OPTIMIZATION_LEVEL = "-Onone";
};
name = Debug;
};
63D90CB624EFD16300E5833A /* Release */ = {
isa = XCBuildConfiguration;
buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO;
CLANG_ANALYZER_NONNULL = YES;
CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;
CLANG_CXX_LANGUAGE_STANDARD = "gnu++14";
CLANG_CXX_LIBRARY = "libc++";
CLANG_ENABLE_MODULES = YES;
CLANG_ENABLE_OBJC_ARC = YES;
CLANG_ENABLE_OBJC_WEAK = YES;
CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
CLANG_WARN_BOOL_CONVERSION = YES;
CLANG_WARN_COMMA = YES;
CLANG_WARN_CONSTANT_CONVERSION = YES;
CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
CLANG_WARN_EMPTY_BODY = YES;
CLANG_WARN_ENUM_CONVERSION = YES;
CLANG_WARN_INFINITE_RECURSION = YES;
CLANG_WARN_INT_CONVERSION = YES;
CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
CLANG_WARN_STRICT_PROTOTYPES = YES;
CLANG_WARN_SUSPICIOUS_MOVE = YES;
CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE;
CLANG_WARN_UNREACHABLE_CODE = YES;
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
CODE_SIGN_IDENTITY = "iPhone Developer";
COPY_PHASE_STRIP = NO;
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
ENABLE_NS_ASSERTIONS = NO;
ENABLE_STRICT_OBJC_MSGSEND = YES;
GCC_C_LANGUAGE_STANDARD = gnu11;
GCC_NO_COMMON_BLOCKS = YES;
GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
GCC_WARN_UNDECLARED_SELECTOR = YES;
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
GCC_WARN_UNUSED_FUNCTION = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
IPHONEOS_DEPLOYMENT_TARGET = 12.1;
MTL_ENABLE_DEBUG_INFO = NO;
MTL_FAST_MATH = YES;
SDKROOT = iphoneos;
SWIFT_COMPILATION_MODE = wholemodule;
SWIFT_OPTIMIZATION_LEVEL = "-O";
VALIDATE_PRODUCT = YES;
};
name = Release;
};
63D90CB824EFD16400E5833A /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
CODE_SIGN_STYLE = Automatic;
DEVELOPMENT_TEAM = 3ZZXP29LWT;
INFOPLIST_FILE = skolehjem/Info.plist;
LD_RUNPATH_SEARCH_PATHS = (
"$(inherited)",
"@executable_path/Frameworks",
);
PRODUCT_BUNDLE_IDENTIFIER = sde.odense.skolehjem;
PRODUCT_NAME = "$(TARGET_NAME)";
SWIFT_VERSION = 4.2;
TARGETED_DEVICE_FAMILY = "1,2";
};
name = Debug;
};
63D90CB924EFD16400E5833A /* Release */ = {
isa = XCBuildConfiguration;
buildSettings = {
CODE_SIGN_STYLE = Automatic;
DEVELOPMENT_TEAM = 3ZZXP29LWT;
INFOPLIST_FILE = skolehjem/Info.plist;
LD_RUNPATH_SEARCH_PATHS = (
"$(inherited)",
"@executable_path/Frameworks",
);
PRODUCT_BUNDLE_IDENTIFIER = sde.odense.skolehjem;
PRODUCT_NAME = "$(TARGET_NAME)";
SWIFT_VERSION = 4.2;
TARGETED_DEVICE_FAMILY = "1,2";
};
name = Release;
};
/* End XCBuildConfiguration section */
/* Begin XCConfigurationList section */
63D90CA024EFD14600E5833A /* Build configuration list for PBXProject "skolehjem" */ = {
isa = XCConfigurationList;
buildConfigurations = (
63D90CB524EFD16300E5833A /* Debug */,
63D90CB624EFD16300E5833A /* Release */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
};
63D90CB724EFD16400E5833A /* Build configuration list for PBXNativeTarget "skolehjem" */ = {
isa = XCConfigurationList;
buildConfigurations = (
63D90CB824EFD16400E5833A /* Debug */,
63D90CB924EFD16400E5833A /* Release */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
};
/* End XCConfigurationList section */
};
rootObject = 63D90C9D24EFD14600E5833A /* Project object */;
}

View File

@ -0,0 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<Workspace
version = "1.0">
<FileRef
location = "self:skolehjem.xcodeproj">
</FileRef>
</Workspace>

View File

@ -0,0 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>IDEDidComputeMac32BitWarning</key>
<true/>
</dict>
</plist>

View File

@ -0,0 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict/>
</plist>

View File

@ -0,0 +1,18 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>BuildLocationStyle</key>
<string>UseAppPreferences</string>
<key>CustomBuildLocationType</key>
<string>RelativeToDerivedData</string>
<key>DerivedDataLocationStyle</key>
<string>Default</string>
<key>EnabledFullIndexStoreVisibility</key>
<false/>
<key>IssueFilterStyle</key>
<string>ShowActiveSchemeOnly</string>
<key>LiveSourceIssuesEnabled</key>
<true/>
</dict>
</plist>

View File

@ -0,0 +1,14 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>SchemeUserState</key>
<dict>
<key>skolehjem.xcscheme_^#shared#^_</key>
<dict>
<key>orderHint</key>
<integer>0</integer>
</dict>
</dict>
</dict>
</plist>

View File

@ -0,0 +1,45 @@
//
// AppDelegate.swift
// skolehjem
//
// Created by macuser on 21/08/2020.
//
import UIKit
@UIApplicationMain
class AppDelegate: UIResponder, UIApplicationDelegate {
var window: UIWindow?
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
// Override point for customization after application launch.
return true
}
func applicationWillResignActive(_ application: UIApplication) {
// Sent when the application is about to move from active to inactive state. This can occur for certain types of temporary interruptions (such as an incoming phone call or SMS message) or when the user quits the application and it begins the transition to the background state.
// Use this method to pause ongoing tasks, disable timers, and invalidate graphics rendering callbacks. Games should use this method to pause the game.
}
func applicationDidEnterBackground(_ application: UIApplication) {
// Use this method to release shared resources, save user data, invalidate timers, and store enough application state information to restore your application to its current state in case it is terminated later.
// If your application supports background execution, this method is called instead of applicationWillTerminate: when the user quits.
}
func applicationWillEnterForeground(_ application: UIApplication) {
// Called as part of the transition from the background to the active state; here you can undo many of the changes made on entering the background.
}
func applicationDidBecomeActive(_ application: UIApplication) {
// Restart any tasks that were paused (or not yet started) while the application was inactive. If the application was previously in the background, optionally refresh the user interface.
}
func applicationWillTerminate(_ application: UIApplication) {
// Called when the application is about to terminate. Save data if appropriate. See also applicationDidEnterBackground:.
}
}

View File

@ -0,0 +1,116 @@
{
"images" : [
{
"size" : "20x20",
"idiom" : "iphone",
"filename" : "ic_launcher.png",
"scale" : "2x"
},
{
"size" : "20x20",
"idiom" : "iphone",
"filename" : "ic_launcher-1.png",
"scale" : "3x"
},
{
"size" : "29x29",
"idiom" : "iphone",
"filename" : "ic_launcher-2.png",
"scale" : "2x"
},
{
"size" : "29x29",
"idiom" : "iphone",
"filename" : "ic_launcher-3.png",
"scale" : "3x"
},
{
"size" : "40x40",
"idiom" : "iphone",
"filename" : "ic_launcher-12.png",
"scale" : "2x"
},
{
"size" : "40x40",
"idiom" : "iphone",
"filename" : "ic_launcher-13.png",
"scale" : "3x"
},
{
"size" : "60x60",
"idiom" : "iphone",
"filename" : "ic_launcher-4.png",
"scale" : "2x"
},
{
"size" : "60x60",
"idiom" : "iphone",
"filename" : "ic_launcher-5.png",
"scale" : "3x"
},
{
"size" : "20x20",
"idiom" : "ipad",
"filename" : "ic_launcher-7.png",
"scale" : "1x"
},
{
"size" : "20x20",
"idiom" : "ipad",
"filename" : "ic_launcher-6.png",
"scale" : "2x"
},
{
"size" : "29x29",
"idiom" : "ipad",
"filename" : "ic_launcher-8.png",
"scale" : "1x"
},
{
"size" : "29x29",
"idiom" : "ipad",
"filename" : "ic_launcher-9.png",
"scale" : "2x"
},
{
"size" : "40x40",
"idiom" : "ipad",
"filename" : "ic_launcher-10.png",
"scale" : "1x"
},
{
"size" : "40x40",
"idiom" : "ipad",
"filename" : "ic_launcher-11.png",
"scale" : "2x"
},
{
"size" : "76x76",
"idiom" : "ipad",
"filename" : "ic_launcher-16.png",
"scale" : "1x"
},
{
"size" : "76x76",
"idiom" : "ipad",
"filename" : "ic_launcher-15.png",
"scale" : "2x"
},
{
"size" : "83.5x83.5",
"idiom" : "ipad",
"filename" : "ic_launcher-17.png",
"scale" : "2x"
},
{
"size" : "1024x1024",
"idiom" : "ios-marketing",
"filename" : "ic_launcher-14.png",
"scale" : "1x"
}
],
"info" : {
"version" : 1,
"author" : "xcode"
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.2 KiB

View File

@ -0,0 +1,6 @@
{
"info" : {
"version" : 1,
"author" : "xcode"
}
}

View File

@ -0,0 +1,55 @@
{
"images" : [
{
"orientation" : "portrait",
"idiom" : "ipad",
"filename" : "ic_launcher.png",
"extent" : "full-screen",
"minimum-system-version" : "7.0",
"scale" : "1x"
},
{
"orientation" : "landscape",
"idiom" : "ipad",
"filename" : "ic_launcher-4.png",
"extent" : "full-screen",
"minimum-system-version" : "7.0",
"scale" : "1x"
},
{
"orientation" : "portrait",
"idiom" : "ipad",
"filename" : "ic_launcher-1.png",
"extent" : "full-screen",
"minimum-system-version" : "7.0",
"scale" : "2x"
},
{
"orientation" : "landscape",
"idiom" : "ipad",
"filename" : "ic_launcher-5.png",
"extent" : "full-screen",
"minimum-system-version" : "7.0",
"scale" : "2x"
},
{
"orientation" : "portrait",
"idiom" : "iphone",
"filename" : "ic_launcher-2.png",
"minimum-system-version" : "7.0",
"scale" : "2x"
},
{
"orientation" : "portrait",
"idiom" : "iphone",
"filename" : "ic_launcher-3.png",
"minimum-system-version" : "7.0",
"subtype" : "retina4",
"scale" : "2x"
}
],
"info" : {
"version" : 1,
"author" : "xcode"
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.2 KiB

View File

@ -0,0 +1,55 @@
{
"images" : [
{
"orientation" : "portrait",
"idiom" : "ipad",
"filename" : "ic_launcher-playstore-1.png",
"extent" : "full-screen",
"minimum-system-version" : "7.0",
"scale" : "1x"
},
{
"orientation" : "landscape",
"idiom" : "ipad",
"filename" : "ic_launcher-playstore-2.png",
"extent" : "full-screen",
"minimum-system-version" : "7.0",
"scale" : "1x"
},
{
"orientation" : "portrait",
"idiom" : "ipad",
"filename" : "ic_launcher-playstore.png",
"extent" : "full-screen",
"minimum-system-version" : "7.0",
"scale" : "2x"
},
{
"orientation" : "landscape",
"idiom" : "ipad",
"filename" : "ic_launcher-playstore-3.png",
"extent" : "full-screen",
"minimum-system-version" : "7.0",
"scale" : "2x"
},
{
"orientation" : "portrait",
"idiom" : "iphone",
"filename" : "ic_launcher-playstore-4.png",
"minimum-system-version" : "7.0",
"scale" : "2x"
},
{
"orientation" : "portrait",
"idiom" : "iphone",
"filename" : "ic_launcher-playstore-5.png",
"minimum-system-version" : "7.0",
"subtype" : "retina4",
"scale" : "2x"
}
],
"info" : {
"version" : 1,
"author" : "xcode"
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 25 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 25 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 25 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 25 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 25 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 25 KiB

View File

@ -0,0 +1,21 @@
{
"images" : [
{
"idiom" : "universal",
"filename" : "ic_launcher-playstore.png",
"scale" : "1x"
},
{
"idiom" : "universal",
"scale" : "2x"
},
{
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"version" : 1,
"author" : "xcode"
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 25 KiB

View File

@ -0,0 +1,25 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="13122.16" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" launchScreen="YES" useTraitCollections="YES" useSafeAreas="YES" colorMatched="YES" initialViewController="01J-lp-oVM">
<dependencies>
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="13104.12"/>
<capability name="Safe area layout guides" minToolsVersion="9.0"/>
<capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
</dependencies>
<scenes>
<!--View Controller-->
<scene sceneID="EHf-IW-A2E">
<objects>
<viewController id="01J-lp-oVM" sceneMemberID="viewController">
<view key="view" contentMode="scaleToFill" id="Ze5-6b-2t3">
<rect key="frame" x="0.0" y="0.0" width="375" height="667"/>
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
<color key="backgroundColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
<viewLayoutGuide key="safeArea" id="6Tk-OE-BBY"/>
</view>
</viewController>
<placeholder placeholderIdentifier="IBFirstResponder" id="iYj-Kq-Ea1" userLabel="First Responder" sceneMemberID="firstResponder"/>
</objects>
<point key="canvasLocation" x="53" y="375"/>
</scene>
</scenes>
</document>

View File

@ -0,0 +1,52 @@
<?xml version="1.0" encoding="UTF-8"?>
<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="14460.31" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" useSafeAreas="YES" colorMatched="YES" initialViewController="BYZ-38-t0r">
<device id="retina4_7" orientation="portrait">
<adaptation id="fullscreen"/>
</device>
<dependencies>
<deployment identifier="iOS"/>
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="14460.20"/>
<capability name="Safe area layout guides" minToolsVersion="9.0"/>
<capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
</dependencies>
<scenes>
<!--View Controller-->
<scene sceneID="tne-QT-ifu">
<objects>
<viewController id="BYZ-38-t0r" customClass="ViewController" customModule="skolehjem" customModuleProvider="target" sceneMemberID="viewController">
<view key="view" contentMode="scaleToFill" id="8bC-Xf-vdC">
<rect key="frame" x="0.0" y="0.0" width="375" height="667"/>
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
<subviews>
<wkWebView contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="dOs-vr-ypo">
<rect key="frame" x="0.0" y="20" width="375" height="647"/>
<color key="backgroundColor" red="0.36078431370000003" green="0.38823529410000002" blue="0.4039215686" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
<constraints>
<constraint firstAttribute="width" id="Pfe-Cd-k86"/>
<constraint firstAttribute="height" id="hew-AW-sXK"/>
</constraints>
<wkWebViewConfiguration key="configuration">
<audiovisualMediaTypes key="mediaTypesRequiringUserActionForPlayback" none="YES"/>
<wkPreferences key="preferences"/>
</wkWebViewConfiguration>
</wkWebView>
</subviews>
<color key="backgroundColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
<constraints>
<constraint firstItem="6Tk-OE-BBY" firstAttribute="trailing" secondItem="dOs-vr-ypo" secondAttribute="trailing" id="Aoi-yr-vW8"/>
<constraint firstItem="6Tk-OE-BBY" firstAttribute="bottom" secondItem="dOs-vr-ypo" secondAttribute="bottom" id="bNv-IA-yjS"/>
<constraint firstItem="dOs-vr-ypo" firstAttribute="leading" secondItem="6Tk-OE-BBY" secondAttribute="leading" id="gQ6-h0-DTj"/>
<constraint firstItem="dOs-vr-ypo" firstAttribute="top" secondItem="6Tk-OE-BBY" secondAttribute="top" id="vWk-bF-fhF"/>
</constraints>
<viewLayoutGuide key="safeArea" id="6Tk-OE-BBY"/>
</view>
<connections>
<outlet property="webview" destination="dOs-vr-ypo" id="ORa-um-VSy"/>
</connections>
</viewController>
<placeholder placeholderIdentifier="IBFirstResponder" id="dkx-z0-nzr" sceneMemberID="firstResponder"/>
</objects>
<point key="canvasLocation" x="133.59999999999999" y="133.5832083958021"/>
</scene>
</scenes>
</document>

View File

@ -0,0 +1,49 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>CFBundleDevelopmentRegion</key>
<string>$(DEVELOPMENT_LANGUAGE)</string>
<key>CFBundleDisplayName</key>
<string>SDE Skolehjem</string>
<key>CFBundleExecutable</key>
<string>$(EXECUTABLE_NAME)</string>
<key>CFBundleIcons</key>
<dict/>
<key>CFBundleIcons~ipad</key>
<dict/>
<key>CFBundleIdentifier</key>
<string>$(PRODUCT_BUNDLE_IDENTIFIER)</string>
<key>CFBundleInfoDictionaryVersion</key>
<string>6.0</string>
<key>CFBundleName</key>
<string>$(PRODUCT_NAME)</string>
<key>CFBundlePackageType</key>
<string>APPL</string>
<key>CFBundleShortVersionString</key>
<string>1.0</string>
<key>CFBundleVersion</key>
<string>1</string>
<key>LSRequiresIPhoneOS</key>
<true/>
<key>UILaunchStoryboardName</key>
<string>Main</string>
<key>UIMainStoryboardFile</key>
<string>Main</string>
<key>UIRequiredDeviceCapabilities</key>
<array>
<string>armv7</string>
</array>
<key>UISupportedInterfaceOrientations</key>
<array>
<string>UIInterfaceOrientationPortrait</string>
</array>
<key>UISupportedInterfaceOrientations~ipad</key>
<array>
<string>UIInterfaceOrientationPortrait</string>
<string>UIInterfaceOrientationPortraitUpsideDown</string>
<string>UIInterfaceOrientationLandscapeLeft</string>
<string>UIInterfaceOrientationLandscapeRight</string>
</array>
</dict>
</plist>

View File

@ -0,0 +1,27 @@
//
// ViewController.swift
// skolehjem
//
// Created by macuser on 21/08/2020.
//
import UIKit
import WebKit
class ViewController: UIViewController {
@IBOutlet weak var webview: WKWebView!
override func viewDidLoad() {
super.viewDidLoad();
let url = URL(string: "https://ekapp.sde.dk");
let request = URLRequest(url: url!);
webview.scrollView.isMultipleTouchEnabled = false;
webview.load(request);
}
}

3
package-lock.json generated Normal file
View File

@ -0,0 +1,3 @@
{
"lockfileVersion": 1
}

View File

@ -1,6 +1,6 @@
APP_NAME=Laravel APP_NAME=Laravel
APP_ENV=local APP_ENV=local
APP_KEY= APP_KEY=base64:xxOWN1DEzzMxOUEi981cuqkLQs68/dnw2vmv4JtNXjA=
APP_DEBUG=true APP_DEBUG=true
APP_URL=http://localhost APP_URL=http://localhost
@ -9,8 +9,8 @@ LOG_CHANNEL=stack
DB_CONNECTION=sqlite DB_CONNECTION=sqlite
DB_HOST=127.0.0.1 DB_HOST=127.0.0.1
DB_PORT=3306 DB_PORT=3306
DB_DATABASE=laravel DB_DATABASE=/home/user/Documents/PhpstormProjects/skolehjem-webapp/skolehjem/database/laravel.sqlite
DB_USERNAME=root DB_USERNAME=
DB_PASSWORD= DB_PASSWORD=
BROADCAST_DRIVER=log BROADCAST_DRIVER=log
@ -44,3 +44,16 @@ PUSHER_APP_CLUSTER=mt1
MIX_PUSHER_APP_KEY="${PUSHER_APP_KEY}" MIX_PUSHER_APP_KEY="${PUSHER_APP_KEY}"
MIX_PUSHER_APP_CLUSTER="${PUSHER_APP_CLUSTER}" MIX_PUSHER_APP_CLUSTER="${PUSHER_APP_CLUSTER}"
LDAP_LOGGING=true
LDAP_CONNECTION=default
LDAP_HOST=127.0.0.1
LDAP_USERNAME="cn=user,dc=local,dc=com"
LDAP_PASSWORD=secret
LDAP_PORT=389
LDAP_BASE_DN="dc=local,dc=com"
LDAP_TIMEOUT=5
LDAP_SSL=false
LDAP_TLS=false
HTTPS_ONLY=false

View File

@ -12,3 +12,4 @@ npm-debug.log
yarn-error.log yarn-error.log
/public/css/app.css /public/css/app.css
/public/js/app.js /public/js/app.js
/public/uploads/

3
skolehjem/.htaccess Normal file
View File

@ -0,0 +1,3 @@
RewriteEngine On
RewriteRule ^/((?!\.well-known)(/.*)?)$ [L]
RewriteRule ^(.*)$ public/$1 [L]

View File

@ -0,0 +1,12 @@
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
class AllowAction extends Model
{
protected $fillable = [
'action', 'allow'
];
}

View File

@ -20,6 +20,6 @@ class Event extends Model
*/ */
//protected variable which contains name of database field(s) to be filled. //protected variable which contains name of database field(s) to be filled.
protected $fillable = [ protected $fillable = [
"name", "description", "date" "name", "accountable", "description", "date", "resource_id"
]; ];
} }

View File

@ -50,6 +50,10 @@ class Handler extends ExceptionHandler
*/ */
public function render($request, Throwable $exception) public function render($request, Throwable $exception)
{ {
// Otherwise display internal error message
if(app()->environment() === 'production') {
return view('errors.500');
}
return parent::render($request, $exception); return parent::render($request, $exception);
} }
} }

View File

@ -7,6 +7,6 @@ use Illuminate\Database\Eloquent\Model;
class Guide extends Model class Guide extends Model
{ {
protected $fillable = [ protected $fillable = [
'name', 'guide_articles' 'name', 'guide_articles', 'guide_category_id', 'resource_id'
]; ];
} }

View File

@ -0,0 +1,12 @@
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
class GuidesCategory extends Model
{
protected $fillable = [
'guidesCategoryName'
];
}

51
skolehjem/app/Helpers.php Normal file
View File

@ -0,0 +1,51 @@
<?php
namespace App;
use Illuminate\Database\Eloquent\Collection;
class Helpers
{
public static function closetags($html) {
preg_match_all('#<(?!meta|img|br|hr|input\b)\b([a-z]+)(?: .*)?(?<![/|/ ])>#iU', $html, $result);
$openedtags = $result[1];
preg_match_all('#</([a-z]+)>#iU', $html, $result);
$closedtags = $result[1];
$len_opened = count($openedtags);
if (count($closedtags) == $len_opened) {
return $html;
}
$openedtags = array_reverse($openedtags);
for ($i=0; $i < $len_opened; $i++) {
if (!in_array($openedtags[$i], $closedtags)) {
$html .= '</'.$openedtags[$i].'>';
} else {
unset($closedtags[array_search($openedtags[$i], $closedtags)]);
}
}
return $html;
}
public static function sendNewsNotification(News $news, Collection $users){
$headers = 'Content-Transfer-Encoding: 8bit'. "\r\n".
'Content-Type: text/html; charset="UTF-8"';
foreach ($users as $user) {
$email = $user->email;
if($news->name !== "")
$subject = $news->name;
else
$subject = $news->subname;
$msg = "Hej " . $user->name_first . " ". $user->name_last . ".\n\nDer er kommet en ny nyhed i skolehjems appen! ";
//Hello, im here to help the future developer that has this problem,
//you have to open up you installed php version, find and
//open your php.ini and search for [mail function] and enter the
// right information and enable some stuff - Big Smoke
mail($email, $subject, $msg, $headers);
}
}
}

View File

@ -3,9 +3,7 @@
namespace App\Helpers; namespace App\Helpers;
use Illuminate\Support\Facades\Auth;
use Jenssegers\Agent\Agent; use Jenssegers\Agent\Agent;
class Detector class Detector
@ -16,7 +14,13 @@ class Detector
if($agent->isMobile()) { if($agent->isMobile()) {
return view(config("detector.mobilePath") . "." . $viewName, $args); return view(config("detector.mobilePath") . "." . $viewName, $args);
} } else if(Auth()->user() !== null) {
if (Auth()->user()->can('admin.panel.show') == true)
return view(config("detector.defaultPath") . "." . $viewName, $args); return view(config("detector.defaultPath") . "." . $viewName, $args);
} }
if($viewName == "users.login" || $viewName == "users.logout")
return view(config("detector.mobilePath") . "." . $viewName, $args);
return view("errors.403", $args);
}
} }

View File

@ -0,0 +1,38 @@
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use Illuminate\Http\Response;
class AboutController extends Controller
{
//Check authentication and languages settings
public function __construct()
{
//The middleware is being run just before the pages is getting loaded
$this->middleware(["auth"]);
$this->middleware(["lang"]);
}
/*
Index controller, all backend work for the about index
pages is done here.
*/
public function index(Request $request)
{
/*
Response::detect is a library that we use to
detect if you are on mobile or desktop.
If you are on mobile it sends you to the
/resources/views/app/about/index
and if you are on desktop it sends you to
/resources/views/admin/about/index (There is no "about" on desktop view).
Normally the index pages only contain the return of the index pages
but you are allowed to modify the index function to how may like.
*/
return Response::detect("about.index");
}
}

View File

@ -0,0 +1,26 @@
<?php
namespace App\Http\Controllers;
use App\AllowAction;
use Illuminate\Http\Request;
class AllowActionController extends Controller
{
/*We use $request to get the data from the HTMl pages*/
function AllowActionRegistering(Request $request) {
/*
Here we use our model AllowAction and the Laravel function "find",
in the "find" functions parameter we pass "$request->id" to find out what
number the it contains.
*/
$action = AllowAction::find($request->id);
/*Call the Laravel "update" function to update number in the database
If the allow column in the database is equal to 1 there is open for registration
If the allow column is equal to 0 there is closed for registration
*/
$action->update([ 'allow' => $request->allow ]);
}
}

View File

@ -12,10 +12,14 @@ class ContactController extends Controller
{ {
public function __construct() public function __construct()
{ {
//Check authentication and languages settings
$this->middleware([ "auth" ]); $this->middleware([ "auth" ]);
$this->middleware([ "lang" ]);
$this->middleware([ "check.auth:contact.list" ])->only("index"); //The middleware is being run just before the pages is getting loaded.
$this->middleware([ "check.auth:contact.show" ])->only("show");
//We use this middleware to chek if a user has the right permission/authentication to view the pages
$this->middleware([ "check.auth:contact.show" ])->only("show", "index");
$this->middleware([ "check.auth:contact.create" ])->only("create", "store"); $this->middleware([ "check.auth:contact.create" ])->only("create", "store");
$this->middleware([ "check.auth:contact.edit" ])->only("edit", "update"); $this->middleware([ "check.auth:contact.edit" ])->only("edit", "update");
$this->middleware([ "check.auth:contact.delete" ])->only("delete"); $this->middleware([ "check.auth:contact.delete" ])->only("delete");
@ -26,11 +30,19 @@ class ContactController extends Controller
* *
* @return \Illuminate\Http\Response * @return \Illuminate\Http\Response
*/ */
//Controller for the contact index pages, all backend work for the contact index pages is done here.
public function index(Request $request) public function index(Request $request)
{ {
//We use the Contact model to query all information from the contact form in the database
$contact = Contact::query()->get();
$contact = Contact::query()->paginate($request->input("limit", 20)); /*
Here we return/pass the contact variable containing all the database information to the
contacts.index pages as a parameter. The "contacts" in green text is the name you have to use
on the index pages to get the data from the database, you can name it what ever you want, but its best
best practice to give it a describing name.
*/
return Response::detect("contacts.index", [ "contacts" => $contact]); return Response::detect("contacts.index", [ "contacts" => $contact]);
} }
@ -39,10 +51,11 @@ class ContactController extends Controller
* *
* @return \Illuminate\Http\Response * @return \Illuminate\Http\Response
*/ */
/*The create controller, all it has to do is redirect you to the contacts create pages*/
public function create() public function create()
{ {
return Response::detect("contacts.create"); return Response::detect("contacts.create");
} }
/** /**
@ -51,23 +64,33 @@ class ContactController extends Controller
* @param \Illuminate\Http\Request $request * @param \Illuminate\Http\Request $request
* @return \Illuminate\Http\Response * @return \Illuminate\Http\Response
*/ */
//The store controller is used to store user data.
public function store(Request $request) public function store(Request $request)
{ {
//Validate that the user gave a contactname, title, email, phone and make sure its required and only contains max 255.
$requestContact = $request->validate([ $requestContact = $request->validate([
"contactname" => "required|max:255", "contactname" => "required|max:255",
"title" => "required|max:255", "title" => "required|max:255",
"email" => "required|max:255", "email" => "required|max:255",
"phone" => "required|max:255", "phone" => "max:255",
]); ]);
//Make a new instance of the contact modal and pass $requestContact to be saved in the database
$contact = new Contact($requestContact); $contact = new Contact($requestContact);
//Set phonetimes to what the user entered, we dont validate thats why it has its on "save" function .
$contact->phonetimes = $request->phonetimes; $contact->phonetimes = $request->phonetimes;
//Call the save function.
$saved = $contact->save(); $saved = $contact->save();
//If it couldn't save redirect to the contacts.store view
if(!$saved){ if(!$saved){
return redirect()->route("contacts.store"); return redirect()->route("contacts.store");
}else{ }else{
$contact = Contact::query()->paginate($request->input("limit", 20)); /*If it did get saved query all information from the database and redirect to contacts.index with the parameter
contacts
*/
$contact = Contact::query()->get();
return redirect()->route("contacts.index", ['contacts' => $contact]); return redirect()->route("contacts.index", ['contacts' => $contact]);
} }
@ -79,6 +102,8 @@ class ContactController extends Controller
* @param int $id * @param int $id
* @return \Illuminate\Http\Response * @return \Illuminate\Http\Response
*/ */
//The show controller is used to show a single entity from the database based on the id its get
public function show($id) public function show($id)
{ {
return Response::detect("contacts.show", [ "contacts" => $id]); return Response::detect("contacts.show", [ "contacts" => $id]);
@ -91,6 +116,10 @@ class ContactController extends Controller
* @param int $id * @param int $id
* @return \Illuminate\Http\Response * @return \Illuminate\Http\Response
*/ */
/*Edit controller finds all the data on the specific id passed to it, finds that entity from the database and
that match with the id and redirect you to the edit pages.
*/
public function edit($id) public function edit($id)
{ {
$contact = Contact::find($id); $contact = Contact::find($id);
@ -104,18 +133,27 @@ class ContactController extends Controller
* @param int $id * @param int $id
* @return \Illuminate\Http\Response * @return \Illuminate\Http\Response
*/ */
//Update controller
public function update(Request $request, $id) public function update(Request $request, $id)
{ {
//request all the data from the database
$data = $request->all(); $data = $request->all();
//Find the entity in the database that match the id
$contact = Contact::find($id); $contact = Contact::find($id);
//Call the update function
$contact->update($data); $contact->update($data);
//Call the save function
$saved = $contact->save(); $saved = $contact->save();
//If it couldn't save redirect to the contacts.update view
if(!$saved){ if(!$saved){
return redirect()->route("contacts.update", [ "contacts" => $contact ]); return redirect()->route("contacts.update", [ "contacts" => $contact ]);
}else{ }else{
$contact = Contact::query()->paginate($request->input("limit", 20)); /*If it did get saved query all information from the database and redirect to contacts.index with the parameter
contacts
*/
$contact = Contact::query()->get();
return redirect()->route("contacts.index", ['contacts' => $contact]); return redirect()->route("contacts.index", ['contacts' => $contact]);
} }
@ -128,75 +166,11 @@ class ContactController extends Controller
* @return \Illuminate\Http\RedirectResponse * @return \Illuminate\Http\RedirectResponse
* @throws \Exception * @throws \Exception
*/ */
//The destroy controller finds the id and calls a delete function, after that it redirects to contact index.
public function destroy($id) public function destroy($id)
{ {
$contact = Contact::find($id); $contact = Contact::find($id);
$contact->delete(); $contact->delete();
return redirect()->route("contacts.index"); return redirect()->route("contacts.index");
} }
public function search(Request $request){
if($request->ajax()){
$output = "<tr>".
"<th>Kontakt Navn</th>".
"<th>Titel</th>".
"<th>E-mail</th>".
"<th>Tlf</th>".
"<th style=\"width: 1em;\"><img class=\"w-100\" src=\"http://127.0.0.1:8000/images/icons/pencil.svg\" alt=\"Update\"></th>".
"<th style=\"width: 1em;\"><img class=\"w-100\" src=\"http://127.0.0.1:8000/images/icons/trashcan.svg\" alt=\"Delete\"></th>".
"</tr>";
if($request->isCheck === "navn")
$users = Contact::query()->where('contactname', 'LIKE',$request->search.'%')->get();
elseif ($request->isCheck === "titel")
$users = Contact::query()->where('title', 'LIKE',$request->search.'%')->get();
elseif ($request->isCheck === "email")
$users = Contact::query()->where('email', 'LIKE',$request->search.'%')->get();
elseif ($request->isCheck === "tf")
$users = Contact::query()->where('phone', 'LIKE',$request->search.'%')->get();
else
$users = DB::table('contacts')->where('contactname', 'LIKE',$request->search.'%')
->orWhere('title','LIKE', $request->search.'%')
->orWhere('phone','LIKE', $request->search.'%')
->orWhere('email','LIKE',$request->search. '%')->get();
if(count($users) !== 0){
foreach ($users as $key => $user){
$output.='<tr>'.
'<td>' . $user->contactname . '</td>'.
'<td>' . $user->title . '</td>'.
'<td>' . $user->email . '</td>'.
'<td>' . $user->phone .'</td>'.
'<td><a href="'. route("contacts.edit", [ "contact" => $user->id ]) . '"><img class="w-100" src="'. asset('/images/icons/pencil-dark.svg') . '" alt="Update"></a></td>'.
'<td><form method="post" action="' .route("contacts.destroy", [ "contact" => $user->id ]). '" class="w-100 nostyle">'.
csrf_field().
method_field("delete").
'<button class="w-100 nostyle" onclick="return confirm(\'Are you sure you want to delete?\');" type="submit"><img class="w-100 cursor-pointer" src="'. asset('/images/icons/trashcan-dark.svg') . '" alt="Delete"></button>'.
'</form>'.
'</td>'.
'</tr>';
}
}else{
$output.='<tr>'.
'<td>Intet match</td>'.
'<td></td>'.
'<td></td>'.
'<td></td>'.
'<td></td>'.
'<td></td>'.
'</tr>';
}
return Response($output);
}
}
} }

View File

@ -3,21 +3,25 @@
namespace App\Http\Controllers; namespace App\Http\Controllers;
use App\Event; use App\Event;
use App\News;
use App\Notification;
use App\Resource;
use App\UserEvent; use App\UserEvent;
use App\User; use App\User;
use Illuminate\Http\Request; use Illuminate\Http\Request;
use Illuminate\Http\Response; use Illuminate\Http\Response;
use Illuminate\Support\Facades\DB; use Illuminate\Support\Facades\DB;
date_default_timezone_set('Europe/Copenhagen');
class EventController extends Controller class EventController extends Controller
{ {
public function __construct() public function __construct()
{ {
$this->middleware([ "auth" ]); $this->middleware([ "auth" ]);
$this->middleware([ "lang" ]);
$this->middleware([ "check.auth:event.list" ])->only("index"); $this->middleware([ "check.auth:event.show" ])->only("show", "index");
$this->middleware([ "check.auth:event.show" ])->only("show");
$this->middleware([ "check.auth:event.create" ])->only("create", "store"); $this->middleware([ "check.auth:event.create" ])->only("create", "store");
$this->middleware([ "check.auth:event.edit" ])->only("edit", "update"); $this->middleware([ "check.auth:event.edit" ])->only("edit", "update");
$this->middleware([ "check.auth:event.delete" ])->only("delete"); $this->middleware([ "check.auth:event.delete" ])->only("delete");
@ -30,9 +34,7 @@ class EventController extends Controller
*/ */
public function index(Request $request) public function index(Request $request)
{ {
$events = Event::query()->orderBY('date' , 'asc')->get();
$events = Event::query()->orderBY('date' , 'asc')->paginate($request->input("limit", 20));
//returns the function with events index page and a parameter of events. //returns the function with events index page and a parameter of events.
//also Response::detect checks screen size to determine if user is on a computer or mobile. //also Response::detect checks screen size to determine if user is on a computer or mobile.
return Response::detect("events.index", [ "events" => $events]); return Response::detect("events.index", [ "events" => $events]);
@ -53,13 +55,14 @@ class EventController extends Controller
* Store a newly created resource in storage. * Store a newly created resource in storage.
* *
* @param \Illuminate\Http\Request $request * @param \Illuminate\Http\Request $request
* @return \Illuminate\Contracts\Foundation\Application|\Illuminate\Contracts\View\Factory|\Illuminate\View\View * @return \Illuminate\Http\RedirectResponse
*/ */
public function store(Request $request) public function store(Request $request)
{ {
$requestBody = $request->validate([ $requestBody = $request->validate([
"name" => "required|max:255", "name" => "required|max:255",
"description" => "required|max:255", "accountable" => "required|max:255",
"description" => "required",
"date" => "required" "date" => "required"
]); ]);
@ -68,14 +71,38 @@ class EventController extends Controller
$allEvents = Event::query()->where('name', '=', $request->name)->get(); $allEvents = Event::query()->where('name', '=', $request->name)->get();
if(count($allEvents) > 0) if(count($allEvents) > 0) {
return redirect()->route("events.index", ['events' => $event])->with('EventNameExists', '<p><b>Der findes allerede et event med det navn!</b></p>');
else {
$event->save();
$event = Event::query()->paginate($request->input("limit", 20));
return redirect()->route("events.index", ['events' => $event]); return redirect()->route("events.index", ['events' => $event]);
} else {
if($request->file("resource")) {
$event->resource_id = ResourceController::store($request)->id;
} }
$event->save();
$events = Event::query()->get();
//If the check on the create pages that is was a news and has to be displayed on the news pages
if($request->newsoption == true){
//Get all events from the database
$events = Event::query()->get();
//make a new object of the news calls
$news = new News();
//Get and save the data
$news->name = "Ny aktivitet";
$news->subname = $event->name;
$news->arrangement_id = $event->id;
$news->type_id = '3';
$news->content = $event->description;
$news->resource_id = $event->resource_id;
$news->news_expiration_date = $events[0]->date;
//Call the news controller function store and get, pass $news to be saved
NewsController::storeAndGet($news);
}
return redirect()->route('events.index', ['events' => $events]);
}
} }
/** /**
@ -84,9 +111,12 @@ class EventController extends Controller
* @param Event $id * @param Event $id
* @return \Illuminate\Contracts\Foundation\Application|\Illuminate\Contracts\View\Factory|\Illuminate\View\View * @return \Illuminate\Contracts\Foundation\Application|\Illuminate\Contracts\View\Factory|\Illuminate\View\View
*/ */
public function show(Event $id) public function show($id)
{ {
return Response::detect("events.show", [ "event" => $id ]); //Get the entity that match with the passed id.
$event = Event::query()->where("id", "=", $id)->first();
//return the fetch data to the show pages
return Response::detect("events.show", [ "event" => $event ]);
} }
/** /**
@ -98,7 +128,7 @@ class EventController extends Controller
public function signups(Request $request) public function signups(Request $request)
{ {
// Find every event you have clicked on. And find all users to that event, and the event name itself. // Find every event you have clicked on. And find all users to that event, and the event name itself.
$events = UserEvent::join('users', 'users.id', '=', 'user_events.user_id')->join('events', 'events.id', '=', 'user_events.event_id')->where('event_id', $request->event)->get(); $events = UserEvent::join('users', 'users.id', '=', 'user_events.user_id')->join('events', 'events.id', '=', 'user_events.event_id')->where('event_id', $request->event)->select('user_events.*', 'users.name_first', 'users.name_last', 'users.phone')->get();
if (count($events) == 0) if (count($events) == 0)
$events = Event::where('id', $request->event)->get(); $events = Event::where('id', $request->event)->get();
@ -106,6 +136,20 @@ class EventController extends Controller
return Response::detect("events.signups", [ "events" => $events ]); return Response::detect("events.signups", [ "events" => $events ]);
} }
/**
* Display signups for event.
*
* @param int $id
* @return \Illuminate\Contracts\Foundation\Application|\Illuminate\Contracts\View\Factory|\Illuminate\View\View
*/
public function accountsignups(Request $request)
{
// Find every event you have clicked on. And find all users to that event, and the event name itself. - This is only being showed on App
$events = UserEvent::join('users', 'users.id', '=', 'user_events.user_id')->join('events', 'events.id', '=', 'user_events.event_id')->where('event_id', $request->event)->get();
return Response::detect("events.signups", [ "events" => $events ]);
}
/** /**
* Show the form for editing the specified resource.- * Show the form for editing the specified resource.-
* *
@ -127,20 +171,46 @@ class EventController extends Controller
*/ */
public function update(Request $request, $id) public function update(Request $request, $id)
{ {
//Set $data to holde the value of request->all
$data = $request->all(); $data = $request->all();
//Get the event with matching id
$event = Event::find($id); $event = Event::find($id);
//get all events that has a match with the passed id
$allEvents = Event::query()->where('name', '=', $request->name)->where('id', '!=', $id)->get(); $allEvents = Event::query()->where('name', '=', $request->name)->where('id', '!=', $id)->get();
//If the amount of $allevents is equal to 0 redirect to index
if(count($allEvents) > 0){ if(count($allEvents) > 0){
return redirect()->route("events.index", ['events' => $event])->with('EventNameExists', '<p><b>Der findes allerede et event med det navn!</b></p>'); return redirect()->route("events.index", ['events' => $event]);
}else{ }else{
//Call the update function
$event->update($data); $event->update($data);
//If the events has a images call the Resource Controllers store function
if($request->file("resource")) {
$event->resource_id = ResourceController::store($request)->id;
}
$event->save(); $event->save();
$event = Event::query()->paginate($request->input("limit", 20)); $events = Event::query()->get();
return redirect()->route("events.index", ['events' => $event]);
if($request->newsoption == true){
$news = new News();
$news->name = "Aktivitet opdateret";
$news->subname = $event->name;
$news->arrangement_id = $event->id;
$news->type_id = '3';
$news->resource_id = $event->resource_id;
$news->content = "<p>" . $this->closetags(substr($event->description, 0, 300));
$news->news_expiration_date = $event->date;
NewsController::storeAndGet($news);
}
return redirect()->route("events.index", ['events' => $events]);
} }
} }
@ -155,66 +225,91 @@ class EventController extends Controller
public function destroy(Request $request, $id) public function destroy(Request $request, $id)
{ {
if ($request->signup != null) { // If input signup is not empty, which has been set when you look at the individuel signup, then delete the user who have signed up for the event if ($request->signup != null) { // If input signup is not empty, which has been set when you look at the individuel signup, then delete the user who have signed up for the event
$UserEvent = UserEvent::where('user_id', $request->signup)->where('event_id', $id); $UserEvent = UserEvent::find($id);
$UserEvent->delete();
return redirect()->route("events.signups", [ "event" => $id ]);
} else { // Else if you are deleting an event. Then delete all the sign ups AND the event
$UserEvent = UserEvent::where('event_id', $id);
$UserEvent->delete(); $UserEvent->delete();
$event = Event::find($id); return 1;
} else { // Else if you are deleting an event. Then delete all the sign ups AND the event
$userEvents = UserEvent::query()->where('event_id', "=", $id)->get();
$event = Event::query()->find($id);
foreach ($userEvents as $userEvent) {
$notification = new Notification();
$notification->user_id = $userEvent->user_id;
$notification->message = $event->name . " - ";
$notification->save();
$userEvent->delete();
}
$news = News::query()->join('news_types', 'news_types.id', '=', 'news.type_id')->where("type", "=", "Activity")->where("arrangement_id", "=", $id);
$news->delete();
$event->delete(); $event->delete();
return redirect()->route("events.index"); return redirect()->route("events.index");
} }
} }
//Fixes tags that have been substringed
//idk yoink this bitch from stackoverflow, you never going to use it, trust me.
public function closetags($html) {
preg_match_all('#<(?!meta|img|br|hr|input\b)\b([a-z]+)(?: .*)?(?<![/|/ ])>#iU', $html, $result);
$openedtags = $result[1];
preg_match_all('#</([a-z]+)>#iU', $html, $result);
$closedtags = $result[1];
$len_opened = count($openedtags);
if (count($closedtags) == $len_opened) {
return $html;
}
$openedtags = array_reverse($openedtags);
for ($i=0; $i < $len_opened; $i++) {
if (!in_array($openedtags[$i], $closedtags)) {
$html .= '</'.$openedtags[$i].'>';
} else {
unset($closedtags[array_search($openedtags[$i], $closedtags)]);
}
}
return $html;
}
public function search(Request $request){ public function deleteNotifications(Request $request){
//If the request is equal to ajax, delete every notification where the user_id is = to the $request->user_id
if($request->ajax()){ if($request->ajax()){
$output = "<tr>". foreach (Notification::query()->where("user_id", "=", $request->user_id)->get() as $notification) {
"<th>Event Navn</th>". $notification->delete();
"<th>Event Beskrivelse</th>".
"<th>Event Dato</th>".
"<th style=\"width: 1em;\"><img class=\"w-100\" src=\"http://127.0.0.1:8000/images/icons/eye.svg\" alt=\"Update\"></th>".
"<th style=\"width: 1em;\"><img class=\"w-100\" src=\"http://127.0.0.1:8000/images/icons/pencil.svg\" alt=\"Update\"></th>".
"<th style=\"width: 1em;\"><img class=\"w-100\" src=\"http://127.0.0.1:8000/images/icons/trashcan.svg\" alt=\"Delete\"></th>".
"</tr>";
$events = DB::table('events')->orderBY('date' , 'asc')->where('name', 'LIKE',$request->search.'%')
->orWhere('date','LIKE', $request->search.'%')
->get();//Job is here dude :9
if(count($events) !== 0){
foreach ($events as $key => $event){
$output.='<tr>'.
'<td>' . $event->name . '</td>'.
'<td>' . $event->description .'</td>'.
'<td>' . $event->date .'</td>'.
'<td><a href="'. route("events.signups", [ "event" => $event->id ]).'"><img class="w-100" src="'. asset('/images/icons/eye-dark.svg') .'" alt="Update"></a></td>'.
'<td><a href="'. route("events.edit", [ "event" => $event->id ]) . '"><img class="w-100" src="'. asset('/images/icons/pencil-dark.svg') . '" alt="Update"></a></td>'.
'<td><form method="post" action="' .route("events.destroy", [ "event" => $event->id ]). '" class="w-100 nostyle">'.
csrf_field().
method_field("delete").
'<button class="w-100 nostyle" onclick="return confirm(\'Are you sure you want to delete?\');" type="submit"><img class="w-100 cursor-pointer" src="'. asset('/images/icons/trashcan-dark.svg') . '" alt="Delete"></button>'.
'</form>'.
'</td>'.
'</tr>';
} }
}else{ return "Done";
$output.='<tr>'. } else {
'<td>Intet match</td>'. return "ERROR";
'<td></td>'.
'<td></td>'.
'<td></td>'.
'<td></td>'.
'<td></td>'.
'</tr>';
}
return Response($output);
} }
} }
//Used for checking if the currently typed event name is unique. Create version
public function nameCheck(Request $request){
//Search the database to check that the name they are typing is uniq
$event = Event::query()->where('name', 'LIKE',$request->nameCheck)->get();
if(count($event) > 0 && $request->nameCheck !== NULL){
return 1;
}
}
//Used for checking if the currently typed event name is unique. Edit version
public function nameCheckUpdate(Request $request){
$event = Event::query()->where('name', 'LIKE',$request->nameCheck)->where('id', '!=', $request->id)->get();
if(count($event) > 0 && $request->nameCheck !== NULL){
return 1;
}
}
public function previewPages(Request $request){
//get the data from the database that match the request and leftjoin the resources table
$event = Event::where('events.id', '=', $request->preview)->leftJoin('resources', 'resources.id', '=', 'events.resource_id')->first();
//convert dababy to a convertible
$convertToJsonArray = json_encode($event);
return $convertToJsonArray;
}
} }

View File

@ -13,9 +13,9 @@ class FeedbackController extends Controller
public function __construct() public function __construct()
{ {
$this->middleware([ "auth" ]); $this->middleware([ "auth" ]);
$this->middleware([ "lang" ]);
$this->middleware([ "check.auth:feedback.list" ])->only("index"); $this->middleware([ "check.auth:feedback.show" ])->only("show", "index");
$this->middleware([ "check.auth:feedback.show" ])->only("show");
$this->middleware([ "check.auth:feedback.create" ])->only("create", "store"); $this->middleware([ "check.auth:feedback.create" ])->only("create", "store");
$this->middleware([ "check.auth:feedback.edit" ])->only("edit", "update"); $this->middleware([ "check.auth:feedback.edit" ])->only("edit", "update");
$this->middleware([ "check.auth:feedback.delete" ])->only("delete"); $this->middleware([ "check.auth:feedback.delete" ])->only("delete");
@ -29,7 +29,7 @@ class FeedbackController extends Controller
*/ */
public function index(Request $request) public function index(Request $request)
{ {
$feedback = Feedbacks::query()->orderBy('created_at', 'desc')->paginate($request->input("limit", 20)); $feedback = Feedbacks::query()->orderBy('created_at', 'desc')->get();
return Response::detect("feedbacks.index", [ "feedback" => $feedback ]); return Response::detect("feedbacks.index", [ "feedback" => $feedback ]);
} }
@ -124,37 +124,16 @@ class FeedbackController extends Controller
$feedback = Feedbacks::find($id); $feedback = Feedbacks::find($id);
$feedback->delete(); $feedback->delete();
return Response::detect("feedbacks.destroy"); return redirect()->route("feedbacks.index");
} }
public function storeajax(Request $request) {
$requestBody = $request->validate([
"message" => "required",
"suggestion_form" => "required|max:255"
]);
$feedbacks = new Feedbacks($requestBody);
public function search(Request $request){ $feedbacks->save();
if($request->ajax()){
$output = "<tr>".
"<th>Feedback Besked</th>".
"<th>Ris el. Ros</th>".
"</tr>";
//$value = Feedbacks::query('feedbacks')->select('suggestion_form ')->dump();
//$value = DB::table('feedbacks')->select('suggestion_form ')->dump();
if($request->option === "Ris" || $request->option === "Ros")
$feedbacks = Feedbacks::query()->orderBy('created_at', 'desc')->where('suggestion_form', '=', $request->option)
->get();
else
$feedbacks = Feedbacks::all();
if(count($feedbacks) !== 0){
foreach ($feedbacks as $key => $feedback){
$output.='<tr>'.
'<td>' . $feedback->message . '</td>'.
'<td>' . $feedback->suggestion_form . '</td>'.
'</tr>';
} }
}
return Response($output);
}
}
} }

View File

@ -3,24 +3,25 @@
namespace App\Http\Controllers; namespace App\Http\Controllers;
use App\Guide; use App\Guide;
use App\News;
use App\Resource;
use Illuminate\Http\Response; use Illuminate\Http\Response;
use Illuminate\Http\Request; use Illuminate\Http\Request;
use tidy;
class GuideController extends Controller class GuideController extends Controller
{ {
/*
public function __construct() public function __construct()
{ {
$this->middleware([ "auth" ]); $this->middleware([ "auth" ]);
$this->middleware([ "lang" ]);
$this->middleware([ "check.auth:contact.list" ])->only("index"); $this->middleware([ "check.auth:guides.show" ])->only("show", "index");
$this->middleware([ "check.auth:contact.show" ])->only("show"); $this->middleware([ "check.auth:guides.create" ])->only("create", "store");
$this->middleware([ "check.auth:contact.create" ])->only("create", "store"); $this->middleware([ "check.auth:guides.edit" ])->only("edit", "update");
$this->middleware([ "check.auth:contact.edit" ])->only("edit", "update"); $this->middleware([ "check.auth:guides.delete" ])->only("delete");
$this->middleware([ "check.auth:contact.delete" ])->only("delete");
} }
*/
/** /**
@ -30,7 +31,7 @@ class GuideController extends Controller
*/ */
public function index(Request $request) public function index(Request $request)
{ {
$guides = Guide::query()->paginate($request->input("limit", 20)); $guides = Guide::query()->orderBy("created_at", "desc")->get();
return Response::detect("guides.index", [ "guides" => $guides]); return Response::detect("guides.index", [ "guides" => $guides]);
} }
@ -53,21 +54,44 @@ class GuideController extends Controller
*/ */
public function store(Request $request) public function store(Request $request)
{ {
//Me no sure what to store mester big smoke :)
$requestGuide = $request->validate([ $requestGuide = $request->validate([
"name" => "required|max:255", "name" => "required|max:255",
"guide_articles" => "required", "guide_articles" => "required",
"guide_category_id" => "required",
]); ]);
$guide = new Guide($requestGuide); $guide = new Guide($requestGuide);
//If an image has been uploaded, store the file
if($request->file("resource")) {
$guide->resource_id = ResourceController::store($request)->id;
}
$saved = $guide->save(); $saved = $guide->save();
if(!$saved){ if(!$saved) {
return redirect()->route("guides.store"); return redirect()->route("guides.store");
}else{ } else {
$guide = Guide::query()->paginate($request->input("limit", 20)); $guides = Guide::query()->get();
return redirect()->route("guides.index", ['guides' => $guide]);
if($request->newsoption == true){
$news = new News();
$news->name = "Ny vejledning";
$news->subname = $guide->name;
$news->arrangement_id = $guide->id;
$news->type_id = '4';
$news->news_expiration_date = $request->input("news_expiration_date");
$news->content = $guide->guide_articles;
if($guide->resource_id !== null)
$news->resource_id = $guide->resource_id;
NewsController::storeAndGet($news);
}
return redirect()->route("guides.index", ['guides' => $guides]);
} }
} }
@ -103,33 +127,164 @@ class GuideController extends Controller
*/ */
public function update(Request $request, Guide $guide) public function update(Request $request, Guide $guide)
{ {
$data = $request->validate([ $data = $request->all();
"name" => "required|max:255",
"guide_articles" => "required",
]);
$guidee = Guide::query()->where("id", "=", $guide->id)->first(); $guidee = Guide::query()->where("id", "=", $guide->id)->first();
$guidee->update($data); $guidee->update($data);
//If an image has been uploaded, store the file
if($request->file("resource")) {
$guidee->resource_id = ResourceController::store($request)->id;
}
$saved = $guidee->save(); $saved = $guidee->save();
if(!$saved){ if(!$saved){
return redirect()->route("guides.update", [ "guide" => $guide ]); return redirect()->route("guides.update", [ "guide" => $guide ]);
}else{ }else{
$guide = Guide::query()->paginate($request->input("limit", 20)); $guides = Guide::query()->get();
return redirect()->route("guides.index", ['guides' => $guide]);
if($request->newsoption == true){
$news = new News();
$news->name = "Vejledning opdateret";
$news->subname = $guidee->name;
$news->arrangement_id = $guide->id;
$news->type_id = '4';
if($guide->resource_id !== null)
$news->resource_id = $guide->resource_id;
$news->content = $this->closetags(substr($guidee->guide_articles, 0, 300));
NewsController::storeAndGet($news);
}
return redirect()->route("guides.index", ['guides' => $guides]);
} }
} }
/** /**
* Remove the specified resource from storage. * Remove the specified resource from storage.
* *
* @param \App\Guide $guide * @param Guide $id
* @return \Illuminate\Http\Response * @return \Illuminate\Http\Response
*/ */
public function destroy(Guide $guide) public function destroy($id)
{ {
$guide = MenuPlan::find($guide); // Find the guide you want to remove
$guide = Guide::find($id);
// Find the news the you made when creating the guide (if there is a news)
$news = News::query()->join('news_types', 'news_types.id', '=', 'news.type_id')->where("type", "=", "Guide")->where("arrangement_id", "=", $id);
//Delete the news or/and guide
$news->delete();
$guide->delete(); $guide->delete();
return redirect()->route("guides.index"); return redirect()->route("guides.index");
} }
//Used to fix html, that have been substringed
public function closetags($html) {
preg_match_all('#<(?!meta|img|br|hr|input\b)\b([a-z]+)(?: .*)?(?<![/|/ ])>#iU', $html, $result);
$openedtags = $result[1];
preg_match_all('#</([a-z]+)>#iU', $html, $result);
$closedtags = $result[1];
$len_opened = count($openedtags);
if (count($closedtags) == $len_opened) {
return $html;
}
$openedtags = array_reverse($openedtags);
for ($i=0; $i < $len_opened; $i++) {
if (!in_array($openedtags[$i], $closedtags)) {
$html .= '</'.$openedtags[$i].'>';
} else {
unset($closedtags[array_search($openedtags[$i], $closedtags)]);
}
}
return $html;
}
//Used for checking if the currently typed guide name is unique. Create version
public function nameCheck(Request $request) {
$guide = Guide::query()->where('name', 'LIKE',$request->nameCheck)->get();
if(count($guide) > 0 && $request->nameCheck !== NULL){
return 1;
}
}
//Used for checking if the currently typed guide name is unique. Edit version
public function nameCheckUpdate(Request $request) {
$guide = Guide::query()->where('name', 'LIKE',$request->nameCheck)->where('id', '!=', $request->id)->get();
if(count($guide) > 0 && $request->nameCheck !== NULL){
return 1;
}
}
// Runs the ajax call when changing the select field in guides.index (app)
public function showCategory(Request $request){
if($request->ajax()) {
// Get all guides where the category is what you want
if ($request->category != 'All')
$guides = Guide::query()->orderBy("created_at", "desc")->where('guide_category_id', '=', $request->category)->get();
else
$guides = Guide::query()->orderBy("created_at", "desc")->get();
$output = '';
// Begin showing all guides with the given category
if(!$guides->isEmpty()) {
foreach ($guides as $guide) {
$output .= '<div class="card">';
if ($guide->resource_id !== null) {
$output .= '<div class="header bs-cover bp-center" style="background-image: url(' . asset(\App\Resource::query()->where("id", "=", $guide->resource_id)->first()->filename) . ');">' .
'</div>';
} else {
$output .= '<div class="header d-flex justify-content-center">' .
'<img alt="Image" src="'. asset('/images/icons/image.svg') . '" style="width: calc(100% - 20px)">' .
'</div>';
}
$output .= '<div class="container">' .
'<div class="row justify-content-center">'.
'<h4>'. $guide->name .'</h4>'.
'</div>'.
'<div class="row justify-content-center">';
if (request()->cookie('languagesSetting') == "dk")
$output .= '<a class="text-center m-none p-none bold sde-blue" href="'. route("guides.show", ["guide" => $guide->id ]) .'">Læs mere</a>';
elseif (request()->cookie('languagesSetting') == "en")
$output .= '<a class="text-center m-none p-none bold sde-blue" href="'. route("guides.show", ["guide" => $guide->id ]) .'">Read more</a>';
else
$output .= '<a class="text-center m-none p-none bold sde-blue" href="'. route("guides.show", ["guide" => $guide->id ]) .'">Læs mere</a>';
$output .= '</div>'.
'</div>'.
'</div>';
}
} else { // If there are no guides with the given category, then display error message
if (request()->cookie('languagesSetting') == "dk")
$output .= '<p class="mb-auto text-center">Der er ingen vejledninger af denne kategori</p>';
elseif (request()->cookie('languagesSetting') == "en")
$output .= '<p class="mb-auto text-center">There are no guides of this category</p>';
else
$output .= '<p class="mb-auto text-center">Der er ingen vejledninger af denne kategori</p>';
}
return Response($output);
}
}
public function previewPages(Request $request){
if(!Resource::find($request->preview)){
$event = Guide::find($request->preview);
}else{
$event = Guide::where('guides.id', '=', $request->preview)->join('resources', 'resources.id', '=', 'guides.resource_id')->first();
}
$convertToJsonArray = json_encode($event);
return $convertToJsonArray;
}
} }

View File

@ -0,0 +1,167 @@
<?php
namespace App\Http\Controllers;
use App\GuidesCategory;
use App\Guide;
use Illuminate\Http\Request;
use Illuminate\Http\Response;
class GuidesCategoryController extends Controller
{
public function __construct()
{
$this->middleware([ "auth" ]);
$this->middleware([ "lang" ]);
$this->middleware([ "check.auth:guides.show" ])->only("show", "index");
$this->middleware([ "check.auth:guides.create" ])->only("create", "store");
$this->middleware([ "check.auth:guides.edit" ])->only("edit", "update");
$this->middleware([ "check.auth:guides.delete" ])->only("delete");
}
/**
* Display a listing of the resource.
*
* @return Response
*/
public function index()
{
$guideCate = GuidesCategory::query()->get();
return Response::detect("guides-category.index", [ "guidesCategory" => $guideCate]);
}
/**
* Show the form for creating a new resource.
*
* @return \Illuminate\Http\Response
*/
public function create()
{
return Response::detect("guides-category.create");
}
/**
* Store a newly created resource in storage.
*
* @param \Illuminate\Http\Request $request
* @return \Illuminate\Http\Response
*/
public function store(Request $request)
{
$requestGuideCategory = $request->validate([
"guidesCategoryName" => "required|max:255",
]);
$guideCate = new GuidesCategory($requestGuideCategory);
$saved = $guideCate->save();
if(!$saved) {
return redirect()->route("guides-category.store");
} else {
$guides = Guide::query()->get();
return redirect()->route("guides.index", ['guides' => $guides]);
}
}
/**
* Display the specified resource.
*
* @param int $id
*/
public function show($id)
{
return Response::detect("guides-category.show", $id);
}
/**
* Show the form for editing the specified resource.
*
* @param int $id
* @return Response
*/
public function edit($id)
{
$guideCate = GuidesCategory::query()->where("id", "=", $id)->first();
return Response::detect("guides-category.edit", [ "guideCategory" => $guideCate]);
}
/**
* Update the specified resource in storage.
*
* @param \Illuminate\Http\Request $request
* @param int $id
* @return \Illuminate\Http\Response
*/
public function update(Request $request, $id)
{
$data = $request->validate([
"guidesCategoryName" => "required|max:255",
]);
$guideCate = GuidesCategory::query()->where("id", "=", $id)->first();
$guideCate->update($data);
$saved = $guideCate->save();
if(!$saved){
return redirect()->route("guides-category.edit", $id);
}else{
$guides = Guide::query()->get();
return redirect()->route("guides.index", ['guides' => $guides]);
}
}
/**
* Remove the specified resource from storage.
*
* @param int $id
* @return \Illuminate\Http\Response
*/
public function destroy($id)
{
$guideCategory = GuidesCategory::find($id);
$guides = Guide::query()->where('guide_category_id', '=', $id);
$guides->delete();
$guideCategory->delete();
return redirect()->route("guides.index");
}
//Used for checking if the currently typed Guide Category name is unique. Create version
public function nameCheck(Request $request) {
$guide = GuidesCategory::query()->where('guidesCategoryName', 'LIKE',$request->nameCheck)->get();
if(count($guide) > 0 && $request->nameCheck !== NULL){
return 1;
}
}
//Used for checking if the currently typed Guide Category name is unique. Edit version
public function nameCheckUpdate(Request $request) {
$guide = GuidesCategory::query()->where('guidesCategoryName', 'LIKE',$request->nameCheck)->where('id', '!=', $request->id)->get();
if(count($guide) > 0 && $request->nameCheck !== NULL){
return 1;
}
}
public function guideCategoryCreate(Request $request){
$data = $request->validate([
"guidesCategoryName" => "required",
]);
$category = new GuidesCategory($data);
$categories = GuidesCategory::query()->where('guidesCategoryName', 'LIKE', $request->guidesCategoryName)->get();
if(count($categories) > 0 && $request->guidesCategoryName !== NULL){
return 1;
} else {
$category->save();
}
}
}

View File

@ -0,0 +1,167 @@
<?php
namespace App\Http\Controllers;
use App\Location;
use App\WashingMachine;
use App\WashingReservation;
use Illuminate\Http\Request;
use Illuminate\Http\Response;
use Illuminate\Support\Facades\DB;
use function GuzzleHttp\Promise\all;
class LocationController extends Controller
{
public function __construct()
{
$this->middleware([ "auth" ]);
$this->middleware([ "lang" ]);
$this->middleware([ "check.auth:locations.show" ])->only("show", "index");
$this->middleware([ "check.auth:locations.create" ])->only("create", "store");
$this->middleware([ "check.auth:locations.edit" ])->only("edit", "update");
$this->middleware([ "check.auth:locations.delete" ])->only("delete");
}
/**
* Display a listing of the resource.
*
* @param Request $request
* @return \Illuminate\Http\Response
*/
public function index(Request $request)
{
$locations = Location::query()->get();
return Response::detect("locations.index", [ "locations" => $locations ]);
}
/**
* Show the form for creating a new resource.
*
* @return \Illuminate\Http\Response
*/
public function create()
{
return Response::detect("locations.create");
}
/**
* Store a newly created resource in storage.
*
* @param \Illuminate\Http\Request $request
* @return \Illuminate\Http\Response
*/
public function store(Request $request)
{
$data = $request->validate([
"name" => "required",
]);
$location = new Location($data);
$locations = Location::query()->where('name', '=', $request->name)->get();
// If there already is a washing machine with that name, then don't add it
if (count($locations) > 0)
return redirect()->route("washing-machines.index");
else { // Else - Add it
$location->save();
$locations = Location::query()->get();
return redirect()->route("washing-machines.index", ['locations' => $locations]);//washing-machines.index kan byttes ud med locations.index
}
}
/**
* Display the specified resource.
*
* @param \App\Location $location
* @return \Illuminate\Contracts\Foundation\Application|\Illuminate\Contracts\View\Factory|\Illuminate\View\View
*/
public function show(Location $location)
{
return view("admin.locations.show", [ "location" => $location]);
}
/**
* Show the form for editing the specified resource.
*
* @param \App\Location $location
* @return \Illuminate\Http\Response
*/
public function edit(Location $location)
{
return Response::detect("locations.edit", [ "location" => $location] );
}
/**
* Update the specified resource in storage.
*
* @param \Illuminate\Http\Request $request
* @param \App\Location $location
* @return \Illuminate\Http\Response
*/
public function update(Request $request, $id)
{
$data = $request->validate([
"name" => "required",
]);
$location = Location::find($id);
$allMachines = Location::query()->where('name', '=', $request->name)->where('id', '!=', $id)->get();
// If there already is a washing machine with that name, then don't change it
if (count($allMachines) > 0)
return redirect()->route("washing-machines.index");
else { // Else - Change the name
$location->update($data);
$location->save();
$locations = Location::query()->get();
return redirect()->route("washing-machines.index", ["locations" => $locations]); //washing-machines.index kan byttes ud med locations.index
}
}
/**
* Remove the specified resource from storage.
*
* @param int $id
* @return \Illuminate\Http\Response
*/
public function destroy($id)
{
$location = Location::find($id);
$washingMachines = WashingMachine::query()->where('location_id', '=', $id)->get();
foreach ($washingMachines as $machine) {
$washingReservations = WashingReservation::query()->where('machine_id', '=', $machine->id)->get();
foreach ($washingReservations as $reservation)
{
$reservation->delete();
}
$machine->delete();
}
$location->delete();
return redirect()->route("washing-machines.index");//washing-machines.index kan byttes ud med locations.index
}
public function nameCheck(Request $request){
$locations = Location::query()->where('name', 'LIKE',$request->nameCheck)->get();
if(count($locations) > 0 && $request->nameCheck !== NULL){
return 1;
}
}
public function nameCheckUpdate(Request $request){
$locations = Location::query()->where('name', 'LIKE',$request->nameCheck)->where('id', '!=', $request->id)->get();
if(count($locations) > 0 && $request->nameCheck !== NULL){
return 1;
}
}
}

View File

@ -2,9 +2,12 @@
namespace App\Http\Controllers; namespace App\Http\Controllers;
use App\ExternalLink; use App;
use App\MenuPlan; use App\MenuPlan;
use App\News;
use App\User; use App\User;
use Barryvdh\DomPDF\Facade as PDF;
use Illuminate\Http\RedirectResponse;
use Illuminate\Http\Request; use Illuminate\Http\Request;
use Illuminate\Http\Response; use Illuminate\Http\Response;
use Illuminate\Support\Facades\DB; use Illuminate\Support\Facades\DB;
@ -17,9 +20,9 @@ class MenuPlanController extends Controller
public function __construct() public function __construct()
{ {
$this->middleware([ "auth" ]); $this->middleware([ "auth" ]);
$this->middleware([ "lang" ]);
$this->middleware([ "check.auth:menuplan.list" ])->only("index"); $this->middleware([ "check.auth:menuplan.show" ])->only("show", "index");
$this->middleware([ "check.auth:menuplan.show" ])->only("show");
$this->middleware([ "check.auth:menuplan.create" ])->only("create", "store"); $this->middleware([ "check.auth:menuplan.create" ])->only("create", "store");
$this->middleware([ "check.auth:menuplan.edit" ])->only("edit", "update"); $this->middleware([ "check.auth:menuplan.edit" ])->only("edit", "update");
$this->middleware([ "check.auth:menuplan.delete" ])->only("delete"); $this->middleware([ "check.auth:menuplan.delete" ])->only("delete");
@ -32,7 +35,7 @@ class MenuPlanController extends Controller
*/ */
public function index(Request $request) public function index(Request $request)
{ {
$menuPlans = MenuPlan::query()->paginate($request->input("limit", 20)); $menuPlans = MenuPlan::query()->get();
return Response::detect("menuplans.index", [ "menuPlans" => $menuPlans]); return Response::detect("menuplans.index", [ "menuPlans" => $menuPlans]);
} }
@ -56,22 +59,50 @@ class MenuPlanController extends Controller
public function store(Request $request) public function store(Request $request)
{ {
$requestMenuPlanCreate = $request->validate([ $requestMenuPlanCreate = $request->validate([
"week" => "required|max:2", "week" => "required",
"monday" => "required|max:255", "monday" => "required",
"tuesday" => "required|max:255", "tuesday" => "required",
"wednesday" => "required|max:255", "wednesday" => "required",
"thursday" => "required|max:255" "thursday" => "required",
]); ]);
$menuPlans = new MenuPlan($requestMenuPlanCreate); $menuPlan = new MenuPlan($requestMenuPlanCreate);
$allMenuPlans = MenuPlan::query()->where('week', '=', $request->week)->get(); $allMenuPlans = MenuPlan::query()->where('week', '=', $request->week)->get();
if(count($allMenuPlans) > 0) if(count($allMenuPlans) > 0)
return redirect()->route("menu-plans.index")->with('WeekExists', '<p><b>Der findes allerede en menuplan for den uge!</b></p>'); return redirect()->route("menu-plans.index");
else { else {
$menuPlans->save(); $menuPlan->save();
$menuPlans = MenuPlan::query()->paginate($request->input("limit", 20)); $menuPlans = MenuPlan::query()->get();
if($request->newsoption == true){
$news = new News();
$news->name = "Ny menuplan";
$news->subname = "Menuplan for uge " . $menuPlan->week;
$news->content =
'<h2 class="ql-align-center"><strong>Mandag:</strong></h2>'.
'<p class="ql-align-center">'.$menuPlan->monday.'</p><p class="ql-align-center"><br></p>'.
'<h2 class="ql-align-center"><strong>Tirsdag:</strong></h2>'.
'<p class="ql-align-center">'.$menuPlan->tuesday.'</p><p class="ql-align-center"><br></p>'.
'<h2 class="ql-align-center"><strong>Onsdag:</strong></h2>'.
'<p class="ql-align-center">'.$menuPlan->wednesday.'</p><p class="ql-align-center"><br></p>'.
'<h2 class="ql-align-center"><strong>Torsdag:</strong></h2>'.
'<p class="ql-align-center">'.$menuPlan->thursday.'</p>';
$news->type_id = '2';
$news->arrangement_id = $menuPlan->id;
if($request->file("resource")) {
$news->resource_id = ResourceController::store($request)->id;
}
NewsController::storeAndGet($news);
}
return redirect()->route("menu-plans.index", ['menuPlans' => $menuPlans]); return redirect()->route("menu-plans.index", ['menuPlans' => $menuPlans]);
} }
} }
@ -116,12 +147,42 @@ class MenuPlanController extends Controller
$allMenuPlans = MenuPlan::query()->where('week', '=', $request->week)->where('id', '!=', $id)->get(); $allMenuPlans = MenuPlan::query()->where('week', '=', $request->week)->where('id', '!=', $id)->get();
if(count($allMenuPlans) > 0){ if(count($allMenuPlans) > 0){
return redirect()->route("menu-plans.index")->with('WeekExists', '<p><b>Der findes allerede en menuplan for den uge!</b></p>'); return redirect()->route("menu-plans.index");
}else{ }else{
$menuplan->update($data); $menuplan->update($data);
$menuplan->save(); $menuplan->save();
$menuPlans = MenuPlan::query()->paginate($request->input("limit", 20)); $menuPlans = MenuPlan::query()->get();
//Create news
if($request->newsoption == true){
$news = new News();
$news->name = "Opdateret menuplan";
$news->subname = "Opdateret menuplan for uge " . $menuplan->week;
$news->arrangement_id = $menuplan->id;
$news->type_id = '2';
$news->content =
'<h2 class="ql-align-center"><strong>Mandag:</strong></h2>'.
'<p class="ql-align-center">'.$menuplan->monday.'</p><p class="ql-align-center"><br></p>'.
'<h2 class="ql-align-center"><strong>Tirsdag:</strong></h2>'.
'<p class="ql-align-center">'.$menuplan->tuesday.'</p><p class="ql-align-center"><br></p>'.
'<h2 class="ql-align-center"><strong>Onsdag:</strong></h2>'.
'<p class="ql-align-center">'.$menuplan->wednesday.'</p><p class="ql-align-center"><br></p>'.
'<h2 class="ql-align-center"><strong>Torsdag:</strong></h2>'.
'<p class="ql-align-center">'.$menuplan->thursday.'</p>';
$oldResourceID = News::query()->where('arrangement_id', '=', $menuplan->id)->first();
if ($oldResourceID != null)
$news->resource_id = $oldResourceID->resource_id;
NewsController::storeAndGet($news);
}
return redirect()->route("menu-plans.index", ['menuPlans' => $menuPlans]); return redirect()->route("menu-plans.index", ['menuPlans' => $menuPlans]);
} }
@ -131,60 +192,69 @@ class MenuPlanController extends Controller
* Remove the specified resource from storage. * Remove the specified resource from storage.
* Test delete return index function. * Test delete return index function.
* @param int $id * @param int $id
* @return \Illuminate\Http\RedirectResponse * @return RedirectResponse
*/ */
public function destroy($id) public function destroy($id)
{ {
// Find the menu you want to remove
$menuplan = MenuPlan::find($id); $menuplan = MenuPlan::find($id);
// Find the news the you made when creating the menu (if there is a news)
$news = News::query()->join('news_types', 'news_types.id', '=', 'news.type_id')->where('type', '=', 'Menu')->where('arrangement_id', '=', $id);
//Delete the news or/and menu
$news->delete();
$menuplan->delete(); $menuplan->delete();
return redirect()->route("menu-plans.index"); return redirect()->route("menu-plans.index");
} }
/**
* Remove the specified resource from storage.
* Test delete return index function.
* @param $Id
* @return RedirectResponse
*/
public function genPDF($Id){
//get the menuplan with the matching id
$menuPlan = MenuPlan::query()->where("id", "=", $Id)->first();
public function search(Request $request){ //Sub string cap
if($request->ajax()){ $var = 250;
$output = "<tr>".
"<th>Uge</th>".
"<th>Mandag</th>".
"<th>Tirsdag</th>".
"<th>Onsdag</th>".
"<th>Torsdag</th>".
"<th style=\"width: 1em;\"><img class=\"w-100\" src=\"http://127.0.0.1:8000/images/icons/pencil.svg\" alt=\"Update\"></th>".
"<th style=\"width: 1em;\"><img class=\"w-100\" src=\"http://127.0.0.1:8000/images/icons/trashcan.svg\" alt=\"Delete\"></th>".
"</tr>";
$menuplans = DB::table('menu_plans')->where('week', 'LIKE',$request->search.'%')->get();
if(count($menuplans) !== 0){ //Substring the data
foreach ($menuplans as $key => $menuplan){ $menuPlan->monday = substr($menuPlan->monday, 0, $var);
$output.='<tr>'. $menuPlan->tuesday = substr($menuPlan->tuesday, 0, $var);
'<td>' . $menuplan->week . '</td>'. $menuPlan->wednesday = substr($menuPlan->wednesday, 0, $var);
'<td>' . $menuplan->monday . '</td>'. $menuPlan->thursday = substr($menuPlan->thursday, 0, $var);
'<td>' . $menuplan->tuesday . '</td>'.
'<td>' . $menuplan->wednesday .'</td>'. //Pass the substring data to the genPDF pages
'<td>' . $menuplan->thursday .'</td>'. $pdf = PDF::loadView('pdf.menuplan', ["menuPlan" => $menuPlan]);
'<td><a href="'. route("menu-plans.edit", [ "menu_plan" => $menuplan->id ]) . '"><img class="w-100" src="'. asset('/images/icons/pencil-dark.svg') . '" alt="Update"></a></td>'.
'<td><form method="post" action="' .route("menu-plans.destroy", [ "menu_plan" => $menuplan->id ]). '" class="w-100 nostyle">'. //PDF config
csrf_field(). $pdf->setPaper('A4', 'portrait');
method_field("delete").
//return the pdf
return $pdf->stream("menuplan_uge_".$menuPlan->week.".pdf");
'<button class="w-100 nostyle" onclick="return confirm(\'Are you sure you want to delete?\');" type="submit"><img class="w-100 cursor-pointer" src="'. asset('/images/icons/trashcan-dark.svg') . '" alt="Delete"></button>'.
'</form>'.
'</td>'.
'</tr>';
} }
}else{
$output.='<tr>'. public function nameCheck(Request $request){
'<td>Intet match</td>'. $menuplan = MenuPlan::query()->where('week', 'LIKE',$request->nameCheck)->get();
'<td></td>'. if(count($menuplan) > 0 && $request->nameCheck !== NULL){
'<td></td>'. return 1;
'<td></td>'.
'<td></td>'.
'<td></td>'.
'<td></td>'.
'</tr>';
} }
return Response($output);
} }
public function nameCheckUpdate(Request $request){
$menuplan = MenuPlan::query()->where('week', 'LIKE',$request->nameCheck)->where('id', '!=', $request->id)->get();
if(count($menuplan) > 0 && $request->nameCheck !== NULL){
return 1;
}
}
public function previewPages(Request $request){
$event = MenuPlan::find($request->preview);
$convertToJsonArray = json_encode($event);
return $convertToJsonArray;
} }

View File

@ -0,0 +1,316 @@
<?php
namespace App\Http\Controllers;
use App\MultipleEvents;
use App\MultipleEventsParent;
use Carbon\Carbon;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Http\Request;
use Illuminate\Http\Response;
use Barryvdh\DomPDF\Facade as PDF;
//Not in use yet
use App\Event;
use App\News;
use App\Notification;
use App\Resource;
use App\UserEvent;
class MultipleEventsController extends Controller
{
public function __construct()
{
$this->middleware([ "auth" ]);
$this->middleware([ "lang" ]);
$this->middleware([ "check.auth:event.show" ])->only("show", "index");
$this->middleware([ "check.auth:event.create" ])->only("create", "store");
$this->middleware([ "check.auth:event.edit" ])->only("edit", "update");
$this->middleware([ "check.auth:event.delete" ])->only("delete");
}
/**
* Display a listing of the resource.
*
* @return \Illuminate\Http\Response
*/
public function index()
{
$multiEvents = MultipleEventsParent::join("multiple_events", "multiple_events.multiple_events_parent_id", '=', 'multiple_events_parent.id')->groupBy('multiple_events.multiple_events_parent_id', 'multiple_events_parent.id', 'multiple_events_parent.week', 'multiple_events_parent.resource_id', 'multiple_events_parent.created_at', 'multiple_events_parent.updated_at')->selectRaw('multiple_events_parent.*, max(date) as date')->get();
/*
$multiEvents = MultipleEventsParent::join("multiple_events", "multiple_events.multiple_events_parent_id", '=', 'multiple_events_parent.id')
->groupBy('multiple_events_parent_id')->orderBy('multiple_events.date', 'desc')
->selectRaw('multiple_events_parent.*, max(date) as date')
->get();
*/
return Response::detect("multiple-events.index", [ "multiEvents" => $multiEvents]);
}
/**
* Show the form for creating a new resource.
*
* @return \Illuminate\Http\Response
*/
public function create()
{
//returns create multiple events blade file from the view folder
return Response::detect("multiple-events.create");
}
/**
* Store a newly created resource in storage.
*
* @param \Illuminate\Http\Request $request
* @return \Illuminate\Http\Response
*/
public function store(Request $request)
{
$requestBody = $request->validate([
"week" => "required",
"name" => "array",
"description" => "array",
"accountable" => "array",
"date" => "array",
]);
$multipleParent = new MultipleEventsParent();
$multipleParent->week = $request->week;
if($request->file("resource")) {
$multipleParent->resource_id = ResourceController::store($request)->id;
}
$multipleParent->save();
for ($i = 0; $i < count($requestBody["name"]); $i++) {
$multi_event = new MultipleEvents();
$multi_event->date = $requestBody['date'][$i];
$multi_event->description = $requestBody['description'][$i];
$multi_event->accountable = $requestBody['accountable'][$i];
$multi_event->name = $requestBody['name'][$i];
$multi_event->multiple_events_parent_id = $multipleParent->id;
$multi_event->save();
}
//creates a new Event model with the given parameter
$multiEventsGetEndDate = MultipleEventsParent::join("multiple_events", "multiple_events.multiple_events_parent_id", '=', 'multiple_events_parent.id')
->groupBy('multiple_events_parent_id')
->orderBy('multiple_events.date', 'desc')
->selectRaw('multiple_events_parent.*, max(date) as date')
->get();
$multiEvents = MultipleEventsParent::query()->get();
if($request->newsoption == true){
$news = new News();
$news->name = "Ny ugentlig aktivitet";
$news->subname = $request->week;
$news->arrangement_id = $multipleParent->id;
$news->type_id = '5';
$news->content = "Den ugentlige aktivitets plan for uge ".$request->week." er her!";
$news->resource_id = $request->resource_id;
$news->news_expiration_date = $multiEventsGetEndDate[0]->date;
NewsController::storeAndGet($news);
}
return redirect()->route('events.index', ['multiEvents' => $multiEvents]);
}
/**
* Display the specified resource.
*
* @param \App\MultipleEvents $multipleeventsController
* @return \Illuminate\Http\Response
*/
public function show($id)
{
$multiEvents = MultipleEvents::where('multiple_events.multiple_events_parent_id', '=', $id)->orderBy('date')->get();
$multiEventParent = MultipleEventsParent::find($id);
return Response::detect("multiple-events.show", [ "week" => $multiEventParent->week, "multiEvents" => $multiEvents]);
}
/**
* Display signups for event.
*
* @param int $id
* @return \Illuminate\Contracts\Foundation\Application|\Illuminate\Contracts\View\Factory|\Illuminate\View\View
*/
public function accountsignups(Request $request)
{
// Find every event you have clicked on. And find all users to that event, and the event name itself.
$events = UserEvent::join('users', 'users.id', '=', 'user_events.user_id')->where('multiple_event_id', $request->multiEvent)->select('user_events.*', 'users.name_first', 'users.name_last', 'users.phone')->get();
if (count($events) == 0)
$events = Event::where('id', $request->event)->get();
return Response::detect("multiple-events.signups", [ "multiEvent" => $events ]);
}
/**
* Show the form for editing the specified resource.-
*
* @param int $id
* @return \Illuminate\Contracts\Foundation\Application|\Illuminate\Contracts\View\Factory|\Illuminate\View\View
*/
public function edit($id)
{
$multiEvents = MultipleEvents::where('multiple_events_parent_id', '=', $id)->get();
$parentEvent = MultipleEventsParent::find($id);
return Response::detect("multiple-events.edit", ["multiEvents" => $multiEvents, "parentEvent" => $parentEvent]);
}
/**
* Update the specified resource in storage.
*
* @param \Illuminate\Http\Request $request
* @param int $id
* @return \Illuminate\Http\Response
*/
public function update(Request $request, $id)
{
$requestBody = $request->validate([
"week" => "required",
"name" => "array",
"description" => "array",
"accountable" => "array",
"date" => "array",
]);
$parentEvent = MultipleEventsParent::find($id);
if($request->file("resource")) {
$parentEvent->update(["week" => $request->week, "resource_id" => ResourceController::store($request)->id]) ;
} else
$parentEvent->update(["week" => $request->week]);
if (!empty($requestBody["name"])) {
foreach ($requestBody["name"] as $key => $singleEvent) {
if ($key == "new") {
//dd(count($s));
for ($i = 0; $i < count($singleEvent); $i++) {
$multi_event = new MultipleEvents();
$multi_event->name = $requestBody["name"]["new"][$i];
$multi_event->description = $requestBody["description"]["new"][$i];
$multi_event->accountable = $requestBody["accountable"]["new"][$i];
$multi_event->date = $requestBody["date"]["new"][$i];
$multi_event->multiple_events_parent_id = $id;
$multi_event->save();
}
} else {
$event = MultipleEvents::find($key);
$event->update(["name" => $requestBody["name"][$key][0], "description" => $requestBody["description"][$key][0], "accountable" => $requestBody["accountable"][$key][0], "date" => date("Y-m-d H:i:s", strtotime($requestBody["date"][$key][0]))]);
}
}
$multiEventsGetEndDate = MultipleEventsParent::join("multiple_events", "multiple_events.multiple_events_parent_id", '=', 'multiple_events_parent.id')
->groupBy('multiple_events_parent_id')
->orderBy('multiple_events.date', 'desc')
->selectRaw('multiple_events_parent.*, max(date) as date')
->get();
if ($request->newsoption == true) {
$news = new News();
$news->name = "Opdateret ugentlig aktivitet";
$news->subname = $request->week;
$news->arrangement_id = $parentEvent->id;
$news->type_id = '5';
$news->content = "Den ugentlige aktivitets plan for uge " . $request->week . " er opdateret!";
$news->resource_id = $request->resource_id;
$news->news_expiration_date = $multiEventsGetEndDate[0]->date;
NewsController::storeAndGet($news);
}
}
$events = Event::query()->orderBY('date' , 'asc')->get();
return Response::detect("events.index", [ "events" => $events]);
}
/**
* Remove the specified resource from storage.
*
* @param \App\MultipleEvents $multipleeventsController
* @return \Illuminate\Http\Response
*/
public function destroy(Request $request, $id)
{
if ($request->signup != null) { // If input signup is not empty, which has been set when you look at the individuel signup, then delete the user who have signed up for the specific week event
$UserEvent = UserEvent::find($id);
$UserEvent->delete();
return 1;
} elseif ($request->onlyMultiEvent != null) { // Delete a single event from multiple events, and all its signups
$userEvents = UserEvent::where('multiple_event_id', '=', $id)->get();
$multiEvent = MultipleEvents::find($id);
foreach ($userEvents as $ue) {
$ue->delete();
}
$multiEvent->delete();
return 1;
} else { // Delete all multiple events and signups, from the parent/weekly event
$multiparent = MultipleEventsParent::find($id);
$multievent = MultipleEvents::where('multiple_events_parent_id', '=', $id)->get();
foreach ($multievent as $me) {
foreach (UserEvent::where('multiple_event_id', '=', $me->id)->get() as $ue) {
$ue->delete();
}
$me->delete();
}
$news = News::query()->join('news_types', 'news_types.id', '=', 'news.type_id')->where("type", "=", "MultipleEvent")->where("arrangement_id", "=", $id);
$news->delete();
$multiparent->delete();
return 1;
}
}
public function previewPages(Request $request){
/*if(!Resource::find($request->preview)){
$multipleEventsParent = MultipleEventsParent::find($request->preview);
$multipleEvents = MultipleEvents::where('multiple_events_parent_id', '=', $multipleEventsParent->id)->get();
} else {*/
//$multipleEventsParent = MultipleEventsParent::find($request->preview);
$multipleEventsParent = MultipleEventsParent::leftJoin('resources', 'resources.id', '=', 'multiple_events_parent.resource_id')->where('multiple_events_parent.id', '=', $request->preview)->select('multiple_events_parent.*', 'resources.filename')->first();
$multipleEvents = MultipleEvents::where('multiple_events_parent_id', '=', $multipleEventsParent->id)->get();
//}
return [$multipleEventsParent, $multipleEvents];
}
public function genPDF($Id){
$multiEvent = MultipleEventsParent::query()->join("multiple_events", "multiple_events.multiple_events_parent_id", "=", "multiple_events_parent.id")->where("multiple_events_parent.id", "=", $Id)->orderBy('multiple_events.date', 'asc')->get();
$pdf = PDF::loadView('multipdf.multipleevent', ["multiEvent" => $multiEvent]);
$pdf->setPaper('A4', 'landscape');
return $pdf->stream("ugentligt_aktivitet_uge_".$multiEvent[0]->week.".pdf");
}
public function signups(Request $request)
{
// Find every event you have clicked on. And find all users to that event, and the event name itself.
//$multiEvents = UserEvent::join('users', 'users.id', '=', 'user_events.user_id')->join('multiple_events', 'multiple_events.id', '=', 'user_events.multiple_event_id')->where('multiple_event_id', '=', $request->multipleEvent)->get();
$multiEvents = MultipleEvents::where('multiple_events_parent_id', '=', $request->multipleEvent)->get();
//if (count($multiEvents) == 0)
// $multiEvents = MultipleEvents::where('id', '=', $request->multipleEvent)->get();
return Response::detect("multiple-events.signups", [ "multiEvent" => $multiEvents ]);
}
}

View File

@ -0,0 +1,191 @@
<?php
namespace App\Http\Controllers;
use App\Event;
use App\Helpers;
use App\News;
use App\User;
use Illuminate\Database\Eloquent\Collection;
use Illuminate\Http\RedirectResponse;
use Illuminate\Http\Request;
use Illuminate\Http\Response;
date_default_timezone_set('Europe/Copenhagen');
class NewsController extends Controller
{
public function __construct()
{
$this->middleware([ "auth" ]);
$this->middleware([ "lang" ]);
$this->middleware([ "check.auth:news.show" ])->only("show", "index");
$this->middleware([ "check.auth:news.create" ])->only("create", "store");
$this->middleware([ "check.auth:news.edit" ])->only("edit", "update");
$this->middleware([ "check.auth:news.delete" ])->only("delete");
}
/**
* Display a listing of the resource.
*
* @return \Illuminate\Http\Response
*/
public function index(Request $request)
{
//joining news and news_types
$news = News::query()
->join("news_types", "news.type_id", "=", "news_types.id")
->orderBy('id', 'desc')
->select('news.*', 'news_types.type')
->get();
return Response::detect("news.index", [ "news" => $news ]);
}
/**
* Show the form for creating a new resource.
*
* @return \Illuminate\Http\Response
*/
public function create()
{
return Response::detect("news.create");
}
/**
* Store a newly created resource in storage.
*
* @param \Illuminate\Http\Request $request
* @return RedirectResponse
*/
public function store(Request $request)
{
$data = $request->validate([
"subname" => "required",
"content" => "required",
"news_expiration_date" => ""
]);
$news = new News($data);
$news->name = "";
$news->type_id = '1';
$news->save();
Helpers::sendNewsNotification($news, User::query()->where("wants_emails", "=", true)->get());
PushNotificationController::push();
return redirect()->route("news.index");
}
/**
* Store a newly created resource in storage.
*
* @return News
*/
public static function storeAndGet(News $news)
{
$OldNews = News::query()->where('arrangement_id', "=", $news->arrangement_id)->where('type_id', '=', $news->type_id);
$OldNews->delete();
$news->save();
Helpers::sendNewsNotification($news, User::query()->where("wants_emails", "=", true)->get());
PushNotificationController::push();
return $news;
}
/**
* Display the specified resource.
*
* @param \App\News $news
* @return \Illuminate\Http\Response
*/
public function show(News $news)
{
//
}
/**
* Show the form for editing the specified resource.
*
* @param \App\News $news
* @return \Illuminate\Http\Response
*/
public function edit(News $news)
{
return Response::detect("news.edit", [ "news" => $news ]);
}
/**
* Update the specified resource in storage.
*
* @param \Illuminate\Http\Request $request
* @param \App\News $news
* @return RedirectResponse
*/
public function update(Request $request, News $news)
{
$data = $request->validate([
"subname" => "required",
"content" => "required",
"news_expiration_date" => ""
]);
$news->update($data);
Helpers::sendNewsNotification($news, User::query()->where("wants_emails", "=", true)->get());
return redirect()->route("news.index");
}
/**
* Update the specified resource in storage.
*
* @param \Illuminate\Http\Request $request
* @param \App\News $news
* @return RedirectResponse
*/
public static function updateAndGet(News $news)
{
$news->update();
Helpers::sendNewsNotification($news, User::query()->where("wants_emails", "=", true)->get());
return $news;
}
/**
* Remove the specified resource from storage.
*
* @param \App\News $news
* @return RedirectResponse
* @throws \Exception
*/
public function destroy(News $news)
{
$news->delete();
return redirect()->route("news.index");
}
public function nameCheck(Request $request){
$news = News::query()->where('subname', 'LIKE',$request->nameCheck)->get();
if(count($news) > 0 && $request->nameCheck !== NULL){
return 1;
}
}
public function nameCheckUpdate(Request $request){
$news = News::query()->where('subname', 'LIKE',$request->nameCheck)->where('id', '!=', $request->id)->get();
if(count($news) > 0 && $request->nameCheck !== NULL){
return 1;
}
}
public function previewPages(Request $request){
$event = News::find($request->preview);
$convertToJsonArray = json_encode($event);
return $convertToJsonArray;
}
}

View File

@ -0,0 +1,24 @@
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
class NewsTypeController extends Controller
{
public function index() {
}
public function store() {
}
public function update() {
}
public function show() {
}
}

Some files were not shown because too many files have changed in this diff Show More