From d8e7693d8dc6e1200a8309c1e3989c9cdc14768a Mon Sep 17 00:00:00 2001 From: "Jamie.Rees" Date: Fri, 2 Dec 2016 14:51:14 +0000 Subject: [PATCH] Lots of small fixes and tweaks --- .../userManagement/Directives/addUser.html | 10 ++-- .../userManagement/Directives/sidebar.html | 39 ++++++------ .../userManagementController.js | 21 ++----- .../userManagement/userManagementService.js | 19 ++++++ PlexRequests.UI/Content/base.css | 50 ++++++++++++++++ PlexRequests.UI/Content/base.min.css | 2 +- PlexRequests.UI/Content/base.scss | 59 +++++++++++++++++++ PlexRequests.UI/PlexRequests.UI.csproj | 8 +-- .../Views/Admin/Authentication.cshtml | 4 +- .../Views/Admin/CouchPotato.cshtml | 2 +- .../Views/Admin/EmailNotifications.cshtml | 2 +- PlexRequests.UI/Views/Admin/Headphones.cshtml | 2 +- .../Views/Admin/LandingPage.cshtml | 2 +- PlexRequests.UI/Views/Admin/Logs.cshtml | 2 +- .../Views/Admin/NewsletterSettings.cshtml | 2 +- .../Views/Admin/NotificationSettings.cshtml | 2 +- PlexRequests.UI/Views/Admin/Plex.cshtml | 2 +- .../Admin/PushbulletNotifications.cshtml | 2 +- .../Views/Admin/PushoverNotifications.cshtml | 2 +- .../Views/Admin/SchedulerSettings.cshtml | 2 +- PlexRequests.UI/Views/Admin/Settings.cshtml | 2 +- PlexRequests.UI/Views/Admin/Sickrage.cshtml | 2 +- .../Views/Admin/SlackNotifications.cshtml | 2 +- PlexRequests.UI/Views/Admin/Sonarr.cshtml | 2 +- .../RequestFaultQueue.cshtml | 2 +- .../{Admin => Shared/Partial}/_Sidebar.cshtml | 1 + .../{Admin => SystemStatus}/Status.cshtml | 2 +- .../Views/UserManagement/Index.cshtml | 3 - .../UserManagementSettings.cshtml | 2 +- 29 files changed, 185 insertions(+), 67 deletions(-) rename PlexRequests.UI/Views/{Admin => FaultQueue}/RequestFaultQueue.cshtml (98%) rename PlexRequests.UI/Views/{Admin => Shared/Partial}/_Sidebar.cshtml (93%) rename PlexRequests.UI/Views/{Admin => SystemStatus}/Status.cshtml (98%) rename PlexRequests.UI/Views/{Admin => UserManagementSettings}/UserManagementSettings.cshtml (98%) diff --git a/PlexRequests.UI/Content/app/userManagement/Directives/addUser.html b/PlexRequests.UI/Content/app/userManagement/Directives/addUser.html index 8b329afab..2990de80c 100644 --- a/PlexRequests.UI/Content/app/userManagement/Directives/addUser.html +++ b/PlexRequests.UI/Content/app/userManagement/Directives/addUser.html @@ -9,20 +9,22 @@
-

Permissions:

+
+

Permissions:

+

Features:

+
+ ng-checked="permission.selected" ng-model="permission.selected" type="checkbox" value="{{permission.value}}"/>
-

Features:

