Hadi Nategh
6c9504e647
Add fullscreen into htmleditor feature preferences. fix and use svg icons.
2020-03-20 13:02:19 +01:00
nathangray
a7593b2f83
Add some comment so we know what's going on
2020-03-19 10:41:45 -06:00
nathangray
c04915ae09
Etemplate: Fix nextmatch printing failed after TypeScript conversion
2020-03-18 10:36:14 -06:00
Ralf Becker
d21cd6bcd9
Changelog for 19.1.20200318
2020-03-18 16:05:40 +01:00
Ralf Becker
04b83d4344
* Filemanager/Sharing: fix lost session on first load in sharing links with Firefox
2020-03-17 20:38:30 +01:00
nathangray
83fd11f7c7
Fix bug in nm rowProvider preventing some re-ordered columns from getting their value
2020-03-17 10:32:45 -06:00
Hadi Nategh
b2c60f5667
Fix searchbox messed up DOMNode
2020-03-17 15:56:56 +01:00
nathangray
5af17679f3
Fix some missed free() calls
2020-03-16 14:27:57 -06:00
nathangray
298d0618e6
Etemplate: Add 3 minute nextmatch refresh option
2020-03-13 11:49:36 -06:00
nathangray
b8c6d52d29
Merge feature/improve_nm_performance changes in
2020-03-11 10:56:51 -06:00
nathangray
458a40c792
Avoid some warnings caused by using foreach() over null
2020-03-11 09:25:31 -06:00
Hadi Nategh
625c3eb73c
Fix htmlarea being initiated twice
2020-03-11 14:54:47 +01:00
nathangray
d4b9397d62
Refactor tests to avoid deprecated assertions
2020-03-10 15:54:02 -06:00
nathangray
4078154237
Remove permanent error_log
2020-03-09 15:29:51 -06:00
Hadi Nategh
d6c2a4aa0b
Convert tracker app.js to TS
2020-03-09 16:12:49 +01:00
Hadi Nategh
f39248c89a
Fix triangle icon for toolbar's header button
2020-03-09 14:10:46 +01:00
nathangray
173b695cf2
Api: Sharing listens to Vfs hooks to stay up-to-date with deleted or renamed files
2020-03-06 14:48:26 -07:00
Ralf Becker
4fe466f4f9
deals with some rows share_path have "vfs://default" prefix, some are just path
2020-03-06 15:08:34 +01:00
Ralf Becker
4c987e7dd8
fix all shares (not files) got deletes, if one was expired
2020-03-06 14:33:50 +01:00
nathangray
aa87e60f10
Etemplate: Fix customfield widget bug "Cannot read property ... of undefined"
2020-03-05 15:37:42 -07:00
nathangray
9b2e6b5012
Api: Fix Sharing missing temp file cleanup
2020-03-05 15:03:34 -07:00
nathangray
1fcd502d57
Api: Fix sharing lost session ID causing logout
2020-03-05 14:08:57 -07:00
nathangray
0df0777484
Revert "Api: Fix sharing lost session ID causing logout"
...
This reverts commit 07561bf01d
.
2020-03-05 14:07:24 -07:00
nathangray
07561bf01d
Api: Fix sharing lost session ID causing logout
2020-03-05 13:58:09 -07:00
Hadi Nategh
a79280e78c
Fix error egw_keymanager_js_1.egw_keyHandler is not a function
2020-03-05 14:53:50 +01:00
Hadi Nategh
0cc7ce12d0
merge master
2020-03-05 14:45:25 +01:00
Hadi Nategh
4ae4b4027b
Remove extra semicolons
2020-03-05 13:25:52 +01:00
Ralf Becker
7283d33a93
fold Apache error.log and ignored PHP syntax errors, plus remove some warnings
2020-03-05 11:53:26 +01:00
Ralf Becker
5cedd472f9
move setting a working session.save_path to bootstrap, to avoid tons of warnings set it cant by changed after output/headers sent
2020-03-05 10:45:07 +01:00
Ralf Becker
77a7d538f5
fix conflict with lang() function, by just instanciating setup class
2020-03-05 10:29:53 +01:00
Ralf Becker
5154bc2f70
fix warnings, if headers are already sent, eg. in phpUnit/Travis
2020-03-05 10:23:29 +01:00
Ralf Becker
aef614b2f0
unit tests for basic CalDAV and special delete handling for CalDAV Outlook Synschronizer
2020-03-04 22:44:56 +01:00
Ralf Becker
b448f9a021
adding phpUnit 8.x as dev-requirement and try staring Apache in Travis for CalDAV tests
2020-03-04 22:43:09 +01:00
Ralf Becker
e360932bdf
fix warning in tests
2020-03-04 22:31:30 +01:00
Ralf Becker
df263c22a3
some fixes for warnings during phpUnit about session+translation
2020-03-04 20:28:30 +01:00
Ralf Becker
c85f1f3d05
some fixes for warnings during phpUnit about caching
2020-03-04 20:27:10 +01:00
Ralf Becker
19a7894269
some pending changes
2020-03-04 20:19:08 +01:00
Ralf Becker
44d9fcc790
Revert "* CalDAV/OutlookSynchronizer: reject invitations when client deletes then without appropriate rights in his calendar"
...
This reverts commit 4c6e41d479
.
2020-03-04 19:16:50 +01:00
Ralf Becker
78fe939b00
Revert "better/quicker use setUpBeforeClass to create accounts and update to phpUnit 8"
...
This reverts commit 55a0c2b6bc
.
2020-03-04 19:16:37 +01:00
Ralf Becker
cbb1391c37
Revert "revert using files cache for cli change in order to fix failing install in Travis"
...
This reverts commit 1367463e6b
.
2020-03-04 19:15:43 +01:00
Ralf Becker
1367463e6b
revert using files cache for cli change in order to fix failing install in Travis
2020-03-04 19:08:42 +01:00
Ralf Becker
ce47208874
fix function signature in order to update to phpUnit 8
2020-03-04 18:47:48 +01:00
Ralf Becker
55a0c2b6bc
better/quicker use setUpBeforeClass to create accounts and update to phpUnit 8
2020-03-04 18:46:47 +01:00
Ralf Becker
4c6e41d479
* CalDAV/OutlookSynchronizer: reject invitations when client deletes then without appropriate rights in his calendar
2020-03-04 16:58:38 +01:00
Ralf Becker
65294a3e19
fix error on window closing in Chrome 80+
...
caused by Chrome 80+ no longer allowing to send a synchronious ajax request from beforeunload handler, using sendBeacon (async request with keepalive=true) instead
2020-03-02 10:43:19 +01:00
Hadi Nategh
b47a0917d2
Add getController method to get access to nm controller object
2020-02-28 14:45:58 +01:00
Hadi Nategh
2cc2f198d4
Some fixes for egw_action and egw_global
2020-02-28 14:41:17 +01:00
nathangray
0f898acbb2
Fix action bugs where actions were not properly linking
2020-02-27 11:54:55 -07:00
nathangray
251f09d28b
Fix taglist onchange & onclick handlers were not parsed into javascript
2020-02-27 11:51:43 -07:00
nathangray
bdc99ab30c
Increase visibility of tooltipElem so children can access it too
2020-02-27 11:50:04 -07:00
nathangray
b03e8d167e
Update some parameter types
2020-02-27 11:44:34 -07:00
Ralf Becker
deb482aca3
suppress warning if session already active (trace logs the password)
2020-02-26 13:51:58 +01:00
Hadi Nategh
e48000d149
Convert vfsSelectUI to TS
2020-02-26 12:19:17 +01:00
nathangray
de426e1232
Some types & fixes
2020-02-25 09:05:32 -07:00
nathangray
49493a6af8
Convert etemplate2 to typescript
2020-02-24 15:16:40 -07:00
nathangray
f0392bc4e8
Add missing destroy()
2020-02-24 15:15:24 -07:00
Hadi Nategh
b7403af93f
Fix expose class and its derived widgets
2020-02-20 17:46:53 +01:00
Hadi Nategh
8d85b50ded
* Html Editor: Add fullscreen feature into html editor
2020-02-20 16:07:00 +01:00
Hadi Nategh
9a4f2d1e69
Convert expose to TS and apply it to all exposable widgets
2020-02-19 17:14:44 +01:00
Ralf Becker
4a14e0d36b
ignore exception, as it blocks session creation, if database is not writable
2020-02-19 15:39:29 +01:00
Hadi Nategh
12c2984acf
Fix default login logo url
2020-02-19 12:14:26 +01:00
Ralf Becker
2d5012d208
add extra_link_target attribute to r/w link-entry to allow opening link in new tab (for mserver)
2020-02-16 11:31:32 +01:00
Ralf Becker
5231240f52
add extra_link_target attribute to r/w link-entry to allow opening link in new tab (for mserver)
2020-02-16 11:08:28 +01:00
Ralf Becker
42e62cb3eb
fix one error with sharing-links having passwords (no HTML tags in Headers!)
2020-02-14 13:43:50 +01:00
Hadi Nategh
9d71b21d0f
Commit missing js part from et2_link
2020-02-14 10:07:35 +01:00
nathangray
9cb1abc3c0
Fix readonly bug, reduce DOM changes when setting format
2020-02-13 11:56:52 -07:00
Hadi Nategh
4ef29c0c1a
Convert et2_core_xml to TS
2020-02-13 15:53:12 +01:00
Hadi Nategh
5d11d6f34b
Convert et2_extension_itempicker_actions to TS
2020-02-13 15:45:23 +01:00
Hadi Nategh
c9abe89184
Convert et2_widget_ajaxSelect to TS
2020-02-13 15:39:10 +01:00
Hadi Nategh
fe038b7790
Fix some params in egw_action
2020-02-13 15:28:01 +01:00
Hadi Nategh
e6477f4b50
Convert et2_widget_portlet to TS
2020-02-13 15:27:27 +01:00
Hadi Nategh
effa2c52a3
Convert et2_widget_itempicker to TS
2020-02-13 11:08:12 +01:00
Hadi Nategh
0def94240f
Fixes some errors in vfs widget
2020-02-13 10:39:13 +01:00
Hadi Nategh
e1d24055c2
Convert et2_widget_script to TS
2020-02-13 10:25:00 +01:00
nathangray
216ba980a9
Convert to typescript
2020-02-12 15:35:59 -07:00
nathangray
e5895e0cef
Deal with some typescript warnings
2020-02-12 15:18:10 -07:00
nathangray
6857c42091
Convert dynheight to typescript
2020-02-12 14:49:22 -07:00
nathangray
ec83c3a181
Color widget
2020-02-12 14:17:33 -07:00
nathangray
5ab4d36830
Fix button onclick attribute was not parsed into javascript
2020-02-12 14:06:09 -07:00
nathangray
69261c3688
Convert style widget
2020-02-12 13:28:49 -07:00
nathangray
8525477b26
Avoid error if AJAX call returns after destruction
2020-02-12 13:21:05 -07:00
nathangray
1d4bcc2cab
Add missing destroy() to avoid error when destroying
2020-02-12 13:19:52 -07:00
nathangray
fa95142954
Diff widget
2020-02-12 13:19:21 -07:00
nathangray
7a79bfad93
Make cf prefix a proper constant
2020-02-12 11:32:29 -07:00
nathangray
c3350c8114
Get nextmatch-customfields working
2020-02-12 11:16:34 -07:00
nathangray
fe4eb42fca
Fix attributes referencing not-set content evaluated as true
2020-02-12 11:10:52 -07:00
Hadi Nategh
b576476a33
Some fixes for defined types
2020-02-12 11:42:31 +01:00
Hadi Nategh
85082b08f2
Add missing source map comment
2020-02-12 11:33:20 +01:00
Hadi Nategh
7f37ff4942
Some fixes for defined types
2020-02-12 11:29:47 +01:00
Hadi Nategh
c6f491df53
Convert et2_widget_tree to TS
2020-02-12 11:29:03 +01:00
Ralf Becker
20a3dd9fd0
use super.<name>(<arguments>) instead of super.<name>.apply(this, arguments)
2020-02-12 10:37:29 +01:00
nathangray
ee6ac04413
Get historylog widget working
2020-02-11 15:37:33 -07:00
nathangray
8abd587d0e
Get customfield widget working
2020-02-11 15:20:01 -07:00
nathangray
77722eb0d5
Fix namespace check
2020-02-11 15:19:33 -07:00
nathangray
2ed6c162f2
Improve return value definition
2020-02-11 15:18:25 -07:00
nathangray
8eebea528d
Code style improvements
2020-02-11 11:32:50 -07:00
Ralf Becker
5f804dd661
use super.<name>(<arguments>) instead of super.<name>.apply(this, arguments)
2020-02-11 17:40:33 +01:00
Hadi Nategh
13cc7f09cd
Ad more missing font size to tinyMCE
2020-02-11 17:08:30 +01:00
Hadi Nategh
3f282c5416
Add more missing font size to tinyMCE
2020-02-11 17:05:19 +01:00
Hadi Nategh
38ebca1a24
* Html Editor: Add 9pt, 9px, 11pt and 11px into Html editor's font options
2020-02-11 16:58:55 +01:00
Hadi Nategh
f7e75af9a5
* Html Editor: Add 9pt, 9px, 11pt and 11px into Html editor's font options
2020-02-11 16:54:44 +01:00
nathangray
6c0102e7e7
Fix nextmatch column select dialog
2020-02-10 16:00:14 -07:00
nathangray
64844fc97d
Fix selectAccount_ro did not display
2020-02-10 15:59:45 -07:00
nathangray
4ef2b0b401
- Fix doubled format string in readonly duration
...
- Fix format displayed when duration is 0
2020-02-10 15:32:31 -07:00
nathangray
b5af403238
Fix template namespace
2020-02-10 14:14:17 -07:00
nathangray
444f98fe34
Fix first repeating row had no widgets
2020-02-10 14:13:46 -07:00
nathangray
39590368bf
Hopefully last attribute inheritance bug fix, solves a lot of the console warnings.
...
Just swapping the function parameter order, since we called the function from every constructor.
2020-02-10 11:41:40 -07:00
Hadi Nategh
81b12cf9ee
Convert et2_widget_favorites to TS
2020-02-10 16:48:15 +01:00
Hadi Nategh
44ed664f7a
Convert et2_widget_entry to TS
2020-02-10 15:29:27 +01:00
Hadi Nategh
b98ce00079
Convert et2_widget_taglist to TS
2020-02-10 15:17:09 +01:00
Hadi Nategh
e0ec34493b
Convert et2_widget_progress to TS
2020-02-10 15:00:48 +01:00
Hadi Nategh
c19ea5a8ec
Convert et2_widget_iframe to TS
2020-02-10 14:50:57 +01:00
Hadi Nategh
c7e7346584
Convert et2_widget_hrule to TS
2020-02-10 14:36:09 +01:00
Hadi Nategh
a1bf3f345b
Convert et2_widget_groupbox to TS
2020-02-10 14:33:15 +01:00
Hadi Nategh
5dd310c254
Convert et2_widget_taglist to TS
2020-02-10 13:12:38 +01:00
Ralf Becker
d053a72a17
some fixes on the TS interface of client-side api and TS conversation tool
2020-02-10 10:02:04 +01:00
Ralf Becker
fc48878558
added (generated) TS declarations for egw_action
2020-02-10 10:00:35 +01:00
Ralf Becker
6ec5c7bab6
generated TS declaration for framwork objects
2020-02-10 10:00:12 +01:00
Ralf Becker
f15d047e9d
generated TS declaration for framwork objects
2020-02-09 13:38:23 +01:00
Ralf Becker
362063e542
added (generated) TS declarations for egw_action
2020-02-09 13:09:11 +01:00
Ralf Becker
8dd03e3d07
some fixes on the TS interface of client-side api and TS conversation tool
2020-02-09 12:27:39 +01:00
Hadi Nategh
d88854b467
Convert et2_widget_file, et2_widget_vfs and fixes couple of definitions in other widgets
2020-02-07 17:41:51 +01:00
nathangray
4adff37f6f
Fix missing / not set attributes
2020-02-07 09:31:10 -07:00
nathangray
0249c1604b
Fix duration display format caused error
2020-02-07 09:30:43 -07:00
nathangray
d8345d2178
Fix bugs in attribute inheritance
2020-02-07 09:25:53 -07:00
Hadi Nategh
5e80a05cd1
Convert et2_widget_checkbox to TS
2020-02-07 10:52:45 +01:00
Hadi Nategh
1d69d52d32
Convert et2_widget_html to TS
2020-02-06 16:47:08 +01:00
Hadi Nategh
91119891cd
Convert et2_widget_split to TS
2020-02-06 16:26:37 +01:00
Hadi Nategh
7d01281fa0
Convert et2_core_editableWidget and et2_widget_htmlarea to TS
2020-02-06 14:30:22 +01:00
Hadi Nategh
edf95a4bdf
Convert et2_widget_url to TS
2020-02-06 12:10:57 +01:00
nathangray
06341552cf
Get select account working
2020-02-05 15:30:24 -07:00
nathangray
f69ebe44bc
Get link widget working
2020-02-05 15:27:24 -07:00
nathangray
8dc41fd07a
Get nextmatch-entryheader working
2020-02-05 13:48:50 -07:00
Hadi Nategh
458137851d
Add missing files from previous commit
2020-02-05 12:58:27 +01:00
Hadi Nategh
c280207de1
Convert et2_widget_image.js to TS and fixes types for show_dialog
2020-02-05 12:55:38 +01:00
Ralf Becker
90c55e013d
try "PLAIN" first, in case IMAP wrongly reports some digest, it does not (correctly) implement
2020-02-05 10:58:34 +01:00
Ralf Becker
9cc0eaccd4
try "PLAIN" first, in case IMAP wrongly reports some digest, it does not (correctly) implement
2020-02-05 10:51:38 +01:00
nathangray
e0bc769315
- Fix attribute inheritance didn't work properly
...
- Get nextmatch filterheader working
2020-02-04 16:07:50 -07:00
Hadi Nategh
12eb1dec61
Fix TS type errors on widget number
2020-02-04 18:58:59 +01:00
Hadi Nategh
5617b6c33d
Fix TS errors on dialog widget
2020-02-04 18:35:46 +01:00
Ralf Becker
025b2cc431
moving webserverUrl property to IegwGlobal interface from global egw object
2020-02-04 18:32:58 +01:00
Ralf Becker
8b2f04607e
moving webserverUrl property to IegwGlobal interface from global egw object
2020-02-04 18:30:37 +01:00
Hadi Nategh
b45a74ac36
Merge branch 'master' into typescript
2020-02-04 16:45:24 +01:00
Hadi Nategh
491d17bc08
* Collabora: Fix issue of inserting an image into document pops a rename dialog
2020-02-04 13:27:55 +01:00
Ralf Becker
2fc0666762
merged master into typescript
2020-02-03 15:16:51 +00:00
Ralf Becker
e0f38dfb94
migrated infolog app.js to typescript
2020-02-03 16:05:40 +01:00
Ralf Becker
3575f06501
fix JS error from cropper, stalling eTemplate with minified JS
2020-02-02 10:32:12 +01:00
Ralf Becker
abd6f7d669
allow to specify the root for lang-files
2020-02-01 17:50:56 +01:00
nathangray
3f8bd1b494
Get nextmatch rendering, sort of
2020-01-31 13:07:27 -07:00
nathangray
4eca12001a
Mark some optional parameters
2020-01-31 09:25:11 -07:00
Hadi Nategh
faca76f6a9
Do not run restrict validation check for type taglist-account if free entries are allowed
2020-01-31 16:13:45 +01:00
Ralf Becker
214f4c5ede
Changelog for 19.1.20200130
2020-01-30 19:50:49 +01:00
Hadi Nategh
a27f0952f6
Merge branch 'master' into typescript
2020-01-30 14:52:16 +01:00
Hadi Nategh
65bca4c025
Fix missing parts from merge commit
2020-01-30 14:48:20 +01:00
Ralf Becker
4447e1a618
pending translations from our translation server
2020-01-30 13:47:32 +01:00
Ralf Becker
1559b017d7
validate IP address in X-Forwarded-For header
2020-01-30 13:21:56 +01:00
Ralf Becker
1776215ada
use interface to get autocompletion and types for client-side API
2020-01-30 08:40:11 +00:00
nathangray
49f3014037
Work on getting nextmatch loading
2020-01-29 16:05:01 -07:00
nathangray
926415795a
Fix namespaces were not processed
2020-01-29 14:29:38 -07:00
nathangray
b6e87f0887
Fix namespaces were not processed
2020-01-29 14:29:06 -07:00
Hadi Nategh
ffae3f2e17
Remove all map files
2020-01-29 17:14:32 +01:00
Hadi Nategh
874be7777b
Merge branch 'master' into typescript
2020-01-29 16:45:40 +01:00
Ralf Becker
39be6e0b89
* Sharing: temporary disable cleaning of deleted files, causing all shares to get deleted
2020-01-29 16:30:22 +01:00
Hadi Nategh
c8da07b460
Rebase onto Master
2020-01-29 15:31:57 +01:00
nathangray
6094cdd822
Get less errors for nextmatch
2020-01-29 15:12:44 +01:00
nathangray
95a06b3f10
Support legacyOptions
2020-01-29 15:12:44 +01:00
Hadi Nategh
addc4d8935
Convert et2_toolbar to TS
2020-01-29 15:12:44 +01:00
nathangray
0ba4d68baa
Fix undefined error looking up cell content
2020-01-29 15:12:44 +01:00
nathangray
97337b6729
Get at least the nm header showing up
2020-01-29 15:12:44 +01:00
nathangray
28ad7abe97
Work on getting nextmatch going
2020-01-29 15:12:44 +01:00
nathangray
a9c4919c55
Fix compiled expressions could not be found
2020-01-29 15:12:44 +01:00
nathangray
0945d9e686
Temporary work around for legacyOptions issue
2020-01-29 15:12:44 +01:00
Hadi Nategh
9958c93c13
Check if the et2_hbox is attached before calling its child getDOMNode cause it's might not be set yet
2020-01-29 15:12:44 +01:00
Hadi Nategh
d889443e70
Convert et2_dropdown_button to TS
2020-01-29 15:12:44 +01:00
Hadi Nategh
c7b04a666c
Convert et2_radiobox to TS
2020-01-29 15:12:44 +01:00
Hadi Nategh
00086e37b2
Convert et2_number to TS
2020-01-29 15:12:44 +01:00
nathangray
605a587bca
Type parameter is optional
2020-01-29 15:12:44 +01:00
nathangray
43a9100c91
- Add some more parameter types
...
- Solve the uninitialized attribute issue (for insertChild() called from constructor at least)
2020-01-29 15:12:44 +01:00
Ralf Becker
0b50545cc1
missing generated .js and .map files, until we generate them via Grunt
2020-01-29 15:12:44 +01:00
Ralf Becker
ec7f8931b2
selectbox widget and some fixes
2020-01-29 15:12:44 +01:00
Ralf Becker
05b92c97f2
fix wrong class-name for attributes in constructor call
2020-01-29 15:12:44 +01:00
Hadi Nategh
313693a42c
fix attributes in super call
2020-01-29 15:12:44 +01:00
nathangray
aaa4c3ae9e
Fix some visibility issues, export the et2_action_object_impl
2020-01-29 15:12:44 +01:00
nathangray
50a0bb6157
Grid to TS
2020-01-29 15:12:44 +01:00
Ralf Becker
9e006797c9
date-widgets and friends for TS
2020-01-29 15:12:44 +01:00
Hadi Nategh
3b51264882
Convert et2_hbox to TS
2020-01-29 15:12:44 +01:00
Hadi Nategh
e1cd652183
Use destroy instead of free
2020-01-29 15:12:43 +01:00
Hadi Nategh
28e4e81478
Fix missing options in et2_dialog
2020-01-29 15:12:43 +01:00
nathangray
a5299abbf7
Use correct widget for attributes
2020-01-29 15:12:43 +01:00
nathangray
bd584dc991
Replace missing widgit registration
2020-01-29 15:12:43 +01:00
Hadi Nategh
fd31946f4e
Fix error method generateAttributeSet does not exist
2020-01-29 15:12:43 +01:00
Hadi Nategh
1df5124246
Fix et2_dialog TS errors
2020-01-29 15:12:43 +01:00
nathangray
3cbecd5270
Return types for some functions
2020-01-29 15:12:43 +01:00
nathangray
1e39e5e654
arrayMgr to TypeScript
2020-01-29 15:12:43 +01:00
nathangray
46385aadc9
arrayMgr to TypeScript
2020-01-29 15:12:43 +01:00
nathangray
8b7be57067
Fix copy/paste error in constructors
2020-01-29 15:12:43 +01:00
nathangray
5e27866dc3
Fix copy/paste error in constructors
2020-01-29 15:12:43 +01:00
nathangray
812f6a0ef7
ts->js maps
2020-01-29 15:12:43 +01:00
nathangray
680a82cb4e
Get et2 working in typescript
2020-01-29 15:11:00 +01:00
nathangray
805ac4591b
Not sure where this one went
2020-01-29 15:11:00 +01:00