Compare commits

..

1 Commits

Author SHA1 Message Date
ta264 0e05d86a58 Fixed: Handle wonky timestamps from Orpheus 2022-04-08 04:14:26 +01:00
367 changed files with 7863 additions and 11415 deletions
+8 -4
View File
@@ -19,10 +19,10 @@ indent_size = 4
dotnet_sort_system_directives_first = true dotnet_sort_system_directives_first = true
# Avoid "this." and "Me." if not necessary # Avoid "this." and "Me." if not necessary
dotnet_style_qualification_for_field = false:warning dotnet_style_qualification_for_field = false:refactoring
dotnet_style_qualification_for_property = false:warning dotnet_style_qualification_for_property = false:refactoring
dotnet_style_qualification_for_method = false:warning dotnet_style_qualification_for_method = false:refactoring
dotnet_style_qualification_for_event = false:warning dotnet_style_qualification_for_event = false:refactoring
# Indentation preferences # Indentation preferences
csharp_indent_block_contents = true csharp_indent_block_contents = true
@@ -32,6 +32,10 @@ csharp_indent_case_contents_when_block = true
csharp_indent_switch_labels = true csharp_indent_switch_labels = true
csharp_indent_labels = flush_left csharp_indent_labels = flush_left
dotnet_style_qualification_for_field = false:suggestion
dotnet_style_qualification_for_property = false:suggestion
dotnet_style_qualification_for_method = false:suggestion
dotnet_style_qualification_for_event = false:suggestion
dotnet_naming_style.instance_field_style.capitalization = camel_case dotnet_naming_style.instance_field_style.capitalization = camel_case
dotnet_naming_style.instance_field_style.required_prefix = _ dotnet_naming_style.instance_field_style.required_prefix = _
+31 -148
View File
@@ -7,20 +7,16 @@ variables:
outputFolder: './_output' outputFolder: './_output'
artifactsFolder: './_artifacts' artifactsFolder: './_artifacts'
testsFolder: './_tests' testsFolder: './_tests'
yarnCacheFolder: $(Pipeline.Workspace)/.yarn majorVersion: '0.2.0'
nugetCacheFolder: $(Pipeline.Workspace)/.nuget/packages
majorVersion: '0.4.2'
minorVersion: $[counter('minorVersion', 1)] minorVersion: $[counter('minorVersion', 1)]
prowlarrVersion: '$(majorVersion).$(minorVersion)' prowlarrVersion: '$(majorVersion).$(minorVersion)'
buildName: '$(Build.SourceBranchName).$(prowlarrVersion)' buildName: '$(Build.SourceBranchName).$(prowlarrVersion)'
sentryOrg: 'servarr' sentryOrg: 'servarr'
sentryUrl: 'https://sentry.servarr.com' sentryUrl: 'https://sentry.servarr.com'
dotnetVersion: '6.0.301' dotnetVersion: '6.0.201'
innoVersion: '6.2.0' innoVersion: '6.2.0'
nodeVersion: '16.x' nodeVersion: '16.x'
windowsImage: 'windows-2022' yarnCacheFolder: $(Pipeline.Workspace)/.yarn
linuxImage: 'ubuntu-20.04'
macImage: 'macOS-11'
trigger: trigger:
branches: branches:
@@ -44,7 +40,7 @@ stages:
- job: - job:
displayName: Build Variables displayName: Build Variables
pool: pool:
vmImage: ${{ variables.linuxImage }} vmImage: 'ubuntu-18.04'
steps: steps:
# Set the build name properly. The 'name' property won't recursively expand so hack here: # Set the build name properly. The 'name' property won't recursively expand so hack here:
- bash: echo "##vso[build.updatebuildnumber]$PROWLARRVERSION" - bash: echo "##vso[build.updatebuildnumber]$PROWLARRVERSION"
@@ -70,15 +66,15 @@ stages:
matrix: matrix:
Linux: Linux:
osName: 'Linux' osName: 'Linux'
imageName: ${{ variables.linuxImage }} imageName: 'ubuntu-18.04'
enableAnalysis: 'true' enableAnalysis: 'true'
Mac: Mac:
osName: 'Mac' osName: 'Mac'
imageName: ${{ variables.macImage }} imageName: 'macos-10.15'
enableAnalysis: 'false' enableAnalysis: 'false'
Windows: Windows:
osName: 'Windows' osName: 'Windows'
imageName: ${{ variables.windowsImage }} imageName: 'windows-2019'
enableAnalysis: 'false' enableAnalysis: 'false'
pool: pool:
@@ -148,13 +144,13 @@ stages:
matrix: matrix:
Linux: Linux:
osName: 'Linux' osName: 'Linux'
imageName: ${{ variables.linuxImage }} imageName: 'ubuntu-18.04'
Mac: Mac:
osName: 'Mac' osName: 'Mac'
imageName: ${{ variables.macImage }} imageName: 'macos-10.15'
Windows: Windows:
osName: 'Windows' osName: 'Windows'
imageName: ${{ variables.windowsImage }} imageName: 'windows-2019'
pool: pool:
vmImage: $(imageName) vmImage: $(imageName)
steps: steps:
@@ -190,7 +186,7 @@ stages:
- job: Windows_Installer - job: Windows_Installer
displayName: Create Installer displayName: Create Installer
pool: pool:
vmImage: ${{ variables.windowsImage }} vmImage: 'windows-2019'
steps: steps:
- checkout: self - checkout: self
fetchDepth: 1 fetchDepth: 1
@@ -223,7 +219,7 @@ stages:
- job: Other_Packages - job: Other_Packages
displayName: Create Standard Packages displayName: Create Standard Packages
pool: pool:
vmImage: ${{ variables.linuxImage }} vmImage: 'ubuntu-18.04'
steps: steps:
- checkout: self - checkout: self
fetchDepth: 1 fetchDepth: 1
@@ -383,7 +379,7 @@ stages:
jobs: jobs:
- job: Prepare - job: Prepare
pool: pool:
vmImage: ${{ variables.linuxImage }} vmImage: 'ubuntu-18.04'
steps: steps:
- checkout: none - checkout: none
- task: DownloadPipelineArtifact@2 - task: DownloadPipelineArtifact@2
@@ -407,17 +403,17 @@ stages:
osName: 'Mac' osName: 'Mac'
testName: 'MacCore' testName: 'MacCore'
poolName: 'Azure Pipelines' poolName: 'Azure Pipelines'
imageName: ${{ variables.macImage }} imageName: 'macos-10.15'
WindowsCore: WindowsCore:
osName: 'Windows' osName: 'Windows'
testName: 'WindowsCore' testName: 'WindowsCore'
poolName: 'Azure Pipelines' poolName: 'Azure Pipelines'
imageName: ${{ variables.windowsImage }} imageName: 'windows-2019'
LinuxCore: LinuxCore:
osName: 'Linux' osName: 'Linux'
testName: 'LinuxCore' testName: 'LinuxCore'
poolName: 'Azure Pipelines' poolName: 'Azure Pipelines'
imageName: ${{ variables.linuxImage }} imageName: 'ubuntu-18.04'
FreebsdCore: FreebsdCore:
osName: 'Linux' osName: 'Linux'
testName: 'FreebsdCore' testName: 'FreebsdCore'
@@ -473,7 +469,7 @@ stages:
containerImage: ghcr.io/servarr/testimages:alpine containerImage: ghcr.io/servarr/testimages:alpine
pool: pool:
vmImage: ${{ variables.linuxImage }} vmImage: 'ubuntu-18.04'
container: $[ variables['containerImage'] ] container: $[ variables['containerImage'] ]
@@ -506,58 +502,6 @@ stages:
testResultsFiles: '**/TestResult.xml' testResultsFiles: '**/TestResult.xml'
testRunTitle: '$(testName) Unit Tests' testRunTitle: '$(testName) Unit Tests'
failTaskOnFailedTests: true failTaskOnFailedTests: true
- job: Unit_LinuxCore_Postgres
displayName: Unit Native LinuxCore with Postgres Database
dependsOn: Prepare
condition: and(succeeded(), eq(dependencies.Prepare.outputs['setVar.backendNotUpdated'], '0'))
variables:
pattern: 'Prowlarr.*.linux-core-x64.tar.gz'
artifactName: LinuxCoreTests
Prowlarr__Postgres__Host: 'localhost'
Prowlarr__Postgres__Port: '5432'
Prowlarr__Postgres__User: 'prowlarr'
Prowlarr__Postgres__Password: 'prowlarr'
pool:
vmImage: 'ubuntu-18.04'
timeoutInMinutes: 10
steps:
- task: UseDotNet@2
displayName: 'Install .net core'
inputs:
version: $(dotnetVersion)
- checkout: none
- task: DownloadPipelineArtifact@2
displayName: Download Test Artifact
inputs:
buildType: 'current'
artifactName: $(artifactName)
targetPath: $(testsFolder)
- bash: find ${TESTSFOLDER} -name "Prowlarr.Test.Dummy" -exec chmod a+x {} \;
displayName: Make Test Dummy Executable
condition: and(succeeded(), ne(variables['osName'], 'Windows'))
- bash: |
docker run -d --name=postgres14 \
-e POSTGRES_PASSWORD=prowlarr \
-e POSTGRES_USER=prowlarr \
-p 5432:5432/tcp \
postgres:14
displayName: Start postgres
- bash: |
chmod a+x ${TESTSFOLDER}/test.sh
ls -lR ${TESTSFOLDER}
${TESTSFOLDER}/test.sh Linux Unit Test
displayName: Run Tests
- task: PublishTestResults@2
displayName: Publish Test Results
inputs:
testResultsFormat: 'NUnit'
testResultsFiles: '**/TestResult.xml'
testRunTitle: 'LinuxCore Postgres Unit Tests'
failTaskOnFailedTests: true
- stage: Integration - stage: Integration
displayName: Integration displayName: Integration
@@ -566,7 +510,7 @@ stages:
jobs: jobs:
- job: Prepare - job: Prepare
pool: pool:
vmImage: ${{ variables.linuxImage }} vmImage: 'ubuntu-18.04'
steps: steps:
- checkout: none - checkout: none
- task: DownloadPipelineArtifact@2 - task: DownloadPipelineArtifact@2
@@ -586,17 +530,17 @@ stages:
MacCore: MacCore:
osName: 'Mac' osName: 'Mac'
testName: 'MacCore' testName: 'MacCore'
imageName: ${{ variables.macImage }} imageName: 'macos-10.15'
pattern: 'Prowlarr.*.osx-core-x64.tar.gz' pattern: 'Prowlarr.*.osx-core-x64.tar.gz'
WindowsCore: WindowsCore:
osName: 'Windows' osName: 'Windows'
testName: 'WindowsCore' testName: 'WindowsCore'
imageName: ${{ variables.windowsImage }} imageName: 'windows-2019'
pattern: 'Prowlarr.*.windows-core-x64.zip' pattern: 'Prowlarr.*.windows-core-x64.zip'
LinuxCore: LinuxCore:
osName: 'Linux' osName: 'Linux'
testName: 'LinuxCore' testName: 'LinuxCore'
imageName: ${{ variables.linuxImage }} imageName: 'ubuntu-18.04'
pattern: 'Prowlarr.*.linux-core-x64.tar.gz' pattern: 'Prowlarr.*.linux-core-x64.tar.gz'
pool: pool:
@@ -642,67 +586,6 @@ stages:
failTaskOnFailedTests: true failTaskOnFailedTests: true
displayName: Publish Test Results displayName: Publish Test Results
- job: Integration_LinuxCore_Postgres
displayName: Integration Native LinuxCore with Postgres Database
dependsOn: Prepare
condition: and(succeeded(), eq(dependencies.Prepare.outputs['setVar.backendNotUpdated'], '0'))
variables:
pattern: 'Prowlarr.*.linux-core-x64.tar.gz'
Prowlarr__Postgres__Host: 'localhost'
Prowlarr__Postgres__Port: '5432'
Prowlarr__Postgres__User: 'prowlarr'
Prowlarr__Postgres__Password: 'prowlarr'
pool:
vmImage: 'ubuntu-18.04'
steps:
- task: UseDotNet@2
displayName: 'Install .net core'
inputs:
version: $(dotnetVersion)
- checkout: none
- task: DownloadPipelineArtifact@2
displayName: Download Test Artifact
inputs:
buildType: 'current'
artifactName: 'LinuxCoreTests'
targetPath: $(testsFolder)
- task: DownloadPipelineArtifact@2
displayName: Download Build Artifact
inputs:
buildType: 'current'
artifactName: Packages
itemPattern: '**/$(pattern)'
targetPath: $(Build.ArtifactStagingDirectory)
- task: ExtractFiles@1
inputs:
archiveFilePatterns: '$(Build.ArtifactStagingDirectory)/**/$(pattern)'
destinationFolder: '$(Build.ArtifactStagingDirectory)/bin'
displayName: Extract Package
- bash: |
mkdir -p ./bin/
cp -r -v ${BUILD_ARTIFACTSTAGINGDIRECTORY}/bin/Prowlarr/. ./bin/
displayName: Move Package Contents
- bash: |
docker run -d --name=postgres14 \
-e POSTGRES_PASSWORD=prowlarr \
-e POSTGRES_USER=prowlarr \
-p 5432:5432/tcp \
postgres:14
displayName: Start postgres
- bash: |
chmod a+x ${TESTSFOLDER}/test.sh
${TESTSFOLDER}/test.sh Linux Integration Test
displayName: Run Integration Tests
- task: PublishTestResults@2
inputs:
testResultsFormat: 'NUnit'
testResultsFiles: '**/TestResult.xml'
testRunTitle: 'Integration LinuxCore Postgres Database Integration Tests'
failTaskOnFailedTests: true
displayName: Publish Test Results
- job: Integration_FreeBSD - job: Integration_FreeBSD
displayName: Integration Native FreeBSD displayName: Integration Native FreeBSD
dependsOn: Prepare dependsOn: Prepare
@@ -762,7 +645,7 @@ stages:
pattern: 'Prowlarr.*.linux-musl-core-x64.tar.gz' pattern: 'Prowlarr.*.linux-musl-core-x64.tar.gz'
pool: pool:
vmImage: ${{ variables.linuxImage }} vmImage: 'ubuntu-18.04'
container: $[ variables['containerImage'] ] container: $[ variables['containerImage'] ]
@@ -818,17 +701,17 @@ stages:
matrix: matrix:
Linux: Linux:
osName: 'Linux' osName: 'Linux'
imageName: ${{ variables.linuxImage }} imageName: 'ubuntu-18.04'
pattern: 'Prowlarr.*.linux-core-x64.tar.gz' pattern: 'Prowlarr.*.linux-core-x64.tar.gz'
failBuild: true failBuild: true
Mac: Mac:
osName: 'Mac' osName: 'Mac'
imageName: ${{ variables.macImage }} imageName: 'macos-10.15'
pattern: 'Prowlarr.*.osx-core-x64.tar.gz' pattern: 'Prowlarr.*.osx-core-x64.tar.gz'
failBuild: true failBuild: true
Windows: Windows:
osName: 'Windows' osName: 'Windows'
imageName: ${{ variables.windowsImage }} imageName: 'windows-2019'
pattern: 'Prowlarr.*.windows-core-x64.zip' pattern: 'Prowlarr.*.windows-core-x64.zip'
failBuild: true failBuild: true
@@ -894,7 +777,7 @@ stages:
jobs: jobs:
- job: Prepare - job: Prepare
pool: pool:
vmImage: ${{ variables.linuxImage }} vmImage: 'ubuntu-18.04'
steps: steps:
- checkout: none - checkout: none
- task: DownloadPipelineArtifact@2 - task: DownloadPipelineArtifact@2
@@ -911,10 +794,10 @@ stages:
matrix: matrix:
Linux: Linux:
osName: 'Linux' osName: 'Linux'
imageName: ${{ variables.linuxImage }} imageName: 'ubuntu-18.04'
Windows: Windows:
osName: 'Windows' osName: 'Windows'
imageName: ${{ variables.windowsImage }} imageName: 'windows-2019'
pool: pool:
vmImage: $(imageName) vmImage: $(imageName)
steps: steps:
@@ -949,7 +832,7 @@ stages:
) )
pool: pool:
vmImage: ${{ variables.windowsImage }} vmImage: windows-2019
steps: steps:
- task: UseDotNet@2 - task: UseDotNet@2
@@ -1001,7 +884,7 @@ stages:
EnableAnalyzers: 'false' EnableAnalyzers: 'false'
pool: pool:
vmImage: ${{ variables.windowsImage }} vmImage: windows-2019
steps: steps:
- task: UseDotNet@2 - task: UseDotNet@2
@@ -1058,7 +941,7 @@ stages:
- job: - job:
displayName: Discord Notification displayName: Discord Notification
pool: pool:
vmImage: ${{ variables.linuxImage }} vmImage: 'ubuntu-18.04'
steps: steps:
- task: DownloadPipelineArtifact@2 - task: DownloadPipelineArtifact@2
continueOnError: true continueOnError: true
+2 -1
View File
@@ -1,6 +1,7 @@
const reload = require('require-nocache')(module); const reload = require('require-nocache')(module);
const cssVarsFiles = [ const cssVarsFiles = [
'./src/Styles/Variables/colors',
'./src/Styles/Variables/dimensions', './src/Styles/Variables/dimensions',
'./src/Styles/Variables/fonts', './src/Styles/Variables/fonts',
'./src/Styles/Variables/animations', './src/Styles/Variables/animations',
@@ -28,4 +29,4 @@ module.exports = {
'postcss-color-function', 'postcss-color-function',
'postcss-nested' 'postcss-nested'
] ]
}; };
+4 -7
View File
@@ -4,19 +4,16 @@ import React from 'react';
import DocumentTitle from 'react-document-title'; import DocumentTitle from 'react-document-title';
import { Provider } from 'react-redux'; import { Provider } from 'react-redux';
import PageConnector from 'Components/Page/PageConnector'; import PageConnector from 'Components/Page/PageConnector';
import ApplyTheme from './ApplyTheme';
import AppRoutes from './AppRoutes'; import AppRoutes from './AppRoutes';
function App({ store, history }) { function App({ store, history }) {
return ( return (
<DocumentTitle title={window.Prowlarr.instanceName}> <DocumentTitle title="Prowlarr">
<Provider store={store}> <Provider store={store}>
<ConnectedRouter history={history}> <ConnectedRouter history={history}>
<ApplyTheme> <PageConnector>
<PageConnector> <AppRoutes app={App} />
<AppRoutes app={App} /> </PageConnector>
</PageConnector>
</ApplyTheme>
</ConnectedRouter> </ConnectedRouter>
</Provider> </Provider>
</DocumentTitle> </DocumentTitle>
-49
View File
@@ -1,49 +0,0 @@
import PropTypes from 'prop-types';
import React, { Fragment, useEffect } from 'react';
import { connect } from 'react-redux';
import { createSelector } from 'reselect';
import themes from 'Styles/Themes';
function createMapStateToProps() {
return createSelector(
(state) => state.settings.ui.item.theme || window.Prowlarr.theme,
(
theme
) => {
return {
theme
};
}
);
}
function ApplyTheme({ theme, children }) {
// Update the CSS Variables
function updateCSSVariables() {
const arrayOfVariableKeys = Object.keys(themes[theme]);
const arrayOfVariableValues = Object.values(themes[theme]);
// Loop through each array key and set the CSS Variables
arrayOfVariableKeys.forEach((cssVariableKey, index) => {
// Based on our snippet from MDN
document.documentElement.style.setProperty(
`--${cssVariableKey}`,
arrayOfVariableValues[index]
);
});
}
// On Component Mount and Component Update
useEffect(() => {
updateCSSVariables(theme);
}, [theme]);
return <Fragment>{children}</Fragment>;
}
ApplyTheme.propTypes = {
theme: PropTypes.string.isRequired,
children: PropTypes.object.isRequired
};
export default connect(createMapStateToProps)(ApplyTheme);
+12 -12
View File
@@ -7,25 +7,25 @@
} }
.danger { .danger {
border-color: var(--alertDangerBorderColor); border-color: $alertDangerBorderColor;
background-color: var(--alertDangerBackgroundColor); background-color: $alertDangerBackgroundColor;
color: var(--alertDangerColor); color: $alertDangerColor;
} }
.info { .info {
border-color: var(--alertInfoBorderColor); border-color: $alertInfoBorderColor;
background-color: var(--alertInfoBackgroundColor); background-color: $alertInfoBackgroundColor;
color: var(--alertInfoColor); color: $alertInfoColor;
} }
.success { .success {
border-color: var(--alertSuccessBorderColor); border-color: $alertSuccessBorderColor;
background-color: var(--alertSuccessBackgroundColor); background-color: $alertSuccessBackgroundColor;
color: var(--alertSuccessColor); color: $alertSuccessColor;
} }
.warning { .warning {
border-color: var(--alertWarningBorderColor); border-color: $alertWarningBorderColor;
background-color: var(--alertWarningBackgroundColor); background-color: $alertWarningBackgroundColor;
color: var(--alertWarningColor); color: $alertWarningColor;
} }
+3 -3
View File
@@ -3,9 +3,9 @@
margin: 10px; margin: 10px;
padding: 10px; padding: 10px;
border-radius: 3px; border-radius: 3px;
background-color: var(--cardBackgroundColor); background-color: $white;
box-shadow: 0 0 10px 1px var(--cardShadowColor); box-shadow: 0 0 10px 1px $cardShadowColor;
color: var(--defaultColor); color: $defaultColor;
} }
.underlay { .underlay {
+3 -4
View File
@@ -2,16 +2,15 @@ import Chart from 'chart.js/auto';
import PropTypes from 'prop-types'; import PropTypes from 'prop-types';
import React, { Component } from 'react'; import React, { Component } from 'react';
import { kinds } from 'Helpers/Props'; import { kinds } from 'Helpers/Props';
import colors from 'Styles/Variables/colors';
function getColors(kind) { function getColors(kind) {
const style = getComputedStyle(document.body);
if (kind === kinds.WARNING) { if (kind === kinds.WARNING) {
return style.getPropertyValue('--failedColors').split(','); return colors.failedColors.reverse();
} }
return style.getPropertyValue('--chartColors').split(','); return colors.chartColors;
} }
class BarChart extends Component { class BarChart extends Component {
@@ -1,12 +1,7 @@
import Chart from 'chart.js/auto'; import Chart from 'chart.js/auto';
import PropTypes from 'prop-types'; import PropTypes from 'prop-types';
import React, { Component } from 'react'; import React, { Component } from 'react';
import colors from 'Styles/Variables/colors';
function getColors(kind) {
const style = getComputedStyle(document.body);
return style.getPropertyValue('--chartColorsDiversified').split(',');
}
class DoughnutChart extends Component { class DoughnutChart extends Component {
constructor(props) { constructor(props) {
@@ -34,7 +29,7 @@ class DoughnutChart extends Component {
datasets: [{ datasets: [{
label: this.props.title, label: this.props.title,
data: this.props.data.map((d) => d.value), data: this.props.data.map((d) => d.value),
backgroundColor: getColors() backgroundColor: colors.chartColors
}] }]
} }
}); });
@@ -1,12 +1,7 @@
import Chart from 'chart.js/auto'; import Chart from 'chart.js/auto';
import PropTypes from 'prop-types'; import PropTypes from 'prop-types';
import React, { Component } from 'react'; import React, { Component } from 'react';
import colors from 'Styles/Variables/colors';
function getColors(index) {
const style = getComputedStyle(document.body);
return style.getPropertyValue('--chartColorsDiversified').split(',')[index];
}
class StackedBarChart extends Component { class StackedBarChart extends Component {
constructor(props) { constructor(props) {
@@ -46,7 +41,7 @@ class StackedBarChart extends Component {
return { return {
label: d.label, label: d.label,
data: d.data, data: d.data,
backgroundColor: getColors(index) backgroundColor: colors.chartColors[index]
}; };
}) })
} }
@@ -59,7 +54,7 @@ class StackedBarChart extends Component {
return { return {
label: d.label, label: d.label,
data: d.data, data: d.data,
backgroundColor: getColors(index) backgroundColor: colors.chartColors[index]
}; };
}); });
this.myChart.update(); this.myChart.update();
+1 -1
View File
@@ -13,7 +13,7 @@
width: 100%; width: 100%;
border: 0; border: 0;
border-bottom: 1px solid #e5e5e5; border-bottom: 1px solid #e5e5e5;
color: var(--textColor); color: #3a3f51;
font-size: 21px; font-size: 21px;
line-height: inherit; line-height: inherit;
} }
@@ -13,7 +13,7 @@
} }
.faqLink { .faqLink {
color: var(--alertWarningColor); color: $alertWarningColor;
font-weight: bold; font-weight: bold;
} }
@@ -160,7 +160,6 @@ class DateFilterBuilderRowValue extends Component {
<TextInput <TextInput
name={NAME} name={NAME}
value={filterValue} value={filterValue}
type="date"
placeholder="yyyy-mm-dd" placeholder="yyyy-mm-dd"
onChange={this.onValueChange} onChange={this.onValueChange}
/> />
@@ -3,7 +3,7 @@
margin-bottom: 5px; margin-bottom: 5px;
&:hover { &:hover {
background-color: var(--tableRowHoverBackgroundColor); background-color: $tableRowHoverBackgroundColor;
} }
} }
@@ -17,5 +17,5 @@
.or { .or {
margin: 0 3px; margin: 0 3px;
color: var(--themeDarkColor); color: $themeDarkColor;
} }
@@ -4,7 +4,7 @@
padding: 5px; padding: 5px;
&:hover { &:hover {
background-color: var(--tableRowHoverBackgroundColor); background-color: $tableRowHoverBackgroundColor;
} }
} }
@@ -27,10 +27,10 @@
overflow-y: auto; overflow-y: auto;
max-height: 200px; max-height: 200px;
width: 100%; width: 100%;
border: 1px solid var(--inputBorderColor); border: 1px solid $inputBorderColor;
border-radius: 4px; border-radius: 4px;
background-color: var(--inputBackgroundColor); background-color: $white;
box-shadow: inset 0 1px 1px var(--inputBoxShadowColor); box-shadow: inset 0 1px 1px $inputBoxShadowColor;
} }
} }
@@ -46,5 +46,5 @@
} }
.suggestionHighlighted { .suggestionHighlighted {
background-color: var(--menuItemHoverBackgroundColor); background-color: $menuItemHoverBackgroundColor;
} }
+16 -16
View File
@@ -32,21 +32,21 @@
height: 20px; height: 20px;
border: 1px solid #ccc; border: 1px solid #ccc;
border-radius: 2px; border-radius: 2px;
background-color: var(--white); background-color: $white;
color: var(--white); color: $white;
text-align: center; text-align: center;
line-height: 20px; line-height: 20px;
} }
.checkbox:focus + .input { .checkbox:focus + .input {
outline: 0; outline: 0;
border-color: var(--inputFocusBorderColor); border-color: $inputFocusBorderColor;
box-shadow: inset 0 1px 1px var(--inputBoxShadowColor), 0 0 8px var(--inputFocusBoxShadowColor); box-shadow: inset 0 1px 1px $inputBoxShadowColor, 0 0 8px $inputFocusBoxShadowColor;
} }
.dangerIsChecked { .dangerIsChecked {
border-color: var(--dangerColor); border-color: $dangerColor;
background-color: var(--dangerColor); background-color: $dangerColor;
&.isDisabled { &.isDisabled {
opacity: 0.7; opacity: 0.7;
@@ -54,8 +54,8 @@
} }
.primaryIsChecked { .primaryIsChecked {
border-color: var(--primaryColor); border-color: $primaryColor;
background-color: var(--primaryColor); background-color: $primaryColor;
&.isDisabled { &.isDisabled {
opacity: 0.7; opacity: 0.7;
@@ -63,8 +63,8 @@
} }
.successIsChecked { .successIsChecked {
border-color: var(--successColor); border-color: $successColor;
background-color: var(--successColor); background-color: $successColor;
&.isDisabled { &.isDisabled {
opacity: 0.7; opacity: 0.7;
@@ -72,8 +72,8 @@
} }
.warningIsChecked { .warningIsChecked {
border-color: var(--warningColor); border-color: $warningColor;
background-color: var(--warningColor); background-color: $warningColor;
&.isDisabled { &.isDisabled {
opacity: 0.7; opacity: 0.7;
@@ -82,15 +82,15 @@
.isNotChecked { .isNotChecked {
&.isDisabled { &.isDisabled {
border-color: var(--disabledCheckInputColor); border-color: $disabledCheckInputColor;
background-color: var(--disabledCheckInputColor); background-color: $disabledCheckInputColor;
opacity: 0.7; opacity: 0.7;
} }
} }
.isIndeterminate { .isIndeterminate {
border-color: var(--gray); border-color: $gray;
background-color: var(--gray); background-color: $gray;
} }
.helpText { .helpText {
@@ -39,7 +39,7 @@
.dropdownArrowContainerDisabled { .dropdownArrowContainerDisabled {
composes: dropdownArrowContainer; composes: dropdownArrowContainer;
color: var(--disabledInputColor); color: $disabledInputColor;
} }
.optionsContainer { .optionsContainer {
@@ -50,9 +50,9 @@
.options { .options {
composes: scroller from '~Components/Scroller/Scroller.css'; composes: scroller from '~Components/Scroller/Scroller.css';
border: 1px solid var(--inputBorderColor); border: 1px solid $inputBorderColor;
border-radius: 4px; border-radius: 4px;
background-color: var(--inputBackgroundColor); background-color: $white;
} }
.optionsModal { .optionsModal {
@@ -76,9 +76,9 @@
.optionsModalScroller { .optionsModalScroller {
composes: scroller from '~Components/Scroller/Scroller.css'; composes: scroller from '~Components/Scroller/Scroller.css';
border: 1px solid var(--inputBorderColor); border: 1px solid $inputBorderColor;
border-radius: 4px; border-radius: 4px;
background-color: var(--inputBackgroundColor); background-color: $white;
} }
.loading { .loading {
@@ -90,7 +90,7 @@
display: flex; display: flex;
justify-content: flex-end; justify-content: flex-end;
height: 40px; height: 40px;
border-bottom: 1px solid var(--borderColor); border-bottom: 1px solid $borderColor;
} }
.mobileCloseButton { .mobileCloseButton {
@@ -100,6 +100,6 @@
line-height: 40px; line-height: 40px;
&:hover { &:hover {
color: var(--modalCloseButtonHoverColor); color: $modalCloseButtonHoverColor;
} }
} }
@@ -7,7 +7,7 @@
cursor: default; cursor: default;
&:hover { &:hover {
background-color: var(--inputHoverBackgroundColor); background-color: #f8f8f8;
} }
} }
@@ -24,17 +24,17 @@
} }
.isSelected { .isSelected {
background-color: var(--inputSelectedBackgroundColor); background-color: #e2e2e2;
&:hover { &:hover {
background-color: var(--inputSelectedBackgroundColor); background-color: #e2e2e2;
} }
&.isMobile { &.isMobile {
background-color: inherit; background-color: inherit;
.iconContainer { .iconContainer {
color: var(--primaryColor); color: $primaryColor;
} }
} }
} }
@@ -49,7 +49,7 @@
.isMobile { .isMobile {
height: 50px; height: 50px;
border-bottom: 1px solid var(--borderColor); border-bottom: 1px solid $borderColor;
&:last-child { &:last-child {
border: none; border: none;
@@ -3,5 +3,5 @@
} }
.isDisabled { .isDisabled {
color: var(--disabledInputColor); color: $disabledInputColor;
} }
@@ -40,7 +40,7 @@
} }
.pendingChangesIcon { .pendingChangesIcon {
color: var(--warningColor); color: $warningColor;
font-size: 20px; font-size: 20px;
line-height: 35px; line-height: 35px;
} }
@@ -1,14 +1,14 @@
.helpText { .helpText {
margin-top: 5px; margin-top: 5px;
color: var(--helpTextColor); color: $helpTextColor;
line-height: 20px; line-height: 20px;
} }
.isError { .isError {
color: var(--dangerColor); color: $dangerColor;
.link { .link {
color: var(--dangerColor); color: $dangerColor;
&:hover { &:hover {
color: #e01313; color: #e01313;
@@ -17,10 +17,10 @@
} }
.isWarning { .isWarning {
color: var(--warningColor); color: $warningColor;
.link { .link {
color: var(--warningColor); color: $warningColor;
&:hover { &:hover {
color: #e36c00; color: #e36c00;
+2 -2
View File
@@ -7,11 +7,11 @@
} }
.hasError { .hasError {
color: var(--dangerColor); color: $dangerColor;
} }
.isAdvanced { .isAdvanced {
color: var(--advancedFormLabelColor); color: $advancedFormLabelColor;
} }
@media only screen and (max-width: $breakpointLarge) { @media only screen and (max-width: $breakpointLarge) {
@@ -18,6 +18,6 @@
@add-mixin truncate; @add-mixin truncate;
margin-left: 15px; margin-left: 15px;
color: var(--darkGray); color: $darkGray;
font-size: $smallFontSize; font-size: $smallFontSize;
} }
@@ -18,7 +18,7 @@
flex: 1 10 0; flex: 1 10 0;
margin-left: 15px; margin-left: 15px;
color: var(--gray); color: $gray;
text-align: right; text-align: right;
font-size: $smallFontSize; font-size: $smallFontSize;
} }
+9 -10
View File
@@ -2,27 +2,26 @@
padding: 6px 16px; padding: 6px 16px;
width: 100%; width: 100%;
height: 35px; height: 35px;
border: 1px solid var(--inputBorderColor); border: 1px solid $inputBorderColor;
border-radius: 4px; border-radius: 4px;
background-color: var(--inputBackgroundColor); background-color: $white;
box-shadow: inset 0 1px 1px var(--inputBoxShadowColor); box-shadow: inset 0 1px 1px $inputBoxShadowColor;
color: var(--textColor);
&:focus { &:focus {
outline: 0; outline: 0;
border-color: var(--inputFocusBorderColor); border-color: $inputFocusBorderColor;
box-shadow: inset 0 1px 1px var(--inputBoxShadowColor), 0 0 8px var(--inputFocusBoxShadowColor); box-shadow: inset 0 1px 1px $inputBoxShadowColor, 0 0 8px $inputFocusBoxShadowColor;
} }
} }
.hasError { .hasError {
border-color: var(--inputErrorBorderColor); border-color: $inputErrorBorderColor;
box-shadow: inset 0 1px 1px var(--inputBoxShadowColor), 0 0 8px var(--inputErrorBoxShadowColor); box-shadow: inset 0 1px 1px $inputBoxShadowColor, 0 0 8px $inputErrorBoxShadowColor;
} }
.hasWarning { .hasWarning {
border-color: var(--inputWarningBorderColor); border-color: $inputWarningBorderColor;
box-shadow: inset 0 1px 1px var(--inputBoxShadowColor), 0 0 8px var(--inputWarningBoxShadowColor); box-shadow: inset 0 1px 1px $inputBoxShadowColor, 0 0 8px $inputWarningBoxShadowColor;
} }
.hasButton { .hasButton {
@@ -7,8 +7,8 @@
&.isFocused { &.isFocused {
outline: 0; outline: 0;
border-color: var(--inputFocusBorderColor); border-color: $inputFocusBorderColor;
box-shadow: inset 0 1px 1px var(--inputBoxShadowColor), 0 0 8px var(--inputFocusBoxShadowColor); box-shadow: inset 0 1px 1px $inputBoxShadowColor, 0 0 8px $inputFocusBoxShadowColor;
} }
} }
@@ -1,7 +1,7 @@
.itemContainer { .itemContainer {
display: flex; display: flex;
margin-bottom: 3px; margin-bottom: 3px;
border-bottom: 1px solid var(--inputBorderColor); border-bottom: 1px solid $inputBorderColor;
&:last-child { &:last-child {
margin-bottom: 0; margin-bottom: 0;
+2 -4
View File
@@ -7,8 +7,8 @@
&.isFocused { &.isFocused {
outline: 0; outline: 0;
border-color: var(--inputFocusBorderColor); border-color: $inputFocusBorderColor;
box-shadow: inset 0 1px 1px var(--inputBoxShadowColor), 0 0 8px var(--inputFocusBoxShadowColor); box-shadow: inset 0 1px 1px $inputBoxShadowColor, 0 0 8px $inputFocusBoxShadowColor;
} }
} }
@@ -20,6 +20,4 @@
width: 0%; width: 0%;
height: 31px; height: 31px;
border: none; border: none;
background-color: var(--inputBackground);
color: var(--textColor);
} }
+1 -1
View File
@@ -7,7 +7,7 @@
} }
.readOnly { .readOnly {
background-color: var(--inputReadOnlyBackgroundColor); background-color: #eee;
} }
.hasError { .hasError {
+1 -1
View File
@@ -3,7 +3,7 @@
} }
.readOnly { .readOnly {
background-color: var(--inputReadOnlyBackgroundColor); background-color: #eee;
} }
.hasError { .hasError {
+10 -6
View File
@@ -1,5 +1,5 @@
.danger { .danger {
color: var(--dangerColor); color: $dangerColor;
} }
.default { .default {
@@ -7,21 +7,25 @@
} }
.disabled { .disabled {
color: var(--disabledColor); color: $disabledColor;
} }
.info { .info {
color: var(--infoColor); color: $infoColor;
}
.pink {
color: $pink;
} }
.success { .success {
color: var(--successColor); color: $successColor;
} }
.warning { .warning {
color: var(--warningColor); color: $warningColor;
} }
.purple { .purple {
color: var(--purple); color: $purple;
} }
+3 -3
View File
@@ -1,7 +1,7 @@
.label { .label {
display: inline-block; display: inline-block;
margin: 2px; margin: 2px;
color: var(--white); color: $white;
/** text-align: center; **/ /** text-align: center; **/
white-space: nowrap; white-space: nowrap;
line-height: 1; line-height: 1;
@@ -10,7 +10,7 @@
.title { .title {
margin-bottom: 2px; margin-bottom: 2px;
color: var(--helpTextColor); color: $helpTextColor;
font-size: 10px; font-size: 10px;
} }
@@ -36,5 +36,5 @@
/** Outline **/ /** Outline **/
.outline { .outline {
background-color: var(--white); background-color: $white;
} }
+37 -28
View File
@@ -3,7 +3,7 @@
margin: 2px; margin: 2px;
border: 1px solid; border: 1px solid;
border-radius: 2px; border-radius: 2px;
color: var(--white); color: $white;
text-align: center; text-align: center;
white-space: nowrap; white-space: nowrap;
line-height: 1; line-height: 1;
@@ -13,77 +13,86 @@
/** Kinds **/ /** Kinds **/
.danger { .danger {
border-color: var(--dangerColor); border-color: $dangerColor;
background-color: var(--dangerColor); background-color: $dangerColor;
&.outline { &.outline {
color: var(--dangerColor); color: $dangerColor;
} }
} }
.default { .default {
border-color: var(--themeLightColor); border-color: $themeLightColor;
background-color: var(--themeLightColor); background-color: $themeLightColor;
&.outline { &.outline {
color: var(--themeLightColor); color: $themeLightColor;
} }
} }
.disabled { .disabled {
border-color: var(--disabledColor); border-color: $disabledColor;
background-color: var(--disabledColor); background-color: $disabledColor;
&.outline { &.outline {
color: var(--disabledColor); color: $disabledColor;
} }
} }
.info { .info {
border-color: var(--infoColor); border-color: $infoColor;
background-color: var(--infoColor); background-color: $infoColor;
&.outline { &.outline {
color: var(--infoColor); color: $infoColor;
} }
} }
.inverse { .inverse {
border-color: var(--inverseLabelColor); border-color: $lightGray;
background-color: var(--inverseLabelColor); background-color: $lightGray;
color: var(--inverseLabelTextColor); color: $defaultColor;
&.outline { &.outline {
background-color: var(--inverseLabelTextColor) !important; background-color: $defaultColor !important;
color: var(--inverseLabelColor); color: $lightGray;
} }
} }
.primary { .primary {
border-color: var(--primaryColor); border-color: $primaryColor;
background-color: var(--primaryColor); background-color: $primaryColor;
&.outline { &.outline {
color: var(--primaryColor); color: $primaryColor;
} }
} }
.success { .success {
border-color: var(--successColor); border-color: $successColor;
background-color: var(--successColor); background-color: $successColor;
color: #eee; color: #eee;
&.outline { &.outline {
color: var(--successColor); color: $successColor;
} }
} }
.warning { .warning {
border-color: var(--warningColor); border-color: $warningColor;
background-color: var(--warningColor); background-color: $warningColor;
&.outline { &.outline {
color: var(--warningColor); color: $warningColor;
}
}
.queue {
border-color: $queueColor;
background-color: $queueColor;
&.outline {
color: $queueColor;
} }
} }
@@ -108,5 +117,5 @@
/** Outline **/ /** Outline **/
.outline { .outline {
background-color: var(--white); background-color: $white;
} }
+30 -30
View File
@@ -19,62 +19,62 @@
} }
.danger { .danger {
border-color: var(--dangerBorderColor); border-color: $dangerBorderColor;
background-color: var(--dangerBackgroundColor); background-color: $dangerBackgroundColor;
color: var(--white); color: $white;
&:hover { &:hover {
border-color: var(--dangerHoverBorderColor); border-color: $dangerHoverBorderColor;
background-color: var(--dangerHoverBackgroundColor); background-color: $dangerHoverBackgroundColor;
color: var(--white); color: $white;
} }
} }
.default { .default {
border-color: var(--defaultBorderColor); border-color: $defaultBorderColor;
background-color: var(--defaultButtonBackgroundColor); background-color: $defaultBackgroundColor;
color: var(--defaultButtonTextColor); color: $defaultColor;
&:hover { &:hover {
border-color: var(--defaultHoverBorderColor); border-color: $defaultHoverBorderColor;
background-color: var(--defaultHoverBackgroundColor); background-color: $defaultHoverBackgroundColor;
color: var(--defaultButtonTextColor); color: $defaultColor;
} }
} }
.primary { .primary {
border-color: var(--primaryBorderColor); border-color: $primaryBorderColor;
background-color: var(--primaryBackgroundColor); background-color: $primaryBackgroundColor;
color: var(--white); color: $white;
&:hover { &:hover {
border-color: var(--primaryHoverBorderColor); border-color: $primaryHoverBorderColor;
background-color: var(--primaryHoverBackgroundColor); background-color: $primaryHoverBackgroundColor;
color: var(--white); color: $white;
} }
} }
.success { .success {
border-color: var(--successBorderColor); border-color: $successBorderColor;
background-color: var(--successBackgroundColor); background-color: $successBackgroundColor;
color: var(--white); color: $white;
&:hover { &:hover {
border-color: var(--successHoverBorderColor); border-color: $successHoverBorderColor;
background-color: var(--successHoverBackgroundColor); background-color: $successHoverBackgroundColor;
color: var(--white); color: $white;
} }
} }
.warning { .warning {
border-color: var(--warningBorderColor); border-color: $warningBorderColor;
background-color: var(--warningBackgroundColor); background-color: $warningBackgroundColor;
color: var(--white); color: $white;
&:hover { &:hover {
border-color: var(--warningHoverBorderColor); border-color: $warningHoverBorderColor;
background-color: var(--warningHoverBackgroundColor); background-color: $warningHoverBackgroundColor;
color: var(--white); color: $white;
} }
} }
+2 -2
View File
@@ -12,10 +12,10 @@
&:hover { &:hover {
border: none; border: none;
background-color: inherit; background-color: inherit;
color: var(--iconButtonHoverColor); color: $iconButtonHoverColor;
} }
&.isDisabled { &.isDisabled {
color: var(--iconButtonDisabledColor); color: $iconButtonDisabledColor;
} }
} }
+2 -2
View File
@@ -15,10 +15,10 @@
} }
.to { .to {
color: var(--linkColor); color: $linkColor;
&:hover { &:hover {
color: var(--linkHoverColor); color: $linkHoverColor;
text-decoration: underline; text-decoration: underline;
} }
} }
@@ -26,7 +26,7 @@
.ripple { .ripple {
position: absolute; position: absolute;
border: 2px solid var(--themeDarkColor); border: 2px solid #3a3f51;
border-radius: 100%; border-radius: 100%;
animation: rippleContainer 1.25s 0s infinite cubic-bezier(0.21, 0.53, 0.56, 0.8); animation: rippleContainer 1.25s 0s infinite cubic-bezier(0.21, 0.53, 0.56, 0.8);
animation-fill-mode: both; animation-fill-mode: both;
+2 -2
View File
@@ -10,12 +10,12 @@
} }
&:hover { &:hover {
color: var(--toobarButtonHoverColor); color: $toobarButtonHoverColor;
} }
} }
.isDisabled { .isDisabled {
color: var(--disabledColor); color: $disabledColor;
pointer-events: none; pointer-events: none;
} }
+1 -1
View File
@@ -2,7 +2,7 @@
z-index: $popperZIndex; z-index: $popperZIndex;
display: flex; display: flex;
flex-direction: column; flex-direction: column;
background-color: var(--toolbarMenuItemBackgroundColor); background-color: $toolbarMenuItemBackgroundColor;
line-height: 20px; line-height: 20px;
} }
+5 -5
View File
@@ -5,19 +5,19 @@
padding: 10px 20px; padding: 10px 20px;
min-width: 150px; min-width: 150px;
max-width: 250px; max-width: 250px;
background-color: var(--toolbarMenuItemBackgroundColor); background-color: $toolbarMenuItemBackgroundColor;
color: var(--menuItemColor); color: $menuItemColor;
line-height: 20px; line-height: 20px;
&:hover, &:hover,
&:focus { &:focus {
background-color: var(--toolbarMenuItemHoverBackgroundColor); background-color: $toolbarMenuItemHoverBackgroundColor;
color: var(--menuItemHoverColor); color: $menuItemHoverColor;
text-decoration: none; text-decoration: none;
} }
} }
.isDisabled { .isDisabled {
color: var(--disabledColor); color: $disabledColor;
pointer-events: none; pointer-events: none;
} }
@@ -2,5 +2,5 @@
overflow: hidden; overflow: hidden;
min-height: 1px; min-height: 1px;
height: 1px; height: 1px;
background-color: var(--themeDarkColor); background-color: $themeDarkColor;
} }
+1 -1
View File
@@ -12,7 +12,7 @@
justify-content: center; justify-content: center;
width: 100%; width: 100%;
height: 100%; height: 100%;
background-color: var(--modalBackdropBackgroundColor); background-color: $modalBackdropBackgroundColor;
opacity: 1; opacity: 1;
} }
@@ -4,7 +4,7 @@
flex-direction: column; flex-direction: column;
flex-grow: 1; flex-grow: 1;
width: 100%; width: 100%;
background-color: var(--modalBackgroundColor); background-color: $modalBackgroundColor;
} }
.closeButton { .closeButton {
@@ -18,6 +18,6 @@
line-height: 60px; line-height: 60px;
&:hover { &:hover {
color: var(--modalCloseButtonHoverColor); color: $modalCloseButtonHoverColor;
} }
} }
@@ -4,7 +4,7 @@
justify-content: flex-end; justify-content: flex-end;
flex-shrink: 0; flex-shrink: 0;
padding: 15px 30px; padding: 15px 30px;
border-top: 1px solid var(--borderColor); border-top: 1px solid $borderColor;
a, a,
button { button {
@@ -3,6 +3,6 @@
flex-shrink: 0; flex-shrink: 0;
padding: 15px 50px 15px 30px; padding: 15px 50px 15px 30px;
border-bottom: 1px solid var(--borderColor); border-bottom: 1px solid $borderColor;
font-size: 18px; font-size: 18px;
} }
@@ -12,22 +12,22 @@
.ripple { .ripple {
composes: ripple from '~Components/Loading/LoadingIndicator.css'; composes: ripple from '~Components/Loading/LoadingIndicator.css';
border: 1px solid var(--toolbarColor); border: 1px solid $toolbarColor;
} }
.input { .input {
margin-left: 8px; margin-left: 8px;
width: 200px; width: 200px;
border: none; border: none;
border-bottom: solid 1px var(--white); border-bottom: solid 1px $white;
border-radius: 0; border-radius: 0;
background-color: transparent; background-color: transparent;
box-shadow: none; box-shadow: none;
color: var(--white); color: $white;
transition: border 0.3s ease-out; transition: border 0.3s ease-out;
&::placeholder { &::placeholder {
color: var(--white); color: $white;
transition: color 0.3s ease-out; transition: color 0.3s ease-out;
} }
@@ -60,13 +60,13 @@
overflow-y: auto; overflow-y: auto;
min-width: 100%; min-width: 100%;
max-height: 230px; max-height: 230px;
border: 1px solid var(--themeDarkColor); border: 1px solid $themeDarkColor;
border-radius: 4px; border-radius: 4px;
border-top-left-radius: 0; border-top-left-radius: 0;
border-top-right-radius: 0; border-top-right-radius: 0;
background-color: var(--themeDarkColor); background-color: $themeDarkColor;
box-shadow: inset 0 1px 1px var(--inputBoxShadowColor); box-shadow: inset 0 1px 1px $inputBoxShadowColor;
color: var(--menuItemColor); color: $menuItemColor;
} }
} }
@@ -82,12 +82,12 @@
} }
.highlighted { .highlighted {
background-color: var(--themeLightColor); background-color: $themeLightColor;
} }
.sectionTitle { .sectionTitle {
padding: 5px 8px; padding: 5px 8px;
color: var(--disabledColor); color: $disabledColor;
} }
.addNewMovieSuggestion { .addNewMovieSuggestion {
@@ -21,7 +21,7 @@
.alternateTitle { .alternateTitle {
composes: title; composes: title;
color: var(--disabledColor); color: $disabledColor;
font-size: $smallFontSize; font-size: $smallFontSize;
} }
@@ -8,8 +8,8 @@
.key { .key {
padding: 2px 4px; padding: 2px 4px;
border-radius: 3px; border-radius: 3px;
background-color: var(--defaultColor); background-color: $defaultColor;
box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.25); box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.25);
color: var(--white); color: $white;
font-size: 16px; font-size: 16px;
} }
@@ -4,9 +4,9 @@
align-items: center; align-items: center;
flex: 0 0 auto; flex: 0 0 auto;
height: $headerHeight; height: $headerHeight;
background-color: var(--pageHeaderBackgroundColor); background-color: $prowlarrOrange;
box-shadow: 0 4px 8px 0 rgba(0, 0, 0, 0.2), 0 6px 20px 0 rgba(0, 0, 0, 0.19); box-shadow: 0 4px 8px 0 rgba(0, 0, 0, 0.2), 0 6px 20px 0 rgba(0, 0, 0, 0.19);
color: var(--white); color: $white;
} }
.logoContainer { .logoContainer {
@@ -80,7 +80,7 @@
align-items: center; align-items: center;
justify-content: center; justify-content: center;
width: 30px; width: 30px;
color: var(--themeRed); color: $themeRed;
text-align: center; text-align: center;
line-height: 60px; line-height: 60px;
@@ -74,7 +74,7 @@ class PageHeader extends Component {
<IconButton <IconButton
className={styles.donate} className={styles.donate}
name={icons.HEART} name={icons.HEART}
to="https://prowlarr.com/donate" to="https://opencollective.com/prowlarr"
size={14} size={14}
/> />
<IconButton <IconButton
@@ -5,7 +5,7 @@
text-align: center; text-align: center;
&:hover { &:hover {
color: var(--toobarButtonHoverColor); color: $toobarButtonHoverColor;
} }
} }
@@ -1,7 +1,5 @@
.page { .page {
composes: page from '~./Page.css'; composes: page from '~./Page.css';
background-color: var(--pageBackground);
} }
.logoFull { .logoFull {
+1 -1
View File
@@ -14,7 +14,7 @@ function PageContent(props) {
return ( return (
<ErrorBoundary errorComponent={PageContentError}> <ErrorBoundary errorComponent={PageContentError}>
<DocumentTitle title={title ? `${title} - ${window.Prowlarr.instanceName}` : window.Prowlarr.instanceName}> <DocumentTitle title={title ? `${title} - Prowlarr` : 'Prowlarr'}>
<div className={className}> <div className={className}>
{children} {children}
</div> </div>
@@ -2,7 +2,7 @@
display: flex; display: flex;
flex: 0 0 auto; flex: 0 0 auto;
padding: 20px; padding: 20px;
background-color: var(--pageFooterBackground); background-color: #f1f1f1;
} }
@media only screen and (max-width: $breakpointSmall) { @media only screen and (max-width: $breakpointSmall) {
@@ -1,6 +1,6 @@
.jumpBarItem { .jumpBarItem {
flex: 1 1 $jumpBarItemHeight; flex: 1 1 $jumpBarItemHeight;
border-bottom: 1px solid var(--borderColor); border-bottom: 1px solid $borderColor;
text-align: center; text-align: center;
font-weight: bold; font-weight: bold;
@@ -1,6 +1,6 @@
.message { .message {
display: flex; display: flex;
border-left: 3px solid var(--infoColor); border-left: 3px solid $infoColor;
} }
.iconContainer, .iconContainer,
@@ -9,7 +9,7 @@
justify-content: center; justify-content: center;
flex-direction: column; flex-direction: column;
padding: 2px 0; padding: 2px 0;
color: var(--sidebarColor); color: $sidebarColor;
} }
.iconContainer { .iconContainer {
@@ -26,17 +26,17 @@
/* Types */ /* Types */
.error { .error {
border-left-color: var(--dangerColor); border-left-color: $dangerColor;
} }
.info { .info {
border-left-color: var(--infoColor); border-left-color: $infoColor;
} }
.success { .success {
border-left-color: var(--successColor); border-left-color: $successColor;
} }
.warning { .warning {
border-left-color: var(--warningColor); border-left-color: $warningColor;
} }
@@ -2,7 +2,7 @@
flex: 0 0 $sidebarWidth; flex: 0 0 $sidebarWidth;
overflow: hidden; overflow: hidden;
width: $sidebarWidth; width: $sidebarWidth;
background-color: var(--sidebarBackgroundColor); background-color: $sidebarBackgroundColor;
transition: transform 300ms ease-in-out; transition: transform 300ms ease-in-out;
transform: translateX(0); transform: translateX(0);
} }
@@ -11,8 +11,8 @@
display: flex; display: flex;
flex-direction: column; flex-direction: column;
overflow: hidden; overflow: hidden;
background-color: var(--sidebarBackgroundColor); background-color: $sidebarBackgroundColor;
color: var(--white); color: $white;
} }
@media only screen and (max-width: $breakpointSmall) { @media only screen and (max-width: $breakpointSmall) {
@@ -1,21 +1,21 @@
.item { .item {
border-left: 3px solid transparent; border-left: 3px solid transparent;
color: var(--sidebarColor); color: $sidebarColor;
transition: border-left 0.3s ease-in-out; transition: border-left 0.3s ease-in-out;
} }
.isActiveItem { .isActiveItem {
border-left: 3px solid var(--themeBlue); border-left: 3px solid $themeBlue;
} }
.link { .link {
display: block; display: block;
padding: 12px 24px; padding: 12px 24px;
color: var(--sidebarColor); color: $sidebarColor;
&:hover, &:hover,
&:focus { &:focus {
color: var(--themeBlue); color: $themeBlue;
text-decoration: none; text-decoration: none;
} }
} }
@@ -27,11 +27,11 @@
} }
.isActiveLink { .isActiveLink {
color: var(--themeBlue); color: $themeBlue;
} }
.isActiveParentLink { .isActiveParentLink {
background-color: var(--sidebarActiveBackgroundColor); background-color: $sidebarActiveBackgroundColor;
} }
.iconContainer { .iconContainer {
@@ -4,8 +4,8 @@
flex: 0 0 auto; flex: 0 0 auto;
padding: 0 20px; padding: 0 20px;
height: $toolbarHeight; height: $toolbarHeight;
background-color: var(--toolbarBackgroundColor); background-color: $toolbarBackgroundColor;
color: var(--toolbarColor); color: $toolbarColor;
line-height: 60px; line-height: 60px;
} }
@@ -6,16 +6,16 @@
text-align: center; text-align: center;
&:hover { &:hover {
color: var(--toobarButtonHoverColor); color: $toobarButtonHoverColor;
} }
&.isDisabled { &.isDisabled {
color: var(--disabledColor); color: $disabledColor;
} }
} }
.isDisabled { .isDisabled {
color: var(--disabledColor); color: $disabledColor;
} }
.labelContainer { .labelContainer {
@@ -27,7 +27,7 @@
.label { .label {
padding: 0 3px; padding: 0 3px;
color: var(--toolbarLabelColor); color: $toolbarLabelColor;
font-size: $extraSmallFontSize; font-size: $extraSmallFontSize;
line-height: calc($extraSmallFontSize + 1px); line-height: calc($extraSmallFontSize + 1px);
} }
+14 -10
View File
@@ -14,13 +14,13 @@
width: 0; width: 0;
height: 100%; height: 100%;
box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15); box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15);
color: var(--white); color: $white;
transition: width 0.6s ease; transition: width 0.6s ease;
} }
.frontTextContainer { .frontTextContainer {
z-index: 1; z-index: 1;
color: var(--white); color: $white;
} }
.backTextContainer, .backTextContainer,
@@ -42,35 +42,39 @@
} }
.primary { .primary {
background-color: var(--primaryColor); background-color: $primaryColor;
} }
.danger { .danger {
background-color: var(--dangerColor); background-color: $dangerColor;
&:global(.colorImpaired) { &:global(.colorImpaired) {
background: repeating-linear-gradient(90deg, color(var(--dangerColor) shade(5%)), color(var(--dangerColor) shade(5%)) 5px, color(var(--dangerColor) shade(15%)) 5px, color(var(--dangerColor) shade(15%)) 10px); background: repeating-linear-gradient(90deg, color($dangerColor shade(5%)), color($dangerColor shade(5%)) 5px, color($dangerColor shade(15%)) 5px, color($dangerColor shade(15%)) 10px);
} }
} }
.success { .success {
background-color: var(--successColor); background-color: $successColor;
} }
.purple { .purple {
background-color: var(--purple); background-color: $purple;
} }
.warning { .warning {
background-color: var(--warningColor); background-color: $warningColor;
&:global(.colorImpaired) { &:global(.colorImpaired) {
background: repeating-linear-gradient(45deg, var(--warningColor), var(--warningColor) 5px, color(var(--warningColor) tint(15%)) 5px, color(var(--warningColor) tint(15%)) 10px); background: repeating-linear-gradient(45deg, $warningColor, $warningColor 5px, color($warningColor tint(15%)) 5px, color($warningColor tint(15%)) 10px);
} }
} }
.info { .info {
background-color: var(--infoColor); background-color: $infoColor;
}
.queue {
background-color: $queueColor;
} }
.small { .small {
@@ -10,10 +10,10 @@
min-height: 100px; min-height: 100px;
border: 1px solid transparent; border: 1px solid transparent;
border-radius: 5px; border-radius: 5px;
background-color: var(--scrollbarBackgroundColor); background-color: $scrollbarBackgroundColor;
background-clip: padding-box; background-clip: padding-box;
&:hover { &:hover {
background-color: var(--scrollbarHoverBackgroundColor); background-color: $scrollbarHoverBackgroundColor;
} }
} }
@@ -4,7 +4,7 @@
width: 100%; width: 100%;
border: 1px solid #aaa; border: 1px solid #aaa;
border-radius: 4px; border-radius: 4px;
background: var(--inputBackgroundColor); background: #fafafa;
} }
.checkContainer { .checkContainer {
+2 -2
View File
@@ -46,11 +46,11 @@
} }
.records { .records {
color: var(--disabledColor); color: $disabledColor;
} }
.disabledPageButton { .disabledPageButton {
color: var(--disabledColor); color: $disabledColor;
} }
.pageSelect { .pageSelect {
+1 -1
View File
@@ -2,6 +2,6 @@
transition: background-color 500ms; transition: background-color 500ms;
&:hover { &:hover {
background-color: var(--tableRowHoverBackgroundColor); background-color: $tableRowHoverBackgroundColor;
} }
} }
@@ -3,7 +3,7 @@
transition: background-color 500ms; transition: background-color 500ms;
&:hover { &:hover {
background-color: var(--tableRowHoverBackgroundColor); background-color: #fafbfc;
} }
} }
+2 -2
View File
@@ -1,7 +1,7 @@
.title { .title {
padding: 10px 20px; padding: 10px 20px;
border-bottom: 1px solid var(--popoverTitleBorderColor); border-bottom: 1px solid $popoverTitleBorderColor;
background-color: var(--popoverTitleBackgroundColor); background-color: $popoverTitleBackgroundColor;
font-size: 16px; font-size: 16px;
} }
+20 -20
View File
@@ -7,13 +7,13 @@
position: relative; position: relative;
&.default { &.default {
background-color: var(--popoverBodyBackgroundColor); background-color: $white;
box-shadow: 0 5px 10px var(--popoverShadowColor); box-shadow: 0 5px 10px $popoverShadowColor;
} }
&.inverse { &.inverse {
background-color: var(--themeDarkColor); background-color: $themeDarkColor;
box-shadow: 0 5px 10px var(--popoverShadowInverseColor); box-shadow: 0 5px 10px $popoverShadowInverseColor;
} }
} }
@@ -49,20 +49,20 @@
content: ' '; content: ' ';
&.default { &.default {
border-top-color: var(--popoverArrowBorderColor); border-top-color: $popoverArrowBorderColor;
} }
&.inverse { &.inverse {
border-top-color: var(--popoverArrowBorderInverseColor); border-top-color: $popoverArrowBorderInverseColor;
} }
} }
&.default { &.default {
border-top-color: var(--popoverArrowBorderColor); border-top-color: $popoverArrowBorderColor;
} }
&.inverse { &.inverse {
border-top-color: var(--popoverArrowBorderInverseColor); border-top-color: $popoverArrowBorderInverseColor;
} }
} }
@@ -78,20 +78,20 @@
content: ' '; content: ' ';
&.default { &.default {
border-right-color: var(--popoverArrowBorderColor); border-right-color: $popoverArrowBorderColor;
} }
&.inverse { &.inverse {
border-right-color: var(--popoverArrowBorderInverseColor); border-right-color: $popoverArrowBorderInverseColor;
} }
} }
&.default { &.default {
border-right-color: var(--popoverArrowBorderColor); border-right-color: $popoverArrowBorderColor;
} }
&.inverse { &.inverse {
border-right-color: var(--popoverArrowBorderInverseColor); border-right-color: $popoverArrowBorderInverseColor;
} }
} }
@@ -107,20 +107,20 @@
content: ' '; content: ' ';
&.default { &.default {
border-bottom-color: var(--popoverArrowBorderColor); border-bottom-color: $popoverArrowBorderColor;
} }
&.inverse { &.inverse {
border-bottom-color: var(--popoverArrowBorderInverseColor); border-bottom-color: $popoverArrowBorderInverseColor;
} }
} }
&.default { &.default {
border-bottom-color: var(--popoverArrowBorderColor); border-bottom-color: $popoverArrowBorderColor;
} }
&.inverse { &.inverse {
border-bottom-color: var(--popoverArrowBorderInverseColor); border-bottom-color: $popoverArrowBorderInverseColor;
} }
} }
@@ -136,20 +136,20 @@
content: ' '; content: ' ';
&.default { &.default {
border-left-color: var(--popoverArrowBorderColor); border-left-color: $popoverArrowBorderColor;
} }
&.inverse { &.inverse {
border-left-color: var(--popoverArrowBorderInverseColor); border-left-color: $popoverArrowBorderInverseColor;
} }
} }
&.default { &.default {
border-left-color: var(--popoverArrowBorderColor); border-left-color: $popoverArrowBorderColor;
} }
&.inverse { &.inverse {
border-left-color: var(--popoverArrowBorderInverseColor); border-left-color: $popoverArrowBorderInverseColor;
} }
} }
+2
View File
@@ -3,6 +3,7 @@ export const DEFAULT = 'default';
export const DISABLED = 'disabled'; export const DISABLED = 'disabled';
export const INFO = 'info'; export const INFO = 'info';
export const INVERSE = 'inverse'; export const INVERSE = 'inverse';
export const PINK = 'pink';
export const PRIMARY = 'primary'; export const PRIMARY = 'primary';
export const PURPLE = 'purple'; export const PURPLE = 'purple';
export const SUCCESS = 'success'; export const SUCCESS = 'success';
@@ -15,6 +16,7 @@ export const all = [
DISABLED, DISABLED,
INFO, INFO,
INVERSE, INVERSE,
PINK,
PRIMARY, PRIMARY,
PURPLE, PURPLE,
SUCCESS, SUCCESS,
+4 -4
View File
@@ -3,9 +3,9 @@
align-items: stretch; align-items: stretch;
overflow: hidden; overflow: hidden;
margin: 2px 4px; margin: 2px 4px;
border: 1px solid var(--borderColor); border: 1px solid $borderColor;
border-radius: 4px; border-radius: 4px;
background-color: var(--defaultHoverBackgroundColor); background-color: #eee;
cursor: default; cursor: default;
} }
@@ -16,7 +16,7 @@
.value { .value {
padding: 0 4px; padding: 0 4px;
background-color: var(--defaultButtonBackgroundColor); background-color: $white;
color: var(--defaultColor); color: $defaultColor;
white-space: nowrap; white-space: nowrap;
} }
@@ -112,7 +112,7 @@ function EditIndexerModalContent(props) {
</FormGroup> </FormGroup>
<FormGroup> <FormGroup>
<FormLabel>{translate('SyncProfile')}</FormLabel> <FormLabel>{translate('AppProfile')}</FormLabel>
<FormInputGroup <FormInputGroup
type={inputTypes.APP_PROFILE_SELECT} type={inputTypes.APP_PROFILE_SELECT}
@@ -9,5 +9,5 @@
.path { .path {
margin-left: 5px; margin-left: 5px;
color: var(--dangerColor); color: $dangerColor;
} }
@@ -133,7 +133,7 @@ class IndexerEditorFooter extends Component {
<div className={styles.inputContainer}> <div className={styles.inputContainer}>
<IndexerEditorFooterLabel <IndexerEditorFooterLabel
label={translate('SyncProfile')} label={translate('AppProfile')}
isSaving={isSaving && appProfileId !== NO_CHANGE} isSaving={isSaving && appProfileId !== NO_CHANGE}
/> />
@@ -21,28 +21,28 @@
.disabled { .disabled {
composes: legendItemColor; composes: legendItemColor;
background-color: var(--darkGray); background-color: $darkGray;
} }
.enabled { .enabled {
composes: legendItemColor; composes: legendItemColor;
background-color: var(--successColor); background-color: $successColor;
} }
.redirected { .redirected {
composes: legendItemColor; composes: legendItemColor;
background-color: var(--infoColor); background-color: $infoColor;
} }
.error { .error {
composes: legendItemColor; composes: legendItemColor;
background-color: var(--dangerColor); background-color: $dangerColor;
&:global(.colorImpaired) { &:global(.colorImpaired) {
background: repeating-linear-gradient(90deg, color(var(--dangerColor) shade(5%)), color(var(--dangerColor) shade(5%)) 5px, color(var(--dangerColor) shade(15%)) 5px, color(var(--dangerColor) shade(15%)) 10px); background: repeating-linear-gradient(90deg, color($dangerColor shade(5%)), color($dangerColor shade(5%)) 5px, color($dangerColor shade(15%)) 5px, color($dangerColor shade(15%)) 10px);
} }
} }
@@ -53,7 +53,7 @@ function IndexerIndexSortMenu(props) {
sortDirection={sortDirection} sortDirection={sortDirection}
onPress={onSortSelect} onPress={onSortSelect}
> >
{translate('SyncProfile')} {translate('AppProfile')}
</SortMenuItem> </SortMenuItem>
<SortMenuItem <SortMenuItem
@@ -65,5 +65,5 @@
.externalLink { .externalLink {
composes: link from '~Components/Link/Link.css'; composes: link from '~Components/Link/Link.css';
color: var(--textColor); color: $textColor;
} }
@@ -190,7 +190,7 @@ class IndexerIndexRow extends Component {
key={name} key={name}
className={styles[column.name]} className={styles[column.name]}
> >
{appProfile?.name || ''} {appProfile.name}
</VirtualTableRowCell> </VirtualTableRowCell>
); );
} }
@@ -1,13 +1,13 @@
.torrent { .torrent {
composes: label from '~Components/Label.css'; composes: label from '~Components/Label.css';
border-color: var(--torrentColor); border-color: $torrentColor;
background-color: var(--torrentColor); background-color: $torrentColor;
} }
.usenet { .usenet {
composes: label from '~Components/Label.css'; composes: label from '~Components/Label.css';
border-color: var(--usenetColor); border-color: $usenetColor;
background-color: var(--usenetColor); background-color: $usenetColor;
} }
+2 -2
View File
@@ -19,7 +19,7 @@
.footNote { .footNote {
display: flex; display: flex;
color: var(--helpTextColor); color: $helpTextColor;
.icon { .icon {
margin-top: 3px; margin-top: 3px;
@@ -29,7 +29,7 @@
code { code {
padding: 0 1px; padding: 0 1px;
border: 1px solid var(--borderColor); border: 1px solid $borderColor;
background-color: #f7f7f7; background-color: #f7f7f7;
} }
} }
@@ -24,7 +24,6 @@ const searchOptions = [
const seriesTokens = [ const seriesTokens = [
{ token: '{ImdbId:tt1234567}', example: 'tt12345' }, { token: '{ImdbId:tt1234567}', example: 'tt12345' },
{ token: '{TvdbId:12345}', example: '12345' }, { token: '{TvdbId:12345}', example: '12345' },
{ token: '{TmdbId:12345}', example: '12345' },
{ token: '{TvMazeId:12345}', example: '54321' }, { token: '{TvMazeId:12345}', example: '54321' },
{ token: '{Season:00}', example: '01' }, { token: '{Season:00}', example: '01' },
{ token: '{Episode:00}', example: '01' } { token: '{Episode:00}', example: '01' }
+5 -5
View File
@@ -3,15 +3,15 @@
align-items: stretch; align-items: stretch;
flex-wrap: wrap; flex-wrap: wrap;
margin: 3px; margin: 3px;
border: 1px solid var(--borderColor); border: 1px solid $borderColor;
&:hover { &:hover {
.token { .token {
background-color: rgba(0, 0, 0, 0.01); background-color: #ddd;
} }
.example { .example {
background-color: rgba(0, 0, 0, 0.01); background-color: #ccc;
} }
} }
} }
@@ -27,7 +27,7 @@
.token { .token {
flex: 0 0 50%; flex: 0 0 50%;
padding: 6px 16px; padding: 6px 16px;
background-color: var(--defaultButtonBackgroundColor); background-color: #eee;
font-family: $monoSpaceFontFamily; font-family: $monoSpaceFontFamily;
} }
@@ -37,7 +37,7 @@
justify-content: space-between; justify-content: space-between;
flex: 0 0 50%; flex: 0 0 50%;
padding: 6px 16px; padding: 6px 16px;
background-color: var(--defaultHoverBackgroundColor); background-color: #ddd;
.footNote { .footNote {
padding: 2px; padding: 2px;
+4 -4
View File
@@ -1,13 +1,13 @@
.torrent { .torrent {
composes: label from '~Components/Label.css'; composes: label from '~Components/Label.css';
border-color: var(--torrentColor); border-color: $torrentColor;
background-color: var(--torrentColor); background-color: $torrentColor;
} }
.usenet { .usenet {
composes: label from '~Components/Label.css'; composes: label from '~Components/Label.css';
border-color: var(--usenetColor); border-color: $usenetColor;
background-color: var(--usenetColor); background-color: $usenetColor;
} }
+1 -1
View File
@@ -58,7 +58,7 @@
margin: 0 2px; margin: 0 2px;
width: 22px; width: 22px;
color: var(--textColor); color: $textColor;
} }
.externalLinks { .externalLinks {
@@ -19,13 +19,13 @@
} }
.indicatorBackground { .indicatorBackground {
color: var(--themeDarkColor); color: $themeDarkColor;
} }
.enabled { .enabled {
color: var(--successColor); color: $successColor;
} }
.disabled { .disabled {
color: var(--dangerColor); color: $dangerColor;
} }
@@ -6,15 +6,15 @@
.addApplication { .addApplication {
composes: application from '~./Application.css'; composes: application from '~./Application.css';
background-color: var(--cardAlternateBackgroundColor); background-color: $cardAlternateBackgroundColor;
color: var(--gray); color: $gray;
text-align: center; text-align: center;
} }
.center { .center {
display: inline-block; display: inline-block;
padding: 5px 20px 0; padding: 5px 20px 0;
border: 1px solid var(--borderColor); border: 1px solid $borderColor;
border-radius: 4px; border-radius: 4px;
background-color: var(--cardCenterBackgroundColor); background-color: $white;
} }
@@ -6,15 +6,15 @@
.addDownloadClient { .addDownloadClient {
composes: downloadClient from '~./DownloadClient.css'; composes: downloadClient from '~./DownloadClient.css';
background-color: var(--cardAlternateBackgroundColor); background-color: $cardAlternateBackgroundColor;
color: var(--gray); color: $gray;
text-align: center; text-align: center;
} }
.center { .center {
display: inline-block; display: inline-block;
padding: 5px 20px 0; padding: 5px 20px 0;
border: 1px solid var(--borderColor); border: 1px solid $borderColor;
border-radius: 4px; border-radius: 4px;
background-color: var(--cardCenterBackgroundColor); background-color: $white;
} }
@@ -20,7 +20,6 @@ function HostSettings(props) {
bindAddress, bindAddress,
port, port,
urlBase, urlBase,
instanceName,
enableSsl, enableSsl,
sslPort, sslPort,
sslCertPath, sslCertPath,
@@ -73,22 +72,6 @@ function HostSettings(props) {
/> />
</FormGroup> </FormGroup>
<FormGroup
advancedSettings={advancedSettings}
isAdvanced={true}
>
<FormLabel>{translate('InstanceName')}</FormLabel>
<FormInputGroup
type={inputTypes.TEXT}
name="instanceName"
helpText={translate('InstanceNameHelpText')}
helpTextWarning={translate('RestartRequiredHelpTextWarning')}
onChange={onInputChange}
{...instanceName}
/>
</FormGroup>
<FormGroup <FormGroup
advancedSettings={advancedSettings} advancedSettings={advancedSettings}
isAdvanced={true} isAdvanced={true}
@@ -6,15 +6,15 @@
.addIndexerProxy { .addIndexerProxy {
composes: indexerProxy from '~./IndexerProxy.css'; composes: indexerProxy from '~./IndexerProxy.css';
background-color: var(--cardAlternateBackgroundColor); background-color: $cardAlternateBackgroundColor;
color: var(--gray); color: $gray;
text-align: center; text-align: center;
} }
.center { .center {
display: inline-block; display: inline-block;
padding: 5px 20px 0; padding: 5px 20px 0;
border: 1px solid var(--borderColor); border: 1px solid $borderColor;
border-radius: 4px; border-radius: 4px;
background-color: var(--cardCenterBackgroundColor); background-color: $white;
} }
@@ -6,15 +6,15 @@
.addNotification { .addNotification {
composes: notification from '~./Notification.css'; composes: notification from '~./Notification.css';
background-color: var(--cardAlternateBackgroundColor); background-color: $cardAlternateBackgroundColor;
color: var(--gray); color: $gray;
text-align: center; text-align: center;
} }
.center { .center {
display: inline-block; display: inline-block;
padding: 5px 20px 0; padding: 5px 20px 0;
border: 1px solid var(--borderColor); border: 1px solid $borderColor;
border-radius: 4px; border-radius: 4px;
background-color: var(--cardCenterBackgroundColor); background-color: $white;
} }
@@ -6,8 +6,8 @@
.addAppProfile { .addAppProfile {
composes: appProfile from '~./AppProfile.css'; composes: appProfile from '~./AppProfile.css';
background-color: var(--cardAlternateBackgroundColor); background-color: $cardAlternateBackgroundColor;
color: var(--gray); color: $gray;
text-align: center; text-align: center;
font-size: 45px; font-size: 45px;
} }
@@ -15,7 +15,7 @@
.center { .center {
display: inline-block; display: inline-block;
padding: 5px 20px 0; padding: 5px 20px 0;
border: 1px solid var(--borderColor); border: 1px solid $borderColor;
border-radius: 4px; border-radius: 4px;
background-color: var(--cardCenterBackgroundColor); background-color: $white;
} }
@@ -52,7 +52,7 @@ class AppProfiles extends Component {
} = this.props; } = this.props;
return ( return (
<FieldSet legend={translate('SyncProfiles')}> <FieldSet legend={translate('AppProfiles')}>
<PageSectionContent <PageSectionContent
errorMessage={translate('UnableToLoadAppProfiles')} errorMessage={translate('UnableToLoadAppProfiles')}
{...otherProps}c={true} {...otherProps}c={true}
@@ -40,15 +40,14 @@ class EditAppProfileModalContent extends Component {
name, name,
enableRss, enableRss,
enableInteractiveSearch, enableInteractiveSearch,
enableAutomaticSearch, enableAutomaticSearch
minimumSeeders
} = item; } = item;
return ( return (
<ModalContent onModalClose={onModalClose}> <ModalContent onModalClose={onModalClose}>
<ModalHeader> <ModalHeader>
{id ? translate('EditSyncProfile') : translate('AddSyncProfile')} {id ? translate('EditAppProfile') : translate('AddAppProfile')}
</ModalHeader> </ModalHeader>
<ModalBody> <ModalBody>
@@ -124,20 +123,6 @@ class EditAppProfileModalContent extends Component {
onChange={onInputChange} onChange={onInputChange}
/> />
</FormGroup> </FormGroup>
<FormGroup>
<FormLabel>
{translate('MinimumSeeders')}
</FormLabel>
<FormInputGroup
type={inputTypes.NUMBER}
name="minimumSeeders"
{...minimumSeeders}
helpText={translate('MinimumSeedersHelpText')}
onChange={onInputChange}
/>
</FormGroup>
</Form> </Form>
} }
</div> </div>
+2 -2
View File
@@ -2,7 +2,7 @@
composes: link from '~Components/Link/Link.css'; composes: link from '~Components/Link/Link.css';
border-bottom: 1px solid #e5e5e5; border-bottom: 1px solid #e5e5e5;
color: var(--textColor); color: #3a3f51;
font-size: 21px; font-size: 21px;
&:hover { &:hover {
@@ -14,5 +14,5 @@
.summary { .summary {
margin-top: 10px; margin-top: 10px;
margin-bottom: 30px; margin-bottom: 30px;
color: var(--helpTextColor); color: $dimColor;
} }
@@ -10,7 +10,7 @@
.restriction { .restriction {
margin-bottom: 5px; margin-bottom: 5px;
padding-bottom: 5px; padding-bottom: 5px;
border-bottom: 1px solid var(--borderColor); border-bottom: 1px solid $borderColor;
&:last-child { &:last-child {
margin: 0; margin: 0;
-16
View File
@@ -10,8 +10,6 @@ import PageContent from 'Components/Page/PageContent';
import PageContentBody from 'Components/Page/PageContentBody'; import PageContentBody from 'Components/Page/PageContentBody';
import { inputTypes } from 'Helpers/Props'; import { inputTypes } from 'Helpers/Props';
import SettingsToolbarConnector from 'Settings/SettingsToolbarConnector'; import SettingsToolbarConnector from 'Settings/SettingsToolbarConnector';
import themes from 'Styles/Themes';
import titleCase from 'Utilities/String/titleCase';
import translate from 'Utilities/String/translate'; import translate from 'Utilities/String/translate';
export const firstDayOfWeekOptions = [ export const firstDayOfWeekOptions = [
@@ -64,9 +62,6 @@ class UISettings extends Component {
const uiLanguages = languages.filter((item) => item.value !== 'Original'); const uiLanguages = languages.filter((item) => item.value !== 'Original');
const themeOptions = Object.keys(themes)
.map((theme) => ({ key: theme, value: titleCase(theme) }));
return ( return (
<PageContent title={translate('UISettings')}> <PageContent title={translate('UISettings')}>
<SettingsToolbarConnector <SettingsToolbarConnector
@@ -143,17 +138,6 @@ class UISettings extends Component {
</FieldSet> </FieldSet>
<FieldSet legend={translate('Style')}> <FieldSet legend={translate('Style')}>
<FormGroup>
<FormLabel>{translate('Theme')}</FormLabel>
<FormInputGroup
type={inputTypes.SELECT}
name="theme"
helpText={translate('ThemeHelpText', ['Theme.Park'])}
values={themeOptions}
onChange={onInputChange}
{...settings.theme}
/>
</FormGroup>
<FormGroup> <FormGroup>
<FormLabel>{translate('SettingsEnableColorImpairedMode')}</FormLabel> <FormLabel>{translate('SettingsEnableColorImpairedMode')}</FormLabel>
<FormInputGroup <FormInputGroup
@@ -76,7 +76,7 @@ export const defaultState = {
}, },
{ {
name: 'appProfileId', name: 'appProfileId',
label: translate('SyncProfile'), label: translate('AppProfile'),
isSortable: true, isSortable: true,
isVisible: true isVisible: true
}, },
@@ -152,7 +152,7 @@ export const defaultState = {
}, },
{ {
name: 'appProfileId', name: 'appProfileId',
label: translate('SyncProfile'), label: translate('AppProfile'),
type: filterBuilderTypes.EXACT, type: filterBuilderTypes.EXACT,
valueType: filterBuilderValueTypes.APP_PROFILE valueType: filterBuilderValueTypes.APP_PROFILE
}, },
+2 -2
View File
@@ -16,11 +16,11 @@
min-height: 100px; min-height: 100px;
border: 1px solid transparent; border: 1px solid transparent;
border-radius: 5px; border-radius: 5px;
background-color: var(--scrollbarBackgroundColor); background-color: $scrollbarBackgroundColor;
background-clip: padding-box; background-clip: padding-box;
&:hover { &:hover {
background-color: var(--scrollbarHoverBackgroundColor); background-color: $scrollbarHoverBackgroundColor;
} }
} }
} }
-193
View File
@@ -1,193 +0,0 @@
const prowlarrOrange = '#e66000';
module.exports = {
textColor: '#ccc',
defaultColor: '#ccc',
disabledColor: '#999',
dimColor: '#555',
black: '#000',
white: '#fff',
primaryColor: '#5d9cec',
selectedColor: '#f9be03',
successColor: '#00853d',
dangerColor: '#f05050',
warningColor: '#ffa500',
infoColor: '#5d9cec',
purple: '#7a43b6',
prowlarrOrange,
helpTextColor: '#909293',
darkGray: '#888',
gray: '#adadad',
// Theme Colors
themeBlue: prowlarrOrange,
themeRed: '#c4273c',
themeDarkColor: '#595959',
themeLightColor: prowlarrOrange,
pageBackground: '#202020',
pageFooterBackgroud: 'rgba(0, 0, 0, .25)',
torrentColor: '#00853d',
usenetColor: '#17b1d9',
// Labels
inverseLabelColor: '#ddd',
inverseLabelTextColor: prowlarrOrange,
// Links
defaultLinkHoverColor: '#fff',
linkColor: '#rgb(230, 96, 0)',
linkHoverColor: '#rgb(230, 96, 0, .8)',
// Header
pageHeaderBackgroundColor: '#2a2a2a',
// Sidebar
sidebarColor: '#e1e2e3',
sidebarBackgroundColor: '#2a2a2a',
sidebarActiveBackgroundColor: '#333333',
// Toolbar
toolbarColor: '#e1e2e3',
toolbarBackgroundColor: '#262626',
toolbarMenuItemBackgroundColor: '#333',
toolbarMenuItemHoverBackgroundColor: '#414141',
toolbarLabelColor: '#e1e2e3',
// Accents
borderColor: '#e5e5e5',
inputBorderColor: '#dde6e9',
inputBoxShadowColor: 'rgba(0, 0, 0, 0.075)',
inputFocusBorderColor: '#66afe9',
inputFocusBoxShadowColor: 'rgba(102, 175, 233, 0.6)',
inputErrorBorderColor: '#f05050',
inputErrorBoxShadowColor: 'rgba(240, 80, 80, 0.6)',
inputWarningBorderColor: '#ffa500',
inputWarningBoxShadowColor: 'rgba(255, 165, 0, 0.6)',
colorImpairedGradient: '#ffffff',
colorImpairedGradientDark: '#f4f5f6',
//
// Buttons
defaultButtonTextColor: '#eee',
defaultButtonBackgroundColor: '#333',
defaultBorderColor: '#eaeaea',
defaultHoverBackgroundColor: '#444',
defaultHoverBorderColor: '#d6d6d6;',
primaryBackgroundColor: '#5d9cec',
primaryBorderColor: '#5899eb',
primaryHoverBackgroundColor: '#4b91ea',
primaryHoverBorderColor: '#3483e7;',
successBackgroundColor: '#27c24c',
successBorderColor: '#26be4a',
successHoverBackgroundColor: '#24b145',
successHoverBorderColor: '#1f9c3d;',
warningBackgroundColor: '#ff902b',
warningBorderColor: '#ff8d26',
warningHoverBackgroundColor: '#ff8517',
warningHoverBorderColor: '#fc7800;',
dangerBackgroundColor: '#f05050',
dangerBorderColor: '#f04b4b',
dangerHoverBackgroundColor: '#ee3d3d',
dangerHoverBorderColor: '#ec2626;',
iconButtonDisabledColor: '#7a7a7a',
iconButtonHoverColor: '#666',
iconButtonHoverLightColor: '#ccc',
//
// Modal
modalBackdropBackgroundColor: 'rgba(0, 0, 0, 0.6)',
modalBackgroundColor: '#2a2a2a',
modalCloseButtonHoverColor: '#888',
//
// Menu
menuItemColor: '#e1e2e3',
menuItemHoverColor: '#e66000',
menuItemHoverBackgroundColor: '#606060',
//
// Toolbar
toobarButtonHoverColor: '#e66000',
toobarButtonSelectedColor: '#e66000',
//
// Scroller
scrollbarBackgroundColor: '#707070',
scrollbarHoverBackgroundColor: '#606060',
//
// Card
cardBackgroundColor: '#333333',
cardShadowColor: '#111',
cardAlternateBackgroundColor: '#333333',
cardCenterBackgroundColor: '#2a2a2a',
//
// Alert
alertDangerBorderColor: '#a94442',
alertDangerBackgroundColor: 'rgba(255,0,0,0.1)',
alertDangerColor: '#ccc',
alertInfoBorderColor: '#31708f',
alertInfoBackgroundColor: 'rgba(0,0,255,0.1)',
alertInfoColor: '#ccc',
alertSuccessBorderColor: '#3c763d',
alertSuccessBackgroundColor: 'rgba(0,255,0,0.1)',
alertSuccessColor: '#ccc',
alertWarningBorderColor: '#8a6d3b',
alertWarningBackgroundColor: 'rgba(255,255,0,0.1)',
alertWarningColor: '#ccc',
//
// Form
inputBackgroundColor: '#333',
inputReadOnlyBackgroundColor: '#222',
inputHoverBackgroundColor: 'rgba(255, 255, 255, 0.20)',
inputSelectedBackgroundColor: 'rgba(255, 255, 255, 0.05)',
advancedFormLabelColor: '#ff902b',
disabledCheckInputColor: '#ddd',
disabledInputColor: '#808080',
//
// Popover
popoverTitleBackgroundColor: '#424242',
popoverTitleBorderColor: '#2a2a2a',
popoverBodyBackgroundColor: '#2a2a2a',
popoverShadowColor: 'rgba(0, 0, 0, 0.2)',
popoverArrowBorderColor: '#2a2a2a',
popoverTitleBackgroundInverseColor: '#595959',
popoverTitleBorderInverseColor: '#707070',
popoverShadowInverseColor: 'rgba(0, 0, 0, 0.2)',
popoverArrowBorderInverseColor: 'rgba(58, 63, 81, 0.75)',
//
// Table
tableRowHoverBackgroundColor: 'rgba(255, 255, 255, 0.08)',
//
// Charts
failedColors: ['#ffbeb2', '#feb4a6', '#fdab9b', '#fca290', '#fb9984', '#fa8f79', '#f9856e', '#f77b66', '#f5715d', '#f36754', '#f05c4d', '#ec5049', '#e74545', '#e13b42', '#da323f', '#d3293d', '#ca223c', '#c11a3b', '#b8163a', '#ae123a'],
chartColorsDiversified: ['#90caf9', '#f4d166', '#ff8a65', '#ce93d8', '#80cba9', '#ffab91', '#8097ea', '#bcaaa4', '#a57583', '#e4e498', '#9e96af', '#c6ab81', '#6972c6', '#619fc6', '#81ad81', '#f48fb1', '#82afca', '#b5b071', '#8b959b', '#7ec0b4'],
chartColors: ['#f4d166', '#f6c760', '#f8bc58', '#f8b252', '#f7a84a', '#f69e41', '#f49538', '#f38b2f', '#f28026', '#f0751e', '#eb6c1c', '#e4641e', '#de5d1f', '#d75521', '#cf4f22', '#c64a22', '#bc4623', '#b24223', '#a83e24', '#9e3a26']
};

Some files were not shown because too many files have changed in this diff Show More