+ ng-checked="f.selected" ng-model="f.selected" type="checkbox" value="{{f.value}}"/>
diff --git a/PlexRequests.UI/Content/app/userManagement/Directives/sidebar.html b/PlexRequests.UI/Content/app/userManagement/Directives/sidebar.html index c4d12e8ac..bb38289d1 100644 --- a/PlexRequests.UI/Content/app/userManagement/Directives/sidebar.html +++ b/PlexRequests.UI/Content/app/userManagement/Directives/sidebar.html @@ -18,26 +18,29 @@
+
+
+ Modify Permissions: + - Modify Permissions: - - -
- - -
- - Modify Features: - -
- - -
- - Email Address -
- +
+ + +
+
+
+ Modify Features: + +
+ + +
+
+ Email Address +
+ +
Alias
diff --git a/PlexRequests.UI/Content/app/userManagement/userManagementController.js b/PlexRequests.UI/Content/app/userManagement/userManagementController.js index e5ab7fd01..65da53bc7 100644 --- a/PlexRequests.UI/Content/app/userManagement/userManagementController.js +++ b/PlexRequests.UI/Content/app/userManagement/userManagementController.js @@ -21,12 +21,6 @@ $scope.hideColumns = false; - - $scope.error = { - error: false, - errorMessage: "" - }; - var ReadOnlyPermission = "Read Only User"; var open = false; @@ -64,24 +58,18 @@ // Create a user, do some validation too $scope.addUser = function () { if (!$scope.user.username || !$scope.user.password) { - $scope.error.error = true; - $scope.error.errorMessage = "Please provide a correct username and password"; - generateNotify($scope.error.errorMessage, 'warning'); + generateNotify("Please provide a username and password", 'warning'); return; } if ($scope.selectedPermissions.length === 0) { - $scope.error.error = true; - $scope.error.errorMessage = "Please select a permission"; - generateNotify($scope.error.errorMessage, 'warning'); + generateNotify("Please select a permission", 'warning'); return; } var hasReadOnly = $scope.selectedPermissions.indexOf(ReadOnlyPermission) !== -1; if (hasReadOnly) { if ($scope.selectedPermissions.length > 1) { - $scope.error.error = true; - $scope.error.errorMessage = "Cannot have the " + ReadOnlyPermission + " permission with other permissions."; - generateNotify($scope.error.errorMessage, 'danger'); + generateNotify("Cannot have the " + ReadOnlyPermission + " permission with other permissions.", 'danger'); return; } } @@ -89,8 +77,7 @@ userManagementService.addUser($scope.user, $scope.selectedPermissions, $scope.selectedFeatures) .then(function (data) { if (data.message) { - $scope.error.error = true; - $scope.error.errorMessage = data.message; + generateNotify(data.message, 'warning'); } else { $scope.users.push(data.data); // Push the new user into the array to update the DOM $scope.user = {}; diff --git a/PlexRequests.UI/Content/app/userManagement/userManagementService.js b/PlexRequests.UI/Content/app/userManagement/userManagementService.js index 83c356846..8fb82eebe 100644 --- a/PlexRequests.UI/Content/app/userManagement/userManagementService.js +++ b/PlexRequests.UI/Content/app/userManagement/userManagementService.js @@ -16,6 +16,13 @@ return null; } + if (!isArray(permissions)) { + permissions = []; + } + if (!isArray(features)) { + features = []; + } + var url = createBaseUrl(getBaseUrl(), '/usermanagement/createuser'); return $http({ @@ -38,6 +45,14 @@ var updateUser = function (id, permissions, features, alias, email) { + if (!isArray(permissions)) { + permissions = []; + } + if (!isArray(features)) { + features = []; + } + + var url = createBaseUrl(getBaseUrl(), '/usermanagement/updateUser'); return $http({ url: url, @@ -69,6 +84,10 @@ return $('#baseUrl').text(); } + function isArray(obj) { + return !!obj && Array === obj.constructor; + } + angular.module('PlexRequests').factory('userManagementService', ["$http", userManagementService]); }()); \ No newline at end of file diff --git a/PlexRequests.UI/Content/base.css b/PlexRequests.UI/Content/base.css index 5623b9155..deae5b1f4 100644 --- a/PlexRequests.UI/Content/base.css +++ b/PlexRequests.UI/Content/base.css @@ -56,6 +56,17 @@ label { margin-bottom: 0.5rem !important; font-size: 16px !important; } +.small-label { + display: inline-block !important; + margin-bottom: 0.5rem !important; + font-size: 11px !important; } + +.small-checkbox { + min-height: 0 !important; } + +.round-checkbox { + border-radius: 8px; } + .nav-tabs > li { font-size: 13px; line-height: 21px; } @@ -294,6 +305,45 @@ label { text-align: center; line-height: 13px; } +.small-checkbox label { + display: inline-block; + cursor: pointer; + position: relative; + padding-left: 25px; + margin-right: 15px; + font-size: 13px; + margin-bottom: 10px; } + +.small-checkbox label:before { + content: ""; + display: inline-block; + width: 18px; + height: 18px; + margin-right: 10px; + position: absolute; + left: 0; + bottom: 1px; + border: 2px solid #eee; + border-radius: 8px; + min-height: 0px !important; } + +.small-checkbox input[type=checkbox] { + display: none; } + +.small-checkbox input[type=checkbox]:checked + label:before { + content: "\2713"; + font-size: 13px; + color: #fafafa; + text-align: center; + line-height: 13px; } + +.small-checkbox label { + min-height: 0 !important; + padding-left: 20px; + margin-bottom: 0; + font-weight: normal; + cursor: pointer; } + .input-group-sm { padding-top: 2px; padding-bottom: 2px; } diff --git a/PlexRequests.UI/Content/base.min.css b/PlexRequests.UI/Content/base.min.css index 27ab3b50b..9bd570797 100644 --- a/PlexRequests.UI/Content/base.min.css +++ b/PlexRequests.UI/Content/base.min.css @@ -1 +1 @@ -@media(min-width:768px){.row{position:relative;}.bottom-align-text{position:absolute;bottom:0;right:0;}.landing-block .media{max-width:450px;}}@media(max-width:48em){.home{padding-top:1rem;}}@media(min-width:48em){.home{padding-top:4rem;}}.navbar-default .navbar-nav>.active>a,.navbar-default .navbar-nav>.active>a:hover,.navbar-default .navbar-nav>.active>a:focus{color:#fff;}hr{border:1px dashed #777;}.btn{border-radius:.25rem !important;}.btn-group-separated .btn,.btn-group-separated .btn+.btn{margin-left:3px;}.multiSelect{background-color:#4e5d6c;}.form-control-custom{background-color:#4e5d6c !important;color:#fff !important;border-radius:0;box-shadow:0 0 0 !important;}h1{font-size:3.5rem !important;font-weight:600 !important;}.request-title{margin-top:0 !important;font-size:1.9rem !important;}p{font-size:1.1rem !important;}label{display:inline-block !important;margin-bottom:.5rem !important;font-size:16px !important;}.nav-tabs>li{font-size:13px;line-height:21px;}.nav-tabs>li.active>a,.nav-tabs>li.active>a:hover,.nav-tabs>li.active>a:focus{background:#4e5d6c;}.nav-tabs>li>a>.fa{padding:3px 5px 3px 3px;}.nav-tabs>li.nav-tab-right{float:right;}.nav-tabs>li.nav-tab-right a{margin-right:0;margin-left:2px;}.nav-tabs>li.nav-tab-icononly .fa{padding:3px;}.navbar .nav a .fa,.dropdown-menu a .fa{font-size:130%;top:1px;position:relative;display:inline-block;margin-right:5px;}.dropdown-menu a .fa{top:2px;}.btn-danger-outline{color:#d9534f !important;background-color:transparent;background-image:none;border-color:#d9534f !important;}.btn-danger-outline:focus,.btn-danger-outline.focus,.btn-danger-outline:active,.btn-danger-outline.active,.btn-danger-outline:hover,.open>.btn-danger-outline.dropdown-toggle{color:#fff !important;background-color:#d9534f !important;border-color:#d9534f !important;}.btn-primary-outline{color:#ff761b !important;background-color:transparent;background-image:none;border-color:#ff761b !important;}.btn-primary-outline:focus,.btn-primary-outline.focus,.btn-primary-outline:active,.btn-primary-outline.active,.btn-primary-outline:hover,.open>.btn-primary-outline.dropdown-toggle{color:#fff !important;background-color:#df691a !important;border-color:#df691a !important;}.btn-info-outline{color:#5bc0de !important;background-color:transparent;background-image:none;border-color:#5bc0de !important;}.btn-info-outline:focus,.btn-info-outline.focus,.btn-info-outline:active,.btn-info-outline.active,.btn-info-outline:hover,.open>.btn-info-outline.dropdown-toggle{color:#fff !important;background-color:#5bc0de !important;border-color:#5bc0de !important;}.btn-warning-outline{color:#f0ad4e !important;background-color:transparent;background-image:none;border-color:#f0ad4e !important;}.btn-warning-outline:focus,.btn-warning-outline.focus,.btn-warning-outline:active,.btn-warning-outline.active,.btn-warning-outline:hover,.open>.btn-warning-outline.dropdown-toggle{color:#fff !important;background-color:#f0ad4e !important;border-color:#f0ad4e !important;}.btn-success-outline{color:#5cb85c !important;background-color:transparent;background-image:none;border-color:#5cb85c !important;}.btn-success-outline:focus,.btn-success-outline.focus,.btn-success-outline:active,.btn-success-outline.active,.btn-success-outline:hover,.open>.btn-success-outline.dropdown-toggle{color:#fff !important;background-color:#5cb85c !important;border-color:#5cb85c !important;}#movieList .mix{display:none;}#tvList .mix{display:none;}.scroll-top-wrapper{position:fixed;opacity:0;visibility:hidden;overflow:hidden;text-align:center;z-index:99999999;background-color:#4e5d6c;color:#eee;width:50px;height:48px;line-height:48px;right:30px;bottom:30px;padding-top:2px;border-top-left-radius:10px;border-top-right-radius:10px;border-bottom-right-radius:10px;border-bottom-left-radius:10px;-webkit-transition:all .5s ease-in-out;-moz-transition:all .5s ease-in-out;-ms-transition:all .5s ease-in-out;-o-transition:all .5s ease-in-out;transition:all .5s ease-in-out;}.scroll-top-wrapper:hover{background-color:#637689;}.scroll-top-wrapper.show{visibility:visible;cursor:pointer;opacity:1;}.scroll-top-wrapper i.fa{line-height:inherit;}.no-search-results{text-align:center;}.no-search-results .no-search-results-icon{font-size:10em;color:#4e5d6c;}.no-search-results .no-search-results-text{margin:20px 0;color:#ccc;}.form-control-search{padding:13px 105px 13px 16px;height:100%;}.form-control-withbuttons{padding-right:105px;}.input-group-addon .btn-group{position:absolute;right:45px;z-index:3;top:10px;box-shadow:0 0 0;}.input-group-addon .btn-group .btn{border:1px solid rgba(255,255,255,.7) !important;padding:3px 12px;color:rgba(255,255,255,.7) !important;}.btn-split .btn{border-radius:0 !important;}.btn-split .btn:not(.dropdown-toggle){border-radius:.25rem 0 0 .25rem !important;}.btn-split .btn.dropdown-toggle{border-radius:0 .25rem .25rem 0 !important;padding:12px 8px;}#updateAvailable{background-color:#df691a;text-align:center;font-size:15px;padding:3px 0;}#cacherRunning{background-color:#4e5d6c;text-align:center;font-size:15px;padding:3px 0;}.checkbox label{display:inline-block;cursor:pointer;position:relative;padding-left:25px;margin-right:15px;font-size:13px;margin-bottom:10px;}.checkbox label:before{content:"";display:inline-block;width:18px;height:18px;margin-right:10px;position:absolute;left:0;bottom:1px;border:2px solid #eee;border-radius:3px;}.checkbox input[type=checkbox]{display:none;}.checkbox input[type=checkbox]:checked+label:before{content:"✓";font-size:13px;color:#fafafa;text-align:center;line-height:13px;}.input-group-sm{padding-top:2px;padding-bottom:2px;}.tab-pane .form-horizontal .form-group{margin-right:15px;margin-left:15px;}.bootstrap-datetimepicker-widget.dropdown-menu{background-color:#4e5d6c;}.bootstrap-datetimepicker-widget.dropdown-menu.bottom:after{border-bottom:6px solid #4e5d6c !important;}.bootstrap-datetimepicker-widget table td.active,.bootstrap-datetimepicker-widget table td.active:hover{color:#fff !important;}.landing-header{display:block;margin:60px auto;}.landing-block{background:#2f2f2f !important;padding:5px;}.landing-block .media{margin:30px auto;max-width:450px;}.landing-block .media .media-left{display:inline-block;float:left;width:70px;}.landing-block .media .media-left i.fa{font-size:3em;}.landing-title{font-weight:bold;}.checkbox-custom{margin-top:0 !important;margin-bottom:0 !important;}.tooltip_templates{display:none;}.shadow{-moz-box-shadow:3px 3px 5px 6px #191919;-webkit-box-shadow:3px 3px 5px 6px #191919;box-shadow:3px 3px 5px 6px #191919;}.img-circle{border-radius:50%;}#wrapper{padding-left:0;-webkit-transition:all .5s ease;-moz-transition:all .5s ease;-o-transition:all .5s ease;transition:all .5s ease;}#wrapper.toggled{padding-right:250px;}#sidebar-wrapper{z-index:1000;position:fixed;right:250px;width:0;height:100%;margin-right:-250px;overflow-y:auto;background:#4e5d6c;padding-left:0;-webkit-transition:all .5s ease;-moz-transition:all .5s ease;-o-transition:all .5s ease;transition:all .5s ease;}#wrapper.toggled #sidebar-wrapper{width:500px;}#page-content-wrapper{width:100%;position:absolute;padding:15px;}#wrapper.toggled #page-content-wrapper{position:absolute;margin-left:-250px;}.sidebar-nav{position:absolute;top:0;width:500px;margin:0;padding-left:0;list-style:none;}.sidebar-nav li{text-indent:20px;line-height:40px;}.sidebar-nav li a{display:block;text-decoration:none;color:#999;}.sidebar-nav li a:hover{text-decoration:none;color:#fff;background:rgba(255,255,255,.2);}.sidebar-nav li a:active,.sidebar-nav li a:focus{text-decoration:none;}.sidebar-nav>.sidebar-brand{height:65px;font-size:18px;line-height:60px;}.sidebar-nav>.sidebar-brand a{color:#999;}.sidebar-nav>.sidebar-brand a:hover{color:#fff;background:none;}@media(min-width:768px){#wrapper{padding-right:250px;}#wrapper.toggled{padding-right:0;}#sidebar-wrapper{width:500px;}#wrapper.toggled #sidebar-wrapper{width:0;}#page-content-wrapper{padding:20px;position:relative;}#wrapper.toggled #page-content-wrapper{position:relative;margin-right:0;}}#lightbox{background-color:#808080;filter:alpha(opacity=50);opacity:.5;-moz-opacity:.5;top:0;left:0;z-index:20;height:100%;width:100%;background-repeat:no-repeat;background-position:center;position:absolute;} \ No newline at end of file +@media(min-width:768px){.row{position:relative;}.bottom-align-text{position:absolute;bottom:0;right:0;}.landing-block .media{max-width:450px;}}@media(max-width:48em){.home{padding-top:1rem;}}@media(min-width:48em){.home{padding-top:4rem;}}.navbar-default .navbar-nav>.active>a,.navbar-default .navbar-nav>.active>a:hover,.navbar-default .navbar-nav>.active>a:focus{color:#fff;}hr{border:1px dashed #777;}.btn{border-radius:.25rem !important;}.btn-group-separated .btn,.btn-group-separated .btn+.btn{margin-left:3px;}.multiSelect{background-color:#4e5d6c;}.form-control-custom{background-color:#4e5d6c !important;color:#fff !important;border-radius:0;box-shadow:0 0 0 !important;}h1{font-size:3.5rem !important;font-weight:600 !important;}.request-title{margin-top:0 !important;font-size:1.9rem !important;}p{font-size:1.1rem !important;}label{display:inline-block !important;margin-bottom:.5rem !important;font-size:16px !important;}.small-label{display:inline-block !important;margin-bottom:.5rem !important;font-size:11px !important;}.small-checkbox{min-height:0 !important;}.round-checkbox{border-radius:8px;}.nav-tabs>li{font-size:13px;line-height:21px;}.nav-tabs>li.active>a,.nav-tabs>li.active>a:hover,.nav-tabs>li.active>a:focus{background:#4e5d6c;}.nav-tabs>li>a>.fa{padding:3px 5px 3px 3px;}.nav-tabs>li.nav-tab-right{float:right;}.nav-tabs>li.nav-tab-right a{margin-right:0;margin-left:2px;}.nav-tabs>li.nav-tab-icononly .fa{padding:3px;}.navbar .nav a .fa,.dropdown-menu a .fa{font-size:130%;top:1px;position:relative;display:inline-block;margin-right:5px;}.dropdown-menu a .fa{top:2px;}.btn-danger-outline{color:#d9534f !important;background-color:transparent;background-image:none;border-color:#d9534f !important;}.btn-danger-outline:focus,.btn-danger-outline.focus,.btn-danger-outline:active,.btn-danger-outline.active,.btn-danger-outline:hover,.open>.btn-danger-outline.dropdown-toggle{color:#fff !important;background-color:#d9534f !important;border-color:#d9534f !important;}.btn-primary-outline{color:#ff761b !important;background-color:transparent;background-image:none;border-color:#ff761b !important;}.btn-primary-outline:focus,.btn-primary-outline.focus,.btn-primary-outline:active,.btn-primary-outline.active,.btn-primary-outline:hover,.open>.btn-primary-outline.dropdown-toggle{color:#fff !important;background-color:#df691a !important;border-color:#df691a !important;}.btn-info-outline{color:#5bc0de !important;background-color:transparent;background-image:none;border-color:#5bc0de !important;}.btn-info-outline:focus,.btn-info-outline.focus,.btn-info-outline:active,.btn-info-outline.active,.btn-info-outline:hover,.open>.btn-info-outline.dropdown-toggle{color:#fff !important;background-color:#5bc0de !important;border-color:#5bc0de !important;}.btn-warning-outline{color:#f0ad4e !important;background-color:transparent;background-image:none;border-color:#f0ad4e !important;}.btn-warning-outline:focus,.btn-warning-outline.focus,.btn-warning-outline:active,.btn-warning-outline.active,.btn-warning-outline:hover,.open>.btn-warning-outline.dropdown-toggle{color:#fff !important;background-color:#f0ad4e !important;border-color:#f0ad4e !important;}.btn-success-outline{color:#5cb85c !important;background-color:transparent;background-image:none;border-color:#5cb85c !important;}.btn-success-outline:focus,.btn-success-outline.focus,.btn-success-outline:active,.btn-success-outline.active,.btn-success-outline:hover,.open>.btn-success-outline.dropdown-toggle{color:#fff !important;background-color:#5cb85c !important;border-color:#5cb85c !important;}#movieList .mix{display:none;}#tvList .mix{display:none;}.scroll-top-wrapper{position:fixed;opacity:0;visibility:hidden;overflow:hidden;text-align:center;z-index:99999999;background-color:#4e5d6c;color:#eee;width:50px;height:48px;line-height:48px;right:30px;bottom:30px;padding-top:2px;border-top-left-radius:10px;border-top-right-radius:10px;border-bottom-right-radius:10px;border-bottom-left-radius:10px;-webkit-transition:all .5s ease-in-out;-moz-transition:all .5s ease-in-out;-ms-transition:all .5s ease-in-out;-o-transition:all .5s ease-in-out;transition:all .5s ease-in-out;}.scroll-top-wrapper:hover{background-color:#637689;}.scroll-top-wrapper.show{visibility:visible;cursor:pointer;opacity:1;}.scroll-top-wrapper i.fa{line-height:inherit;}.no-search-results{text-align:center;}.no-search-results .no-search-results-icon{font-size:10em;color:#4e5d6c;}.no-search-results .no-search-results-text{margin:20px 0;color:#ccc;}.form-control-search{padding:13px 105px 13px 16px;height:100%;}.form-control-withbuttons{padding-right:105px;}.input-group-addon .btn-group{position:absolute;right:45px;z-index:3;top:10px;box-shadow:0 0 0;}.input-group-addon .btn-group .btn{border:1px solid rgba(255,255,255,.7) !important;padding:3px 12px;color:rgba(255,255,255,.7) !important;}.btn-split .btn{border-radius:0 !important;}.btn-split .btn:not(.dropdown-toggle){border-radius:.25rem 0 0 .25rem !important;}.btn-split .btn.dropdown-toggle{border-radius:0 .25rem .25rem 0 !important;padding:12px 8px;}#updateAvailable{background-color:#df691a;text-align:center;font-size:15px;padding:3px 0;}#cacherRunning{background-color:#4e5d6c;text-align:center;font-size:15px;padding:3px 0;}.checkbox label{display:inline-block;cursor:pointer;position:relative;padding-left:25px;margin-right:15px;font-size:13px;margin-bottom:10px;}.checkbox label:before{content:"";display:inline-block;width:18px;height:18px;margin-right:10px;position:absolute;left:0;bottom:1px;border:2px solid #eee;border-radius:3px;}.checkbox input[type=checkbox]{display:none;}.checkbox input[type=checkbox]:checked+label:before{content:"✓";font-size:13px;color:#fafafa;text-align:center;line-height:13px;}.small-checkbox label{display:inline-block;cursor:pointer;position:relative;padding-left:25px;margin-right:15px;font-size:13px;margin-bottom:10px;}.small-checkbox label:before{content:"";display:inline-block;width:18px;height:18px;margin-right:10px;position:absolute;left:0;bottom:1px;border:2px solid #eee;border-radius:8px;min-height:0 !important;}.small-checkbox input[type=checkbox]{display:none;}.small-checkbox input[type=checkbox]:checked+label:before{content:"✓";font-size:13px;color:#fafafa;text-align:center;line-height:13px;}.small-checkbox label{min-height:0 !important;padding-left:20px;margin-bottom:0;font-weight:normal;cursor:pointer;}.input-group-sm{padding-top:2px;padding-bottom:2px;}.tab-pane .form-horizontal .form-group{margin-right:15px;margin-left:15px;}.bootstrap-datetimepicker-widget.dropdown-menu{background-color:#4e5d6c;}.bootstrap-datetimepicker-widget.dropdown-menu.bottom:after{border-bottom:6px solid #4e5d6c !important;}.bootstrap-datetimepicker-widget table td.active,.bootstrap-datetimepicker-widget table td.active:hover{color:#fff !important;}.landing-header{display:block;margin:60px auto;}.landing-block{background:#2f2f2f !important;padding:5px;}.landing-block .media{margin:30px auto;max-width:450px;}.landing-block .media .media-left{display:inline-block;float:left;width:70px;}.landing-block .media .media-left i.fa{font-size:3em;}.landing-title{font-weight:bold;}.checkbox-custom{margin-top:0 !important;margin-bottom:0 !important;}.tooltip_templates{display:none;}.shadow{-moz-box-shadow:3px 3px 5px 6px #191919;-webkit-box-shadow:3px 3px 5px 6px #191919;box-shadow:3px 3px 5px 6px #191919;}.img-circle{border-radius:50%;}#wrapper{padding-left:0;-webkit-transition:all .5s ease;-moz-transition:all .5s ease;-o-transition:all .5s ease;transition:all .5s ease;}#wrapper.toggled{padding-right:250px;}#sidebar-wrapper{z-index:1000;position:fixed;right:250px;width:0;height:100%;margin-right:-250px;overflow-y:auto;background:#4e5d6c;padding-left:0;-webkit-transition:all .5s ease;-moz-transition:all .5s ease;-o-transition:all .5s ease;transition:all .5s ease;}#wrapper.toggled #sidebar-wrapper{width:500px;}#page-content-wrapper{width:100%;position:absolute;padding:15px;}#wrapper.toggled #page-content-wrapper{position:absolute;margin-left:-250px;}.sidebar-nav{position:absolute;top:0;width:500px;margin:0;padding-left:0;list-style:none;}.sidebar-nav li{text-indent:20px;line-height:40px;}.sidebar-nav li a{display:block;text-decoration:none;color:#999;}.sidebar-nav li a:hover{text-decoration:none;color:#fff;background:rgba(255,255,255,.2);}.sidebar-nav li a:active,.sidebar-nav li a:focus{text-decoration:none;}.sidebar-nav>.sidebar-brand{height:65px;font-size:18px;line-height:60px;}.sidebar-nav>.sidebar-brand a{color:#999;}.sidebar-nav>.sidebar-brand a:hover{color:#fff;background:none;}@media(min-width:768px){#wrapper{padding-right:250px;}#wrapper.toggled{padding-right:0;}#sidebar-wrapper{width:500px;}#wrapper.toggled #sidebar-wrapper{width:0;}#page-content-wrapper{padding:20px;position:relative;}#wrapper.toggled #page-content-wrapper{position:relative;margin-right:0;}}#lightbox{background-color:#808080;filter:alpha(opacity=50);opacity:.5;-moz-opacity:.5;top:0;left:0;z-index:20;height:100%;width:100%;background-repeat:no-repeat;background-position:center;position:absolute;} \ No newline at end of file diff --git a/PlexRequests.UI/Content/base.scss b/PlexRequests.UI/Content/base.scss index d04464bc8..6d58a2d8c 100644 --- a/PlexRequests.UI/Content/base.scss +++ b/PlexRequests.UI/Content/base.scss @@ -86,6 +86,21 @@ label { margin-bottom: .5rem $i; font-size: 16px $i; } +.small-label { + display: inline-block $i; + margin-bottom: .5rem $i; + font-size: 11px $i; +} + +.small-checkbox{ + min-height:0 $i; + +} + + +.round-checkbox { + border-radius:8px; +} .nav-tabs > li { font-size: 13px; @@ -369,6 +384,50 @@ $border-radius: 10px; line-height: 13px; } +.small-checkbox label { + display: inline-block; + cursor: pointer; + position: relative; + padding-left: 25px; + margin-right: 15px; + font-size: 13px; + margin-bottom: 10px; +} + +.small-checkbox label:before { + content: ""; + display: inline-block; + width: 18px; + height: 18px; + margin-right: 10px; + position: absolute; + left: 0; + bottom: 1px; + border: 2px solid #eee; + border-radius: 8px; + min-height:0px $i; +} + +.small-checkbox input[type=checkbox] { + display: none; +} + +.small-checkbox input[type=checkbox]:checked + label:before { + content: "\2713"; + font-size: 13px; + color: #fafafa; + text-align: center; + line-height: 13px; +} + +.small-checkbox label { + min-height: 0 $i; + padding-left: 20px; + margin-bottom: 0; + font-weight: normal; + cursor: pointer; +} + .input-group-sm { padding-top: 2px; padding-bottom: 2px; diff --git a/PlexRequests.UI/PlexRequests.UI.csproj b/PlexRequests.UI/PlexRequests.UI.csproj index f5e804c4d..e8489f12c 100644 --- a/PlexRequests.UI/PlexRequests.UI.csproj +++ b/PlexRequests.UI/PlexRequests.UI.csproj @@ -685,7 +685,7 @@ Always - + Always @@ -706,7 +706,7 @@ Always - + Always @@ -751,10 +751,10 @@ PreserveNewest - + Always - + Always diff --git a/PlexRequests.UI/Views/Admin/Authentication.cshtml b/PlexRequests.UI/Views/Admin/Authentication.cshtml index b62044010..f91826003 100644 --- a/PlexRequests.UI/Views/Admin/Authentication.cshtml +++ b/PlexRequests.UI/Views/Admin/Authentication.cshtml @@ -1,5 +1,5 @@ @using PlexRequests.UI.Helpers -@Html.Partial("_Sidebar") +@Html.Partial("Shared/Partial/_Sidebar") @{ var baseUrl = Html.GetBaseUrl(); @@ -50,7 +50,7 @@
- User Management + User Management

