1
0
Fork 0
mirror of https://github.com/heyarne/airsonic-ui.git synced 2026-05-06 10:23:39 +02:00
Modern user interface for https://github.com/airsonic/airsonic – CURRENTLY INACTIVE
  • Clojure 96.1%
  • Sass 2.8%
  • JavaScript 0.7%
  • HTML 0.4%
Find a file
heyarne 8bf222a6e8
Improvements to currently playing queue (#48)
* First sloppy import of code from heyarne/reagent-movable

* Consistently use "current queue" to avoid confusion

* Update shadow-cljs, re-frame and debux

* Solve styling problem when sorting table rows

* Make sortable component more reusable

* Refactor playlist to use a sorted-map

* Make sure current queue is displayed again

* Fix sorting when converting a shuffled into a linear playlist

* Implement set-current-track

* Implement song-move in playlist

* Add autoprefixer

* Implement drag and drop reordering in current queue

* Fix broken dev sass build

* Bump some dependencies

* Move airsonic-ui.views.icon to bulma.icon

* Implement reusable dropdown in bulma.dropdown

* Immediately render reordered tracks, reimplement actions in album view

* Use new song-table on search result page

* Make song-table more reusable

* Remove current song

* Implement go to source in current queue

* Remove unused song view
2019-03-12 15:22:13 +01:00
.circleci Add circleci config 2019-03-12 15:16:43 +01:00
docs Improve docs and simplify dev script 2018-08-22 12:33:38 +02:00
src Improvements to currently playing queue (#48) 2019-03-12 15:22:13 +01:00
test/cljs Improvements to currently playing queue (#48) 2019-03-12 15:22:13 +01:00
.gitignore Restructure app init; fixes #5 and #11 2018-07-09 21:16:28 +02:00
.joker Add a real playlist (#20) 2018-08-20 16:34:52 +02:00
.travis.yml Revert "Configure travis to test and build in parallel" 2018-11-09 17:56:29 +01:00
karma.conf.js Improvements to currently playing queue (#48) 2019-03-12 15:22:13 +01:00
LICENSE.txt Add license 2018-11-26 09:13:15 +01:00
package-lock.json Improvements to currently playing queue (#48) 2019-03-12 15:22:13 +01:00
package.json Improvements to currently playing queue (#48) 2019-03-12 15:22:13 +01:00
postcss.config.js Improvements to currently playing queue (#48) 2019-03-12 15:22:13 +01:00
README.md Add circleci config 2019-03-12 15:16:43 +01:00
shadow-cljs.edn Improvements to currently playing queue (#48) 2019-03-12 15:22:13 +01:00

Airsonic Web Client Build Status CircleCI

This repository contains an alternative web frontend for airsonic. The goal is to eventually be able to fully replace the current web interface.

Implemented so far

  • Login with persisting credentials
  • Browse your library by newest / most recently played / starred
  • Browse artists alphabetically
  • A currently playing queue with next, previous, repeat and shuffle
  • Information about the current track with the ability to seek

Development

The project is written in ClojureScript and uses re-frame for structure and peace of mind. The build tool is shadow-cljs, which offers nice editor integration and interoparibility with the whole JavaScript ecosystem. If you haven't worked with re-frame: I highly recommend it. Good resources are the project's docs and a post about its building blocks.

To build the project make sure you have Node.js (v6.0.0), npm and Java 8 installed in your system.

# after cloning the project, first install all dependencies
$ npm install

# start a continuous build with hot-code-reloading and continuous testing
# first build takes a while. open http://localhost:8080
$ npm run dev

Editor integration

Integrating shadow-cljs with your editor helps tremendously with development. After having run npm run dev as described above you can connect to the REPL and get features like in-editor code execution and code completion / documentation lookup. For further information see this part of the shadow-cljs user guide, which contains instructions for Emacs, Atom, VSCode and other editors. Make sure to open localhost:8080 in the browser to execute ClojureScript code.

re-frame-10x

re-frame-10x is a debugger that is bundled with the app in development mode. Once you have the build running, hit Ctrl + h and the re-frame-10x window will show up:

re-frame-10x in action

It provides you with tools to inspect the state of the application, undo and replay events, debug performance issues and more.

Tests

This project uses karma for tests. Make sure to have Google Chrome installed, otherwise the watcher will time out.

# run tests once
$ npm test

Note: If you want nice console output in your tests, make sure to (enable-console-print!). You can call println afterwards like you're used to.

Deployment

# build and optimize the code once for production
$ npm run build

# runs npm run build and publishes everything via gh-pages
$ npm run deploy

Note: If you have a continuous build running and run npm run build or npm run deploy, it will delete the compiled tests, causing the continuous tests to not run anymore. This can be fixed by running npm test again.

All build artifacts land in /public. Don't change anything in there as changes will be overwritten.