Commit graph

197 commits

Author SHA1 Message Date
Yetangitu
23862c8b33 Remove external sources, links, scripts etc. 2021-06-26 22:04:49 +00:00
Yetangitu
eb5a6b455e Revert "Revert "Bump version to v4.7.1""
This reverts commit ec27b74b18.
2021-06-26 21:54:56 +00:00
Yetangitu
ec27b74b18 Revert "Bump version to v4.7.1"
This reverts commit 280d5ffb26.
2021-06-26 21:54:51 +00:00
Carey Metcalfe
280d5ffb26 Bump version to v4.7.1 2020-10-18 22:01:37 -04:00
Sunguk Lee
ce96c7425c
Fix flac playing (#260)
Co-authored-by: Carey Metcalfe <carey@cmetcalfe.ca>
2020-10-18 21:57:27 -04:00
Carey Metcalfe
45ebccd485 Change hosted URL to HTTPS 2020-03-10 20:53:55 -04:00
Carey Metcalfe
f6883cbb72 Bump version to v4.7.0 2020-03-10 20:25:41 -04:00
mvn23
2f920f434b Provide song duration to jplayer when starting playback 2019-10-03 13:40:02 +02:00
Carey Metcalfe
44607e4e9b
Merge pull request #254 from pR0Ps/feature/estimate-content-length
Add option to estimate the content length of streamed media
2019-05-13 19:16:10 -04:00
Carey Metcalfe
08e1db85fa Use small album images when viewing tracks 2019-02-22 21:25:21 -05:00
Carey Metcalfe
d2e57ccc6f Add option to estimate the content length of streamed media
Enabling this can help with seeking within transcoded media.

Without knowing how big a file is, it's impossible to display an
accurate progress bar. This option asks the server to send a
"Content-Length" header with a guess (based on bitrate and song length)
of how big the streamed file is going to be, enabling a progress bar to
be shown.

This reliably works with CBR transcodes, but can have issues with VBR as
the server doesn't know how big the file will be before it's transcoded.
If the server estimates incorrectly then songs could stop playing before
they actually finish or cause other glitches.

For the most part servers are pretty good with their estimates and being
able to seek in a transcoded stream as it downloads is a substantial UX
improvement so the option is enabled by default.
2019-02-22 21:24:16 -05:00
Carey Metcalfe
0043cddc7b Merge pull request #252 from pR0Ps/bugfix/fix-empty-responses
Tighten up check of data coming back from the server
2019-01-16 02:07:52 -05:00
Carey Metcalfe
6aab6bfb0c Merge pull request #245 from pR0Ps/feature/artist-nowplaying
Add Artist to now playing display
2019-01-16 02:07:31 -05:00
Carey Metcalfe
bba879b814 Tighten up check of data coming back from the server 2019-01-15 20:11:59 -05:00
Carey Metcalfe
ee7d11d8d7 Refactor Jukebox control
- Moves the functions to make the jukebox-related API calls to the
  subsonic service
- Initiate the API calls from the player directive to centralize the
  logic.
2017-11-10 14:31:24 -05:00
Carey Metcalfe
8c279093df Refactor media keys and fix play/pause
- Using space to play/pause was broken due to an issue with data
  binding. Running `$scope.$apply()` after updating the `player.pauseSong`
  property using `player.togglePause()` seems to have fixed this.
- All of the key event processing has been moved into the JS. This means
  that all the key event logic is all in one spot (easier to understand
  IMO). Additionally, this removes the need to redefine functions for
  each shortcut.
- Removed the now-unused `angular-ui-utils/keypress.js` package.
- Fixed key events being active when editing dropdown/checkbox controls
  in the settings menu
- Removed the custom `[Home]` shortcut since this is done natively by
  the browser already.
- Removed the 1-6 shortcuts for the tabs. Logic being that it seems
  pretty rare that you would want to rapidly switch between them (you
  would have to use the mouse to do anything on all tabs except the
  subsonic one anyway), and they were already broken without anyone
  complaining.
- Fixed tests
2017-11-10 14:31:01 -05:00
Carey Metcalfe
dbf5010745 Fix double click event propagation
This fixes an issue where attempting to rapidly remove songs from the
queue would cause them to be played.

- When clicking the add/play/remove/star buttons quickly, the double
  click event would propagate and start playing the song
- Fixed by extending the `stopEvent` directive to accept a
  comma-delimited list of events to stop. This allowed for using
  `stop-event="click,dblclick"` in the html to not propagate both click
  and double click events.
- Also removed some duplicate directives that seemed to have snuck in
  during a merge.
2017-11-10 14:31:01 -05:00
Carey Metcalfe
904d410c05 Update packages and reorder scripts
- Didn't update everything to the absolute latest since there are
  compatibility issues
- Reordered jquery above angular to fix some issues
2017-11-07 23:54:16 -05:00
Carey Metcalfe
739bf6c001 Make more space for song details 2017-11-07 23:06:09 -05:00
Carey Metcalfe
3e66e6258c Add Artist to now playing display 2017-11-07 23:06:09 -05:00
Hyzual
63a6188d46 4.6.5 Fix tabs behaviour, Fix album image requests
closes tsquillario/Jamstash#244
closes tsquillario/Jamstash#243
2017-11-01 13:47:40 +01:00
Joris MASSON
adb97e868e Merge pull request #243 from pR0Ps/develop
Fix bug where templates strings were being requested from servers
2017-11-01 13:25:29 +01:00
Carey Metcalfe
5842c0615a Fix Subsonic tab toggling behaviour
Previously clicking on an already-selected tab would hide its contents.
2017-10-22 21:53:00 -04:00
Carey Metcalfe
8d3f11e020 Fix bug where templates strings were being requested from servers 2017-10-16 00:29:38 -04:00
Hyzual
590dfee57a 4.6.4 Fix playlist buttons style
fixes tsquillario/Jamstash#241
2017-05-08 00:02:03 +02:00
Hyzual
402b12522f Apply evilmanimani's playlist style improvements
This lets users see and click on the "New playlist" button that was
hidden most of the time.
2017-05-07 23:43:38 +02:00
Hyzual
7c79493f2a Upgrade grunt-imagemin 2017-05-07 22:51:35 +02:00
Hyzual
45d86d4892 4.6.3 Add an icon to select all songs in the queue
Adds links to the Media Keys Firefox addon to control Jamstash with keyboard media keys.

fixes tsquillario/Jamstash#220
closes tsquillario/Jamstash#221
closes tsquillario/Jamstash#222
2015-10-26 23:33:35 +01:00
Hyzual
f31215aa63 Changed Firefox Media Keys addon link to en-US. 2015-10-26 23:19:40 +01:00
Hyzual
90456e4a2a Merge branch 'patch-1' of https://github.com/miicha/Jamstash into miicha-patch-1 2015-10-26 23:16:51 +01:00
Hyzual
cc20a73efa Add an icon to select all songs in the queue.
Fixes tsquillario/Jamstash#220
2015-10-26 22:58:26 +01:00
Michael
ee8bf21647 point to firefox media keys addon 2015-10-14 00:32:13 +02:00
Trevor Squillario
c758df2ac9 4.6.2 fix songdetails_controls loop icon spacing and uglifyjs in gruntfile 2015-08-23 11:44:01 -04:00
Trevor Squillario
d672598210 Revert "4.6.2 fix songdetails_controls loop icon spacing"
This reverts commit d098d6e19a.
2015-08-23 01:04:05 -04:00
Trevor Squillario
3b84b7cdc1 4.6.2 fix songdetails_controls loop icon spacing 2015-08-23 00:41:24 -04:00
Hyzual
9804561ebd Fix starring songs in the playing queue 2015-07-20 23:36:47 +02:00
Hyzual
fa1dec8e34 4.6.0 Code refactorings, Genre auto-playlists and Breadcrumbs improvements.
**Please do a 'bower install' and 'npm install' to update**
**You should probably also do a 'bower prune' and 'npm prune' to remove deprecated dependencies !**

* Fixes tsquillario/Jamstash#217
* Remove subsonic.js getStarred()
* Rename subsonic's getSongs() to getDirectory()
* Remove songs_lite.html
* Refactor queue.js
* Added angular-ui's ui-sortable directive as a bower dependency
* Refactor song selection across the app
* Refactor subsonic.js' loadPlaylistsForMenu
* Refactor subsonic-service.js to improve readability
* Updated bower deps to their latest versions
* Add a VersionEye badge in the README to track our dependencies
* Minor code style adjustments to comply with our jscsrc.
* Changed the localStorage key used to store the genre playlists names
* Enable removing genre auto-playlists from the list
* Use angular cache when querying getMusicFolders and getIndexes
* Refactor getAlbumListBy()
* Rework of the JSCS and JSHint configs
* Refactor breadcrumbs into a directive.
* Removes getAlbums() in subsonic-service, replaced by getSongs()
* Removes getSongTemplate() in subsonic-service which appears unused.
* Replaced Underscore with Lodash
* Fetch users' ID3 genres using Subsonic
* Update all npm packages, removes the "undef" rule to enable johnpapa's style
* Display the loading spinner gif for all angular ajax requests
2015-07-14 19:23:28 +02:00
Hyzual
9e0b28a463 Replaced the text gradient with a simple white color on the Dark theme.
Fixes tsquillario/Jamstash#217
2015-07-14 15:28:36 +02:00
Hyzual
0b39efd461 Remove subsonic.js getStarred()
It was unused.
- Also improved test descriptions
2015-07-12 01:53:02 +02:00
Hyzual
7d3d797551 Rename subsonic's getSongs() to getDirectory()
Because it is a more accurate description of what it does.
2015-07-12 01:53:02 +02:00
Hyzual
f1f5351001 Remove songs_lite.html
It seems unused.
2015-07-12 01:53:01 +02:00
Hyzual
9f24576d04 Refactor queue.js
- Added angular-ui's ui-sortable directive
- Removed our custom drag & drop handlers, they are replaced by ui-sortable.
- Refactored queue.js to better comply with https://github.com/johnpapa/angular-styleguide#controllers. Having the exposed
2015-07-12 01:53:01 +02:00
Hyzual
5d385149f3 Refactor song selection across the app
- Added a new SelectedSongs service. Its purpose is to store an array of selected songs and all behaviour associated with it : adding songs to it, removing them, toggling a song, etc. It also changes each song's selected property.
- Removed selectAll, selectNone, playAll, playFrom, addSongsToQueue and selectSong from main-controller.js. Those are now defined either in queue.js, subsonic.js or archive.js, depending on where they are used. I know it does add some duplication between archive.js and subsonic.js, but this will be addressed in a later commit (maybe by creating a shared service).
- Refactored subsonic-service.js' addToPlaylist() and split it between subsonic-service.js and subsonic.js (like all the other playlist-related functions).
- Moved subsonic-service.js' songsRemoveSelected() to subsonic.js since it only removes songs from the scope.
- Removed $rootScope and utils (unused dependencies) from subsonic-service.js
2015-07-12 01:52:42 +02:00
Hyzual
7e0c5a176a Refactors subsonic.js' loadPlaylistsForMenu
It now uses submenu-service's getPlaylists() => DRY.
It's also unit-tested.
2015-07-07 22:10:35 +02:00
Hyzual
6e19277371 Refactor subsonic-service.js to improve readability
To comply with https://github.com/johnpapa/angular-styleguide#style-y052
+ Minor changes
2015-07-07 22:10:35 +02:00
Hyzual
bcda18e913 Updated bower deps to their latest versions
Please run bower update in your repository
Updated Angular, jQuery, jQuery-UI, jasmine-fixtures, jPlayer and angular-locker
2015-07-07 22:10:35 +02:00
Hyzual
58829facd6 Minor code style adjustments to comply with our jscsrc. 2015-07-07 22:10:22 +02:00
Hyzual
66478bf67e Changed the localStorage key used to store the genre playlists names
I am aware that this means "wiping" users' choices of genre playlists, but consider the following :
- Previously, all they could choose from was a static list, whereas now one can choose from every genre available on the Subsonic server.
- We can't know what genres are available on the server when we're getting the saved value from localStorage. So a mapping might be possible but way too costly for a list of names that will only take a few clicks to recreate anyway.
2015-07-07 22:10:22 +02:00
Hyzual
48da0ee7f0 Enable removing genre auto-playlists from the list
- Added an svg "X" icon to enable removing auto-playlists
- Notice that the background-color and color change are done too, and since it's SVG, it takes only one image and some CSS to do both.
- Added a subsonic.css file. It is intended (long term) to have all subsonic view-related CSS styles.
- persistence-service now manages the selected genre auto-playlists names instead of utils.getValue().
- Rewrote persistence-service.js to comply with https://github.com/johnpapa/angular-styleguide#style-y052
- Rewrote many test descriptions in persistence-service_test.js to follow these recommendations : http://gojko.net/2015/02/25/how-to-get-the-most-out-of-given-when-then/
2015-07-07 22:10:21 +02:00
Hyzual
d2bdb8eed9 Use angular cache when querying getMusicFolders and getIndexes
It saves us a few requests and helps making Jamstash faster.
It's unlikely that the artists list or the music folders will change during a Jamstash session. It's also an easy cache to reset: the user only has to reload the page.
2015-07-07 22:09:12 +02:00