diff --git a/PlexRequests.UI/Views/Admin/CouchPotato.cshtml b/PlexRequests.UI/Views/Admin/CouchPotato.cshtml index 176ea202c..2c24670ba 100644 --- a/PlexRequests.UI/Views/Admin/CouchPotato.cshtml +++ b/PlexRequests.UI/Views/Admin/CouchPotato.cshtml @@ -1,6 +1,6 @@ @using PlexRequests.UI.Helpers @inherits Nancy.ViewEngines.Razor.NancyRazorViewBase -@Html.Partial("_Sidebar") +@Html.Partial("Shared/Partial/_Sidebar") @{ int port; if (Model.Port == 0) diff --git a/PlexRequests.UI/Views/Admin/EmailNotifications.cshtml b/PlexRequests.UI/Views/Admin/EmailNotifications.cshtml index 2a7f788b7..ff71da313 100644 --- a/PlexRequests.UI/Views/Admin/EmailNotifications.cshtml +++ b/PlexRequests.UI/Views/Admin/EmailNotifications.cshtml @@ -2,7 +2,7 @@ @using PlexRequests.Core.Models @using PlexRequests.UI.Helpers @inherits Nancy.ViewEngines.Razor.NancyRazorViewBase -@Html.Partial("_Sidebar") +@Html.Partial("Shared/Partial/_Sidebar") @{ int port; if (Model.EmailPort == 0) diff --git a/PlexRequests.UI/Views/Admin/Headphones.cshtml b/PlexRequests.UI/Views/Admin/Headphones.cshtml index 1938bdceb..1b11c3500 100644 --- a/PlexRequests.UI/Views/Admin/Headphones.cshtml +++ b/PlexRequests.UI/Views/Admin/Headphones.cshtml @@ -1,5 +1,5 @@ @using PlexRequests.UI.Helpers -@Html.Partial("_Sidebar") +@Html.Partial("Shared/Partial/_Sidebar") @{ int port; if (Model.Port == 0) diff --git a/PlexRequests.UI/Views/Admin/LandingPage.cshtml b/PlexRequests.UI/Views/Admin/LandingPage.cshtml index 9861ab792..c002b292e 100644 --- a/PlexRequests.UI/Views/Admin/LandingPage.cshtml +++ b/PlexRequests.UI/Views/Admin/LandingPage.cshtml @@ -1,5 +1,5 @@ @using PlexRequests.UI.Helpers -@Html.Partial("_Sidebar") +@Html.Partial("Shared/Partial/_Sidebar") @inherits Nancy.ViewEngines.Razor.NancyRazorViewBase @Html.LoadDateTimePickerAsset()
diff --git a/PlexRequests.UI/Views/Admin/Logs.cshtml b/PlexRequests.UI/Views/Admin/Logs.cshtml index 233b703c2..d38658420 100644 --- a/PlexRequests.UI/Views/Admin/Logs.cshtml +++ b/PlexRequests.UI/Views/Admin/Logs.cshtml @@ -1,5 +1,5 @@ @using PlexRequests.UI.Helpers -@Html.Partial("_Sidebar") +@Html.Partial("Shared/Partial/_Sidebar") @Html.LoadTableAssets() @{ diff --git a/PlexRequests.UI/Views/Admin/NewsletterSettings.cshtml b/PlexRequests.UI/Views/Admin/NewsletterSettings.cshtml index 25c54b211..8ee4ce285 100644 --- a/PlexRequests.UI/Views/Admin/NewsletterSettings.cshtml +++ b/PlexRequests.UI/Views/Admin/NewsletterSettings.cshtml @@ -2,7 +2,7 @@ @using PlexRequests.Core.Models @using PlexRequests.UI.Helpers @inherits Nancy.ViewEngines.Razor.NancyRazorViewBase -@Html.Partial("_Sidebar") +@Html.Partial("Shared/Partial/_Sidebar")
diff --git a/PlexRequests.UI/Views/Admin/NotificationSettings.cshtml b/PlexRequests.UI/Views/Admin/NotificationSettings.cshtml index c2de7c7a8..18396e1f6 100644 --- a/PlexRequests.UI/Views/Admin/NotificationSettings.cshtml +++ b/PlexRequests.UI/Views/Admin/NotificationSettings.cshtml @@ -2,7 +2,7 @@ @using PlexRequests.Core.Models @using PlexRequests.UI.Helpers @inherits Nancy.ViewEngines.Razor.NancyRazorViewBase -@Html.Partial("_Sidebar") +@Html.Partial("Shared/Partial/_Sidebar")
diff --git a/PlexRequests.UI/Views/Admin/Plex.cshtml b/PlexRequests.UI/Views/Admin/Plex.cshtml index c2ce7be25..9850c1da8 100644 --- a/PlexRequests.UI/Views/Admin/Plex.cshtml +++ b/PlexRequests.UI/Views/Admin/Plex.cshtml @@ -1,6 +1,6 @@ @using PlexRequests.UI.Helpers @inherits Nancy.ViewEngines.Razor.NancyRazorViewBase -@Html.Partial("_Sidebar") +@Html.Partial("Shared/Partial/_Sidebar") @{ int port; if (Model.Port == 0) diff --git a/PlexRequests.UI/Views/Admin/PushbulletNotifications.cshtml b/PlexRequests.UI/Views/Admin/PushbulletNotifications.cshtml index 57d64329d..36d8dae24 100644 --- a/PlexRequests.UI/Views/Admin/PushbulletNotifications.cshtml +++ b/PlexRequests.UI/Views/Admin/PushbulletNotifications.cshtml @@ -1,5 +1,5 @@ @using PlexRequests.UI.Helpers -@Html.Partial("_Sidebar") +@Html.Partial("Shared/Partial/_Sidebar")
diff --git a/PlexRequests.UI/Views/Admin/PushoverNotifications.cshtml b/PlexRequests.UI/Views/Admin/PushoverNotifications.cshtml index 545812ce3..bd4d6de81 100644 --- a/PlexRequests.UI/Views/Admin/PushoverNotifications.cshtml +++ b/PlexRequests.UI/Views/Admin/PushoverNotifications.cshtml @@ -1,5 +1,5 @@ @using PlexRequests.UI.Helpers -@Html.Partial("_Sidebar") +@Html.Partial("Shared/Partial/_Sidebar")
diff --git a/PlexRequests.UI/Views/Admin/SchedulerSettings.cshtml b/PlexRequests.UI/Views/Admin/SchedulerSettings.cshtml index 27550f2b7..5f1b8975e 100644 --- a/PlexRequests.UI/Views/Admin/SchedulerSettings.cshtml +++ b/PlexRequests.UI/Views/Admin/SchedulerSettings.cshtml @@ -1,6 +1,6 @@ @using PlexRequests.UI.Helpers @inherits Nancy.ViewEngines.Razor.NancyRazorViewBase -@Html.Partial("_Sidebar") +@Html.Partial("Shared/Partial/_Sidebar")
diff --git a/PlexRequests.UI/Views/Admin/Settings.cshtml b/PlexRequests.UI/Views/Admin/Settings.cshtml index b3ded7f9d..2acd02a22 100644 --- a/PlexRequests.UI/Views/Admin/Settings.cshtml +++ b/PlexRequests.UI/Views/Admin/Settings.cshtml @@ -1,6 +1,6 @@ @using PlexRequests.UI.Helpers @inherits Nancy.ViewEngines.Razor.NancyRazorViewBase -@Html.Partial("_Sidebar") +@Html.Partial("Shared/Partial/_Sidebar") @{ int port; if (Model.Port == 0) diff --git a/PlexRequests.UI/Views/Admin/Sickrage.cshtml b/PlexRequests.UI/Views/Admin/Sickrage.cshtml index a749f25f6..0178b35a1 100644 --- a/PlexRequests.UI/Views/Admin/Sickrage.cshtml +++ b/PlexRequests.UI/Views/Admin/Sickrage.cshtml @@ -1,5 +1,5 @@ @using PlexRequests.UI.Helpers -@Html.Partial("_Sidebar") +@Html.Partial("Shared/Partial/_Sidebar") @{ int port; if (Model.Port == 0) diff --git a/PlexRequests.UI/Views/Admin/SlackNotifications.cshtml b/PlexRequests.UI/Views/Admin/SlackNotifications.cshtml index f24d62691..879834852 100644 --- a/PlexRequests.UI/Views/Admin/SlackNotifications.cshtml +++ b/PlexRequests.UI/Views/Admin/SlackNotifications.cshtml @@ -1,5 +1,5 @@ @using PlexRequests.UI.Helpers -@Html.Partial("_Sidebar") +@Html.Partial("Shared/Partial/_Sidebar")
diff --git a/PlexRequests.UI/Views/Admin/Sonarr.cshtml b/PlexRequests.UI/Views/Admin/Sonarr.cshtml index 388f359e6..04964b2a8 100644 --- a/PlexRequests.UI/Views/Admin/Sonarr.cshtml +++ b/PlexRequests.UI/Views/Admin/Sonarr.cshtml @@ -1,5 +1,5 @@ @using PlexRequests.UI.Helpers -@Html.Partial("_Sidebar") +@Html.Partial("Shared/Partial/_Sidebar") @{ int port; if (Model.Port == 0) diff --git a/PlexRequests.UI/Views/Admin/RequestFaultQueue.cshtml b/PlexRequests.UI/Views/FaultQueue/RequestFaultQueue.cshtml similarity index 98% rename from PlexRequests.UI/Views/Admin/RequestFaultQueue.cshtml rename to PlexRequests.UI/Views/FaultQueue/RequestFaultQueue.cshtml index cb9215334..bf44e6626 100644 --- a/PlexRequests.UI/Views/Admin/RequestFaultQueue.cshtml +++ b/PlexRequests.UI/Views/FaultQueue/RequestFaultQueue.cshtml @@ -1,6 +1,6 @@ @using PlexRequests.UI.Helpers @inherits Nancy.ViewEngines.Razor.NancyRazorViewBase> -@Html.Partial("_Sidebar") +@Html.Partial("Shared/Partial/_Sidebar")
Release Fault Queue diff --git a/PlexRequests.UI/Views/Admin/_Sidebar.cshtml b/PlexRequests.UI/Views/Shared/Partial/_Sidebar.cshtml similarity index 93% rename from PlexRequests.UI/Views/Admin/_Sidebar.cshtml rename to PlexRequests.UI/Views/Shared/Partial/_Sidebar.cshtml index 836fc856f..595a2590e 100644 --- a/PlexRequests.UI/Views/Admin/_Sidebar.cshtml +++ b/PlexRequests.UI/Views/Shared/Partial/_Sidebar.cshtml @@ -5,6 +5,7 @@ @Html.GetSidebarUrl(Context, "/admin", "Plex Request") @Html.GetSidebarUrl(Context, "/admin/landingpage", "Landing Page") @Html.GetSidebarUrl(Context, "/admin/authentication", "Authentication") + @Html.GetSidebarUrl(Context, "/admin/usermanagementsettings", "User Management Settings") @Html.GetSidebarUrl(Context, "/admin/plex", "Plex") @Html.GetSidebarUrl(Context, "/admin/couchpotato", "CouchPotato") @Html.GetSidebarUrl(Context, "/admin/sonarr", "Sonarr") diff --git a/PlexRequests.UI/Views/Admin/Status.cshtml b/PlexRequests.UI/Views/SystemStatus/Status.cshtml similarity index 98% rename from PlexRequests.UI/Views/Admin/Status.cshtml rename to PlexRequests.UI/Views/SystemStatus/Status.cshtml index 93760a064..6b1c65403 100644 --- a/PlexRequests.UI/Views/Admin/Status.cshtml +++ b/PlexRequests.UI/Views/SystemStatus/Status.cshtml @@ -1,6 +1,6 @@ @using PlexRequests.UI.Helpers @inherits Nancy.ViewEngines.Razor.NancyRazorViewBase -@Html.Partial("_Sidebar") +@Html.Partial("Shared/Partial/_Sidebar")
diff --git a/PlexRequests.UI/Views/UserManagement/Index.cshtml b/PlexRequests.UI/Views/UserManagement/Index.cshtml index 3c942f50e..f9eab94a4 100644 --- a/PlexRequests.UI/Views/UserManagement/Index.cshtml +++ b/PlexRequests.UI/Views/UserManagement/Index.cshtml @@ -16,9 +16,6 @@

-
-
-



diff --git a/PlexRequests.UI/Views/Admin/UserManagementSettings.cshtml b/PlexRequests.UI/Views/UserManagementSettings/UserManagementSettings.cshtml similarity index 98% rename from PlexRequests.UI/Views/Admin/UserManagementSettings.cshtml rename to PlexRequests.UI/Views/UserManagementSettings/UserManagementSettings.cshtml index 09e3d94be..0334e86a1 100644 --- a/PlexRequests.UI/Views/Admin/UserManagementSettings.cshtml +++ b/PlexRequests.UI/Views/UserManagementSettings/UserManagementSettings.cshtml @@ -1,6 +1,6 @@ @using PlexRequests.UI.Helpers @inherits Nancy.ViewEngines.Razor.NancyRazorViewBase -@Html.Partial("_Sidebar") +@Html.Partial("Shared/Partial/_Sidebar")