1
0
mirror of https://github.com/Jermolene/TiddlyWiki5 synced 2024-11-18 07:44:51 +00:00
Commit Graph

263 Commits

Author SHA1 Message Date
Jermolene
d8c3691bd1 Removed unneeded CSS classes
Part of #764
2014-08-28 17:17:50 +01:00
Jermolene
13c4e028b1 Refactored autosave mechanism
Previously we were using a message `tw-auto-save-wiki` to trigger an
autosave. The message was generated by certain UI actions such as
saving a tiddler. The trouble was that the message was being processed
before the wiki change event for the accompanying change had had a
chance to percolate. The end result was that the dirty indicator was
staying lit when using autosave.

The new approach abandons the autosave message and instead triggers the
autosave in the wiki change event when a relevant change occurs.

One happy side effect of these changes is that the dirty indicator now
works as expected with the client server edition - ie, when typing in a
draft tiddler the dirty indicator will flash briefly, and then clear
when the sync mechanism has completed saving the draft.
2014-08-27 10:04:54 +01:00
Jermolene
3529625a6c Fix full screen button not supported 2014-08-03 12:35:53 +01:00
Jermolene
799a5b059a Move fullscreen button into core from plugin 2014-08-01 16:52:12 +01:00
Jermolene
5f018c2092 More defensive dom utility hasClass()
It was failing on SVG elements such as `<path>`
2014-07-28 14:19:52 +01:00
Jermolene
e40a0c07b8 Fix support for upgrading encrypted wikis
Importing an encrypted wiki ordinarily doesn’t place the password in
the password vault on the basis that one ought to be able to import
from a file without automatically inheriting its password.

Now there’s a configuration option that can be used by the upgrade
plugin to cause the password vault to be updated with any password
entered by the user. The end result is that the user only needs to
enter their password once.
2014-07-16 10:06:24 +01:00
Jermolene
3351ae7e29 Fix issue with localStorage error on Firefox
Firefox raises an error if window.localStorage is accessed when cookies
are disabled:

https://bugzilla.mozilla.org/show_bug.cgi?id=771890
2014-07-06 10:11:21 +01:00
Jermolene
465f4ac469 Fix problem with refreshing modal dialogues
Previously any refreshing of the content of a modal would cause a
crash. The problem is the way that we steal the root widget for the
render trees used in the modal. The root widget is tied to the
container DOM node for the main content area, which isn’t actually a
parent of the modal DOM nodes, hence the confusion for the refresh
mechanism.
2014-07-04 21:07:35 +01:00
Jermolene
c9c1b0fbb4 Get rid of the tweakParseTreeNode() hack
It’s an embarrassing hangover from a refactoring of the parsing
mechanism last year.
2014-05-14 08:51:08 +01:00
Jermolene
7c8c5cf745 Fix problem with parsing main UI boot tiddlers
We were parsing the boot tiddlers, making them into a widget and then
refreshing the widget tree. The problem is that subsequent chances to
the boot tiddlers themselves wouldn’t be picked up as part of the
refresh.

Now we indirectly parse those UI boot tiddlers through a transclusion,
which does get refreshed in the desired way.
2014-05-06 10:14:22 +01:00
Jermolene
3cce12e13f More refactoring of startup.js 2014-05-05 14:41:46 +01:00
Jermolene
749582ede0 Split module loading into a separate startup task
Still a work in progress.
2014-05-03 17:10:55 +01:00
Jermolene
0ac4c2b554 Allow digits in field names 2014-04-28 15:54:32 +01:00
Jermolene
84cd296c58 Minor tweaks to shadow warning infrastructure
1. Moved some methods out of boot.js because they are not needed until
after bootup
2. Added alternate message for editing an overridden shadow tiddler
3. Minor style tweaks
2014-04-28 15:16:31 +01:00
Jermolene
f7e50e0950 Add --build command
First pass at the build system described in #356.

To test it, move to a new, empty directory and try `tiddlywiki
editions/tw5.com --verbose --build`
2014-04-25 22:41:59 +01:00
Jermolene
e366aa3746 Use Date.now() instead of new Date()
Just for when what we actually want is a millisecond counter.

Interesting video about this:

