Commit Graph
44 Commits
Author SHA1 Message Date
Ilya Kreymer 34b03e6b08 didelity: only wrap JS globals if necessary (via wabac.js 2.9.5)
update to wabac.js 2.9.5
bump to 1.5.5
2021-10-25 11:04:55 -07:00
Ilya Kreymer a261a61721 fidelity: fix eval edge case (via wombat), enable http->https check for wacz sources (via wabac.js)
dependency updates:
- switch to webpack 5 and related build dependencies
- update litelement -> 'lit'
- wabac.js 2.9.2, wombat 1.3.4

search:
- update to latest flexsearch
- optimize search by using single-field index

bump to 1.5.3
2021-09-18 12:32:00 -07:00
Ilya Kreymer 0ef8f955db 1.4.0 Release (#45)
* customizations for chooser, coll-index and appmain to support usage in archiveweb.page
- chooser: support panel/message view
- move apiPrefix to misc
- make coll-index extensible, overridable styles, filtering

* api changes: make configurable in coll-index, now using '/w/' instead of '/wabac/', '/c/' prefix for coll apis

* lint pass!

* bulma: update to 0.9.2, fix delete spinner with latest bulma

* ui fixes:
- show 'Loading Archives...' on initial load until first api response succeeds
- fix typo in oncontrollerchange not actually resolving the promise!

* embed sandbox: add other allow options, except top-nav
- first api load: keep loading message until first successful api load
- don't reset hash on purge to keep current page
- sw config: fix typo with latest wabac.js
- embed: add 'noSandbox' option to avoid adding sandbox to iframe, needed to show PDFs, add more allow rules (all except top-navigation)

* ui improvements:
- refresh: ensure location refresh from hitting enter in location bar always resets url
- pageentry doubleclick: ensure double-clicking on page in sidebar always triggers reload, even if current page
- pageentry typo fix: fix missing var causing selection error (fixes webrecorder/archivewebpage#25)
- lint: don't include 'event' as global
- use latest wabac.js 2.7.0-beta.1

* add CHANGES for 1.4.0, add 'noSandbox' to embedding options
- electron app: fix path to 'w/'
- bump electron to 11.4.3

* docs: autoload current version from package.json
- chooser: support .json files for multiwacz (experimental)
- update CHANGES.md
- add missing .eslintrc.js file

* bump version to 1.4.0
2021-04-25 16:45:40 -07:00
Ilya Kreymer 72194c308a ui tweaks for downstream (archiveweb.page):
- don't show page editing options when in sidebar mode
- don't autorefresh in replay and sidebar not visibile
- disable plugins by default now
2021-02-15 15:24:22 -08:00
Ilya Kreymer f6de8dfaf0 library support improvements: add index.js which exports all from ui.js
update to latest wabac.js -- smaller size
support for 'source' param on <replay-app-main> which sets sourceUrl and forces direct loading of a single archive only
bump version to 1.3.5
2020-12-13 00:18:55 -08:00
Ilya Kreymer 40c2e937dc ui improvements:
- condense navbar, always show with breadcrumbs for collection title and current page
- add update-title event to propagate replay page title for breadcrumb, also updates document.title
- appmain: make app component more extensible, make coll-index also extensible with custom coll info component
- condense index view headers
- bump to 1.3.2
2020-12-07 22:37:08 -08:00
Ilya Kreymer 4155b9af33 wacz loading: support wacz 1.0.0! -- update to wabac.js 2.3.0
local file loading: support purge cache + reload for local files when filehandles are used (chrome)
update CHANGES.md
bump to 1.3.1
2020-11-20 15:38:12 -08:00
Ilya Kreymer b304788a05 loading: more loading fixes in latest wabac.js (2.2.2)
ui: fix typo of using native fs when not available
2020-11-17 23:38:18 -08:00
Ilya Kreymer aa8ad02312 ui: icon update:
- use home icon for return to home page, rwp icon for about menu
- make appName customizable
- make browser contents icon stay in tablet layout, instead of home
2020-11-17 11:52:59 -08:00
Ilya Kreymer 228e9bdff6 IPFS Support + Loading Improvements (Better local file handling) + Streamlined Collection View (#25)
* support ipfs:// urls!
misc: better error message for loading from http://
tabs: don't render pages/story/urls if hidden

* ipfs work: remove ww only use sw

* electron + ipfs: add ipfs support to electron app, using ipfs-core
- route ipfs requests to files proxy with 'ipfs=' query param

* file loading:
- add support for new Chrome native file system api with file handles, which allows persistent access to files vial file handles
- if window.showOpenFilePicker() is available use that, include file handle in load message
- support asking permissions for file handles, using similar workflow as google drive auth
- attempt to ask for file permission directly, show auth button if fails (user gestured required)
- replace auth modal with iframe replacement insert to ask for auth for google drive and local file

* ui overhaul for 1.3.0 / condense collection view:
- don't show navbar in collection view
- add logo to back to home page to location bar
- condense location bar buttons
- convert terms to general about dialog, available from collection context menu
- add info tab to collection view in place of drop-down info
- make <wr-coll-info> component, used in both collection list and info tab with additional details
- update to wabac.js 2.2.0

* update CHANGES.md
2020-11-16 18:31:15 -08:00
Ilya Kreymer 7c121a0e3a ui: switch location bar to plain text field to avoid extra 'x' in chrome
update to wabac.js 2.1.3 - rewriting fixes, fix regression in twitter rewriting
bump version to 1.2.2
2020-10-29 18:17:55 -07:00
Ilya Kreymer 4083b10bd2 fixes for google driver reauth:
- move handler back to replay, reauth should now work
- wabac.js fixes: reauth flow only triggered when reauth is needed, not when exponential backoff is used for loading
- bump version to 1.2.1
2020-10-24 20:12:39 -07:00
Ilya Kreymer 92b875a29b location bar fixes:
- fix url not being updated from navigation
- reload current url when pressing enter in location bar
- revert to current url when losing focus and url is blank
- fix hitting 'escape' resets location bar to current url
- bump version to 1.2.0-beta.1

latest wabac.js: fixes for fetch credentials override, use wabac.js 2.1.0-beta.4
2020-10-19 17:43:18 -07:00
Ilya Kreymer 8144b602a7 ui work:
- show favicon in location bar, if available
- editable mode: experimental allow editing collection title from pages view, update using new api
- editable mode: disable selected only downloads if nothing is selected
- pageentry: simplify, use passed in date

wabac.js: update to latest dev wabac.js 2.1.0-beta.2, including improved fuzzy matching system, new rules for fb and twitter (beta)
2020-10-14 23:42:10 -07:00
Ilya Kreymer b0799256b3 embeds: only show replay in embedded mode when visible, using IntersectionObserver to detect when off-screen 2020-09-29 16:19:00 -07:00
Ilya Kreymer 9e23433dae location change: ensure plain search in location bar go to fully expanded view, clear out url/ts 2020-09-16 18:28:06 -07:00
Ilya Kreymer 4068a0265d misc usability fixes:
- links: make all replay links valid hashtags instead of empty "#"
- replaybar: fix padding on dropdown menu button
- a11y/focus: only set focus on replay frame if no sidebar is visible
bump electron to latest 10.1.2
set version to 1.1.0!
2020-09-16 13:27:10 -07:00
Rebecca Lynn CremonaandIlya Kreymer 05adead57c Accessibilty, first pass (#17)
* Placeholder color contrast @ WCAG 2.0 level AA

* Trailing whitespace removed.

* Remove redundant labels.

* Logo is a link in mobile, if not-embedded; otherwise, span. Fix link labels.

* HREF mandatory on A; menu behaves like a popup button.

* Hide icons from screen readers.

* About icon id keyboard-operarable and is labeled.

* Note about inaccessible modal.

* Missing closing tag.

* Fix nesting/indentation.

* Fix nesting/indentation; add missing closing tag.

* Trailing whitespace removed.

* Don't use NAV landmark for non-nav; add heading for page structure.

* Hide icon.

* Load archive form's buttons visibly receive keyboard focus.

* Trailing whitespace removed.

* "Hide" header button is keyboard-operable, and more-verbosely labeled for screenreader users.

* Don't use NAV landmark for non-nav; add heading for page structure.

* Sort order announced to screen reader users.

* Trailing whitespace removed.

* Delete button only a button when it can be pressed; announce in progress deletion.

* Trailing whitespace removed.

* Use a NAV landmark for replay controls.

* Remove "menu" role, to avoid having to implement arrow key support https://www.w3.org/WAI/GL/wiki/Using_ARIA_menus

* Hide icons.

* Label buttons.

* Links in disguise as buttons need HREF, and to respond to spacebar.

* Re-dub "main menu" to distinguish from replay menu

* Replay nav buttons visually get keyboard focus.

* Trailing whitespace removed.

* Hiding icons; button labels; links-as-buttons are operable.

* Use type=search for additional clarity.

* Add appropriate landmarks and a heading for structure and clarity.

* Tab selection is a nav, and is keyboard operable.

* Indentation; missing closing tag.

* Trailing whitespace removed.

* Title iframe.

* Not a navigation.

* Per discussion, rename tab to "URLs" (label only; route etc. the same while experimenting).

* Announce when expanded/collapsed.

* Remove "menu" to avoid having to implement expected keyboard support.

* Use correct heading level when in sidebar and when main.

* Trailing whitespace removed.

* Semantic markup of table; headings and captions; link-buttons are keyboard operable.

* Skip links for keyboard users.

* Title iframe; hide icon.

* Just a list, not an aside.

* Not an article.

* Remove trailing whitespace.

* Make each page in the list a heading.

* link-buttons are keyboard operable.

* Use semantic list for page list.

* Announce changes to search results.

* More wayfinding tweaks.

* Landmark and heading for replay.

* Dynamic page titles.

* Remove redundant labels from main landmarks.

* additional tweaks after rebase
- add 'role' to each of the tabs, dependent if sidebar or not
- add 'role=main' for replay
- add sr-only headers to each tab

* fix typos

* remaining tweaks:
- url-resources: fix sorter getting moved into notification
- url-resources: fix border for mobile view
- add screenreader labels to expand/hide buttons

* Show hover effect on focus.

* Wrap the whole sidebar is role=complementary, including the tab navigation.

* Make buttons keyboard operable; fix typos.

* Programmatically associate sidebar toggle button with sidebar.

* Per discusson, try calling this "URLs"

* Different heading levels for sidebar and main.

* Announce changes to search results.

* Correct dynamic page title, whe not in sidebar.

* Remove hyperlink focus decoration; reveal obscured focus indicator.

* Focus on replay, when replay changes.

* Make buttons keyboard operable.

* Move spacebar helper to misc instead of duplicating.

* Bump compiled assets.

* Use disabled attribute to match css; update label to describe new sidebar.

* Adjust replay focus styles.

* Adjust replay nav button focus, so visuals onclick in Chrome are less prominent.

* Put wordmark with logo on non-embed desktop, so that logo and wordmark make a single link.

Co-authored-by: Ilya Kreymer <ikreymer@gmail.com>
2020-09-16 12:46:44 -07:00
Ilya Kreymer 7d9ce2b952 safari fixes: update to latest wabac.js (fix bug with cacheing responses to safari's 0-1 range check)
fix spinner in safari by adding keyframes to document itself
2020-09-10 23:17:26 -07:00
Ilya Kreymer d0cc1acb71 ui tweaks for mobile:
- fix url chooser cut-off in mobile (#14)
- sidebar toggle goes directly to full view (no sidebar) in mobile mode
2020-09-09 09:41:47 -07:00
Ilya Kreymer 851ce9bf90 sidebar refactor:
- support all view tabs (story, pages, resources) appearning as possible sidebar
- remove 'replay' as view, show replay if url= is set
- story: support splitter view for both sidebar/mobile and full view
- urlresources: support sidebar view, default to prefix search as default search type
- embeds: don't show sidebar for 'replayonly' embed mode
2020-09-08 15:03:58 -07:00
Ilya Kreymer 3f5431b7d7 embed: support referencing specific pages by index into page list, eg. url="page:0" will load the first page
sorter: use defaultKey / defaultDesc for url-resources sorter
2020-09-06 20:42:32 -07:00
Ilya Kreymer 889f51171a splitter fixes:
- fix readding splitter after switch to different views
- fix size of standalone pages
2020-09-01 22:05:04 -07:00
Ilya Kreymer d6515152c0 splitter: use more lightweight split.js for sidebar splitter 2020-09-01 21:42:44 -07:00
Ilya Kreymer 457b980af1 sidebar: ensure hiding sidebar is correctly saved in localStorage 2020-09-01 12:51:02 -07:00
Ilya Kreymer f8120adbbd splitter tweaks: pass array to splitter,
bump version to 1.1.0-beta.2
rebuild
2020-08-31 19:27:09 -07:00
Ilya Kreymer 804529aeea sidebar support + pageview sidebar work!
- pages view now appears as sidebar in table/desktop sizes when clicking show pages button
- using <split-me> webcomponent to support adjustable splitter for sidebar
- pages view includes list filter if lists exist
- current page is highlighted when selected in sidebar
- date appears below url for each when in sidebar/mobile view mode
2020-08-31 18:47:24 -07:00
Ilya Kreymer 910e4795a5 collection fixes:
- default to pages tab if story not available
- fix location bar
2020-08-29 17:26:59 -07:00
Ilya Kreymer a330c2c5c2 update to latest wabac.js -- fix reading small wacz files
embed fixes: fix 'replayonly' mode to hide locationbar
embed loading screen: simplify, don't show cancel button, filename
bump to electron 10.0.0
bump to beta.1
2020-08-24 23:09:18 -07:00
Ilya Kreymer 429f06453e ui text tweak: update location placeholder to mention text search 2020-08-12 15:49:34 -07:00
Ilya Kreymer 531f16a433 pages tweaks:
- display no results message in main view
- better view of score column in mobile view
- rename: rwp:// -> search://, Score -> Match
- only cache textIndex if non-zero result
2020-08-10 23:49:00 -07:00
Ilya Kreymer 4efce70a39 text search and ui fixes:
- text support via <coll>/textIndex api, fallback to existing pageList text data
- page sorting: add score column for page search results with query
- safari: add min-height: fit-content for safari
- refresh: ensure replay refresh triggers refresh icon
- embeds: ensure deep linking working for search view pages (map view and query params)
2020-08-07 16:48:02 -07:00
Ilya Kreymer 69e7982d31 ui tweaks:
- show pages found in sidebar if in desktop mode
- allow refresh on search views, just do reload
2020-08-05 23:05:53 -07:00
Ilya Kreymer 849f8ff4eb ui refactoring on search views:
- fix flexbox sizing
- update icons
- url-resources view: make responsive, use wr-sorter
- pages: various tweaks, hide sidebar for better responsive view!
- app: hide nav buttons when in archive view to avoid redundant
- add page view button to context menu
2020-08-05 20:05:12 -07:00
Ilya Kreymer 6b343e7e65 move tabs below location bar
pages: move sidebar below search bar, hide if no lists
use 'min-height: 0' to finally fix flexbox layout on all tabs!
2020-08-04 23:12:44 -07:00
Ilya Kreymer bb20379336 add location bar to be part of collection,
use rwp:// scheme to indicate search pages
2020-08-01 08:47:08 -07:00
Ilya Kreymer f4b320dde5 service-worker check:
- on-load, display error if service worker support is not available
- for embeds, display service worker unavailable error right away, don't attempt to load iframe
trailing slash check: redirect http://example.com -> http://example.com/
resources/page query: if no query= param is set, use url as query (when switching from replay, url is used as query)
2020-07-14 21:57:54 -07:00
Ilya Kreymer 7066b32e95 embed loading: for loading errors, show 'Try Again' instead of 'Back', addreses issues in (esmero/format_strawberry#81) 2020-06-29 19:49:57 -07:00
Ilya Kreymer 71b0fd3d19 embed improvements:
- show back, forward options in default embed mode
- add extra options menu in embed mode, including 'purge cache + full reload'
- responsive replay bar buttons: show in menu when tablet or mobile, in non-embed mode, only show on mobile
- 'full' embed mode, show only logo and info menu, no user guide/terms
2020-06-25 20:30:52 -07:00
Ilya Kreymer 101c4b3319 misc ui tweaks, mostly pages:
- add download menu
- add selection hilite
- tweak colors on chooser
disable notarize for now
2020-06-08 21:53:04 -07:00
Ilya Kreymer 149558f647 various tweaks for pages:
- support page column size, page deletion
- page deletion only enabled if has size, for now
- sorter can default to desc, tweak color for pages panel, default sort by time, descending
2020-06-01 13:45:59 -07:00
Ilya Kreymer fb3d137d24 rename curated-lists -> story, split pages into own top-level tab again
pages also has sidebar for filtering by list
pages, lists, curatedPages loaded on collection init
curated list only store page id and optional desc, resolved to pages at runtime
2020-05-29 23:32:22 -07:00
Ilya Kreymer 03023523b7 big ui update, page search + full text
- split file chooser from coll index, insert as header, make file chooser collapsible
- revamp collection index to be responsive
- add separate sorter component, used for collection index and pages
- combine 'curated lists' + pages, with page search + narrative
- ensure page + narrative lists are collapsible
- page search: support title, url and full text search if available, using flexsearch
- page search: keyword highlighting, load all pages, showing in increments of 100
- page and resource search: delay search to 1/4 sec of inactivity to avoid too many queries
- electron app: ensure noCache is set to true for local files
- embedding: remove separate embed.js, just use ui.js for embed as well
- embedding: support embedding iframe in a local origin with just sw.js and ui.js: sw.js serves index.html,
<replay-web-page> embed injects ui.js into iframe
- sw.js, new service worker entry point
- sw and ww inited only from <replay-app-main>, ui.js loaded from <replay-web-page> embed component
2020-05-26 14:43:28 -07:00
Ilya Kreymer e3d5abdbeb refactor: split frontend into file per component! 2020-05-22 23:43:56 -07:00