# nmdc-webfrontend A web interface to an NMDC/ADC hub. Chat in real-time on your NMDC/ADC hub using a web browser. ## Relationship to other projects This project forks and deprecates my earlier `dcwebui2` project since Go seems to use less memory than node. This project supercedes [dcwebui](https://code.ivysaur.me/dcwebui/), [flexdc](https://code.ivysaur.me/flexdc/), and [dcwebui2](https://code.ivysaur.me/dcwebui2/). ### Upgrading from `dcwebui2` - The configuration file content is identical between `nmdc-webfrontend` 1.0.0 and `dcwebui2` 1.3.0, but please now ensure it's valid JSON instead of arbitrary javascript. This means no assignment, use double-quoted strings, and no comments. - Future changes to the configuration file since `nmdc-webfrontend` 1.0.0 are backward compatible (see the changelog for more details). ## Developing 1. Install Go (>= 1.11), Node.js, NPM, and 7-Zip (`p7zip-full` on Debian) 2. Download the source code - `git clone https://git.ivysaur.me/code.ivysaur.me/nmdc-webfrontend.git `; or - `go get code.ivysaur.me/nmdc-webfrontend` ; or - download and extract a source archive 3. Install dependencies: `sudo make deps` 4. Build: `make` 5. Optional: Set `web.external_webroot: true` in the config file for unminified development ## Changelog 2017-11-26 1.3.0 - Update libnmdc to 0.16 (adds ADC hub support) - Configuration: The `hub.port` property is now optional. You can specify a full URI in the `hub.address` property instead. 2017-11-14 1.2.3 - Update libnmdc to 0.15 2017-10-28 1.2.2 - Enhancement: Simplify build process - Fix an issue with closing PM tabs 2017-10-16 1.2.1 - Enhancement: Increase scrollback buffer size - Fix an issue with missing `contented` upload link once logged in - Fix a cosmetic issue with `(0)` appearing in page title 2017-10-15 1.2.0 - Feature: Add `contented` integration (set `app.contented_server` in config file) - Fix a cosmetic issue with the menu icon on devices without unicode font coverage 2017-02-11 1.1.4 - Update libnmdc to 0.14 2017-02-11 1.1.3 - Feature: Display user IP address on hover, if available - Enhancement: Allow clicking on popup notifications - Enhancement: Only show 'popups enabled' notification when enabling for the first time, not persistent page load - Update libnmdc to 0.13 - Fix a cosmetic issue with not displaying non-zero user share sizes 2017-02-06 1.1.2 - Autodetect 'extern', no need to include it in config files - Enhancement: Remove redundant request, for a faster page load - Display server version number in log file and in response headers - Fix a cosmetic issue with spacing around user count in page title 2017-02-06 1.1.1 - Fix an issue with malformed content in minified build 2017-02-06 1.1.0 - Feature: Remember last username/password for login; remember last "show joins/parts" status - Feature: Display user details on hover (description, email, client tag, share size) - Feature: Optional desktop notifications for background PMs (not possible in incognito) - Feature: Automatically reconnect with the same username/password if connection was lost - Feature: Re-enter last message (Ctrl+Up, Ctrl+Down) - Feature: Set custom date/time format (Minutes, Seconds, Full), remembered for next session - Feature: Clickable magnet links - Feature: Display unread main-chat message count in the page title if the window is inactive - Feature: Add warning message when closing tab while still connected (optional preference, disabled by default, will be remembered). - Feature: Admin option to load a custom favicon (set `web.custom_favicon=true` and place a `favicon.ico` in the current directory) - Feature: Admin option to use external web resources (set `web.external_webroot=true` and use the /client/ directory) - Enhancement: Higher resolution favicon - Enhancement: Display operators in green in the user list - Enhancement: Enable spellcheck for text input once logged in - Enhancement: Prevent sending referrer to remote URLs - Enhancement: Display joins/parts and connection/disconnection messages in PM tabs - Enhancement: Support Shift+Tab to autocomplete backward - Enhancement: Support unread status for the main tab - Enhancement: Improve page load time via minification - Remove unused options from the config file - Update socket.io to 1.7.2 - Update libnmdc to 0.12 - Add margin between bottom of the text area and the text input box - Fix a cosmetic issue with collapsing consecutive spaces in posted messages - Fix a cosmetic issue with text size adjustment on mobile devices - Fix a cosmetic issue with clearing the screen on reconnection - Fix a cosmetic issue with not clearing the userlist on certain types of network error - Fix a cosmetic issue with closed PM tabs reappearing in some cases - Fix a cosmetic issue with marking all PM tabs as read when switching to a single one 2016-11-29 1.0.2 - Rebuild with libnmdc 0.11 - Fix an issue with not setting a version in the client tag 2016-10-08 1.0.1 - Fix an issue with backward compatibility with `dcwebui2` configuration file format 2016-10-08 1.0.0 - Port `dcwebui2` from Node.js (Javascript) to Go - Fix a cosmetic issue with not clearing userlist on disconnection