https://www.youtube.com/watch?v=Vo72W1HWeFI
2014-04-14 09:02:52 +01:00
Jermolene
be5f6f6700 Allow spaces in property names in text references 2014-04-12 17:14:09 +01:00
Jermolene
272a4bbe61 Filtering optimisations 2014-04-05 17:31:36 +01:00
Jermolene
d402d3c5a6 Add performance measurement features
This is an experimental module to help us measure the performance of
the refresh cycle and the filter mechanism. Not intended to replace the
performance measurement features in browser developer tools, just to
make it easier to automate performance checks cross-browser.

The immediate purpose is to help in refactoring the filter mechanism.
The recent change to encapsulate the wiki store “tiddlers” object has
hurt the performance of filters, and it’s going to be helpful to have
decent measurements while refactoring that code.

I’m still not convinced that this stuff should be in the core, and may
well end up removing it after the present refactoring cycle.
2014-04-01 08:33:36 +01:00
Jermolene
dcce487934 Add support for platform dependent high resolution performance timers
For profiling filter performance
2014-03-31 18:42:30 +01:00
Jermolene
914a536d82 Correct relative date handling of t=1s
We were incorrectly displaying “1 seconds ago”
2014-03-31 12:41:54 +01:00
Jermolene
535837e017 Use client bounding rect rather than offset positions for computing scroll positions 2014-03-24 22:31:03 +00:00
Jermolene
178cfb1084 Make more core strings be translateable
Now we’re translating strings that occur in JavaScript modules.

Partially fixing #491
2014-03-20 20:55:59 +00:00
Jermolene
db35bc36aa Disable storyviews when rendering to the fake dom 2014-03-10 18:41:11 +00:00
Jermolene
3636744d4f Add support for retrieving formatted text content from the fake dom
The idea is to convert HTML block elements into newlines, so that the
output is readable on a terminal.
2014-02-25 14:49:07 +00:00
Jermolene
f3930ad69c Add init command to initialise a wiki folder
Fixes #362
2014-02-23 22:58:17 +00:00
Jermolene
260080164f Update setTiddlerData() to preserve tiddler dictionaries
Previously, data tiddlers were always being saved in JSON format,
regardless of the original format.
2014-02-23 12:33:00 +00:00
Jermolene
cb5b95add2 Extend fakedom to support .value property
So that 88ffb2ad12 will work on the server
2014-02-21 15:43:25 +00:00
Jermolene
4836cf83e2 Enhance alerting to coalesce repeated alerts with the same text 2014-02-14 10:29:26 +00:00
Jermolene
70a120d4a6 Expand the logging mechanism to support alerts overlaid on the main screen
Now we get decent visual indication of sync errors, for instance. Still
work to do to coalesce alerts so that the screen doesn’t fill up with
them after an interval. And probably we should add a button to clear
all alerts.
2014-02-14 07:53:41 +00:00
Jermolene
ad4e7ccb17 Add experimental support for building plugins in the browser
It’s a bit rough and ready, but works.
2014-02-13 14:23:27 +00:00
Jermolene
441d9078fa Coding style tweaks for #399 2014-02-10 17:34:10 +00:00
Jeremy Ruston
f0ab607ea1 Merge pull request #399 from shendaras/patch-1
getRelativeDate: support for negative deltas
2014-02-10 17:33:08 +00:00
Jermolene
b26a32b93a Remove obsolete stylesheet helper 2014-02-08 09:29:11 +00:00
Daniel Barrett
d02ce5dbf3 oops, actually correct delta
Actually change delta to a positive number to get the logic the same.
2014-02-05 12:37:37 -06:00
Daniel Barrett
32f290dc13 getRelativeDate: support for negative deltas
Add support for format="relativedate" to be used when the date is in the future.
2014-02-05 11:44:01 -06:00
Jermolene
4882f70557 Clearer explanation of key descriptor syntax 2014-02-04 20:05:34 +00:00
Jeremy Ruston
7b054440ca Merge pull request #374 from Skeeve/patch-1
Update utils.js
2014-01-30 08:24:00 -08:00
Jermolene
e3a05625b2 Add experimental keyboard shortcut widget
It’s not cool that we have to use a separate keyboard widget for each
keyboard shortcut.

