Previously, elements were wrapped in a div on hover and unwrapped when
the mouse was moved again. This generally worked okay, but led to
problems where the wrapped section contained elements with their own
rendering context (video, object, iframe, ...). The wrapping caused
rerendering of these elements resulting in flicker and layoutshift:
splitbrain/dokuwiki-plugin-vshare#13cosmocode/dokuwiki-plugin-diagrams#4
This patch changes the higlighting mechanism to always wrap *all*
sections in a div and only toggle classes on hover. Class names have
been chosen to be backwardscompatible, so this should continue to work
as before in all templates.
The height of the panel was calculated in JavaScript, trying to use the
remaining space. With larger headers that lead to a relatively small
area. In addition the height calculation behaved weirdly on certain
resolutions (in some templates) resulting in a decreasing height on each
image interaction.
This patch simply sets the panel height 60% of the browser window using
the vh unit (which was not available when the media manager was
written).
To keep backward compatibility and not accidentally break a bunch of
templates, the height is still set from JavaScript but only once instead
of updating it on every resize operation.
A proper refactoring of the whole media manager code is still something
we need to tackle in the future, but this change should make it slightly
better.
When doing a normal reload on the admin page to recheck the security,
the browser may not re-request the image again. This adds a timestamp to
the URL to ensure the image is tested again
* logging:
added JavaScript based filter mechanism
added logging configuration
replaced out calls to dbglog with new Logger calls
added convenience methods to log to our default facilities
added logviwer admin plugin
added log dir to git
central logging mechanism
This patch replaces our old gif based smileys by SVG based ones from the
Twemoji project. This allows for scaling the emojis with the text
they're used in.
This fixes a problem with badly encoded cookies that may have been set
by other software on the same domain. Eg. cookies encoded in latin1
instead of UTF-8.
Note: this library is abandoned and superseeded by js-cookie but an
upgrade to that is not straight forward (and the benefits for us are
unclear)
internallink's output <a> tag gets a new attribute, data-wiki-id, so that
jQuery doesn't need to parse the various link format to get the ID.
Any plugin javascript that loads after DokuWiki's script should be able to
discover curid class as usual, as long as they use the default js.php
facility.
fixes#1511, fixes#2968.
This prevents different type returned for DokuCookie.getValue():
DokuCookie.setValue('foo', false);
console.log(DokuCookie.getValue('foo')); // false
location.reload(); // pseudo code
console.log(DokuCookie.getValue('foo')); // 'false'
Safari 9 in iOS does not support the use of `const` in strict mode. Unfortunately, some of us are stuck with Safari 9 due to not being able to upgrade.
I am a big fan of progressive enhancement, but because all javascript code is packed together and sent off to the client, this small incompatibility breaks all javascript for safari 9 browsers. Switching these two keywords makes everything work again.
There are no other uses of `const` in the codebase as far as I can find. This change has little to no impact on anything else, but slighlty extends the range of supported browsers.
Plugins may want to add further fields to be present when saving drafts.
Plugins may want to execute some js functionality that should be timed to
the saved draft/refreshed lock.
If a plugin does another init() to attach the dw_locktimer to its own editor,
then the default callback would be added a second time, causing unexpected
and undesired behavior.
This includes the changes from the following commits:
6ef45cc1c66ca947f3ad0fff419cc987bed8b672
This removes a lot of reudundant CSS classes in favor of cascading
selectors. Styling isn't done, yet this is just a first step.
Still to do:
* aria labels
* styling the toggle mechanism
* RTL styling
* making sure everything displays correct when no JS is available
* translations may be missing
* refactoring the rest of search.less to make use of LESS features