New: Added Color-Impaired mode to UI settings.
This commit is contained in:
parent
2f7e3c1c3c
commit
b4e8a39c2c
|
@ -14,5 +14,7 @@ namespace NzbDrone.Api.Config
|
||||||
public String LongDateFormat { get; set; }
|
public String LongDateFormat { get; set; }
|
||||||
public String TimeFormat { get; set; }
|
public String TimeFormat { get; set; }
|
||||||
public Boolean ShowRelativeDates { get; set; }
|
public Boolean ShowRelativeDates { get; set; }
|
||||||
|
|
||||||
|
public Boolean EnableColorImpairedMode { get; set; }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -282,6 +282,13 @@ namespace NzbDrone.Core.Configuration
|
||||||
set { SetValue("ShowRelativeDates", value); }
|
set { SetValue("ShowRelativeDates", value); }
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public Boolean EnableColorImpairedMode
|
||||||
|
{
|
||||||
|
get { return GetValueBoolean("EnableColorImpairedMode", false); }
|
||||||
|
|
||||||
|
set { SetValue("EnableColorImpairedMode", value); }
|
||||||
|
}
|
||||||
|
|
||||||
public bool CleanupMetadataImages
|
public bool CleanupMetadataImages
|
||||||
{
|
{
|
||||||
get { return GetValueBoolean("CleanupMetadataImages", true); }
|
get { return GetValueBoolean("CleanupMetadataImages", true); }
|
||||||
|
|
|
@ -55,6 +55,7 @@ namespace NzbDrone.Core.Configuration
|
||||||
String LongDateFormat { get; set; }
|
String LongDateFormat { get; set; }
|
||||||
String TimeFormat { get; set; }
|
String TimeFormat { get; set; }
|
||||||
Boolean ShowRelativeDates { get; set; }
|
Boolean ShowRelativeDates { get; set; }
|
||||||
|
Boolean EnableColorImpairedMode { get; set; }
|
||||||
|
|
||||||
//Internal
|
//Internal
|
||||||
Boolean CleanupMetadataImages { get; set; }
|
Boolean CleanupMetadataImages { get; set; }
|
||||||
|
|
|
@ -3,6 +3,7 @@
|
||||||
@import "../Content/Bootstrap/buttons";
|
@import "../Content/Bootstrap/buttons";
|
||||||
@import "../Shared/Styles/clickable";
|
@import "../Shared/Styles/clickable";
|
||||||
@import "../Content/variables";
|
@import "../Content/variables";
|
||||||
|
@import "../Content/mixins";
|
||||||
@import "../Content/Overrides/bootstrap";
|
@import "../Content/Overrides/bootstrap";
|
||||||
|
|
||||||
.calendar {
|
.calendar {
|
||||||
|
@ -147,6 +148,8 @@
|
||||||
.primary {
|
.primary {
|
||||||
border-color : @btn-primary-bg;
|
border-color : @btn-primary-bg;
|
||||||
background-color : @btn-primary-bg;
|
background-color : @btn-primary-bg;
|
||||||
|
|
||||||
|
.color-impaired-background-gradient(90deg, @btn-primary-bg);
|
||||||
}
|
}
|
||||||
|
|
||||||
.info {
|
.info {
|
||||||
|
@ -162,11 +165,15 @@
|
||||||
.warning {
|
.warning {
|
||||||
border-color : @btn-warning-bg;
|
border-color : @btn-warning-bg;
|
||||||
background-color : @btn-warning-bg;
|
background-color : @btn-warning-bg;
|
||||||
|
|
||||||
|
.color-impaired-background-gradient(90deg, @btn-warning-bg);
|
||||||
}
|
}
|
||||||
|
|
||||||
.danger {
|
.danger {
|
||||||
border-color : @btn-danger-bg;
|
border-color : @btn-danger-bg;
|
||||||
background-color : @btn-danger-bg;
|
background-color : @btn-danger-bg;
|
||||||
|
|
||||||
|
.color-impaired-background-gradient(90deg, @btn-danger-bg);
|
||||||
}
|
}
|
||||||
|
|
||||||
.success {
|
.success {
|
||||||
|
@ -187,11 +194,15 @@
|
||||||
.premiere {
|
.premiere {
|
||||||
border-color : @droneTeal;
|
border-color : @droneTeal;
|
||||||
background-color : @droneTeal;
|
background-color : @droneTeal;
|
||||||
|
|
||||||
|
.color-impaired-background-gradient(90deg, @droneTeal);
|
||||||
}
|
}
|
||||||
|
|
||||||
.unmonitored {
|
.unmonitored {
|
||||||
border-color : grey;
|
border-color : grey;
|
||||||
background-color : grey;
|
background-color : grey;
|
||||||
|
|
||||||
|
.color-impaired-background-gradient(45deg, grey);
|
||||||
}
|
}
|
||||||
|
|
||||||
.chart {
|
.chart {
|
||||||
|
|
|
@ -8,4 +8,14 @@
|
||||||
-moz-user-select : none;
|
-moz-user-select : none;
|
||||||
-webkit-user-select : none;
|
-webkit-user-select : none;
|
||||||
-ms-user-select : none;
|
-ms-user-select : none;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.color-impaired-background-gradient(@angle, @color) {
|
||||||
|
.color-impaired-mode & {
|
||||||
|
background : repeating-linear-gradient(@angle,
|
||||||
|
darken(@color, 3%),
|
||||||
|
darken(@color, 3%) 6px,
|
||||||
|
@color 6px,
|
||||||
|
@color 12px);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
|
@ -94,4 +94,31 @@
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</fieldset>
|
</fieldset>
|
||||||
|
|
||||||
|
<fieldset>
|
||||||
|
<legend>Style</legend>
|
||||||
|
|
||||||
|
<div class="form-group">
|
||||||
|
<label class="col-sm-3 control-label">Enable Color-Impaired mode</label>
|
||||||
|
|
||||||
|
<div class="col-sm-8">
|
||||||
|
<div class="input-group">
|
||||||
|
<label class="checkbox toggle well">
|
||||||
|
<input type="checkbox" name="enableColorImpairedMode" />
|
||||||
|
|
||||||
|
<p>
|
||||||
|
<span>Yes</span>
|
||||||
|
<span>No</span>
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<div class="btn btn-primary slide-button"/>
|
||||||
|
</label>
|
||||||
|
|
||||||
|
<span class="help-inline-checkbox">
|
||||||
|
<i class="icon-sonarr-form-info" title="Altered style to allow color-impaired users to better distinguish color coded information"/>
|
||||||
|
</span>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</fieldset>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -0,0 +1,26 @@
|
||||||
|
var $ = require('jquery');
|
||||||
|
var _ = require('underscore');
|
||||||
|
var UiSettingsModel = require('./UiSettingsModel');
|
||||||
|
|
||||||
|
var Controller = {
|
||||||
|
|
||||||
|
appInitializer : function() {
|
||||||
|
|
||||||
|
UiSettingsModel.on('sync', this._updateUiSettings);
|
||||||
|
|
||||||
|
this._updateUiSettings();
|
||||||
|
},
|
||||||
|
|
||||||
|
_updateUiSettings: function() {
|
||||||
|
|
||||||
|
if (UiSettingsModel.get('enableColorImpairedMode')) {
|
||||||
|
$('body').addClass('color-impaired-mode');
|
||||||
|
} else {
|
||||||
|
$('body').removeClass('color-impaired-mode');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
_.bindAll(Controller, 'appInitializer');
|
||||||
|
|
||||||
|
module.exports = Controller;
|
|
@ -11,6 +11,7 @@ var ModalController = require('./Shared/Modal/ModalController');
|
||||||
var ControlPanelController = require('./Shared/ControlPanel/ControlPanelController');
|
var ControlPanelController = require('./Shared/ControlPanel/ControlPanelController');
|
||||||
var serverStatusModel = require('./System/StatusModel');
|
var serverStatusModel = require('./System/StatusModel');
|
||||||
var Tooltip = require('./Shared/Tooltip');
|
var Tooltip = require('./Shared/Tooltip');
|
||||||
|
var UiSettingsController = require('./Shared/UiSettingsController');
|
||||||
|
|
||||||
require('./jQuery/ToTheTop');
|
require('./jQuery/ToTheTop');
|
||||||
require('./Instrumentation/StringFormat');
|
require('./Instrumentation/StringFormat');
|
||||||
|
@ -44,6 +45,8 @@ app.addInitializer(function() {
|
||||||
$('body').addClass('started');
|
$('body').addClass('started');
|
||||||
});
|
});
|
||||||
|
|
||||||
|
app.addInitializer(UiSettingsController.appInitializer);
|
||||||
|
|
||||||
app.addInitializer(function() {
|
app.addInitializer(function() {
|
||||||
var footerText = serverStatusModel.get('version');
|
var footerText = serverStatusModel.get('version');
|
||||||
if (serverStatusModel.get('branch') !== 'master') {
|
if (serverStatusModel.get('branch') !== 'master') {
|
||||||
|
|
Loading…
Reference in New Issue