Fixes #386
2014-01-30 13:40:36 +00:00
Skeeve
758d461823 Update utils.js
I think /\\/g is wrong as it will remove every \ from the string. I think, the usual way of keeping the following character is more appropriate.
2014-01-29 13:43:34 +01:00
Jermolene
3f9561dd95 Better logging 2014-01-26 18:53:31 +00:00
Jermolene
2fc6451bf7 Rejigged encrypted import so that the current password isn't changed
We still try the currently stored password. If that doesn’t work then
we prompt for a password, but we no longer store the password in the
store.
2014-01-20 13:35:55 +00:00
Jermolene
ed5cf8b044 Refactor importing of encrypted TiddlyWiki files so that it works on Node.js 2014-01-19 20:13:55 +00:00
Jermolene
2c790d982f Switch to using $tw.fakeDocument for the fakedom document object
So that we can free us `$tw.document` to be the actual DOM document
2014-01-15 14:57:35 +00:00
Jermolene
b64b7982af Fix notification removal to not rely on transitionEnd events 2014-01-09 22:26:21 +00:00
Jermolene
e0f428b9b2 Fixed problem with Element.ELEMENT_NODE undefined on Safari 2014-01-04 15:15:12 +00:00
Jermolene
027421f5e6 More coding style consistency 2014-01-03 10:54:00 +00:00
Jermolene
1a74e2538c Cleaning up further coding style inconsistencies that have crept in 2014-01-03 10:50:00 +00:00
Jermolene
8fc5c1d4a0 Further style tweaks to #321 2014-01-03 10:48:00 +00:00
Jermolene
307b5c7d6b Merging #321 Table valign from @Skeeve 2014-01-03 10:39:55 +00:00
Jermolene
b132e1023d Add error checking to $tw.utils.setStyle() 2014-01-02 19:00:46 +00:00
David Jade
7f5a8fc937 Better drag/drop for Firefox/Chrome and improved IE support 2013-12-20 19:57:05 -08:00
Jermolene
1c529ddcd4 Refactored stylesheet implementation
This way we reuse the refresh mechanism properly so that theme tweaks
can be applied interactively.
2013-12-20 15:31:16 +00:00
Jermolene
3bcaab513d Fixed problem with insertBefore() method in fakedom
Was preventing refreshing of widget trees built against the fakedom.
2013-12-20 15:29:01 +00:00
Jermolene
638c8b2070 Fixes to fullscreen support
Prompted by this article:

http://generatedcontent.org/post/70347573294/is-your-fullscreen-api-code
-up-to-date-find-out-how-to
2013-12-18 21:39:59 +00:00
Jermolene
7d12d89a0a Added primitive support for basic authentication
Note that the password will be passed over HTTP in plain text.
2013-11-28 14:03:08 +00:00
Jermolene
c0a6e94b21 Hash the state qualifier to make it shorter
We were having problems with TW5 generating filepaths that were longer
than Windows likes.

