Fossil

Timeline
Login

Timeline

Many hyperlinks are disabled.
Use anonymous login to enable hyperlinks.

121 check-ins for the month beginning 2020-12-01 by user stephan

Following month ↑
2020-12-30
05:15
chat: multi-line mode and chat-only-mode toggles are now locally persistent. ... (check-in: e2935846 user: stephan tags: trunk)
2020-12-29
23:24
Reworded uvlist table summary, per forum suggestion /forumpost/8e3c4ae3d8 and personal itch. ... (check-in: 5797c7e8 user: stephan tags: trunk)
16:49
Minor doc typo. ... (check-in: 47655d39 user: stephan tags: trunk)
04:18
chat: send and poll can now report if the session is logged out, and client-side poll stops looping if that condition is detected. Both cases emit a message in the message area, from user 'fossil', with the CSS class 'error' and a link to the login page with a redirect back to the chat page. ... (check-in: 3c0c8954 user: stephan tags: trunk)
00:37
Replaced use of a deprecated DOM API. ... (check-in: b06442a6 user: stephan tags: trunk)
00:27
Added new 'chat' perm to /json/cap response. ... (check-in: e06315f9 user: stephan tags: trunk)
2020-12-28
09:46
Chat: fixed +1 being added to Date.getDate() call (copy/paste error). ... (check-in: 5fab875d user: stephan tags: trunk)
08:59
chat: when loading older messages, return scroll point to the position it was at when load was started, per chat room request. ... (check-in: 49cc6f28 user: stephan tags: trunk)
08:54
chat: replaced the (approximate) messages-since-hidden count in the page title (i.e. browser tab label) to an asterisk so that users don't feel compelled to verify that number against what they actually see in the list (which differs at times). ... (check-in: 0a5fd03e user: stephan tags: trunk)
02:55
chat: removed some dead code. If URL parameter ping=### is seen, assuming we're running from the 'chat' CLI command and automatically start up in chat-only mode. ... (check-in: b111d1ca user: stephan tags: trunk)
00:23
chat: corrected the scroll position tracking when toggling single/multi-line mode to work from arbitrary points within the scroll area. ... (check-in: 0f59fba0 user: stephan tags: trunk)
2020-12-27
22:01
chat: when toggling between single/multi-line mode, retain the message area scroll position, insofar as its size allows for (e.g. might not work if the history is too short to scroll). ... (check-in: 423ee810 user: stephan tags: trunk)
21:22
Refactored the calc-elem-effective-height routine into the fossil.dom API for reuse elsewhere. Fixed (arguably) a minor layout quirk in the chat input field in multi-line mode. ... (check-in: 299fd690 user: stephan tags: trunk)
20:33
chat: reworked the auto-resize algorithm to account for elements which "incorrectly" report a height of 0. Experimentally removed the 2em bottom gap at the end of the message reportedly required by Safari. ... (check-in: cdc6dec7 user: stephan tags: trunk)
18:56
chat: improved the 'is previous message currently visible' calculation for the 'should we scroll?' heuristic. ... (check-in: b3f2eee5 user: stephan tags: trunk)
18:29
chat: seem to have eliminated the tiny dead-zone between the label and checkbox in the settings menu. ... (check-in: dc8f3a36 user: stephan tags: trunk)
18:00
Doc typo reported in the forum. ... (check-in: 1221a579 user: stephan tags: trunk)
17:44
Doc typo fix reported in the forum. ... (check-in: 988c5998 user: stephan tags: trunk)
17:42
Chat: hide message home/end buttons by default in portrait mode and add a menu toggle for them, and swapped the button positions (seems more natural). Minor tweak to the div.content resize algo to make use of CSS calc(). ... (check-in: deb9963a user: stephan tags: trunk)
09:56
Some flicker reduction when batch loading chat messages. Minor chat layout tweaks. ... (check-in: 5e046b64 user: stephan tags: trunk)
09:37
Added an ARIA role=alert to the fossil.toast.message/warning/error() popup, per form request. Toast API doc corrections. ... (check-in: 23d6b457 user: stephan tags: trunk)
09:05
chat: ARIA-related attribute changes suggested in the forum. ... (check-in: ca7aae80 user: stephan tags: trunk)
08:32
chat: added buttons to jump to top/bottom of message list. Added a huge margin under the input area because Safari demands it. Improved the div.content auto-resize calculation to get a more precise fit. ... (check-in: 24080827 user: stephan tags: trunk)
07:45
chat: auto-scrolling of other peoples' posts into view works based on a heuristic of whether the *previous* post is in view or not (else we assume the user is back in the history), with the notable caveat that posts with inlined images play havok with this, in part because loading of images is async and we race against it. Moved the #debugMsg element out of div.content to keep it from unduly influencing our layout. ... (check-in: 6c28d7d6 user: stephan tags: trunk)
07:03
chat: fixed mis-scroll when toggling chat-only mode. Re-re-introduced the img preview size cap. ... (check-in: b09f7e99 user: stephan tags: trunk)
06:48
chat: next round of Safari-friendly baby steps, developed in conjunction with Safari user mgagnon via chat session. ... (check-in: a1161fa9 user: stephan tags: trunk)
04:50
chat: reintegrated partial changes from [b0ab6cbd3] and [670732a6]: remove skin-induced div.content margins in chat-only mode and cap image preview size to avoid screen overflow. Moved #dbgMessage element out of the way at app startup to avoid it potentially influencing our flexbox layout, and include that element in the to-hide list for chat-only mode. Edit: Martin G. reports that this one also causes Grief with Safari, but in different ways that before. ... (Closed-Leaf check-in: 7c3cf7a1 user: stephan tags: no-joy)
04:30
chat: re-integrated JS-based div.content resizer to do approximately what the preferred 'vh' CSS units would, but upon which Safari apparently chokes. Message area now gets a scrollbar. This works reasonably well on FF/Chrome on both Linux and Android. The jury is still out on Safari. Edit: Martin G. confirmed this one also suffers from the "collapsing messages" problem on Safari. ... (check-in: d488f5c6 user: stephan tags: no-joy)
03:39
Eliminated top-down chat mode altogether in an attempt to eliminate some complexity and cruft. Re-added the toast-on-new-invisible-message from [0a00a103]. ... (check-in: 421d6570 user: stephan tags: trunk)
01:58
chat: Safari has a severe allergic reaction to CSS vh units, so calculate the size of the affected DOM element in JS code at app startup and when the window resizes. ... (Closed-Leaf check-in: 8747d85e user: stephan tags: chat-safari-experiments, chat-safari-breaks-here)
01:07
CSS tweaks to attempt to counter some Safari message spacing problems - cannot test locally. Also limit the chat image preview to 40% of the viewport width/height, to avoid it taking up the whole screen for a large image. ... (check-in: 670732a6 user: stephan tags: chat-safari-experiments, chat-safari-breaks-here)
00:32
Force bottom-up chat mode, now that the toggle is removed but it might still be set in some localStorage storage. ... (Closed-Leaf check-in: a6650eb7 user: stephan tags: chat-safari-breaks-here)
00:27
Remove skin-installed div.content max-width limitations when running in chat-only mode, and expand to the full width. ... (check-in: b0ab6cbd user: stephan tags: chat-safari-breaks-here)
00:22
Disabled the top-down/bottom-up chat toggle, per chat discussion. Removed explicit setting of div.content margins, in chat,except in chat-only mode, so that we honor skin-level margin settings (resolves layout breakage in Xekri skin). ... (check-in: 22b0faad user: stephan tags: chat-safari-breaks-here)
2020-12-26
23:57
Found what seems to be a more or less viable solution for the chat layout in which the input area is effectively sticky while not actually being so. New messages do not scroll to the start of the list except for when a user locally posts a message, but instead, if a new message arrives and is scrolled out of view, a toast is shown to gently alert the user that a new message has arrived. ... (check-in: 0a00a103 user: stephan tags: chat-safari-breaks-here)
22:09
Disabled automatic scrolling when a new chat message arrives, as it is unnecessary when the user input fields are not sticky. To revisit later with sticky input fields. ... (check-in: b75ce865 user: stephan tags: trunk)
22:01
Added a CSS class to the xekri skin to keep the chat settings menu from having a transparent background. ... (check-in: 12b53919 user: stephan tags: trunk)
21:26
Added lmtime to www/chat.md and typo fix. ... (check-in: 92d74f8f user: stephan tags: trunk)
20:57
chat: disable line-wrap on the message tabs. Removed an extraneous duplicated style entry. ... (check-in: adc90d82 user: stephan tags: trunk)
20:47
Typo fix. Moved chat.file to the end of the schema, per forum suggestion. ... (check-in: fd73e79b user: stephan tags: trunk)
20:33
Lowercased 'zulu' per chat discussion. ... (check-in: c7a017e1 user: stephan tags: trunk)
20:33
chat: removed extraneous T from sender-local timestamp. ... (check-in: 16b8e480 user: stephan tags: trunk)
20:30
Removed invalid Z suffix from the new lmtime string. ... (check-in: 7d4a3248 user: stephan tags: trunk)
20:26
Only apply sender-local time if it's in the message (older messages do not have it). ... (check-in: f2a58f10 user: stephan tags: trunk)
20:24
Integrated client-local timestamp into chat so that participants can see the local time in their colleagues' time zones. ... (check-in: 3c5e2bad user: stephan tags: trunk)
19:43
Added lmtime (local mtime) parameter to /chat-send calls, per chat discussion. ... (check-in: 152ac599 user: stephan tags: trunk)
18:08
Changed how chat-only mode figures out which elements to hide to account for skins which replace div.content with their own element. ... (check-in: e390b95b user: stephan tags: trunk)
18:03
Laxened up CSS selectors for div.content to account for skins which move that element into a sub-element. ... (check-in: 553ce288 user: stephan tags: trunk)
17:55
chat app now explicitly sets the body.chat CSS class, to account for skins which include a BODY tag in their header and therefore do not get one injected by the style API. ... (check-in: feaa3b16 user: stephan tags: trunk)
17:22
chat: disabled sticky mode of the input area for the time being due to grief in conjunction with message scrolling. When toggling between bottom/top modes, scroll to the input area. ... (check-in: ba3ebf0d user: stephan tags: trunk)
17:07
Removed some debug output. When toggling between bottom-up/top-down chat, scroll to the input widget (which flips between the top and the bottom of the page). ... (check-in: 34547542 user: stephan tags: trunk)
16:54
Typo fix which led to an exception and caused the timestamp popups to misbehave. ... (check-in: fc4782e7 user: stephan tags: trunk)
16:39
Worked around a browser-dependent scrolling quirk and fixed a logic bug in the recent PopupWidget.installHideHandlers() API change which caused the timestamp popups not to close. ... (check-in: 322627ed user: stephan tags: trunk)
16:21
Disabled a dangling part of the search for a solution for the bottom-scrolling problem. ... (Closed-Leaf check-in: 7f4000a6 user: stephan tags: chat-mode-bottom-up)
16:20
Disabled position:sticky on the input area when in bottom-up chat mode pending resolution of a scrolling misbehaviour for messages with IMG tags. IMG.src is loaded async, so the scrolling is actually working but loading of the IMG.src is then pushing the message back down behind/under the input field. ... (check-in: 8e12b61b user: stephan tags: chat-mode-bottom-up)
15:40
Implement bottom-up and top-down chat layouts in chat-only mode and normal mode. There is a minor scroll-on-new-message quirk or two to resolve, but it otherwise seems to work. ... (check-in: dfc20f42 user: stephan tags: chat-mode-bottom-up)
13:46
Chat docs: minor typos and additions. ... (check-in: 10085418 user: stephan tags: trunk)
01:37
Settings menu now closes if a click or ESC happens outside of the menu. ... (check-in: 1f000368 user: stephan tags: chat-mode-bottom-up)
01:31
Initial go at a "bottom-up" (mobile-like) layout for chat, but it is only active in chat-only mode where we have more control over the layout. The default mode works like before, top-down. There are still minor usability/scrolling issues left to resolve but it seems to essentially work. ... (check-in: cffd66ff user: stephan tags: chat-mode-bottom-up)
2020-12-25
23:38
CSS docs and line-wrapped the new settings icon data URL. No functional changes. ... (check-in: ca42098a user: stephan tags: trunk)
22:37
Removed some dead CSS. ... (Closed-Leaf check-in: c9ca5198 user: stephan tags: chat-widget-rework)
22:35
chat: refactored the messages from fieldsets to a custom widget. ... (check-in: 852bda77 user: stephan tags: chat-widget-rework)
21:36
Reformulate the LEGEND elements to include an embedded anchor tag as an attempt to working around Safari's inability to click a LEGEND element. Edit: this approach didn't work - same effect as before on Safari. ... (Closed-Leaf check-in: 73c8ccd3 user: stephan tags: chat-safari-ts-popup)
20:48
chat: removed now-obsolete error checking for Date() parsing. Edit: moved from trunk and closed - an as-yet-unidentified Date() problem persists on Safari. ... (Closed-Leaf check-in: 379b4689 user: stephan tags: no-joy)
19:20
chat: added 'role'='button' attribute to various non-button button-like elements, per forum request. ... (check-in: 6506b6de user: stephan tags: trunk)
17:52
chat: added toggles for single/multi-line input (non-persistent) and monospace message font (persistent - affects message bodies and text input fields). ... (check-in: 9d24a284 user: stephan tags: trunk)
16:08
chat internal cleanups in prep for upcoming changes. Possibly fixed the cosmetic bug where the titlebar says '(0) ...' after receiving an empty list of messages in response to an auto-reconnect after a timeout. ... (check-in: e52d0fd5 user: stephan tags: trunk)
15:27
Chat settings menu tweaks based on chat session feedback. ... (check-in: 9e797bf9 user: stephan tags: trunk)
14:58
Added chat setting chat-inline-images: specifies whether /chat images default to display inline or as download links. Various code-adjacent tweaks. ... (check-in: 9d86a4af user: stephan tags: trunk)
13:00
When chat is in chat-only mode, the input area is now sticky at the top of the window. This required a bit of hackery involving its background color to keep it from being transparent (which causes the chat messages to be visible through it). ... (check-in: 429e5a9b user: stephan tags: trunk)
11:32
chat setting: toggle whether 'my' messages are on the right or left, with the default depending on whether the window is wider than it is tall. ... (check-in: f1e91a20 user: stephan tags: trunk)
11:06
Moved chat.c inline CSS style to default.css. Various chat layout tweaks. ... (check-in: 467dbc8f user: stephan tags: trunk)
10:04
Added settings popup to chat. Currently only 1 setting - toggling the page header/footer on/off. ... (check-in: 617e23be user: stephan tags: trunk)
09:39
chat.js restructuring/cleanup - no functional changes. ... (check-in: 12682568 user: stephan tags: trunk)
2020-12-24
22:21
chat poll again uses "quiet" error handling to avoid posting toast error messages when it times out (which it does every 10 minutes or so when idle). ... (check-in: b6de299b user: stephan tags: trunk)
22:07
chat message deletion: admins now have both delete local and delete global options, in case they want to remove something from local view without deleting it for all users. ... (check-in: b12d69d9 user: stephan tags: trunk)
20:18
Initial impl of buttons to load older chat messages. The UI code is a bit more involved than might seem necessary, but is so largely because it needs to avoid UI/ajax race conditions. ... (check-in: 6d676f6e user: stephan tags: trunk)
08:10
chat: revert title to its originalv alue when the tab becomes active after having been inactive. ... (check-in: 0c0be4b7 user: stephan tags: trunk)
08:07
Chat: if the current tab is not active when a message arrives, update the title to show the new message count. When the tab is active, revert the title. Note that deletions currently count towards new events, but that's arguable. ... (check-in: d7959205 user: stephan tags: trunk)
07:19
chat: ported in the hyperlink and @username parser from the older chat.tcl script. This is an intermediary workaround until we decide how/whether to do server-side markup handling. ... (check-in: c5095283 user: stephan tags: trunk)
06:18
Removed some debug output. ... (check-in: f315268e user: stephan tags: trunk)
05:58
Added UI to delete chat posts (tap on the message header). Made a change to the semantics of when fossil.PopupWidget's refresh() callback is triggered to account for the common case of having to show() the popup twice in a row without a hide() in between. ... (check-in: b7f106da user: stephan tags: trunk)
05:03
Initial impl for chat message deletion. The ajax bits are in place and message deletion propagates to other connected clients (if the message is owned by the poster or the user is an admin) but there's not currently a user interface. TODO: add related controls to the same popup used for the message timestamps. ... (check-in: 24727611 user: stephan tags: trunk)
2020-12-23
23:27
Several internal cleanups in chat app, e.g. replace document.createXYZ with simpler fossil.dom API. Eliminate assignment to innerHTML, which is widely considered unsafe. ... (check-in: 68da2459 user: stephan tags: trunk)
22:58
chat: minor UI refinements. ... (check-in: 8eb01c31 user: stephan tags: trunk)
22:16
Chat: disable pasting of text when then input field does NOT have focus and fix complete overwriting of input field when pasting and it DOES have focus. Whether or not we should paste to that field when it does not have focus is debatable and possibly violates the Principle of Least Surprise. ... (check-in: 87ff8fe3 user: stephan tags: trunk)
15:18
chat: when pasting an image and a file is already selected, make sure to clear out that selected file state to avoid conflicting data. ... (check-in: 63ec4a5b user: stephan tags: chatroom-dev)
15:12
chat: improved visual notification of drag/drop into the file input selector. ... (check-in: d5210076 user: stephan tags: chatroom-dev)
15:00
chat: reworked the drag/drop bits to take advantage of Firefox and Chrome already supporting drag/drop onto a file input element. ... (check-in: 7e48953c user: stephan tags: chatroom-dev)
14:21
Made chat drop zone smaller by replacing its text with a helplet button. Added 'chat' table to the list of those NOT nuked by rebuild. ... (check-in: 85939ffc user: stephan tags: chatroom-dev)
10:41
Added a Cancel button to the drag/drop file/image field to clear the pending blob. Still need to hook it up to interact with the file input field, but that will have to wait a bit. ... (check-in: 018084c5 user: stephan tags: chatroom-dev)
10:28
Chat style tweaks. ... (check-in: 3e956a23 user: stephan tags: chatroom-dev)
10:23
chat: added drag/drop support for files. Images get previewed like those pasted from the clipboard. ... (check-in: 4c0146f1 user: stephan tags: chatroom-dev)
08:43
Removed some dead code. Updated some docs. ... (check-in: cf789fa7 user: stephan tags: chatroom-dev)
08:33
Chat clipboard paste: pasted text, regardless of event target, now goes to the input field and pasted images, regardless of the event target, now go into the image-submit slot. ... (check-in: 02fa19aa user: stephan tags: chatroom-dev)
08:21
Fixed incorrect chatMessage.fsize value being served with the message list JSON. ... (check-in: 8f736e84 user: stephan tags: chatroom-dev)
07:59
Rescoped the chat timestamp popup widget into a deeper scope (less visible/leaky). Moved the duplicated click-somewhere-to-close-popup handlers into PopupWidget.installClickToHide() method. ... (check-in: 6bccbc20 user: stephan tags: chatroom-dev)
07:45
Simplified some JSON quoting in chat.c. Bypass the paste-from-clipboard handling if the paste target is the input text field, to avoid a console-level error when the text cannot be parsed as an image. TODO: figure out how to handle the paste-image case properly when the event target is the text input field. ... (check-in: 2fe8d7c4 user: stephan tags: chatroom-dev)
07:12
Seem to have resolved the broken download names for chat-posted files. ... (check-in: b604154c user: stephan tags: chatroom-dev)
07:09
Implemented paste image into chat from clipboard. Fixed posted file download link but the files download with the same name as their message ID, which isn't very friendly. Not sure how to resolve that bit. ... (check-in: eb7845f3 user: stephan tags: chatroom-dev)
06:26
Chat message precise timestamps are now shown via a tap/click popup, rather than hoverhelp, for mobile compatibility. ... (check-in: 0101325f user: stephan tags: chatroom-dev)
05:44
Import fossil bootstrapping JS into the chat app, add current login name to window.fossil.user.name, and use that name as the initial 'me' value in chat.js (resolves the FIXME in that latter part). ... (check-in: 4e832e9f user: stephan tags: chatroom-dev)
04:39
Re-added .message-content min-width which was lost when we rolled back [7e6d2f0a1]. ... (check-in: 67e5bd67 user: stephan tags: chatroom-dev)
04:19
Added complete timestamps (local and GMT) as title attribute of message headers. ... (check-in: 696135b6 user: stephan tags: chatroom-dev)
03:52
Experimentally removed the left/right split of me/everyone else messages, per chatroom discussion. Added a min-width to messages to keep the user name from being longer than short messages (unless the user name is really long). Update: The experiment didn't work out. Moved to a branch. ... (Closed-Leaf check-in: 7e6d2f0a user: stephan tags: no-joy)
2020-12-22
14:35
chat: added timestamps (browser-local time zone) to the chat messages. ... (check-in: 99689132 user: stephan tags: chatroom-dev)
13:05
chat: fixed links to /env and /self to use the file's current name instead of hard-coded to 'chat'. ... (check-in: 896d7d44 user: stephan tags: chatroom-dev)
12:09
chat: a proactive fix for a potential null deref. Documented a not-immediately-obvious element. ... (check-in: cdb8f690 user: stephan tags: chatroom-dev)
12:02
chat: changed layout from table-based to one fieldset per row of chat (fieldset rather than a custom construct because browsers have special support for placement of the LEGEND tag which we cannot easily reproduce in other element). The overall look is approximately the same, but saves some space. ... (check-in: a0ebe0ea user: stephan tags: chatroom-dev)
10:37
chat: removed the ??empty?? marker for empty message strings, as they're perfectly legitimate when a file/image is uploaded. ... (check-in: 3a36b8e9 user: stephan tags: chatroom-dev)
10:32
chat: experimentally changed poll() to use setInterval() instead of setTimeout() to attempt to automatically re-activate a connection if it's killed due to a timeout or (maybe) system sleep/resume. ... (check-in: f2601541 user: stephan tags: chatroom-dev)
09:35
chat: removed an extraneous layer of DOM elements. CSS tweaks. ... (check-in: ce988f94 user: stephan tags: chatroom-dev)
09:05
chat: initial implementation of marking @NAME references to make them more visible. ... (check-in: ee53e449 user: stephan tags: chatroom-dev)
08:25
Minor hyperlink generation tweak in support of pending additional auto-link/auto-style features. ... (check-in: ee6c7081 user: stephan tags: chatroom-dev)
07:34
Cleanups in the auto-hyperlink code. ... (check-in: f04dde73 user: stephan tags: chatroom-dev)
07:11
chat: hyperlink URL-looking patterns in messages. ... (check-in: 729e279a user: stephan tags: chatroom-dev)
05:58
Generic JS cleanups: var scoping and missing semicolons. ... (check-in: 9ec28614 user: stephan tags: chatroom-dev)
05:15
Refactored the chat input area from a table to a flexbox-based layout. ... (check-in: ba5c9147 user: stephan tags: chatroom-dev)
2020-12-12
17:29
serverext.wiki: added a note about the need to unset GATEWAY_INTERFACE before trying to recursively call the fossil binary. ... (check-in: e3fbbdc1 user: stephan tags: trunk)
10:01
If fossil.fetch()'s beforesend() callback propagates an exception, it is now passed to the onerror() callback and aborts the fetch, rather than being silently ignored. ... (check-in: 1515f022 user: stephan tags: trunk)
08:15
Adds the Apache-style REQUEST_SCHEME environment variable to the /ext environment so that CGIs can determine whether they're running in HTTP or HTTPS. Later: See alternative implementation at [f101e94da1f80571] ... (Closed-Leaf check-in: 0d72caae user: stephan tags: ext-request-scheme)
Previous month ↓