Your ROOT_URL in app.ini is https://git.cloudchain.link/ but you are visiting https://dash.bss.nz/open-source-mirrors/Lidarr/commit/02925245c29e4dc21193db065eca38c20c443035
You should set ROOT_URL correctly, otherwise the web may not work correctly.
25 changed files with
65 additions and
65 deletions
@ -112,7 +112,7 @@ class HistoryRow extends Component {
return (
< TableRowCell key = { name } >
< EpisodeTitleLink
episode Id= { albumId }
album Id= { albumId }
episodeEntity = { episodeEntities . EPISODES }
artistId = { artist . id }
episodeTitle = { album . title }
@ -193,7 +193,7 @@ class Queue extends Component {
return (
< QueueRowConnector
key = { item . id }
episode Id= { item . albumId }
album Id= { item . albumId }
isSelected = { selectedState [ item . id ] }
columns = { columns }
{ ... item }
@ -157,7 +157,7 @@ class QueueRow extends Component {
return (
< TableRowCell key = { name } >
< EpisodeTitleLink
episode Id= { episode . id }
album Id= { episode . id }
artistId = { series . id }
trackFileId = { episode . trackFileId }
episodeTitle = { episode . title }
@ -47,9 +47,9 @@ class AlbumStudioRowConnector extends Component {
} ) ;
}
onAlbumMonitoredPress = ( episode Id, monitored ) => {
onAlbumMonitoredPress = ( album Id, monitored ) => {
this . props . toggleEpisodeMonitored ( {
episode Id,
album Id,
monitored : ! monitored
} ) ;
}
@ -112,7 +112,7 @@ class AlbumRow extends Component {
className = { styles . title }
>
< EpisodeTitleLink
episode Id= { id }
album Id= { id }
artistId = { artistId }
episodeTitle = { title }
showOpenArtistButton = { false }
@ -183,7 +183,7 @@ class AlbumRow extends Component {
return (
< EpisodeSearchCellConnector
key = { name }
episode Id= { id }
album Id= { id }
artistId = { artistId }
episodeTitle = { title }
/ >
@ -119,7 +119,7 @@ class AgendaEvent extends Component {
< EpisodeDetailsModal
isOpen = { this . state . isDetailsModalOpen }
episode Id= { id }
album Id= { id }
episodeEntity = { episodeEntities . CALENDAR }
artistId = { artist . id }
episodeTitle = { title }
@ -37,7 +37,7 @@ function CalendarDay(props) {
return (
< CalendarEventConnector
key = { event . id }
episode Id= { event . id }
album Id= { event . id }
{ ... event }
onEventModalOpenToggle = { onEventModalOpenToggle }
/ >
@ -112,7 +112,7 @@ class CalendarEvent extends Component {
< EpisodeDetailsModal
isOpen = { this . state . isDetailsModalOpen }
episode Id= { id }
album Id= { id }
episodeEntity = { episodeEntities . CALENDAR }
artistId = { artist . id }
episodeTitle = { title }
@ -44,7 +44,7 @@ class EpisodeDetailsModalContent extends Component {
render ( ) {
const {
episode Id,
album Id,
episodeEntity ,
artistId ,
artistName ,
@ -70,7 +70,7 @@ class EpisodeDetailsModalContent extends Component {
< ModalHeader >
< MonitorToggleButton
className = { styles . toggleButton }
id = { episode Id}
id = { album Id}
monitored = { monitored }
size = { 18 }
isDisabled = { ! artistMonitored }
@ -120,7 +120,7 @@ class EpisodeDetailsModalContent extends Component {
< TabPanel className = { styles . tabPanel } >
< EpisodeSummaryConnector
episodeId= { episode Id}
albumId= { album Id}
episodeEntity = { episodeEntity }
releaseDate = { releaseDate }
albumLabel = { albumLabel }
@ -130,13 +130,13 @@ class EpisodeDetailsModalContent extends Component {
< TabPanel className = { styles . tabPanel } >
< AlbumHistoryConnector
albumId = { episode Id}
albumId = { album Id}
/ >
< / T a b P a n e l >
< TabPanel className = { styles . tabPanel } >
< EpisodeSearchConnector
albumId = { episode Id}
albumId = { album Id}
startInteractiveSearch = { startInteractiveSearch }
onModalClose = { onModalClose }
/ >
@ -168,7 +168,7 @@ class EpisodeDetailsModalContent extends Component {
}
EpisodeDetailsModalContent . propTypes = {
episode Id: PropTypes . number . isRequired ,
album Id: PropTypes . number . isRequired ,
episodeEntity : PropTypes . string . isRequired ,
artistId : PropTypes . number . isRequired ,
artistName : PropTypes . string . isRequired ,
@ -15,7 +15,7 @@ function createMapStateToProps() {
return createSelector (
createEpisodeSelector ( ) ,
createArtistSelector ( ) ,
( episode , series ) => {
( album , series ) => {
const {
artistName ,
nameSlug ,
@ -28,7 +28,7 @@ function createMapStateToProps() {
nameSlug ,
artistMonitored ,
seriesType ,
... episode
... album
} ;
}
) ;
@ -63,7 +63,7 @@ class EpisodeDetailsModalContentConnector extends Component {
_populate ( ) {
const artistId = this . props . artistId ;
const albumId = this . props . episode Id;
const albumId = this . props . album Id;
this . props . fetchTracks ( { artistId , albumId } ) ;
// this.props.fetchTrackFiles({ artistId, albumId });
}
@ -78,13 +78,13 @@ class EpisodeDetailsModalContentConnector extends Component {
onMonitorAlbumPress = ( monitored ) => {
const {
episode Id,
album Id,
episodeEntity
} = this . props ;
this . props . toggleEpisodeMonitored ( {
episodeEntity ,
episode Id,
album Id,
monitored
} ) ;
}
@ -103,7 +103,7 @@ class EpisodeDetailsModalContentConnector extends Component {
}
EpisodeDetailsModalContentConnector . propTypes = {
episode Id: PropTypes . number . isRequired ,
album Id: PropTypes . number . isRequired ,
episodeEntity : PropTypes . string . isRequired ,
artistId : PropTypes . number . isRequired ,
fetchTracks : PropTypes . func . isRequired ,
@ -36,7 +36,7 @@ class EpisodeSearchCell extends Component {
render ( ) {
const {
episode Id,
album Id,
artistId ,
episodeTitle ,
isSearching ,
@ -59,7 +59,7 @@ class EpisodeSearchCell extends Component {
< EpisodeDetailsModal
isOpen = { this . state . isDetailsModalOpen }
episodeId= { episode Id}
albumId= { album Id}
artistId = { artistId }
episodeTitle = { episodeTitle }
selectedTab = "search"
@ -73,7 +73,7 @@ class EpisodeSearchCell extends Component {
}
EpisodeSearchCell . propTypes = {
episode Id: PropTypes . number . isRequired ,
album Id: PropTypes . number . isRequired ,
artistId : PropTypes . number . isRequired ,
episodeTitle : PropTypes . string . isRequired ,
isSearching : PropTypes . bool . isRequired ,
@ -9,11 +9,11 @@ import EpisodeSearchCell from './EpisodeSearchCell';
function createMapStateToProps ( ) {
return createSelector (
( state , { episodeId } ) => episode Id,
( state , { albumId } ) => album Id,
( state , { sceneSeasonNumber } ) => sceneSeasonNumber ,
createArtistSelector ( ) ,
createCommandsSelector ( ) ,
( episode Id, sceneSeasonNumber , series , commands ) => {
( album Id, sceneSeasonNumber , series , commands ) => {
const isSearching = _ . some ( commands , ( command ) => {
const episodeSearch = command . name === commandNames . EPISODE _SEARCH ;
@ -21,7 +21,7 @@ function createMapStateToProps() {
return false ;
}
return command . body . albumIds . indexOf ( episode Id) > - 1 ;
return command . body . albumIds . indexOf ( album Id) > - 1 ;
} ) ;
return {
@ -38,7 +38,7 @@ function createMapDispatchToProps(dispatch, props) {
onSearchPress ( name , path ) {
dispatch ( executeCommand ( {
name : commandNames . EPISODE _SEARCH ,
albumIds : [ props . episode Id]
albumIds : [ props . album Id]
} ) ) ;
}
} ;
@ -46,7 +46,7 @@ class EpisodeStatusConnector extends Component {
}
EpisodeStatusConnector . propTypes = {
episode Id: PropTypes . number . isRequired ,
album Id: PropTypes . number . isRequired ,
trackFileId : PropTypes . number . isRequired
} ;
@ -88,8 +88,8 @@ class EpisodeSummary extends Component {
< div className = { styles . overview } >
{
hasOverview ?
overview :
'No album overview.'
overview :
'No album overview.'
}
< / d i v >
@ -20,7 +20,7 @@ function createMapStateToProps() {
return {
network : episode . label ,
qualityProfileId : episode . profileId ,
airDateUtc : episode . releaseDate ,
releaseDate : episode . releaseDate ,
overview : episode . overview ,
items ,
columns : tracks . columns
@ -96,7 +96,7 @@ class TrackDetailRow extends Component {
className = { styles . status }
>
< EpisodeStatusConnector
episode Id= { id }
album Id= { id }
trackFileId = { trackFileId }
/ >
< / T a b l e R o w C e l l >
@ -5,32 +5,32 @@ function createBatchToggleEpisodeMonitoredHandler(section, getFromState) {
return function ( payload ) {
return function ( dispatch , getState ) {
const {
episode Ids,
album Ids,
monitored
} = payload ;
const state = getFromState ( getState ( ) ) ;
updateEpisodes ( dispatch , section , state . items , episode Ids, {
updateEpisodes ( dispatch , section , state . items , album Ids, {
isSaving : true
} ) ;
const promise = $ . ajax ( {
url : '/episode/monitor' ,
method : 'PUT' ,
data : JSON . stringify ( { episode Ids, monitored } ) ,
data : JSON . stringify ( { album Ids, monitored } ) ,
dataType : 'json'
} ) ;
promise . done ( ( ) => {
updateEpisodes ( dispatch , section , state . items , episode Ids, {
updateEpisodes ( dispatch , section , state . items , album Ids, {
isSaving : false ,
monitored
} ) ;
} ) ;
promise . fail ( ( ) => {
updateEpisodes ( dispatch , section , state . items , episode Ids, {
updateEpisodes ( dispatch , section , state . items , album Ids, {
isSaving : false
} ) ;
} ) ;
@ -5,32 +5,32 @@ function createToggleEpisodeMonitoredHandler(section, getFromState) {
return function ( payload ) {
return function ( dispatch , getState ) {
const {
episode Id,
album Id,
monitored
} = payload ;
const state = getFromState ( getState ( ) ) ;
updateEpisodes ( dispatch , section , state . items , [ episode Id] , {
updateEpisodes ( dispatch , section , state . items , [ album Id] , {
isSaving : true
} ) ;
const promise = $ . ajax ( {
url : ` /episode/ ${ episode Id} ` ,
url : ` /episode/ ${ album Id} ` ,
method : 'PUT' ,
data : JSON . stringify ( { monitored } ) ,
dataType : 'json'
} ) ;
promise . done ( ( ) => {
updateEpisodes ( dispatch , section , state . items , [ episode Id] , {
updateEpisodes ( dispatch , section , state . items , [ album Id] , {
isSaving : false ,
monitored
} ) ;
} ) ;
promise . fail ( ( ) => {
updateEpisodes ( dispatch , section , state . items , [ episode Id] , {
updateEpisodes ( dispatch , section , state . items , [ album Id] , {
isSaving : false
} ) ;
} ) ;
@ -14,7 +14,7 @@ const episodeActionHandlers = {
[ types . TOGGLE _EPISODE _MONITORED ] : function ( payload ) {
return function ( dispatch , getState ) {
const {
episode Id: id ,
album Id: id ,
episodeEntity = episodeEntities . EPISODES ,
monitored
} = payload ;
@ -64,9 +64,9 @@ const episodeActionHandlers = {
const episodeSection = _ . last ( episodeEntity . split ( '.' ) ) ;
dispatch ( batchActions (
albumIds . map ( ( episode Id) => {
albumIds . map ( ( album Id) => {
return updateItem ( {
id : episode Id,
id : album Id,
section : episodeSection ,
isSaving : true
} ) ;
@ -82,9 +82,9 @@ const episodeActionHandlers = {
promise . done ( ( data ) => {
dispatch ( batchActions (
albumIds . map ( ( episode Id) => {
albumIds . map ( ( album Id) => {
return updateItem ( {
id : episode Id,
id : album Id,
section : episodeSection ,
isSaving : false ,
monitored
@ -95,9 +95,9 @@ const episodeActionHandlers = {
promise . fail ( ( xhr ) => {
dispatch ( batchActions (
albumIds . map ( ( episode Id) => {
albumIds . map ( ( album Id) => {
return updateItem ( {
id : episode Id,
id : album Id,
section : episodeSection ,
isSaving : false
} ) ;
@ -3,15 +3,15 @@ import { createSelector } from 'reselect';
function createQueueItemSelector ( ) {
return createSelector (
( state , { episodeId } ) => episode Id,
( state , { albumId } ) => album Id,
( state ) => state . queue . details ,
( episode Id, details ) => {
if ( ! episode Id) {
( album Id, details ) => {
if ( ! album Id) {
return null ;
}
return _ . find ( details . items , ( item ) => {
return item . album . id === episode Id;
return item . album . id === album Id;
} ) ;
}
) ;
@ -1,9 +1,9 @@
import _ from 'lodash' ;
import { update } from 'Store/Actions/baseActions' ;
function updateEpisodes ( dispatch , section , episodes , episode Ids, options ) {
function updateEpisodes ( dispatch , section , episodes , album Ids, options ) {
const data = _ . reduce ( episodes , ( result , item ) => {
if ( episode Ids. indexOf ( item . id ) > - 1 ) {
if ( album Ids. indexOf ( item . id ) > - 1 ) {
result . push ( {
... item ,
... options
@ -121,7 +121,7 @@ class CutoffUnmetConnector extends Component {
} = this . props ;
this . props . batchToggleCutoffUnmetEpisodes ( {
episode Ids: selected ,
album Ids: selected ,
monitored : filterKey !== 'monitored' || ! filterValue
} ) ;
}
@ -84,7 +84,7 @@ function CutoffUnmetRow(props) {
return (
< TableRowCell key = { name } >
< EpisodeTitleLink
episode Id= { id }
album Id= { id }
artistId = { series . id }
episodeEntity = { episodeEntities . WANTED _CUTOFF _UNMET }
episodeTitle = { title }
@ -123,7 +123,7 @@ function CutoffUnmetRow(props) {
className = { styles . status }
>
< EpisodeStatusConnector
episode Id= { id }
album Id= { id }
trackFileId = { trackFileId }
episodeEntity = { episodeEntities . WANTED _CUTOFF _UNMET }
/ >
@ -135,7 +135,7 @@ function CutoffUnmetRow(props) {
return (
< EpisodeSearchCellConnector
key = { name }
episode Id= { id }
album Id= { id }
artistId = { series . id }
episodeTitle = { title }
episodeEntity = { episodeEntities . WANTED _CUTOFF _UNMET }
@ -111,7 +111,7 @@ class MissingConnector extends Component {
} = this . props ;
this . props . batchToggleMissingEpisodes ( {
episode Ids: selected ,
album Ids: selected ,
monitored : filterKey !== 'monitored' || ! filterValue
} ) ;
}
@ -83,7 +83,7 @@ function MissingRow(props) {
return (
< TableRowCell key = { name } >
< EpisodeTitleLink
episode Id= { id }
album Id= { id }
artistId = { artist . id }
episodeEntity = { episodeEntities . WANTED _MISSING }
episodeTitle = { title }
@ -109,7 +109,7 @@ function MissingRow(props) {
// className={styles.status}
// >
// <EpisodeStatusConnector
// episode Id={id}
// album Id={id}
// trackFileId={trackFileId}
// episodeEntity={episodeEntities.WANTED_MISSING}
// />
@ -121,7 +121,7 @@ function MissingRow(props) {
return (
< EpisodeSearchCellConnector
key = { name }
episode Id= { id }
album Id= { id }
artistId = { artist . id }
episodeTitle = { title }
episodeEntity = { episodeEntities . WANTED _MISSING }