Fixes #240
2013-11-28 10:53:37 +00:00
Jermolene
06a66cf24e Improve popup dismissal
Now we ignore clicks if they come from an element that has an ancestor
with the class `tw-popup`
2013-11-12 22:02:26 +00:00
Jermolene
145e3ece78 Fix $tw.utils.hasClass() to work even if the element doesn't have a className property 2013-11-12 22:01:31 +00:00
Jeremy Ruston
cc0011abd3 Get rid of the "new_" prefix we had on some methods
There's still the "old_" prefix to get rid of too.
2013-11-08 08:51:14 +00:00
Jeremy Ruston
b7cb1d3391 Change new_widget to widget
I was avoiding doing this until after the merge.
2013-11-08 08:47:00 +00:00
Jeremy Ruston
31ae8910c6 Fix animation behaviour of reveal widget 2013-11-02 09:21:11 +00:00
Jeremy Ruston
6a6f6c7713 Restored animations for the reveal widget 2013-11-01 17:23:08 +00:00
Jeremy Ruston
05e73ee1da Cope with localStorage not being available
IE10 doesn't allow localStorage for HTML pages loaded from the file://
protocol.
Boo.
2013-10-29 22:21:25 +00:00
Jeremy Ruston
654f48b14d Fix problem with modal titles 2013-10-29 15:01:36 +00:00
Jeremy Ruston
b4da65d1c9 Update fakedom to no longer add a newline after opening tags
The newline was being rendered within `<code>` elements.
2013-10-29 14:52:12 +00:00
Jeremy Ruston
14d7d5ea59 Use the new wiki.makeWidget() method where we can 2013-10-29 14:51:35 +00:00
Jeremy Ruston
f2ac04943f Fixed tag autocomplete popup on focus 2013-10-23 17:41:12 +01:00
Jeremy Ruston
2a571b4f5f Switch the notifier and modal mechanisms to use the new widget mechanism
Note the use of the `$tw.rootWidget` to collect together the root event
handlers
2013-10-21 20:14:01 +01:00
Jeremy Ruston
ce1fb300f8 Use the new widget mechanism for stylesheet parsing and rendering 2013-10-21 18:38:20 +01:00
Jeremy Ruston
6b9b75142b Fix text reference regexp to allow for tiddler titles with embedded spaces 2013-10-17 16:40:13 +01:00
Jeremy Ruston
20cd398e88 Fix popup positioning in the reveal widget 2013-10-14 23:32:01 +01:00
Jeremy Ruston
94c2eacdc9 Support selectedClass properly in the button widget 2013-10-14 16:56:13 +01:00
Jeremy Ruston
b0503cf709 Fixes to make SVG and MathML elements work properly 2013-10-13 20:14:31 +01:00
Jeremy Ruston
ed35d91be6 Initial Commit
Carried over from the abortive pull request #169
2013-10-12 17:05:13 +01:00
Jeremy Ruston
4a663d1661 Improve docs for $tw.utils.addEventListeners() 2013-09-14 13:47:51 +01:00
Jeremy Ruston
e034f28091 Bail out earlier when displaying a modal for a non-existent tiddler 2013-09-10 15:28:15 +01:00
Jeremy Ruston
ee33cbbc2e Fix up some problems when the animation duration is zero
We want to be able to suppress animations by making the duration zero
2013-08-29 12:43:24 +01:00
Jeremy Ruston
fbfe5a26c5 Move the animation duration into a tiddler so that we can easily let it be adjusted in the control panel 2013-08-28 15:15:56 +01:00
Jeremy Ruston
53ead15273 Refactor scroller so that the scrollIntoView() method is a bit more usable
Passing an event instead of a DOM node was silly.
2013-07-08 15:15:53 +01:00
Jeremy Ruston
594f4ba204 Update animations to use a timer instead the transitionEnd event
Thr trouble is that the transitionEnd event doesn't fire under some
circumstances (eg if the animated element is hidden). So, it's more
reliable to use a timer instead
2013-07-06 12:57:37 +01:00
Jeremy Ruston
c72a63849b Add some more methods to the fake DOM
These methods are needed to get static saving working in the browser
again (click "Save Static" in the Demo tiddler)
2013-07-05 10:47:08 +01:00
Jeremy Ruston
0edfc855b4 Replace obsolete content type 2013-06-27 10:19:38 +01:00
Jeremy Ruston
d6654c4a0b Fixed problem with not being able to manually scroll after navigating to a tiddler 2013-06-10 21:07:23 +01:00
Jeremy Ruston
3cda8758ae Refactor scrolling animation to use requestAnimationFrame() instead of setInterval() 2013-06-10 14:11:58 +01:00
Jeremy Ruston
2c8352c442 Update the popup manager to allow popup state to be forced, rather than toggled
We'll be needing this shortly
2013-06-09 19:24:21 +01:00
Jeremy Ruston
854a9d6d1c Toggle a style on the page container when a modal is displayed 2013-06-04 16:19:47 +01:00
Jeremy Ruston
a8b1da33de Improvements to slide animation 2013-05-28 16:47:16 +01:00
Jeremy Ruston
227cadd326 Add a barebones animation framework
The idea is to allow us to package animations/transitions into plugins
2013-05-28 16:28:16 +01:00
Jeremy Ruston
d19affc9c3 Fix problem with non-shadow stylesheets not being recognised at startup 2013-05-25 16:40:34 +01:00
Jeremy Ruston
3806168038 Fixed problem with non-shadow style tiddlers not being recognised 2013-05-18 16:59:24 +01:00
Jeremy Ruston
d8abc0e9e3 Fix up more document references 2013-05-17 17:37:39 +01:00
Jeremy Ruston
6e1cd46bc7 Fix document references 2013-05-17 17:29:43 +01:00
Jeremy Ruston
551ebdc005 Major refactoring of rendering mechanism
We now use a fake DOM implementation on the server to let us share more
rendering code between the text output vs. DOM output paths.
2013-05-17 10:12:25 +01:00
Jeremy Ruston
8564602256 Refactor rendertree to simplify context handling
Get rid of the separate renderContext stack and instead have a parent
pointer on renderer nodes. This lets us walk back up the render tree to
resolve context references
2013-05-15 17:32:17 +01:00
Jeremy Ruston
8796f312cb A different animation for hiding notifications
Only slightly different, but it seems to add visual interest
2013-05-08 13:27:04 +01:00
Jeremy Ruston
24db38c06b Add simple notification mechanism 2013-05-07 18:08:44 +01:00
Jeremy Ruston
152fb798eb Start responding to dynamic stylesheet changes
This mechanism will only be triggered by changes to the stylesheet
tiddlers themselves, and not to any dependencies that they might have.
It'll stay that way for a while.

