Files
Iris/src/js/services/ui/actions.js

226 lines
4.9 KiB
JavaScript
Raw Normal View History

2016-10-27 10:02:12 +13:00
import * as helpers from '../../helpers'
2016-10-27 10:02:12 +13:00
2016-12-14 16:41:05 +13:00
export function showContextMenu( e, data, context = false, trigger = 'click' ){
2016-10-27 10:02:12 +13:00
return {
2016-11-09 15:51:38 +13:00
type: 'SHOW_CONTEXT_MENU',
2016-10-27 10:02:12 +13:00
position_x: e.clientX,
position_y: e.clientY,
context: context,
2016-12-14 16:41:05 +13:00
trigger: trigger,
2016-10-27 10:02:12 +13:00
data: data
}
}
export function hideContextMenu(){
2016-11-09 15:49:25 +13:00
return {
2016-11-09 15:51:38 +13:00
type: 'HIDE_CONTEXT_MENU'
2016-11-09 15:49:25 +13:00
}
}
export function startSearch( query ){
2016-10-27 10:02:12 +13:00
return {
2016-11-09 15:49:25 +13:00
type: 'SEARCH_STARTED',
query: query
2016-10-27 10:02:12 +13:00
}
}
export function debugResponse( response ){
return {
type: 'DEBUG',
response: response
}
}
2016-11-01 08:57:28 +13:00
export function lazyLoading( start ){
return {
2016-11-09 15:51:38 +13:00
type: 'LAZY_LOADING',
2016-11-01 08:57:28 +13:00
start: start
}
}
export function toggleSidebar( new_state = 'toggle' ){
var action = { type: 'TOGGLE_SIDEBAR' }
if( new_state != 'toggle' ) action.new_state = new_state
return action
2016-11-21 21:46:53 +13:00
}
2016-11-15 17:08:21 +13:00
export function dragStart( e, context, victims, victims_indexes = false ){
2016-11-10 16:17:10 +13:00
return {
type: 'DRAG_START',
context: context,
victims: victims,
2016-11-15 17:08:21 +13:00
victims_indexes: victims_indexes,
start_x: e.clientX,
start_y: e.clientY
2016-11-10 16:17:10 +13:00
}
}
2016-11-15 17:08:21 +13:00
export function dragActive(){
return { type: 'DRAG_ACTIVE' }
}
2016-11-10 16:17:10 +13:00
export function dragEnd(){
return { type: 'DRAG_END' }
}
2016-12-09 18:47:10 +13:00
export function set( data ){
2016-11-21 10:06:25 +13:00
return {
2016-12-09 18:47:10 +13:00
type: 'UI_SET',
data: data
2016-11-21 10:06:25 +13:00
}
}
2017-01-19 13:19:11 +13:00
export function reorderPlaylistTracks( uri, indexes, insert_before, snapshot_id = false ){
var range = helpers.createRange( indexes );
2017-01-19 13:19:11 +13:00
switch( helpers.uriSource( uri ) ){
2016-11-15 17:08:21 +13:00
case 'spotify':
2016-11-15 17:08:21 +13:00
return {
type: 'SPOTIFY_REORDER_PLAYLIST_TRACKS',
2017-01-19 13:19:11 +13:00
key: uri,
range_start: range.start,
range_length: range.length,
insert_before: insert_before,
snapshot_id: snapshot_id
2016-11-15 17:08:21 +13:00
}
case 'm3u':
2016-11-15 17:08:21 +13:00
return {
type: 'MOPIDY_REORDER_PLAYLIST_TRACKS',
2017-01-19 13:19:11 +13:00
key: uri,
range_start: range.start,
range_length: range.length,
insert_before: insert_before
2016-11-15 17:08:21 +13:00
}
}
}
2017-01-19 13:19:11 +13:00
export function savePlaylist( uri, name, is_public = false ){
switch( helpers.uriSource( uri ) ){
2016-11-14 17:32:36 +13:00
case 'spotify':
return {
type: 'SPOTIFY_SAVE_PLAYLIST',
2017-01-19 13:19:11 +13:00
key: uri,
2016-11-14 17:32:36 +13:00
name: name,
is_public: is_public
}
case 'm3u':
return {
type: 'MOPIDY_SAVE_PLAYLIST',
2017-01-19 13:19:11 +13:00
key: uri,
2016-11-14 17:32:36 +13:00
name: name
}
}
return false
}
export function createPlaylist( scheme, name, is_public = false ){
2016-11-14 11:20:02 +13:00
switch( scheme ){
case 'spotify':
return {
type: 'SPOTIFY_CREATE_PLAYLIST',
name: name,
2016-11-14 17:32:36 +13:00
is_public: is_public
2016-11-14 11:20:02 +13:00
}
case 'm3u':
return {
type: 'MOPIDY_CREATE_PLAYLIST',
scheme: scheme,
name: name
}
}
return false
}
2017-01-19 13:19:11 +13:00
export function removeTracksFromPlaylist( uri, tracks_indexes ){
switch( helpers.uriSource( uri ) ){
case 'spotify':
return {
type: 'SPOTIFY_REMOVE_PLAYLIST_TRACKS',
2017-01-19 13:19:11 +13:00
key: uri,
tracks_indexes: tracks_indexes
}
case 'm3u':
return {
type: 'MOPIDY_REMOVE_PLAYLIST_TRACKS',
2017-01-19 13:19:11 +13:00
key: uri,
tracks_indexes: tracks_indexes
}
}
}
2017-01-19 13:19:11 +13:00
export function addTracksToPlaylist( uri, tracks_uris ){
switch( helpers.uriSource( uri ) ){
case 'spotify':
return {
type: 'SPOTIFY_ADD_PLAYLIST_TRACKS',
2017-01-19 13:19:11 +13:00
key: uri,
tracks_uris: tracks_uris
}
case 'm3u':
return {
type: 'MOPIDY_ADD_PLAYLIST_TRACKS',
2017-01-19 13:19:11 +13:00
key: uri,
tracks_uris: tracks_uris
}
2016-11-11 23:21:51 +13:00
}
}
2016-12-13 11:08:13 +13:00
/**
* Modal
*
* Immersive full-screen dialog
**/
2016-11-11 23:21:51 +13:00
export function openModal( name, data ){
return {
type: 'OPEN_MODAL',
modal: {
name: name,
data: data
}
}
}
export function closeModal(){
return { type: 'CLOSE_MODAL' }
}
2016-10-27 10:02:12 +13:00
2016-12-13 11:08:13 +13:00
/**
* Notifications
*
* Subtle info/tooltip messages
**/
export function createNotification( content, type = 'default' ){
return {
type: 'CREATE_NOTIFICATION',
notification: {
id: helpers.generateGuid(),
type: type,
content: content
}
}
}
export function removeNotification( id ){
return {
type: 'REMOVE_NOTIFICATION',
id: id
}
}