Commit Graph

571 Commits

Author SHA1 Message Date
Daniel - 8d9bdc39de
Transform timeline even when extracting it from the buffer
This reenables automatic gap filling in case it has been configure with
`timeline-tools-filter-functions', but somehow breaks undo of killing in the
timeline buffer.  The problem seems to be that undoing a kill only restores the
killed line, but not the original line entries of the lines right before and
after the lined that had been killed.  In this way, the timeline of the buffer
has overlapping entries, resulting in odd behavior.

The problem is not quite understood yet, but it seems to be that undo does not
notice the changes to the surrounding lines (maybe because they have not been
done by text editing functions).
2020-01-26 21:01:13 +01:00
Daniel - caea47fc5f
Add standard shortcut for redrawing a timeline buffer
I keep hitting "g" so often that it has to work to not confuse me any longer.
2020-01-26 20:55:10 +01:00
Daniel - cccaf5bf4b
Move up timeline functions for moving the cursor
They are more fundamental than other functions, and should thus be closer to the
top.
2020-01-26 20:54:34 +01:00
Daniel - 619e5bdcae
No longer store timeline of current buffer in separate variable
This does not play nicely with undo, because undo won't track changes to local
variables.  Thus, if we every want to have a working undo in timeline buffers,
the timeline needs to be saved as something textual.  Luckily, we already store
each entry of the timeline as a text property in the timeline table, and from
now on we will extract the timeline from there whenever we need it.

Undo is still not working fully yet, there are some oddities that need to be
addressed first.
2020-01-26 20:45:44 +01:00
Daniel - 85cfd25097
Delete feature to remove short entries
Haven't used it much anyway, and this will not work anymore when we no longer
explicitly store the current timeline of the buffer.
2020-01-26 20:40:36 +01:00
Daniel - be43c611d9
Introduce explicit force parameter for timeline reparsing 2020-01-26 20:16:57 +01:00
Daniel - 3f5ae63ea4
Reparse timeline when buffer-local variable is nil
This removes a lot of duplicate code.
2020-01-26 19:50:29 +01:00
Daniel - 3fc25e3cad
Require customizations in utilities package
The function may make use of some custom variables, and this way we make sure
they are there when needed.
2020-01-19 17:21:32 +01:00
Daniel - 38f7fd7c88
Move some more custom org mode link handlers to `db-org'
This is where they belong, nowhere else.
2020-01-19 17:21:14 +01:00
Daniel - c566908deb
Let the org mode RFC link handler cache its documents
RFC documents do not change over time.  The custom org mode link handler
`db/org-rfc-open' now makes use of this by downloading RFC documents to
`db/rfc-cache-path' (if defined) and opening the files locally.  If
`db/rfc-cache-path' is not defined, the RFC is opened in an external browser as
before.

This allows to keep a selection of used RFC documents locally on the filesystem
for future reference, without the need to retrieve them again from the IETF.

Since this is all org mode related, the handler now also resides in `db-org'
instead of `db-utils'.
2020-01-19 17:17:47 +01:00
Daniel - 31bde05efa
Add missing word in comment
Sorry, but need to have it there …
2020-01-18 10:25:40 +01:00
Daniel - 66eb5e3da4
Fix missing handling of optional NTP format string 2020-01-18 10:24:49 +01:00
Daniel - c86051ba22
Add obvious test for NTP conversion
This test could not have been added before, because conversion was not
guaranteed to work for dates before the unix epoch.  It now is, and we finally
can check the start of the NTP epoch! :)
2020-01-18 10:20:21 +01:00
Daniel - 010f3cec86
Reimplement NTP conversion using Calc
The previous implementation made use of `encode-time', which is not
guaranteed to work with times before the unix epoch.  Indeed, on at least one
Windows machine, the corresponding function `db/ntp-to-time' could not handle
such dates.  However, Calc can handle those independently of `encode-time',
and `db/ntp-to-time' has now been reimplemented in terms of the corresponding
Calc functions.

All (both) tests still pass.
2020-01-18 10:17:54 +01:00
Daniel - 158a232cfe
Move some personal customization variables to dedicated package 2020-01-11 12:35:53 +01:00
Daniel - f4b55ad777
Add tests for NTP time conversion 2020-01-11 10:13:30 +01:00
Daniel - 9ab5d55237
Remove visibility cycling from general clock mapping function
It's only necessary when editing the buffer, not when only traversing it.  Moved
it to the only function where this is actually done, and added a comment to the
docstring of `timeline-tools-map-clocklines' to remind everyone that editing the
buffer through this function may yield funny surprises :)
2020-01-10 18:12:50 +01:00
Daniel - e966edd950
Use `org-show-all' to, well, show all
Using `org-cycle' may result in hooks being run, depending on where point is.
This may cause undesired and highly surprising behavior.
2020-01-10 18:10:07 +01:00
Daniel - df2464ce5b
Check input of NTP conversion function 2020-01-09 21:35:23 +01:00
Daniel - 57107c0c75
Prettify docstring 2020-01-09 21:35:12 +01:00
Daniel - 52de03a8c0
Note simple test case for NTP conversion function 2020-01-09 21:34:55 +01:00
Daniel - 97e3b4da13
Fix computation of seconds in NTP conversion function 2020-01-09 21:34:38 +01:00
Daniel - c16500344c
Globally require `dash' 2020-01-09 21:02:23 +01:00
Daniel - b92d5e7819
Allow spaces in NTP time strings 2020-01-09 21:02:18 +01:00
Daniel - f44ed54318
Fix handling of dates before Unix epoch in NTP conversion 2020-01-09 20:58:01 +01:00
Daniel - d6690d27f9
Fix docstring of `db/ntp-to-time' 2020-01-09 20:57:13 +01:00
Daniel - a710238694
Use correct number of seconds between 1900-01-01 and the epoch 2020-01-09 20:56:50 +01:00
Daniel - 6f856c61b6
Properly declare ignored variable 2020-01-05 14:42:13 +01:00
Daniel - 95555dd7c1
Add missing require for timeline-tools 2020-01-05 14:32:38 +01:00
Daniel - 4b7e02ccd6
Trying to make test for `timeline-tools' independent of locale 2020-01-05 14:32:35 +01:00
Daniel - 243e579973
Check whether special org-mode files are included in agenda when displaying it 2020-01-05 13:36:37 +01:00
Daniel - ec83430a70
Remove `db-update-org-agenda-files'
It's not used anymore and won't ever work as intended.
2020-01-05 13:06:50 +01:00
Daniel - bbfea51fca
Fix check in `db/export-diary' for empty files
This is a result of changing the types of the special org files.  Now a typed
language would be great …
2020-01-05 12:36:56 +01:00
Daniel - 5627da7b42
Simplify output 2020-01-05 12:18:33 +01:00
Daniel - 541940d7dc
Fix glitch in custom setter for `org-agenda-file' 2020-01-05 12:17:37 +01:00
Daniel - e234912180
Inline `org-agenda-file-to-front'
This allows to use the value for the new file directly, instead of opening a
buffer for it.
2020-01-05 12:10:31 +01:00
Daniel - cf14629099
Remove obsolete debugging output 2020-01-05 11:57:43 +01:00
Daniel - bd65533b97
Update custom setter for special org agenda files
The setter will now complain if the file to be added to `org-agenda-files' does
not exist and is not readable.  It also now uses the proper functions from `org'
to update `org-agenda-files'.
2020-01-05 11:56:05 +01:00
Daniel - 9e0338e683
Dynamically create hydra from `db/frequently-used-features' 2019-12-20 16:12:11 +01:00
Daniel - a0abe9fc4e
Explicitly require `face-remap' before resizing fonts 2019-12-20 15:28:09 +01:00
Daniel - e63356ad06
Add descriptions to clocking hydra 2019-12-20 15:17:05 +01:00
Daniel - 4621ed98f0
Require `gnutls' when setting `gnutls-trustfiles' 2019-12-20 08:45:44 +01:00
Daniel - 485b7b84d3
[Utils] Using `dired-open-file' doesn't work for bookmarks
Pity!
2019-12-13 15:28:46 +01:00
Daniel - 6f375c301f
[Util] Add helper to add bookmarks to be opened by `dired-open-file' 2019-12-13 15:05:44 +01:00
Daniel - 2bc02703eb
[Org] Change title of all active frames when entering new task 2019-12-05 17:09:49 +01:00
Daniel - 2f3844856b
[eshell] Fix prompt coloring 2019-10-05 17:57:32 +02:00
Daniel - e6a5a8d9cd
[Helm] Move code of ‘db/helm-shortcuts’ directly to init.el
This makes ‘db-helm’ obsolete again (already after one commit!).  The function
to extract all files from ‘db/important-path’ has also been dropped in favor of
the standard ‘directory-files-recursively’.  It’s not clear yet whether this
will also work on Windows, though.
2019-08-31 12:02:02 +02:00
Daniel - bbad4b7fd4
[Helm] Move code for ‘db/helm-shortcuts’ to different file
This keeps ‘db-utils’ require-clean.
2019-08-31 11:39:04 +02:00
Daniel - 44e6818abb
[Org] Provide function to set frame title from current clock 2019-08-31 11:26:04 +02:00
Daniel - 43ece81b2d
[Utils] Improve definitions of custom helm sources
Instead of giving a list, we now create the sources directly.  This gives us the
possibility to configure certain aspects of the sources like matching behavior
and highlighting.  Now we are much closer to the standard behavior of helm than
before.
2019-08-30 19:47:25 +02:00
Daniel - 777494635e
[Org] Make function to mark default task non-anonymous 2019-08-22 20:38:00 +02:00
Daniel - 76999d9136
[Timeline] Add text properties to all fields
Actually, we add the text properties ‘marker’ and ‘entry’ to the whole line, but
the alinging of the table somehow removes the text properties between two
columns.  It is kept in the fields, though, and that is enough.
2019-07-13 20:16:04 +02:00
Daniel - af244b853b
[Timeline] Don’t look from behind when killing rows
Somehow sometimes columns get added at the end, and then the old implementation
did not work correctly.
2019-07-13 19:38:26 +02:00
Daniel - 952e6f1c95
[Music] Add simple function to play files from git-annex-find call 2019-06-10 16:27:28 +02:00
Daniel - b6414e118d
[Music] Move cache update function to better place in db-music.el 2019-06-10 16:26:58 +02:00
Daniel - 9e075d6e0c
[Music] Introduce ‘db/play-auto-playlist’
This is the main entry point to play automatically generated playlists (“auto
playlists”).  It is using the value of ‘db/auto-playlist-file-function’ to
generate a list of files to play.  This list if currently played using EMMS, via
‘db/-emms-playlist-from-files’.
2019-06-10 14:11:52 +02:00
Daniel - bc41e3c5be
[EMMS] Simplify call to automatic playlist generation 2019-06-10 11:38:32 +02:00
Daniel - 96162d3eaf
[EMMS] Require emms before showing track status 2019-06-10 11:35:43 +02:00
Daniel - c309cf7917
[Music] Move customizable variables into db-music.el 2019-06-10 11:33:35 +02:00
Daniel - 402bfc7643
[Music] Check return value of call to git-annex-find 2019-06-10 09:45:24 +02:00
Daniel - 29d138f968
[Music] Simplify call to git-annex-find
And also make it more secure, because no shell is involved anymore.
2019-06-10 09:39:54 +02:00
Daniel - f8c71d96e9
[Music] Check that list of files is not empty before changing EMMS playlist 2019-06-10 09:39:54 +02:00
Daniel - 7cd6d399a4
[Music] Fix name of playlist function from git-annex-find 2019-06-10 09:39:53 +02:00
Daniel - bd29ca9c02
[Music] Simplify implementation of ‘db/play-playlist-from-cache’
Use ‘db/-emms-playlist-from-files’ instead of generating the playlist on our
own.
2019-06-10 09:39:53 +02:00
Daniel - 68d7605deb
[Music] Add playlist function based on git-annex match expressions 2019-06-10 09:39:53 +02:00
Daniel - 9b48edd77f
[Music] Allow for customizing automatic playlist function 2019-06-10 09:39:52 +02:00
Daniel - ff06cddaba
[Music] Move shortcut to play automatic playlists to EMMS hydra
This is the right place.
2019-06-10 09:39:52 +02:00
Daniel - 2b13606f9b
[EMMS] Display performer even when no artist is given 2019-06-10 09:39:50 +02:00
Daniel - 076fc384db
[EMMS] Include album in track description if available 2019-06-09 09:24:12 +02:00
Daniel - 57198f1e1a
[Utils] Fix directory name for ‘db/dired-from-shell-command’
Sometimes the string "Output of ‘…’" seems to be interpreted as directory name,
and then dired complains about it not being existent.  It is not completely
understood yet when this will happen, and an easy workaround seems to be to
stick to a fixed string that works.  This is what’s used now.
2019-06-08 13:27:14 +02:00
Daniel - 0e3ad47943
[Utils] Command to display dired buffer of custom file list 2019-06-08 13:05:17 +02:00
Daniel - f2115f5587
[Org] A custom link type for RFCs 2019-05-31 21:38:05 +02:00
Daniel - 63b2e34be4
[Org] Add link types for Outlook and OneNote 2019-05-31 21:28:44 +02:00
Daniel - 5b5bf87976
[Utils] Small helper function to open CSV files as Org mode tables 2019-05-05 15:54:16 +02:00
Daniel - 2ce73e0a52
[Mail] Only show SMTP trace buffer when available 2019-04-28 10:59:06 +02:00
Daniel - 0e9f5cc5f7
[Mail] Add accessor functions for ‘db/mail-accounts’ 2019-04-24 15:03:19 +02:00
Daniel - 20e14a345b
[Hydra] Remove hydra for changing ispell dictionaries
Use standard ‘ispell-change-dictionary’ instead (it’s more generic and should
also work on Windows)
2019-04-11 09:03:37 +02:00
Daniel - 0a68df7b49
[Timeline] Fix obsolete calls to ‘timeline-tools-entry-category’ 2019-03-29 18:46:18 +01:00
Daniel - 207fb331ff
[Timeline] Allow to customize category when formatting timelines 2019-03-29 17:41:30 +01:00
Daniel - 90445b6c3d
[Music] Cosmetics
That’s important!
2019-03-02 15:33:55 +01:00
Daniel - f671a44939
[Music] Make updating playlists keep tracks outside of source directory 2019-03-02 15:29:46 +01:00
Daniel - ed285c87d2
[Music] Minor changes and cosmetics 2019-03-02 15:18:19 +01:00
Daniel - 037f0cfbee
[Music] A simple helper function to update ‘db/playlist’ 2019-03-02 14:36:40 +01:00
Daniel - f2c0847ffa
[Music] Move require to top 2019-03-02 14:36:34 +01:00
Daniel - 888e703448
[Music] Introduce ‘db/music’ and move code there
All music related functions that do not directly depend on EMMS will now go into
‘db/music’, with the intention that if we in the future replace EMMS with
something else, the API provided by ‘db/music’ will still be valid.  This does
not mean, however, that functions in ‘db/music’ may not use functions from EMMS.
2019-03-02 13:37:05 +01:00
Daniel - 4128bcd249
[Mail] Set some related variables directly via ‘db/mail-accounts’ 2019-03-02 11:33:21 +01:00
Daniel - a83608e686
[Misc] Enable ‘lispy’ only when available
To ensure that Emacs is still largely responsive without it.
2019-03-02 11:14:37 +01:00
Daniel - e2522bdbd0
[Utils] Add missing require 2019-03-02 11:10:34 +01:00
Daniel - 4fb6e3e5c1
[Hydra] Move hydras to separate package
This allows ‘db-utils’ to not be dependent on ‘hydra’
2019-03-02 11:06:55 +01:00
Daniel - 378b608c2b
[Utils] Make ‘db-utils’ loadable without requiring ‘dash’ 2019-03-02 11:02:47 +01:00
Daniel - b17958c104
[Utils] Silencing some byte compiler warnings 2019-03-02 11:02:41 +01:00
Daniel - 6d5976a00a
[Utils] Make main custom variables for ‘db/helm-shortcuts’ Helm-agnostic 2019-03-02 10:55:13 +01:00
Daniel - ef2fc1a1f8
[Timeline] Fix comments in tests 2019-02-17 13:46:06 +01:00
Daniel - 31a5e3fc21
[Timeline] Add first tests for ‘timeline-tools-timeline’ 2019-02-17 13:10:33 +01:00
Daniel - 9fa7662867
[Timeline] Extend ‘timeline-tools-timeline’ to also work on buffers 2019-02-17 13:10:13 +01:00
Daniel - fc3e66637b
[Timeline] Comment to remember reworking ‘timeline-tools-timeline’ 2019-02-17 10:06:57 +01:00
Daniel - 0001aafb1d
[Timeline] Updating comments and documentation for tests 2019-02-17 10:03:13 +01:00
Daniel - 5c9229d761
[Timeline] Add more tests for ‘timeline-tools-add-clockline-to-marker’
This time with running clock resolution.
2019-02-17 10:02:40 +01:00
Daniel - 3b6a78c19a
[Timeline] Fix simple setup test 2019-02-17 10:02:02 +01:00
Daniel - c3f45574f0
[Timeline] Fix position of new clock line after conflict resolution 2019-02-17 10:01:34 +01:00
Daniel - b8264a0c15
[Timeline] First tests for ‘timeline-tools-add-clockline-to-marker’ 2019-02-17 09:14:15 +01:00
Daniel - 45a1141e6c
[Timeline] Fix typo 2019-02-17 09:14:07 +01:00
Daniel - 07aad33448
[Timeline] Make clock line parser barf when not in Org mode 2019-02-17 09:13:37 +01:00
Daniel - 82e0967b9f
[Timeline] Some basic structure in tests 2019-02-16 19:47:14 +01:00
Daniel - 18aab45d59
[Timeline] Add test for conflict resolution 2019-02-16 19:47:07 +01:00
Daniel - fa2fc56a0a
[Timeline] Add some first tests 2019-02-16 14:06:25 +01:00
Daniel - 689417a720
[Timeline] Fix correction of conflicts with currently running clock 2019-02-16 14:06:25 +01:00
Daniel - 532e2ff22a
[Timeline] Extend ‘timeline-tools-clockline-no-org-agenda-conflicts’ 2019-02-16 14:06:25 +01:00
Daniel - 016fbf3c10
[Org] Extend functionality to insert past interruptions
For this a new function ‘timeline-tools-clockline-no-org-agenda-conflicts’ as
been added that reads in a clock line (start and end times), updates all org
agenda files to fix conflicting clock lines, and returns the string of the new
clock line.  This works for all complete clock lines (i.e., those with end
times), but not for open clock lines (i.e., those missing an end timestamp).
2019-02-16 14:06:25 +01:00
Daniel - 26dad5a0d5
[Utils] Extend `db/ascii-to-hex' to `db/text-to-hex' 2019-02-16 14:06:25 +01:00
Daniel - 844b7358f8
[Utils] Extend `db/hex-to-ascii' 2019-02-16 14:06:22 +01:00
Daniel - ff276c1316
[Org] Remove duplicates when updating ‘org-agenda-files’ 2019-02-10 20:13:49 +01:00
Daniel - f69abd6ec6
[Mail] Move advice to attach at end-of-buffer to init.el 2019-02-10 19:58:06 +01:00
Daniel - b8912ae08d
[Mail] Move SMTP error handling code directly to ‘db/smtpmail-send-it’ 2019-02-10 19:55:25 +01:00
Daniel - 0d81c7fa0b
[Mail] Turn advice on how to send mail into a proper function
More concretely, ‘db/set-smtp-server-from-header’ is now called
‘db/smtpmail-send-it’, and the latter can be used as a value for
‘send-mail-function’.
2019-02-10 15:53:18 +01:00
Daniel - 8864a5bffe
[Mail] Use ‘cl-remove-if’ instead of ‘remove-if’ 2019-02-10 14:04:27 +01:00
Daniel - 80ffb3845b
[Mail] Ensure SMTP related variables are loaded before binding them
I do not know whether this is really necessary, but since ‘let’ should bind
variables like ‘smtpmail-smtp-server’ and the like dynamically, it feels better
to have them loaded before binding them.
2019-02-10 14:01:50 +01:00
Daniel - c52f3c7fdd
[Mail] Documentation and minor refactoring of db-mail 2019-02-10 13:58:16 +01:00
Daniel - 25ec604019
[Org] Change the way ‘org-agenda-files’ is set
Up to now, ‘org-agenda-files’ only consisted of the four variables customizable
in init.el, namly ‘db/org-default-work-file’, ‘db/org-default-home-file’,
‘db/org-default-notes-file’, and ‘db/org-default-refile-file’.  However, this
meant that no *additional* agenda files were possible, like including multiple
files for notes.  This should not be the case any longer.
2019-02-09 17:39:12 +01:00
Daniel - ca6688996c
[Mail] Fix usage of ‘cl-assert’ 2019-02-09 14:00:33 +01:00
Daniel - 3f35471081
[Mail] Make sending mails more robust 2019-02-09 14:00:24 +01:00
Daniel - 809622d982
[Utils] Small helper to add eww bookmarks 2019-02-09 11:45:45 +01:00
Daniel - f54ba6b0be
[Mail] Move definition of local accounts to separate customizable variable
This variable is called ‘db/other-gnus-accounts’ and can be set with the
customize interface.  This change also obsolete ‘db/personal-gnus-filter-rules’,
is it’s definition can now be inlined directly into the one of
‘db/other-gnus-accounts’.
2019-02-03 09:33:38 +01:00
Daniel - b1c485e079
[Mail] Move fix to attach files to the end of a message to db-mail 2019-02-02 18:00:47 +01:00
Daniel - 363c5f8108
[Mail] Some structuring for db-mail 2019-02-02 17:57:21 +01:00
Daniel - 75d6cbdf95
[Gnus] Move setting of mail related variables to db-mail 2019-02-02 17:49:38 +01:00
Daniel - 26b0234b56
[Gnus] Move Gnus’ demon configuration to db-mail and init.el 2019-02-02 15:34:20 +01:00
Daniel - 784f5ce1fd
[Mail] Move ‘db/mail-accounts’ to db-mail package 2019-02-02 15:30:16 +01:00
Daniel - 1066e266fc
[Mail] Refactor SMTP configuration 2019-02-02 15:14:22 +01:00
Daniel - c6f28090df
[Gnus] Moving most of the configuration to init.el 2019-02-02 15:05:29 +01:00
Daniel - 2a4302c883
[Utils] Move S/MIME lookup function to init.el 2019-01-27 12:10:44 +01:00
Daniel - 1cc212f955
[Utils] Simplify ‘db/bookmark-add-with-handler’ 2019-01-27 09:25:03 +01:00
Daniel - be7625830c
[Utils] Sort bookmarks after adding a new one 2019-01-27 09:24:01 +01:00
Daniel - db1225da36
[Utils] Clean up main helm shortcut menu
‘db/helm-frequently-visited-locations’ can now (and could always) be implemented
using bookmarks.
2019-01-25 20:41:42 +01:00
Daniel - c77cd7e889
[Utils] Add simple way to add external bookmarks 2019-01-25 20:39:01 +01:00
Daniel - 2be4970d2a
[EShell] Fix completion for git
Search string was not up-to-date anymore, and comments behind actual commands
have changed.
2018-12-09 14:55:52 +01:00
Daniel - 926e977016
[Timeline] Try to keep point on deleted line 2018-11-29 20:08:33 +01:00
Daniel - 16068add6f
[Timeline] Minor note on what else to do 2018-11-28 17:06:15 +01:00
Daniel - 98f94be5f7
[Timeline] Cleaning up as suggested by flycheck 2018-11-28 16:58:13 +01:00
Daniel - c8e9c6340e
[Timeline] Make sure point is correct after killing 2018-11-28 16:52:11 +01:00
Daniel - 62ac9a887b
[Timeline] Extract gap-filling into separate function 2018-11-28 16:50:18 +01:00
Daniel - f2db1f5b5e
[Timeline] Ensure empty timelines don’t break removal of short entries 2018-11-28 16:38:47 +01:00
Daniel - a4febc68d1
[Timeline] Fix name of function 2018-11-28 16:38:36 +01:00
Daniel - f54248927d
[Timeline] Some first documentation 2018-11-28 16:38:34 +01:00
Daniel - d54079d660
[Timeline] More error checking when trying to kill a line 2018-11-28 16:17:37 +01:00
Daniel - 325ccc58ea
[Timeline] Move point on headline after redrawing 2018-11-28 16:17:20 +01:00
Daniel - 5a309b1d0f
[Timeline] Disable undo
Undoing changes in the timeline buffer may make the display inconsistent with
the values of the internal variables (in particular when lines got killed and
the like).
2018-11-28 16:16:37 +01:00
Daniel - a8385cb542
[Timeline] Dump functions to move between lines 2018-11-28 16:12:06 +01:00
Daniel - be6f75ba5c
[Timeline] Add killing of lines 2018-11-28 15:59:21 +01:00
Daniel - fd3b2135ca
[Timeline] Make transformer for timelines into separate function 2018-11-28 15:55:29 +01:00