The next thing is making the theme manager actually switch themes,
forcing the right wiki change events to make the stylesheet manager
update itself
2013-04-29 12:07:39 +01:00
Jeremy Ruston
069bb624e5 Fix popup removal 2013-03-19 16:44:32 +00:00
Jeremy Ruston
dbde2bf23b Started refactoring TiddlyWeb syncer into generic syncer + TiddlyWeb adaptor
The refactored plugin is `tiddlyweb2` for the moment. The idea is to be
able to use the same syncer with a different adaptor for syncing
changes to the local file system.
2013-03-17 15:28:49 +00:00
Jeremy Ruston
c3b57507b0 Refactored wiki event mechanism to support multiple event types 2013-03-16 10:42:46 +00:00
Jeremy Ruston
4c06bd72de Fix #59
Much more intelligent automatic scrolling
2013-03-03 20:06:23 +00:00
Jeremy Ruston
9cbee467cb Smaller titles for modal dialogs 2013-03-01 09:13:10 +00:00
Jeremy Ruston
6c4a2a6026 Fix modal dialogue to use inline parsing for header and footer 2013-02-10 18:44:00 +00:00
Jeremy Ruston
6584939114 Less confusing method name 2013-02-08 09:22:21 +00:00
Jeremy Ruston
5fd73a2b8d Remove obsolete modules
ArgParser was used by the old tw2 parser, and the Sprite animator was
never actually used
2013-02-08 09:22:02 +00:00
Jeremy Ruston
170c1425f7 Normalise custom event names 2013-02-04 15:29:25 +00:00
Jeremy Ruston
bae48d5526 Stop base64 encoding context scope IDs
The base64 encoding wasn't working on node.js, and is a bit messy
2013-01-23 12:35:21 +00:00
Jeremy Ruston
baff901685 Added ability to transclude fields of data tiddlers
This allows us to transclude colours into CSS
2013-01-15 17:50:47 +00:00
Jeremy Ruston
5755cd5d3f Make modal wizards work again 2013-01-03 17:06:14 +00:00
Jeremy Ruston
f8340bc4dc Improvements to reveal widget popup handling 2013-01-01 16:14:42 +00:00
Jeremy Ruston
8fdeefd7d1 Added reveal macro 2012-12-31 18:36:39 +00:00
Jeremy Ruston
5b7cdc20ba Added beginnings of popup widget 2012-12-30 17:23:44 +00:00
Jeremy Ruston
27c21a5edb Added trim string utility function 2012-12-26 19:35:12 +00:00
Jeremy Ruston
8ef3e59416 Improved whitespace handling in classes 2012-12-23 10:36:37 +00:00
Jeremy Ruston
5c2f698842 Add parse tree helper for styling elements 2012-12-20 09:21:58 +00:00
Jeremy Ruston
60dca0f38a Added parse tree utility functions 2012-12-15 11:38:59 +00:00
Jeremy Ruston
28f96de225 Added extend() utility function 2012-12-14 13:30:10 +00:00
Jeremy Ruston
916ca8eecf More utilities 2012-12-13 21:31:57 +00:00
Jeremy Ruston
ce273a22f1 More DOM utilities 2012-12-13 21:31:41 +00:00
Jeremy Ruston
0154b2a54e Revised implementation of scrolling behaviour
Now we use a "tw-scroll" event to request scrolling
2012-11-26 16:08:52 +00:00
Jeremy Ruston
0d175d3eeb New utility method
Surprising that this seems to be the recommended approach
2012-11-19 12:55:04 +00:00
Jeremy Ruston
84650b9a54 Swap over to the new mime type conventions
Discussed in
https://groups.google.com/forum/#!topic/tiddlywikidev/re8xfLqZNCE
2012-11-18 15:22:13 +00:00
Jeremy Ruston
544711fe59 Improved copy writing
Marginally better
2012-11-16 19:36:50 +00:00
Jeremy Ruston
b96bcfdca4 Improve the modal dialogue to optionally include a download button 2012-11-16 19:30:30 +00:00
Jeremy Ruston
f1089c1c92 Use temporary tiddlers for popup locations 2012-11-11 15:03:34 +00:00
Jeremy Ruston
d3e6a0cdf0 Move the slowInSlowOut easing function into utils 2012-11-08 18:34:04 +00:00
Jeremy Ruston
9f6909ddc4 Appeasing the gods of JSHint 2012-11-06 17:21:56 +00:00
Jeremy Ruston
083ac7a4bf Encapsulate logic for handling popups 2012-11-06 14:11:11 +00:00
Jeremy Ruston
3d747499cb More enhancements to listview animations
Now we've got navigation scrolling back
2012-11-03 16:14:00 +00:00
Jeremy Ruston
5443c8243a Lots of tweaks to list view animations
There's a regression in that navigation animations are currently not
working
2012-11-03 12:34:36 +00:00
Jeremy Ruston
4bff67007d Introduce sprite handler mechanism
For flying things around the page
2012-11-03 12:33:21 +00:00
Jeremy Ruston
cfb3b42438 More refactoring of relativedate implementation 2012-10-28 18:41:48 +00:00
Jeremy Ruston
e97f778af4 Now we've got scrolling for navigation in classic view 2012-10-26 22:20:06 +01:00
Jeremy Ruston
324a87a8a2 Further refinements to the list mechanism
Much better navigation animation for classic view
2012-10-26 22:12:40 +01:00
Jeremy Ruston
858fde3b59 Fixed iffy scrolling during navigation 2012-10-26 17:35:03 +01:00
Jeremy Ruston
3dcada04d4 Extraneous console.log 2012-10-26 14:01:38 +01:00
Jeremy Ruston
031e3b8b80 Updates to CecilyView and browser.js 2012-10-26 10:28:32 +01:00
Jeremy Ruston
7c76ec02c2 Better programmatic CSS handling 2012-10-25 22:20:27 +01:00
Jeremy Ruston
950b46276e Start updating the browser prefix stuff
The old way led to code that was too long and unreadable.
2012-10-25 14:58:32 +01:00
Jeremy Ruston
cbfc96cabd Simplify unhyphenating CSS properties 2012-10-25 14:57:48 +01:00
Jeremy Ruston
4c9c74586c A function for displaying relative dates 2012-10-20 14:23:57 +01:00
Jeremy Ruston
5e2c3db385 Getting ready for using RegExp for search
So that we can do case insensitivity and partial matches
2012-10-17 19:10:48 +01:00
Jeremy Ruston
5ef77ae3dd Removing dead code 2012-10-16 23:06:53 +01:00
Jeremy Ruston
fd4ff10bf3 Added $tw.utils.pulse() for animating elements
To make it easier to see things while debugging
2012-10-15 17:18:32 +01:00
Jeremy Ruston
bf75735db9 Several fixes
1. Made crypto module optional
2. Moved hasOwnProperty into boot kernel
3. Fixed handling of modules in the browser
2012-10-10 16:32:37 +01:00
Jeremy Ruston
8386607092 Added feature detection for HTML5 full screen mode 2012-09-12 10:45:23 +01:00
Jeremy Ruston
daff9c10f3 Tighten terminology for plugins vs. modules
"Plugins" are bundles of tiddlers managed as one, "modules" are
JavaScript tiddlers with a module type identifying when and how they
should be executed.
2012-08-03 15:09:48 +01:00
Jeremy Ruston
c11743088a Niceties for JSHint 2012-08-02 22:32:34 +01:00
Jeremy Ruston
1f64a9e758 Added node.js version check and related refactorings 2012-08-02 14:32:38 +01:00