From 2dd56f5bdadfb57436f4be7414c294108a079145 Mon Sep 17 00:00:00 2001 From: snipe Date: Mon, 26 Feb 2018 18:12:48 -0800 Subject: [PATCH 01/24] Backup the .env if BACKUP_ENV is set to true --- .env.example | 1 + config/laravel-backup.php | 1 + 2 files changed, 2 insertions(+) diff --git a/.env.example b/.env.example index 4d2743acb..32d1074ba 100644 --- a/.env.example +++ b/.env.example @@ -105,3 +105,4 @@ APP_TRUSTED_PROXIES=192.168.1.1,10.0.0.1 ALLOW_IFRAMING=false APP_CIPHER=AES-256-CBC GOOGLE_MAPS_API= +BACKUP_ENV=true diff --git a/config/laravel-backup.php b/config/laravel-backup.php index f9c4f45c3..f77a080da 100644 --- a/config/laravel-backup.php +++ b/config/laravel-backup.php @@ -24,6 +24,7 @@ return [ base_path('storage/private_uploads'), base_path('storage/oauth-private.key'), base_path('storage/oauth-public.key'), + (env('BACKUP_ENV')=='true') ? base_path('.env') : '', ], /* From 86242b322c7020819223b1da2d3a803401b77e66 Mon Sep 17 00:00:00 2001 From: Tim F Date: Tue, 27 Feb 2018 17:10:08 -0500 Subject: [PATCH 02/24] Create dark-green.css (#5118) --- public/assets/css/themes/dark-green.css | 145 ++++++++++++++++++++++++ 1 file changed, 145 insertions(+) create mode 100644 public/assets/css/themes/dark-green.css diff --git a/public/assets/css/themes/dark-green.css b/public/assets/css/themes/dark-green.css new file mode 100644 index 000000000..caf5cc761 --- /dev/null +++ b/public/assets/css/themes/dark-green.css @@ -0,0 +1,145 @@ +:root { + --background: #222; + --back-main: #333; + --back-sub: #444; + --header: #18A452; /* Use same as Header picker */ + --text-main: #FFF; + --text-sub: #BBB; +} + +a, a:link, a:visited, .btn-primary.hover { + color: var(--header); +} +#accessoriesTable>tbody>tr>td>nobr>a>i.fa { + color: var(--text-main); +} +#assetsListingTable>tbody>tr>td>nobr>a>i.fa { + color: var(--text-main); +} +#assetsListingTable>tbody>tr.selected>td { + background-color: var(--back-main); +} +.box, .box.box-default { + border-top: 3px solid var(--header); + border-top-color: var(--header); +} +.box-body, .box-footer, .box-header { + background-color: var(--back-sub); + color: var(--text-main); +} +.btn-default{ + background-color: var(--back-main); + color: var(--header); +} +.btn-default:active, .btn-default:focus, .btn-default:hover { + background-color: var(--back-sub); + color: var(--header); +} +.btn-primary, .btn-primary.hover, .btn-primary:active, .btn-primary:hover, .text-blue { + color: var(--text-main)!important; +} +#componentsTable>tbody>tr>td>nobr>a>i.fa { + color: var(--text-main); +} +#consumablesTable>tbody>tr>td>nobr>a>i.fa { + color: var(--text-main); +} +.content-wrapper { + background-color: var(--background); +} +#create-form>div>div>div>span.input-group-addon { + background-color: var(--back-sub); + color: var(--text-main); +} +#create-form>div>div>div>span>i.fa { + background-color: var(--back-sub); + color: var(--header); +} +#details>div>div>div>table { + background-color: transparent; +} +.dropdown-menu, .dropdown-menu>li>a { + background-color: var(--back-sub); + color: var(--header); +} +.dropdown-menu>li>a:hover { + background-color: var(--back-main); + color: var(--text-main); +} +.form-control { + background-color: var(--back-main); + color: var(--text-main); +} +h1 { + color: var(--text-main); +} +.help-block { + color: var(--text-sub); +} +input[type=text], input[type=search] { + background-color: var(--back-sub); + color: var(--text-main); +} +#licensesTable>tbody>tr>td>nobr>a>i.fa { + color: var(--text-main); +} +.main-footer { + background-color: var(--back-main); + color: var(--text-main); +} +.nav-tabs-custom>.nav-tabs>li>a, .nav-tabs-custom>.nav-tabs>li.active>a { + color: var(--text-main); +} +.nav-tabs-custom>.nav-tabs>li.active { + border-top-color: var(--header); +} +.nav-tabs-custom>.nav-tabs>li.active>a { + background-color: var(--back-main); +} +.nav-tabs-custom>.nav-tabs>li.active>a:hover { + background-color: var(--back-sub); + color: var(--text-main); +} +.nav-tabs-custom, .nav-tabs-custom>.tab-content { + background-color: var(--back-main); +} +.navbar-nav>.tasks-menu>.dropdown-menu>li.header { + background-color: var(--back-main); + color: var(--header); +} +.open>.dropdown-toggle.btn-default { + background-color: var(--back-sub); + color: var(--header); +} +.panel { + background-color: var(--back-sub); + color: var(--text-main); +} +.panel-default>.panel-heading { + background-color: var(--back-main); + color: var(--header); +} +.select2-selection--single { + background-color: var(--back-sub)!important; + color: var(--text-main)!important; +} +.select2-container--default .select2-selection--single .select2-selection__rendered { + color: var(--text-main); +} +.select2-dropdown { + background-color: var(--back-main); + color: var(--text-main); +} +.skin-blue .main-header .navbar .dropdown-menu li a { + color: var(--header); +} +.skin-blue .sidebar-menu>li.active>a, .skin-blue .sidebar-menu>li:hover>a, .sidebar-toggle:hover { + background-color: var(--header)!important; +} +.tab-content, .tab-pane { + background-color: var(--back-main); + color: var(--text-main); +} +.table-striped>tbody>tr:nth-of-type(odd) { + background-color: var(--back-sub); +} From 4f049112dec60f0f637deea6888e8e1f262a5a96 Mon Sep 17 00:00:00 2001 From: Tim F Date: Thu, 1 Mar 2018 23:45:22 -0500 Subject: [PATCH 03/24] Patch for dark-green.css to include more in template. (#5122) * Update dark-green.css Added several new rules, to include little bits that weren't previously. Mostly centered around the new 'form' page and the various settings pages. * Update dark-green.css Fixed buttons for "View All" on main page. Missed those previously. Well, the buttons were included, but not the hover effects. --- public/assets/css/themes/dark-green.css | 45 +++++++++++++++++++------ 1 file changed, 35 insertions(+), 10 deletions(-) diff --git a/public/assets/css/themes/dark-green.css b/public/assets/css/themes/dark-green.css index caf5cc761..8164bf6bf 100644 --- a/public/assets/css/themes/dark-green.css +++ b/public/assets/css/themes/dark-green.css @@ -19,6 +19,9 @@ a, a:link, a:visited, .btn-primary.hover { #assetsListingTable>tbody>tr.selected>td { background-color: var(--back-main); } +body { + color: var(--text-main); +} .box, .box.box-default { border-top: 3px solid var(--header); border-top-color: var(--header); @@ -31,13 +34,17 @@ a, a:link, a:visited, .btn-primary.hover { background-color: var(--back-main); color: var(--header); } -.btn-default:active, .btn-default:focus, .btn-default:hover { +.btn-default:active, .btn-default:focus, .btn-default:hover, .btn-default.active { background-color: var(--back-sub); color: var(--header); } -.btn-primary, .btn-primary.hover, .btn-primary:active, .btn-primary:hover, .text-blue { +.btn-primary, .btn-primary.hover, .btn-primary:active, .text-blue { color: var(--text-main)!important; } +.btn-primary:hover { + background-color: var(--back-main); + color: var(--header)!important; +} #componentsTable>tbody>tr>td>nobr>a>i.fa { color: var(--text-main); } @@ -47,14 +54,17 @@ a, a:link, a:visited, .btn-primary.hover { .content-wrapper { background-color: var(--background); } -#create-form>div>div>div>span.input-group-addon { - background-color: var(--back-sub); - color: var(--text-main); -} #create-form>div>div>div>span>i.fa { background-color: var(--back-sub); color: var(--header); } +.datepicker .datepicker-switch:hover, .datepicker .next:hover, .datepicker .prev:hover, .datepicker tfoot tr th:hover, .datepicker table tr td.day.focused, .datepicker table tr td.day:hover { + background-color: var(--header); +} +.datepicker.dropdown-menu { + background-color: var(--back-main); + color: var(--text-main); +} #details>div>div>div>table { background-color: transparent; } @@ -70,7 +80,7 @@ a, a:link, a:visited, .btn-primary.hover { background-color: var(--back-main); color: var(--text-main); } -h1 { +h1, h2, h3, h4, h5, h6, p { color: var(--text-main); } .help-block { @@ -80,6 +90,10 @@ input[type=text], input[type=search] { background-color: var(--back-sub); color: var(--text-main); } +.input-group, .input-group-addon { + background-color: var(--back-sub)!important; + color: var(--text-main); +} #licensesTable>tbody>tr>td>nobr>a>i.fa { color: var(--text-main); } @@ -119,13 +133,21 @@ input[type=text], input[type=search] { background-color: var(--back-main); color: var(--header); } -.select2-selection--single { - background-color: var(--back-sub)!important; - color: var(--text-main)!important; +.select2-container--default .select2-results__option[aria-selected=true], .select2-container--default .select2-results__option[aria-selected=true]:hover { + background-color: var(--back-sub); + color: var(--header); +} +.select2-container--default .select2-results__option--highlighted[aria-selected] { + background-color: var(--header); + color: var(--back-main); } .select2-container--default .select2-selection--single .select2-selection__rendered { color: var(--text-main); } +.select2-selection--single { + background-color: var(--back-sub)!important; + color: var(--text-main)!important; +} .select2-dropdown { background-color: var(--back-main); color: var(--text-main); @@ -143,3 +165,6 @@ input[type=text], input[type=search] { .table-striped>tbody>tr:nth-of-type(odd) { background-color: var(--back-sub); } +#webui>div>div>div>div>div>table>tbody>tr>td>a>i.fa { + color: var(--text-main); +} From 04b92f2ad2614a2493d0d3e6c5f846734ea11be7 Mon Sep 17 00:00:00 2001 From: snipe Date: Fri, 2 Mar 2018 16:51:56 -0800 Subject: [PATCH 04/24] Added info on third-party libraries --- README.md | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/README.md b/README.md index 1b42bb971..0c83f637d 100644 --- a/README.md +++ b/README.md @@ -50,6 +50,18 @@ Please see the [translations documentation](https://snipe-it.readme.io/docs/tran ----- +### Libraries, Modules & Related Projects + +Since the release of the JSON REST API, several third-party developers have been developing modules and libraries to work with Snipe-IT. + +- [Python Module](https://github.com/jbloomer/SnipeIT-PythonAPI) by [@jbloomer](https://github.com/jbloomer) +- [SnipeSharp - .NET module in C#](https://github.com/barrycarey/SnipeSharp) by [@barrycarey](https://github.com/barrycarey) +- [InQRy](https://github.com/Microsoft/InQRy) by [@Microsoft](https://github.com/Microsoft) + +As these were created by third-parties, Snipe-IT cannot provide support for these project, and you should contact the developers directly if you need assistance. Additionally, Snipe-IT makes no guarantees as to the reliability, accuracy or maintainability of these libraries. Use at your own risk. :) + +----- + ### Contributors Thanks goes to all of these wonderful people ([emoji key](https://github.com/kentcdodds/all-contributors#emoji-key)) who have helped Snipe-IT get this far: From f171357e362ff89168fef8c9e63c171b1eb3d193 Mon Sep 17 00:00:00 2001 From: snipe Date: Fri, 2 Mar 2018 17:50:40 -0800 Subject: [PATCH 05/24] Removed unused skin files, added skin setting option --- app/Http/Controllers/SettingsController.php | 1 + ...018_03_03_011032_add_theme_to_settings.php | 32 ++++ public/css/skins/skin-black-light.css | 176 ------------------ public/css/skins/skin-black-light.min.css | 1 - public/css/skins/skin-black.css | 154 --------------- public/css/skins/skin-black.min.css | 1 - public/css/skins/skin-blue.min.css | 1 - .../skins/skin-green-dark.css} | 0 public/css/skins/skin-green-light.css | 156 ---------------- public/css/skins/skin-green-light.min.css | 1 - public/css/skins/skin-green.css | 134 ------------- public/css/skins/skin-green.min.css | 1 - public/css/skins/skin-purple-light.css | 156 ---------------- public/css/skins/skin-purple-light.min.css | 1 - public/css/skins/skin-purple.css | 134 ------------- public/css/skins/skin-purple.min.css | 1 - public/css/skins/skin-red-light.css | 156 ---------------- public/css/skins/skin-red-light.min.css | 1 - public/css/skins/skin-red.css | 134 ------------- public/css/skins/skin-red.min.css | 1 - public/css/skins/skin-yellow-light.css | 156 ---------------- public/css/skins/skin-yellow-light.min.css | 1 - public/css/skins/skin-yellow.css | 134 ------------- public/css/skins/skin-yellow.min.css | 1 - resources/lang/en/general.php | 1 + resources/macros/macros.php | 19 ++ resources/views/layouts/default.blade.php | 41 ++-- resources/views/settings/branding.blade.php | 12 ++ 28 files changed, 87 insertions(+), 1520 deletions(-) create mode 100644 database/migrations/2018_03_03_011032_add_theme_to_settings.php delete mode 100755 public/css/skins/skin-black-light.css delete mode 100755 public/css/skins/skin-black-light.min.css delete mode 100755 public/css/skins/skin-black.css delete mode 100755 public/css/skins/skin-black.min.css delete mode 100755 public/css/skins/skin-blue.min.css rename public/{assets/css/themes/dark-green.css => css/skins/skin-green-dark.css} (100%) delete mode 100755 public/css/skins/skin-green-light.css delete mode 100755 public/css/skins/skin-green-light.min.css delete mode 100755 public/css/skins/skin-green.css delete mode 100755 public/css/skins/skin-green.min.css delete mode 100755 public/css/skins/skin-purple-light.css delete mode 100755 public/css/skins/skin-purple-light.min.css delete mode 100755 public/css/skins/skin-purple.css delete mode 100755 public/css/skins/skin-purple.min.css delete mode 100755 public/css/skins/skin-red-light.css delete mode 100755 public/css/skins/skin-red-light.min.css delete mode 100755 public/css/skins/skin-red.css delete mode 100755 public/css/skins/skin-red.min.css delete mode 100755 public/css/skins/skin-yellow-light.css delete mode 100755 public/css/skins/skin-yellow-light.min.css delete mode 100755 public/css/skins/skin-yellow.css delete mode 100755 public/css/skins/skin-yellow.min.css diff --git a/app/Http/Controllers/SettingsController.php b/app/Http/Controllers/SettingsController.php index 17625ab7b..121143b67 100755 --- a/app/Http/Controllers/SettingsController.php +++ b/app/Http/Controllers/SettingsController.php @@ -386,6 +386,7 @@ class SettingsController extends Controller $setting->header_color = $request->input('header_color'); $setting->support_footer = $request->input('support_footer'); $setting->footer_text = $request->input('footer_text'); + $setting->skin = $request->input('skin'); $setting->show_url_in_emails = $request->input('show_url_in_emails', '0'); diff --git a/database/migrations/2018_03_03_011032_add_theme_to_settings.php b/database/migrations/2018_03_03_011032_add_theme_to_settings.php new file mode 100644 index 000000000..876b618d8 --- /dev/null +++ b/database/migrations/2018_03_03_011032_add_theme_to_settings.php @@ -0,0 +1,32 @@ +char('skin')->nullable()->default(null); + }); + } + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::table('settings', function (Blueprint $table) { + $table->dropColumn('skin'); + }); + } +} diff --git a/public/css/skins/skin-black-light.css b/public/css/skins/skin-black-light.css deleted file mode 100755 index f132dc883..000000000 --- a/public/css/skins/skin-black-light.css +++ /dev/null @@ -1,176 +0,0 @@ -/* - * Skin: Black - * ----------- - */ -/* skin-black navbar */ -.skin-black-light .main-header { - -webkit-box-shadow: 0px 1px 1px rgba(0, 0, 0, 0.05); - box-shadow: 0px 1px 1px rgba(0, 0, 0, 0.05); -} -.skin-black-light .main-header .navbar-toggle { - color: #333; -} -.skin-black-light .main-header .navbar-brand { - color: #333; - border-right: 1px solid #eee; -} -.skin-black-light .main-header > .navbar { - background-color: #ffffff; -} -.skin-black-light .main-header > .navbar .nav > li > a { - color: #333333; -} -.skin-black-light .main-header > .navbar .nav > li > a:hover, -.skin-black-light .main-header > .navbar .nav > li > a:active, -.skin-black-light .main-header > .navbar .nav > li > a:focus, -.skin-black-light .main-header > .navbar .nav .open > a, -.skin-black-light .main-header > .navbar .nav .open > a:hover, -.skin-black-light .main-header > .navbar .nav .open > a:focus, -.skin-black-light .main-header > .navbar .nav > .active > a { - background: #ffffff; - color: #999999; -} -.skin-black-light .main-header > .navbar .sidebar-toggle { - color: #333333; -} -.skin-black-light .main-header > .navbar .sidebar-toggle:hover { - color: #999999; - background: #ffffff; -} -.skin-black-light .main-header > .navbar > .sidebar-toggle { - color: #333; - border-right: 1px solid #eee; -} -.skin-black-light .main-header > .navbar .navbar-nav > li > a { - border-right: 1px solid #eee; -} -.skin-black-light .main-header > .navbar .navbar-custom-menu .navbar-nav > li > a, -.skin-black-light .main-header > .navbar .navbar-right > li > a { - border-left: 1px solid #eee; - border-right-width: 0; -} -.skin-black-light .main-header > .logo { - background-color: #ffffff; - color: #333333; - border-bottom: 0 solid transparent; - border-right: 1px solid #eee; -} -.skin-black-light .main-header > .logo:hover { - background-color: #fcfcfc; -} -@media (max-width: 767px) { - .skin-black-light .main-header > .logo { - background-color: #222222; - color: #ffffff; - border-bottom: 0 solid transparent; - border-right: none; - } - .skin-black-light .main-header > .logo:hover { - background-color: #1f1f1f; - } -} -.skin-black-light .main-header li.user-header { - background-color: #222; -} -.skin-black-light .content-header { - background: transparent; - box-shadow: none; -} -.skin-black-light .wrapper, -.skin-black-light .main-sidebar, -.skin-black-light .left-side { - background-color: #f9fafc; -} -.skin-black-light .content-wrapper, -.skin-black-light .main-footer { - border-left: 1px solid #d2d6de; -} -.skin-black-light .user-panel > .info, -.skin-black-light .user-panel > .info > a { - color: #444444; -} -.skin-black-light .sidebar-menu > li { - -webkit-transition: border-left-color 0.3s ease; - -o-transition: border-left-color 0.3s ease; - transition: border-left-color 0.3s ease; -} -.skin-black-light .sidebar-menu > li.header { - color: #848484; - background: #f9fafc; -} -.skin-black-light .sidebar-menu > li > a { - border-left: 3px solid transparent; - font-weight: 600; -} -.skin-black-light .sidebar-menu > li:hover > a, -.skin-black-light .sidebar-menu > li.active > a { - color: #000000; - background: #f4f4f5; -} -.skin-black-light .sidebar-menu > li.active { - border-left-color: #ffffff; -} -.skin-black-light .sidebar-menu > li.active > a { - font-weight: 600; -} -.skin-black-light .sidebar-menu > li > .treeview-menu { - background: #f4f4f5; -} -.skin-black-light .sidebar a { - color: #444444; -} -.skin-black-light .sidebar a:hover { - text-decoration: none; -} -.skin-black-light .treeview-menu > li > a { - color: #777777; -} -.skin-black-light .treeview-menu > li.active > a, -.skin-black-light .treeview-menu > li > a:hover { - color: #000000; -} -.skin-black-light .treeview-menu > li.active > a { - font-weight: 600; -} -.skin-black-light .sidebar-form { - border-radius: 3px; - border: 1px solid #d2d6de; - margin: 10px 10px; -} -.skin-black-light .sidebar-form input[type="text"], -.skin-black-light .sidebar-form .btn { - box-shadow: none; - background-color: #fff; - border: 1px solid transparent; - height: 35px; - -webkit-transition: all 0.3s ease-in-out; - -o-transition: all 0.3s ease-in-out; - transition: all 0.3s ease-in-out; -} -.skin-black-light .sidebar-form input[type="text"] { - color: #666; - border-top-left-radius: 2px; - border-top-right-radius: 0; - border-bottom-right-radius: 0; - border-bottom-left-radius: 2px; -} -.skin-black-light .sidebar-form input[type="text"]:focus, -.skin-black-light .sidebar-form input[type="text"]:focus + .input-group-btn .btn { - background-color: #fff; - color: #666; -} -.skin-black-light .sidebar-form input[type="text"]:focus + .input-group-btn .btn { - border-left-color: #fff; -} -.skin-black-light .sidebar-form .btn { - color: #999; - border-top-left-radius: 0; - border-top-right-radius: 2px; - border-bottom-right-radius: 2px; - border-bottom-left-radius: 0; -} -@media (min-width: 768px) { - .skin-black-light.sidebar-mini.sidebar-collapse .sidebar-menu > li > .treeview-menu { - border-left: 1px solid #d2d6de; - } -} diff --git a/public/css/skins/skin-black-light.min.css b/public/css/skins/skin-black-light.min.css deleted file mode 100755 index c631ec5e9..000000000 --- a/public/css/skins/skin-black-light.min.css +++ /dev/null @@ -1 +0,0 @@ -.skin-black-light .main-header{-webkit-box-shadow:0 1px 1px rgba(0,0,0,0.05);box-shadow:0 1px 1px rgba(0,0,0,0.05)}.skin-black-light .main-header .navbar-toggle{color:#333}.skin-black-light .main-header .navbar-brand{color:#333;border-right:1px solid #eee}.skin-black-light .main-header>.navbar{background-color:#fff}.skin-black-light .main-header>.navbar .nav>li>a{color:#333}.skin-black-light .main-header>.navbar .nav>li>a:hover,.skin-black-light .main-header>.navbar .nav>li>a:active,.skin-black-light .main-header>.navbar .nav>li>a:focus,.skin-black-light .main-header>.navbar .nav .open>a,.skin-black-light .main-header>.navbar .nav .open>a:hover,.skin-black-light .main-header>.navbar .nav .open>a:focus,.skin-black-light .main-header>.navbar .nav>.active>a{background:#fff;color:#999}.skin-black-light .main-header>.navbar .sidebar-toggle{color:#333}.skin-black-light .main-header>.navbar .sidebar-toggle:hover{color:#999;background:#fff}.skin-black-light .main-header>.navbar>.sidebar-toggle{color:#333;border-right:1px solid #eee}.skin-black-light .main-header>.navbar .navbar-nav>li>a{border-right:1px solid #eee}.skin-black-light .main-header>.navbar .navbar-custom-menu .navbar-nav>li>a,.skin-black-light .main-header>.navbar .navbar-right>li>a{border-left:1px solid #eee;border-right-width:0}.skin-black-light .main-header>.logo{background-color:#fff;color:#333;border-bottom:0 solid transparent;border-right:1px solid #eee}.skin-black-light .main-header>.logo:hover{background-color:#fcfcfc}@media (max-width:767px){.skin-black-light .main-header>.logo{background-color:#222;color:#fff;border-bottom:0 solid transparent;border-right:none}.skin-black-light .main-header>.logo:hover{background-color:#1f1f1f}}.skin-black-light .main-header li.user-header{background-color:#222}.skin-black-light .content-header{background:transparent;box-shadow:none}.skin-black-light .wrapper,.skin-black-light .main-sidebar,.skin-black-light .left-side{background-color:#f9fafc}.skin-black-light .content-wrapper,.skin-black-light .main-footer{border-left:1px solid #d2d6de}.skin-black-light .user-panel>.info,.skin-black-light .user-panel>.info>a{color:#444}.skin-black-light .sidebar-menu>li{-webkit-transition:border-left-color .3s ease;-o-transition:border-left-color .3s ease;transition:border-left-color .3s ease}.skin-black-light .sidebar-menu>li.header{color:#848484;background:#f9fafc}.skin-black-light .sidebar-menu>li>a{border-left:3px solid transparent;font-weight:600}.skin-black-light .sidebar-menu>li:hover>a,.skin-black-light .sidebar-menu>li.active>a{color:#000;background:#f4f4f5}.skin-black-light .sidebar-menu>li.active{border-left-color:#fff}.skin-black-light .sidebar-menu>li.active>a{font-weight:600}.skin-black-light .sidebar-menu>li>.treeview-menu{background:#f4f4f5}.skin-black-light .sidebar a{color:#444}.skin-black-light .sidebar a:hover{text-decoration:none}.skin-black-light .treeview-menu>li>a{color:#777}.skin-black-light .treeview-menu>li.active>a,.skin-black-light .treeview-menu>li>a:hover{color:#000}.skin-black-light .treeview-menu>li.active>a{font-weight:600}.skin-black-light .sidebar-form{border-radius:3px;border:1px solid #d2d6de;margin:10px 10px}.skin-black-light .sidebar-form input[type="text"],.skin-black-light .sidebar-form .btn{box-shadow:none;background-color:#fff;border:1px solid transparent;height:35px;-webkit-transition:all .3s ease-in-out;-o-transition:all .3s ease-in-out;transition:all .3s ease-in-out}.skin-black-light .sidebar-form input[type="text"]{color:#666;border-top-left-radius:2px;border-top-right-radius:0;border-bottom-right-radius:0;border-bottom-left-radius:2px}.skin-black-light .sidebar-form input[type="text"]:focus,.skin-black-light .sidebar-form input[type="text"]:focus+.input-group-btn .btn{background-color:#fff;color:#666}.skin-black-light .sidebar-form input[type="text"]:focus+.input-group-btn .btn{border-left-color:#fff}.skin-black-light .sidebar-form .btn{color:#999;border-top-left-radius:0;border-top-right-radius:2px;border-bottom-right-radius:2px;border-bottom-left-radius:0}@media (min-width:768px){.skin-black-light.sidebar-mini.sidebar-collapse .sidebar-menu>li>.treeview-menu{border-left:1px solid #d2d6de}} \ No newline at end of file diff --git a/public/css/skins/skin-black.css b/public/css/skins/skin-black.css deleted file mode 100755 index d33b1f9d0..000000000 --- a/public/css/skins/skin-black.css +++ /dev/null @@ -1,154 +0,0 @@ -/* - * Skin: Black - * ----------- - */ -/* skin-black navbar */ -.skin-black .main-header { - -webkit-box-shadow: 0px 1px 1px rgba(0, 0, 0, 0.05); - box-shadow: 0px 1px 1px rgba(0, 0, 0, 0.05); -} -.skin-black .main-header .navbar-toggle { - color: #333; -} -.skin-black .main-header .navbar-brand { - color: #333; - border-right: 1px solid #eee; -} -.skin-black .main-header > .navbar { - background-color: #ffffff; -} -.skin-black .main-header > .navbar .nav > li > a { - color: #333333; -} -.skin-black .main-header > .navbar .nav > li > a:hover, -.skin-black .main-header > .navbar .nav > li > a:active, -.skin-black .main-header > .navbar .nav > li > a:focus, -.skin-black .main-header > .navbar .nav .open > a, -.skin-black .main-header > .navbar .nav .open > a:hover, -.skin-black .main-header > .navbar .nav .open > a:focus, -.skin-black .main-header > .navbar .nav > .active > a { - background: #ffffff; - color: #999999; -} -.skin-black .main-header > .navbar .sidebar-toggle { - color: #333333; -} -.skin-black .main-header > .navbar .sidebar-toggle:hover { - color: #999999; - background: #ffffff; -} -.skin-black .main-header > .navbar > .sidebar-toggle { - color: #333; - border-right: 1px solid #eee; -} -.skin-black .main-header > .navbar .navbar-nav > li > a { - border-right: 1px solid #eee; -} -.skin-black .main-header > .navbar .navbar-custom-menu .navbar-nav > li > a, -.skin-black .main-header > .navbar .navbar-right > li > a { - border-left: 1px solid #eee; - border-right-width: 0; -} -.skin-black .main-header > .logo { - background-color: #ffffff; - color: #333333; - border-bottom: 0 solid transparent; - border-right: 1px solid #eee; -} -.skin-black .main-header > .logo:hover { - background-color: #fcfcfc; -} -@media (max-width: 767px) { - .skin-black .main-header > .logo { - background-color: #222222; - color: #ffffff; - border-bottom: 0 solid transparent; - border-right: none; - } - .skin-black .main-header > .logo:hover { - background-color: #1f1f1f; - } -} -.skin-black .main-header li.user-header { - background-color: #222; -} -.skin-black .content-header { - background: transparent; - box-shadow: none; -} -.skin-black .wrapper, -.skin-black .main-sidebar, -.skin-black .left-side { - background-color: #222d32; -} -.skin-black .user-panel > .info, -.skin-black .user-panel > .info > a { - color: #fff; -} -.skin-black .sidebar-menu > li.header { - color: #4b646f; - background: #1a2226; -} -.skin-black .sidebar-menu > li > a { - border-left: 3px solid transparent; -} -.skin-black .sidebar-menu > li:hover > a, -.skin-black .sidebar-menu > li.active > a { - color: #ffffff; - background: #1e282c; - border-left-color: #ffffff; -} -.skin-black .sidebar-menu > li > .treeview-menu { - margin: 0 1px; - background: #2c3b41; -} -.skin-black .sidebar a { - color: #b8c7ce; -} -.skin-black .sidebar a:hover { - text-decoration: none; -} -.skin-black .treeview-menu > li > a { - color: #8aa4af; -} -.skin-black .treeview-menu > li.active > a, -.skin-black .treeview-menu > li > a:hover { - color: #ffffff; -} -.skin-black .sidebar-form { - border-radius: 3px; - border: 1px solid #374850; - margin: 10px 10px; -} -.skin-black .sidebar-form input[type="text"], -.skin-black .sidebar-form .btn { - box-shadow: none; - background-color: #374850; - border: 1px solid transparent; - height: 35px; - -webkit-transition: all 0.3s ease-in-out; - -o-transition: all 0.3s ease-in-out; - transition: all 0.3s ease-in-out; -} -.skin-black .sidebar-form input[type="text"] { - color: #666; - border-top-left-radius: 2px; - border-top-right-radius: 0; - border-bottom-right-radius: 0; - border-bottom-left-radius: 2px; -} -.skin-black .sidebar-form input[type="text"]:focus, -.skin-black .sidebar-form input[type="text"]:focus + .input-group-btn .btn { - background-color: #fff; - color: #666; -} -.skin-black .sidebar-form input[type="text"]:focus + .input-group-btn .btn { - border-left-color: #fff; -} -.skin-black .sidebar-form .btn { - color: #999; - border-top-left-radius: 0; - border-top-right-radius: 2px; - border-bottom-right-radius: 2px; - border-bottom-left-radius: 0; -} diff --git a/public/css/skins/skin-black.min.css b/public/css/skins/skin-black.min.css deleted file mode 100755 index a7d188822..000000000 --- a/public/css/skins/skin-black.min.css +++ /dev/null @@ -1 +0,0 @@ -.skin-black .main-header{-webkit-box-shadow:0 1px 1px rgba(0,0,0,0.05);box-shadow:0 1px 1px rgba(0,0,0,0.05)}.skin-black .main-header .navbar-toggle{color:#333}.skin-black .main-header .navbar-brand{color:#333;border-right:1px solid #eee}.skin-black .main-header>.navbar{background-color:#fff}.skin-black .main-header>.navbar .nav>li>a{color:#333}.skin-black .main-header>.navbar .nav>li>a:hover,.skin-black .main-header>.navbar .nav>li>a:active,.skin-black .main-header>.navbar .nav>li>a:focus,.skin-black .main-header>.navbar .nav .open>a,.skin-black .main-header>.navbar .nav .open>a:hover,.skin-black .main-header>.navbar .nav .open>a:focus,.skin-black .main-header>.navbar .nav>.active>a{background:#fff;color:#999}.skin-black .main-header>.navbar .sidebar-toggle{color:#333}.skin-black .main-header>.navbar .sidebar-toggle:hover{color:#999;background:#fff}.skin-black .main-header>.navbar>.sidebar-toggle{color:#333;border-right:1px solid #eee}.skin-black .main-header>.navbar .navbar-nav>li>a{border-right:1px solid #eee}.skin-black .main-header>.navbar .navbar-custom-menu .navbar-nav>li>a,.skin-black .main-header>.navbar .navbar-right>li>a{border-left:1px solid #eee;border-right-width:0}.skin-black .main-header>.logo{background-color:#fff;color:#333;border-bottom:0 solid transparent;border-right:1px solid #eee}.skin-black .main-header>.logo:hover{background-color:#fcfcfc}@media (max-width:767px){.skin-black .main-header>.logo{background-color:#222;color:#fff;border-bottom:0 solid transparent;border-right:none}.skin-black .main-header>.logo:hover{background-color:#1f1f1f}}.skin-black .main-header li.user-header{background-color:#222}.skin-black .content-header{background:transparent;box-shadow:none}.skin-black .wrapper,.skin-black .main-sidebar,.skin-black .left-side{background-color:#222d32}.skin-black .user-panel>.info,.skin-black .user-panel>.info>a{color:#fff}.skin-black .sidebar-menu>li.header{color:#4b646f;background:#1a2226}.skin-black .sidebar-menu>li>a{border-left:3px solid transparent}.skin-black .sidebar-menu>li:hover>a,.skin-black .sidebar-menu>li.active>a{color:#fff;background:#1e282c;border-left-color:#fff}.skin-black .sidebar-menu>li>.treeview-menu{margin:0 1px;background:#2c3b41}.skin-black .sidebar a{color:#b8c7ce}.skin-black .sidebar a:hover{text-decoration:none}.skin-black .treeview-menu>li>a{color:#8aa4af}.skin-black .treeview-menu>li.active>a,.skin-black .treeview-menu>li>a:hover{color:#fff}.skin-black .sidebar-form{border-radius:3px;border:1px solid #374850;margin:10px 10px}.skin-black .sidebar-form input[type="text"],.skin-black .sidebar-form .btn{box-shadow:none;background-color:#374850;border:1px solid transparent;height:35px;-webkit-transition:all .3s ease-in-out;-o-transition:all .3s ease-in-out;transition:all .3s ease-in-out}.skin-black .sidebar-form input[type="text"]{color:#666;border-top-left-radius:2px;border-top-right-radius:0;border-bottom-right-radius:0;border-bottom-left-radius:2px}.skin-black .sidebar-form input[type="text"]:focus,.skin-black .sidebar-form input[type="text"]:focus+.input-group-btn .btn{background-color:#fff;color:#666}.skin-black .sidebar-form input[type="text"]:focus+.input-group-btn .btn{border-left-color:#fff}.skin-black .sidebar-form .btn{color:#999;border-top-left-radius:0;border-top-right-radius:2px;border-bottom-right-radius:2px;border-bottom-left-radius:0} \ No newline at end of file diff --git a/public/css/skins/skin-blue.min.css b/public/css/skins/skin-blue.min.css deleted file mode 100755 index 123c04f47..000000000 --- a/public/css/skins/skin-blue.min.css +++ /dev/null @@ -1 +0,0 @@ -.skin-blue .main-header .navbar{background-color:#3c8dbc}.skin-blue .main-header .navbar .nav>li>a{color:#fff}.skin-blue .main-header .navbar .nav>li>a:hover,.skin-blue .main-header .navbar .nav>li>a:active,.skin-blue .main-header .navbar .nav>li>a:focus,.skin-blue .main-header .navbar .nav .open>a,.skin-blue .main-header .navbar .nav .open>a:hover,.skin-blue .main-header .navbar .nav .open>a:focus,.skin-blue .main-header .navbar .nav>.active>a{background:rgba(0,0,0,0.1);color:#f6f6f6}.skin-blue .main-header .navbar .sidebar-toggle{color:#fff}.skin-blue .main-header .navbar .sidebar-toggle:hover{color:#f6f6f6;background:rgba(0,0,0,0.1)}.skin-blue .main-header .navbar .sidebar-toggle{color:#fff}.skin-blue .main-header .navbar .sidebar-toggle:hover{background-color:#367fa9}@media (max-width:767px){.skin-blue .main-header .navbar .dropdown-menu li.divider{background-color:rgba(255,255,255,0.1)}.skin-blue .main-header .navbar .dropdown-menu li a{color:#fff}.skin-blue .main-header .navbar .dropdown-menu li a:hover{background:#367fa9}}.skin-blue .main-header .logo{background-color:#367fa9;color:#fff;border-bottom:0 solid transparent}.skin-blue .main-header .logo:hover{background-color:#357ca5}.skin-blue .main-header li.user-header{background-color:#3c8dbc}.skin-blue .content-header{background:transparent}.skin-blue .wrapper,.skin-blue .main-sidebar,.skin-blue .left-side{background-color:#222d32}.skin-blue .user-panel>.info,.skin-blue .user-panel>.info>a{color:#fff}.skin-blue .sidebar-menu>li.header{color:#4b646f;background:#1a2226}.skin-blue .sidebar-menu>li>a{border-left:3px solid transparent}.skin-blue .sidebar-menu>li:hover>a,.skin-blue .sidebar-menu>li.active>a{color:#fff;background:#1e282c;border-left-color:#3c8dbc}.skin-blue .sidebar-menu>li>.treeview-menu{margin:0 1px;background:#2c3b41}.skin-blue .sidebar a{color:#b8c7ce}.skin-blue .sidebar a:hover{text-decoration:none}.skin-blue .treeview-menu>li>a{color:#8aa4af}.skin-blue .treeview-menu>li.active>a,.skin-blue .treeview-menu>li>a:hover{color:#fff}.skin-blue .sidebar-form{border-radius:3px;border:1px solid #374850;margin:10px 10px}.skin-blue .sidebar-form input[type="text"],.skin-blue .sidebar-form .btn{box-shadow:none;background-color:#374850;border:1px solid transparent;height:35px;-webkit-transition:all .3s ease-in-out;-o-transition:all .3s ease-in-out;transition:all .3s ease-in-out}.skin-blue .sidebar-form input[type="text"]{color:#666;border-top-left-radius:2px;border-top-right-radius:0;border-bottom-right-radius:0;border-bottom-left-radius:2px}.skin-blue .sidebar-form input[type="text"]:focus,.skin-blue .sidebar-form input[type="text"]:focus+.input-group-btn .btn{background-color:#fff;color:#666}.skin-blue .sidebar-form input[type="text"]:focus+.input-group-btn .btn{border-left-color:#fff}.skin-blue .sidebar-form .btn{color:#999;border-top-left-radius:0;border-top-right-radius:2px;border-bottom-right-radius:2px;border-bottom-left-radius:0}.skin-blue.layout-top-nav .main-header>.logo{background-color:#3c8dbc;color:#fff;border-bottom:0 solid transparent}.skin-blue.layout-top-nav .main-header>.logo:hover{background-color:#3b8ab8} \ No newline at end of file diff --git a/public/assets/css/themes/dark-green.css b/public/css/skins/skin-green-dark.css similarity index 100% rename from public/assets/css/themes/dark-green.css rename to public/css/skins/skin-green-dark.css diff --git a/public/css/skins/skin-green-light.css b/public/css/skins/skin-green-light.css deleted file mode 100755 index f6fc137f7..000000000 --- a/public/css/skins/skin-green-light.css +++ /dev/null @@ -1,156 +0,0 @@ -/* - * Skin: Green - * ----------- - */ -.skin-green-light .main-header .navbar { - background-color: #00a65a; -} -.skin-green-light .main-header .navbar .nav > li > a { - color: #ffffff; -} -.skin-green-light .main-header .navbar .nav > li > a:hover, -.skin-green-light .main-header .navbar .nav > li > a:active, -.skin-green-light .main-header .navbar .nav > li > a:focus, -.skin-green-light .main-header .navbar .nav .open > a, -.skin-green-light .main-header .navbar .nav .open > a:hover, -.skin-green-light .main-header .navbar .nav .open > a:focus, -.skin-green-light .main-header .navbar .nav > .active > a { - background: rgba(0, 0, 0, 0.1); - color: #f6f6f6; -} -.skin-green-light .main-header .navbar .sidebar-toggle { - color: #ffffff; -} -.skin-green-light .main-header .navbar .sidebar-toggle:hover { - color: #f6f6f6; - background: rgba(0, 0, 0, 0.1); -} -.skin-green-light .main-header .navbar .sidebar-toggle { - color: #fff; -} -.skin-green-light .main-header .navbar .sidebar-toggle:hover { - background-color: #008d4c; -} -@media (max-width: 767px) { - .skin-green-light .main-header .navbar .dropdown-menu li.divider { - background-color: rgba(255, 255, 255, 0.1); - } - .skin-green-light .main-header .navbar .dropdown-menu li a { - color: #fff; - } - .skin-green-light .main-header .navbar .dropdown-menu li a:hover { - background: #008d4c; - } -} -.skin-green-light .main-header .logo { - background-color: #00a65a; - color: #ffffff; - border-bottom: 0 solid transparent; -} -.skin-green-light .main-header .logo:hover { - background-color: #00a157; -} -.skin-green-light .main-header li.user-header { - background-color: #00a65a; -} -.skin-green-light .content-header { - background: transparent; -} -.skin-green-light .wrapper, -.skin-green-light .main-sidebar, -.skin-green-light .left-side { - background-color: #f9fafc; -} -.skin-green-light .content-wrapper, -.skin-green-light .main-footer { - border-left: 1px solid #d2d6de; -} -.skin-green-light .user-panel > .info, -.skin-green-light .user-panel > .info > a { - color: #444444; -} -.skin-green-light .sidebar-menu > li { - -webkit-transition: border-left-color 0.3s ease; - -o-transition: border-left-color 0.3s ease; - transition: border-left-color 0.3s ease; -} -.skin-green-light .sidebar-menu > li.header { - color: #848484; - background: #f9fafc; -} -.skin-green-light .sidebar-menu > li > a { - border-left: 3px solid transparent; - font-weight: 600; -} -.skin-green-light .sidebar-menu > li:hover > a, -.skin-green-light .sidebar-menu > li.active > a { - color: #000000; - background: #f4f4f5; -} -.skin-green-light .sidebar-menu > li.active { - border-left-color: #00a65a; -} -.skin-green-light .sidebar-menu > li.active > a { - font-weight: 600; -} -.skin-green-light .sidebar-menu > li > .treeview-menu { - background: #f4f4f5; -} -.skin-green-light .sidebar a { - color: #444444; -} -.skin-green-light .sidebar a:hover { - text-decoration: none; -} -.skin-green-light .treeview-menu > li > a { - color: #777777; -} -.skin-green-light .treeview-menu > li.active > a, -.skin-green-light .treeview-menu > li > a:hover { - color: #000000; -} -.skin-green-light .treeview-menu > li.active > a { - font-weight: 600; -} -.skin-green-light .sidebar-form { - border-radius: 3px; - border: 1px solid #d2d6de; - margin: 10px 10px; -} -.skin-green-light .sidebar-form input[type="text"], -.skin-green-light .sidebar-form .btn { - box-shadow: none; - background-color: #fff; - border: 1px solid transparent; - height: 35px; - -webkit-transition: all 0.3s ease-in-out; - -o-transition: all 0.3s ease-in-out; - transition: all 0.3s ease-in-out; -} -.skin-green-light .sidebar-form input[type="text"] { - color: #666; - border-top-left-radius: 2px; - border-top-right-radius: 0; - border-bottom-right-radius: 0; - border-bottom-left-radius: 2px; -} -.skin-green-light .sidebar-form input[type="text"]:focus, -.skin-green-light .sidebar-form input[type="text"]:focus + .input-group-btn .btn { - background-color: #fff; - color: #666; -} -.skin-green-light .sidebar-form input[type="text"]:focus + .input-group-btn .btn { - border-left-color: #fff; -} -.skin-green-light .sidebar-form .btn { - color: #999; - border-top-left-radius: 0; - border-top-right-radius: 2px; - border-bottom-right-radius: 2px; - border-bottom-left-radius: 0; -} -@media (min-width: 768px) { - .skin-green-light.sidebar-mini.sidebar-collapse .sidebar-menu > li > .treeview-menu { - border-left: 1px solid #d2d6de; - } -} diff --git a/public/css/skins/skin-green-light.min.css b/public/css/skins/skin-green-light.min.css deleted file mode 100755 index 43ceea49c..000000000 --- a/public/css/skins/skin-green-light.min.css +++ /dev/null @@ -1 +0,0 @@ -.skin-green-light .main-header .navbar{background-color:#00a65a}.skin-green-light .main-header .navbar .nav>li>a{color:#fff}.skin-green-light .main-header .navbar .nav>li>a:hover,.skin-green-light .main-header .navbar .nav>li>a:active,.skin-green-light .main-header .navbar .nav>li>a:focus,.skin-green-light .main-header .navbar .nav .open>a,.skin-green-light .main-header .navbar .nav .open>a:hover,.skin-green-light .main-header .navbar .nav .open>a:focus,.skin-green-light .main-header .navbar .nav>.active>a{background:rgba(0,0,0,0.1);color:#f6f6f6}.skin-green-light .main-header .navbar .sidebar-toggle{color:#fff}.skin-green-light .main-header .navbar .sidebar-toggle:hover{color:#f6f6f6;background:rgba(0,0,0,0.1)}.skin-green-light .main-header .navbar .sidebar-toggle{color:#fff}.skin-green-light .main-header .navbar .sidebar-toggle:hover{background-color:#008d4c}@media (max-width:767px){.skin-green-light .main-header .navbar .dropdown-menu li.divider{background-color:rgba(255,255,255,0.1)}.skin-green-light .main-header .navbar .dropdown-menu li a{color:#fff}.skin-green-light .main-header .navbar .dropdown-menu li a:hover{background:#008d4c}}.skin-green-light .main-header .logo{background-color:#00a65a;color:#fff;border-bottom:0 solid transparent}.skin-green-light .main-header .logo:hover{background-color:#00a157}.skin-green-light .main-header li.user-header{background-color:#00a65a}.skin-green-light .content-header{background:transparent}.skin-green-light .wrapper,.skin-green-light .main-sidebar,.skin-green-light .left-side{background-color:#f9fafc}.skin-green-light .content-wrapper,.skin-green-light .main-footer{border-left:1px solid #d2d6de}.skin-green-light .user-panel>.info,.skin-green-light .user-panel>.info>a{color:#444}.skin-green-light .sidebar-menu>li{-webkit-transition:border-left-color .3s ease;-o-transition:border-left-color .3s ease;transition:border-left-color .3s ease}.skin-green-light .sidebar-menu>li.header{color:#848484;background:#f9fafc}.skin-green-light .sidebar-menu>li>a{border-left:3px solid transparent;font-weight:600}.skin-green-light .sidebar-menu>li:hover>a,.skin-green-light .sidebar-menu>li.active>a{color:#000;background:#f4f4f5}.skin-green-light .sidebar-menu>li.active{border-left-color:#00a65a}.skin-green-light .sidebar-menu>li.active>a{font-weight:600}.skin-green-light .sidebar-menu>li>.treeview-menu{background:#f4f4f5}.skin-green-light .sidebar a{color:#444}.skin-green-light .sidebar a:hover{text-decoration:none}.skin-green-light .treeview-menu>li>a{color:#777}.skin-green-light .treeview-menu>li.active>a,.skin-green-light .treeview-menu>li>a:hover{color:#000}.skin-green-light .treeview-menu>li.active>a{font-weight:600}.skin-green-light .sidebar-form{border-radius:3px;border:1px solid #d2d6de;margin:10px 10px}.skin-green-light .sidebar-form input[type="text"],.skin-green-light .sidebar-form .btn{box-shadow:none;background-color:#fff;border:1px solid transparent;height:35px;-webkit-transition:all .3s ease-in-out;-o-transition:all .3s ease-in-out;transition:all .3s ease-in-out}.skin-green-light .sidebar-form input[type="text"]{color:#666;border-top-left-radius:2px;border-top-right-radius:0;border-bottom-right-radius:0;border-bottom-left-radius:2px}.skin-green-light .sidebar-form input[type="text"]:focus,.skin-green-light .sidebar-form input[type="text"]:focus+.input-group-btn .btn{background-color:#fff;color:#666}.skin-green-light .sidebar-form input[type="text"]:focus+.input-group-btn .btn{border-left-color:#fff}.skin-green-light .sidebar-form .btn{color:#999;border-top-left-radius:0;border-top-right-radius:2px;border-bottom-right-radius:2px;border-bottom-left-radius:0}@media (min-width:768px){.skin-green-light.sidebar-mini.sidebar-collapse .sidebar-menu>li>.treeview-menu{border-left:1px solid #d2d6de}} \ No newline at end of file diff --git a/public/css/skins/skin-green.css b/public/css/skins/skin-green.css deleted file mode 100755 index 356249304..000000000 --- a/public/css/skins/skin-green.css +++ /dev/null @@ -1,134 +0,0 @@ -/* - * Skin: Green - * ----------- - */ -.skin-green .main-header .navbar { - background-color: #00a65a; -} -.skin-green .main-header .navbar .nav > li > a { - color: #ffffff; -} -.skin-green .main-header .navbar .nav > li > a:hover, -.skin-green .main-header .navbar .nav > li > a:active, -.skin-green .main-header .navbar .nav > li > a:focus, -.skin-green .main-header .navbar .nav .open > a, -.skin-green .main-header .navbar .nav .open > a:hover, -.skin-green .main-header .navbar .nav .open > a:focus, -.skin-green .main-header .navbar .nav > .active > a { - background: rgba(0, 0, 0, 0.1); - color: #f6f6f6; -} -.skin-green .main-header .navbar .sidebar-toggle { - color: #ffffff; -} -.skin-green .main-header .navbar .sidebar-toggle:hover { - color: #f6f6f6; - background: rgba(0, 0, 0, 0.1); -} -.skin-green .main-header .navbar .sidebar-toggle { - color: #fff; -} -.skin-green .main-header .navbar .sidebar-toggle:hover { - background-color: #008d4c; -} -@media (max-width: 767px) { - .skin-green .main-header .navbar .dropdown-menu li.divider { - background-color: rgba(255, 255, 255, 0.1); - } - .skin-green .main-header .navbar .dropdown-menu li a { - color: #fff; - } - .skin-green .main-header .navbar .dropdown-menu li a:hover { - background: #008d4c; - } -} -.skin-green .main-header .logo { - background-color: #008d4c; - color: #ffffff; - border-bottom: 0 solid transparent; -} -.skin-green .main-header .logo:hover { - background-color: #008749; -} -.skin-green .main-header li.user-header { - background-color: #00a65a; -} -.skin-green .content-header { - background: transparent; -} -.skin-green .wrapper, -.skin-green .main-sidebar, -.skin-green .left-side { - background-color: #222d32; -} -.skin-green .user-panel > .info, -.skin-green .user-panel > .info > a { - color: #fff; -} -.skin-green .sidebar-menu > li.header { - color: #4b646f; - background: #1a2226; -} -.skin-green .sidebar-menu > li > a { - border-left: 3px solid transparent; -} -.skin-green .sidebar-menu > li:hover > a, -.skin-green .sidebar-menu > li.active > a { - color: #ffffff; - background: #1e282c; - border-left-color: #00a65a; -} -.skin-green .sidebar-menu > li > .treeview-menu { - margin: 0 1px; - background: #2c3b41; -} -.skin-green .sidebar a { - color: #b8c7ce; -} -.skin-green .sidebar a:hover { - text-decoration: none; -} -.skin-green .treeview-menu > li > a { - color: #8aa4af; -} -.skin-green .treeview-menu > li.active > a, -.skin-green .treeview-menu > li > a:hover { - color: #ffffff; -} -.skin-green .sidebar-form { - border-radius: 3px; - border: 1px solid #374850; - margin: 10px 10px; -} -.skin-green .sidebar-form input[type="text"], -.skin-green .sidebar-form .btn { - box-shadow: none; - background-color: #374850; - border: 1px solid transparent; - height: 35px; - -webkit-transition: all 0.3s ease-in-out; - -o-transition: all 0.3s ease-in-out; - transition: all 0.3s ease-in-out; -} -.skin-green .sidebar-form input[type="text"] { - color: #666; - border-top-left-radius: 2px; - border-top-right-radius: 0; - border-bottom-right-radius: 0; - border-bottom-left-radius: 2px; -} -.skin-green .sidebar-form input[type="text"]:focus, -.skin-green .sidebar-form input[type="text"]:focus + .input-group-btn .btn { - background-color: #fff; - color: #666; -} -.skin-green .sidebar-form input[type="text"]:focus + .input-group-btn .btn { - border-left-color: #fff; -} -.skin-green .sidebar-form .btn { - color: #999; - border-top-left-radius: 0; - border-top-right-radius: 2px; - border-bottom-right-radius: 2px; - border-bottom-left-radius: 0; -} diff --git a/public/css/skins/skin-green.min.css b/public/css/skins/skin-green.min.css deleted file mode 100755 index 8f885edb9..000000000 --- a/public/css/skins/skin-green.min.css +++ /dev/null @@ -1 +0,0 @@ -.skin-green .main-header .navbar{background-color:#00a65a}.skin-green .main-header .navbar .nav>li>a{color:#fff}.skin-green .main-header .navbar .nav>li>a:hover,.skin-green .main-header .navbar .nav>li>a:active,.skin-green .main-header .navbar .nav>li>a:focus,.skin-green .main-header .navbar .nav .open>a,.skin-green .main-header .navbar .nav .open>a:hover,.skin-green .main-header .navbar .nav .open>a:focus,.skin-green .main-header .navbar .nav>.active>a{background:rgba(0,0,0,0.1);color:#f6f6f6}.skin-green .main-header .navbar .sidebar-toggle{color:#fff}.skin-green .main-header .navbar .sidebar-toggle:hover{color:#f6f6f6;background:rgba(0,0,0,0.1)}.skin-green .main-header .navbar .sidebar-toggle{color:#fff}.skin-green .main-header .navbar .sidebar-toggle:hover{background-color:#008d4c}@media (max-width:767px){.skin-green .main-header .navbar .dropdown-menu li.divider{background-color:rgba(255,255,255,0.1)}.skin-green .main-header .navbar .dropdown-menu li a{color:#fff}.skin-green .main-header .navbar .dropdown-menu li a:hover{background:#008d4c}}.skin-green .main-header .logo{background-color:#008d4c;color:#fff;border-bottom:0 solid transparent}.skin-green .main-header .logo:hover{background-color:#008749}.skin-green .main-header li.user-header{background-color:#00a65a}.skin-green .content-header{background:transparent}.skin-green .wrapper,.skin-green .main-sidebar,.skin-green .left-side{background-color:#222d32}.skin-green .user-panel>.info,.skin-green .user-panel>.info>a{color:#fff}.skin-green .sidebar-menu>li.header{color:#4b646f;background:#1a2226}.skin-green .sidebar-menu>li>a{border-left:3px solid transparent}.skin-green .sidebar-menu>li:hover>a,.skin-green .sidebar-menu>li.active>a{color:#fff;background:#1e282c;border-left-color:#00a65a}.skin-green .sidebar-menu>li>.treeview-menu{margin:0 1px;background:#2c3b41}.skin-green .sidebar a{color:#b8c7ce}.skin-green .sidebar a:hover{text-decoration:none}.skin-green .treeview-menu>li>a{color:#8aa4af}.skin-green .treeview-menu>li.active>a,.skin-green .treeview-menu>li>a:hover{color:#fff}.skin-green .sidebar-form{border-radius:3px;border:1px solid #374850;margin:10px 10px}.skin-green .sidebar-form input[type="text"],.skin-green .sidebar-form .btn{box-shadow:none;background-color:#374850;border:1px solid transparent;height:35px;-webkit-transition:all .3s ease-in-out;-o-transition:all .3s ease-in-out;transition:all .3s ease-in-out}.skin-green .sidebar-form input[type="text"]{color:#666;border-top-left-radius:2px;border-top-right-radius:0;border-bottom-right-radius:0;border-bottom-left-radius:2px}.skin-green .sidebar-form input[type="text"]:focus,.skin-green .sidebar-form input[type="text"]:focus+.input-group-btn .btn{background-color:#fff;color:#666}.skin-green .sidebar-form input[type="text"]:focus+.input-group-btn .btn{border-left-color:#fff}.skin-green .sidebar-form .btn{color:#999;border-top-left-radius:0;border-top-right-radius:2px;border-bottom-right-radius:2px;border-bottom-left-radius:0} \ No newline at end of file diff --git a/public/css/skins/skin-purple-light.css b/public/css/skins/skin-purple-light.css deleted file mode 100755 index 551eacb73..000000000 --- a/public/css/skins/skin-purple-light.css +++ /dev/null @@ -1,156 +0,0 @@ -/* - * Skin: Purple - * ------------ - */ -.skin-purple-light .main-header .navbar { - background-color: #605ca8; -} -.skin-purple-light .main-header .navbar .nav > li > a { - color: #ffffff; -} -.skin-purple-light .main-header .navbar .nav > li > a:hover, -.skin-purple-light .main-header .navbar .nav > li > a:active, -.skin-purple-light .main-header .navbar .nav > li > a:focus, -.skin-purple-light .main-header .navbar .nav .open > a, -.skin-purple-light .main-header .navbar .nav .open > a:hover, -.skin-purple-light .main-header .navbar .nav .open > a:focus, -.skin-purple-light .main-header .navbar .nav > .active > a { - background: rgba(0, 0, 0, 0.1); - color: #f6f6f6; -} -.skin-purple-light .main-header .navbar .sidebar-toggle { - color: #ffffff; -} -.skin-purple-light .main-header .navbar .sidebar-toggle:hover { - color: #f6f6f6; - background: rgba(0, 0, 0, 0.1); -} -.skin-purple-light .main-header .navbar .sidebar-toggle { - color: #fff; -} -.skin-purple-light .main-header .navbar .sidebar-toggle:hover { - background-color: #555299; -} -@media (max-width: 767px) { - .skin-purple-light .main-header .navbar .dropdown-menu li.divider { - background-color: rgba(255, 255, 255, 0.1); - } - .skin-purple-light .main-header .navbar .dropdown-menu li a { - color: #fff; - } - .skin-purple-light .main-header .navbar .dropdown-menu li a:hover { - background: #555299; - } -} -.skin-purple-light .main-header .logo { - background-color: #605ca8; - color: #ffffff; - border-bottom: 0 solid transparent; -} -.skin-purple-light .main-header .logo:hover { - background-color: #5d59a6; -} -.skin-purple-light .main-header li.user-header { - background-color: #605ca8; -} -.skin-purple-light .content-header { - background: transparent; -} -.skin-purple-light .wrapper, -.skin-purple-light .main-sidebar, -.skin-purple-light .left-side { - background-color: #f9fafc; -} -.skin-purple-light .content-wrapper, -.skin-purple-light .main-footer { - border-left: 1px solid #d2d6de; -} -.skin-purple-light .user-panel > .info, -.skin-purple-light .user-panel > .info > a { - color: #444444; -} -.skin-purple-light .sidebar-menu > li { - -webkit-transition: border-left-color 0.3s ease; - -o-transition: border-left-color 0.3s ease; - transition: border-left-color 0.3s ease; -} -.skin-purple-light .sidebar-menu > li.header { - color: #848484; - background: #f9fafc; -} -.skin-purple-light .sidebar-menu > li > a { - border-left: 3px solid transparent; - font-weight: 600; -} -.skin-purple-light .sidebar-menu > li:hover > a, -.skin-purple-light .sidebar-menu > li.active > a { - color: #000000; - background: #f4f4f5; -} -.skin-purple-light .sidebar-menu > li.active { - border-left-color: #605ca8; -} -.skin-purple-light .sidebar-menu > li.active > a { - font-weight: 600; -} -.skin-purple-light .sidebar-menu > li > .treeview-menu { - background: #f4f4f5; -} -.skin-purple-light .sidebar a { - color: #444444; -} -.skin-purple-light .sidebar a:hover { - text-decoration: none; -} -.skin-purple-light .treeview-menu > li > a { - color: #777777; -} -.skin-purple-light .treeview-menu > li.active > a, -.skin-purple-light .treeview-menu > li > a:hover { - color: #000000; -} -.skin-purple-light .treeview-menu > li.active > a { - font-weight: 600; -} -.skin-purple-light .sidebar-form { - border-radius: 3px; - border: 1px solid #d2d6de; - margin: 10px 10px; -} -.skin-purple-light .sidebar-form input[type="text"], -.skin-purple-light .sidebar-form .btn { - box-shadow: none; - background-color: #fff; - border: 1px solid transparent; - height: 35px; - -webkit-transition: all 0.3s ease-in-out; - -o-transition: all 0.3s ease-in-out; - transition: all 0.3s ease-in-out; -} -.skin-purple-light .sidebar-form input[type="text"] { - color: #666; - border-top-left-radius: 2px; - border-top-right-radius: 0; - border-bottom-right-radius: 0; - border-bottom-left-radius: 2px; -} -.skin-purple-light .sidebar-form input[type="text"]:focus, -.skin-purple-light .sidebar-form input[type="text"]:focus + .input-group-btn .btn { - background-color: #fff; - color: #666; -} -.skin-purple-light .sidebar-form input[type="text"]:focus + .input-group-btn .btn { - border-left-color: #fff; -} -.skin-purple-light .sidebar-form .btn { - color: #999; - border-top-left-radius: 0; - border-top-right-radius: 2px; - border-bottom-right-radius: 2px; - border-bottom-left-radius: 0; -} -@media (min-width: 768px) { - .skin-purple-light.sidebar-mini.sidebar-collapse .sidebar-menu > li > .treeview-menu { - border-left: 1px solid #d2d6de; - } -} diff --git a/public/css/skins/skin-purple-light.min.css b/public/css/skins/skin-purple-light.min.css deleted file mode 100755 index 53333c4ec..000000000 --- a/public/css/skins/skin-purple-light.min.css +++ /dev/null @@ -1 +0,0 @@ -.skin-purple-light .main-header .navbar{background-color:#605ca8}.skin-purple-light .main-header .navbar .nav>li>a{color:#fff}.skin-purple-light .main-header .navbar .nav>li>a:hover,.skin-purple-light .main-header .navbar .nav>li>a:active,.skin-purple-light .main-header .navbar .nav>li>a:focus,.skin-purple-light .main-header .navbar .nav .open>a,.skin-purple-light .main-header .navbar .nav .open>a:hover,.skin-purple-light .main-header .navbar .nav .open>a:focus,.skin-purple-light .main-header .navbar .nav>.active>a{background:rgba(0,0,0,0.1);color:#f6f6f6}.skin-purple-light .main-header .navbar .sidebar-toggle{color:#fff}.skin-purple-light .main-header .navbar .sidebar-toggle:hover{color:#f6f6f6;background:rgba(0,0,0,0.1)}.skin-purple-light .main-header .navbar .sidebar-toggle{color:#fff}.skin-purple-light .main-header .navbar .sidebar-toggle:hover{background-color:#555299}@media (max-width:767px){.skin-purple-light .main-header .navbar .dropdown-menu li.divider{background-color:rgba(255,255,255,0.1)}.skin-purple-light .main-header .navbar .dropdown-menu li a{color:#fff}.skin-purple-light .main-header .navbar .dropdown-menu li a:hover{background:#555299}}.skin-purple-light .main-header .logo{background-color:#605ca8;color:#fff;border-bottom:0 solid transparent}.skin-purple-light .main-header .logo:hover{background-color:#5d59a6}.skin-purple-light .main-header li.user-header{background-color:#605ca8}.skin-purple-light .content-header{background:transparent}.skin-purple-light .wrapper,.skin-purple-light .main-sidebar,.skin-purple-light .left-side{background-color:#f9fafc}.skin-purple-light .content-wrapper,.skin-purple-light .main-footer{border-left:1px solid #d2d6de}.skin-purple-light .user-panel>.info,.skin-purple-light .user-panel>.info>a{color:#444}.skin-purple-light .sidebar-menu>li{-webkit-transition:border-left-color .3s ease;-o-transition:border-left-color .3s ease;transition:border-left-color .3s ease}.skin-purple-light .sidebar-menu>li.header{color:#848484;background:#f9fafc}.skin-purple-light .sidebar-menu>li>a{border-left:3px solid transparent;font-weight:600}.skin-purple-light .sidebar-menu>li:hover>a,.skin-purple-light .sidebar-menu>li.active>a{color:#000;background:#f4f4f5}.skin-purple-light .sidebar-menu>li.active{border-left-color:#605ca8}.skin-purple-light .sidebar-menu>li.active>a{font-weight:600}.skin-purple-light .sidebar-menu>li>.treeview-menu{background:#f4f4f5}.skin-purple-light .sidebar a{color:#444}.skin-purple-light .sidebar a:hover{text-decoration:none}.skin-purple-light .treeview-menu>li>a{color:#777}.skin-purple-light .treeview-menu>li.active>a,.skin-purple-light .treeview-menu>li>a:hover{color:#000}.skin-purple-light .treeview-menu>li.active>a{font-weight:600}.skin-purple-light .sidebar-form{border-radius:3px;border:1px solid #d2d6de;margin:10px 10px}.skin-purple-light .sidebar-form input[type="text"],.skin-purple-light .sidebar-form .btn{box-shadow:none;background-color:#fff;border:1px solid transparent;height:35px;-webkit-transition:all .3s ease-in-out;-o-transition:all .3s ease-in-out;transition:all .3s ease-in-out}.skin-purple-light .sidebar-form input[type="text"]{color:#666;border-top-left-radius:2px;border-top-right-radius:0;border-bottom-right-radius:0;border-bottom-left-radius:2px}.skin-purple-light .sidebar-form input[type="text"]:focus,.skin-purple-light .sidebar-form input[type="text"]:focus+.input-group-btn .btn{background-color:#fff;color:#666}.skin-purple-light .sidebar-form input[type="text"]:focus+.input-group-btn .btn{border-left-color:#fff}.skin-purple-light .sidebar-form .btn{color:#999;border-top-left-radius:0;border-top-right-radius:2px;border-bottom-right-radius:2px;border-bottom-left-radius:0}@media (min-width:768px){.skin-purple-light.sidebar-mini.sidebar-collapse .sidebar-menu>li>.treeview-menu{border-left:1px solid #d2d6de}} \ No newline at end of file diff --git a/public/css/skins/skin-purple.css b/public/css/skins/skin-purple.css deleted file mode 100755 index b1d6c8a3e..000000000 --- a/public/css/skins/skin-purple.css +++ /dev/null @@ -1,134 +0,0 @@ -/* - * Skin: Purple - * ------------ - */ -.skin-purple .main-header .navbar { - background-color: #605ca8; -} -.skin-purple .main-header .navbar .nav > li > a { - color: #ffffff; -} -.skin-purple .main-header .navbar .nav > li > a:hover, -.skin-purple .main-header .navbar .nav > li > a:active, -.skin-purple .main-header .navbar .nav > li > a:focus, -.skin-purple .main-header .navbar .nav .open > a, -.skin-purple .main-header .navbar .nav .open > a:hover, -.skin-purple .main-header .navbar .nav .open > a:focus, -.skin-purple .main-header .navbar .nav > .active > a { - background: rgba(0, 0, 0, 0.1); - color: #f6f6f6; -} -.skin-purple .main-header .navbar .sidebar-toggle { - color: #ffffff; -} -.skin-purple .main-header .navbar .sidebar-toggle:hover { - color: #f6f6f6; - background: rgba(0, 0, 0, 0.1); -} -.skin-purple .main-header .navbar .sidebar-toggle { - color: #fff; -} -.skin-purple .main-header .navbar .sidebar-toggle:hover { - background-color: #555299; -} -@media (max-width: 767px) { - .skin-purple .main-header .navbar .dropdown-menu li.divider { - background-color: rgba(255, 255, 255, 0.1); - } - .skin-purple .main-header .navbar .dropdown-menu li a { - color: #fff; - } - .skin-purple .main-header .navbar .dropdown-menu li a:hover { - background: #555299; - } -} -.skin-purple .main-header .logo { - background-color: #555299; - color: #ffffff; - border-bottom: 0 solid transparent; -} -.skin-purple .main-header .logo:hover { - background-color: #545096; -} -.skin-purple .main-header li.user-header { - background-color: #605ca8; -} -.skin-purple .content-header { - background: transparent; -} -.skin-purple .wrapper, -.skin-purple .main-sidebar, -.skin-purple .left-side { - background-color: #222d32; -} -.skin-purple .user-panel > .info, -.skin-purple .user-panel > .info > a { - color: #fff; -} -.skin-purple .sidebar-menu > li.header { - color: #4b646f; - background: #1a2226; -} -.skin-purple .sidebar-menu > li > a { - border-left: 3px solid transparent; -} -.skin-purple .sidebar-menu > li:hover > a, -.skin-purple .sidebar-menu > li.active > a { - color: #ffffff; - background: #1e282c; - border-left-color: #605ca8; -} -.skin-purple .sidebar-menu > li > .treeview-menu { - margin: 0 1px; - background: #2c3b41; -} -.skin-purple .sidebar a { - color: #b8c7ce; -} -.skin-purple .sidebar a:hover { - text-decoration: none; -} -.skin-purple .treeview-menu > li > a { - color: #8aa4af; -} -.skin-purple .treeview-menu > li.active > a, -.skin-purple .treeview-menu > li > a:hover { - color: #ffffff; -} -.skin-purple .sidebar-form { - border-radius: 3px; - border: 1px solid #374850; - margin: 10px 10px; -} -.skin-purple .sidebar-form input[type="text"], -.skin-purple .sidebar-form .btn { - box-shadow: none; - background-color: #374850; - border: 1px solid transparent; - height: 35px; - -webkit-transition: all 0.3s ease-in-out; - -o-transition: all 0.3s ease-in-out; - transition: all 0.3s ease-in-out; -} -.skin-purple .sidebar-form input[type="text"] { - color: #666; - border-top-left-radius: 2px; - border-top-right-radius: 0; - border-bottom-right-radius: 0; - border-bottom-left-radius: 2px; -} -.skin-purple .sidebar-form input[type="text"]:focus, -.skin-purple .sidebar-form input[type="text"]:focus + .input-group-btn .btn { - background-color: #fff; - color: #666; -} -.skin-purple .sidebar-form input[type="text"]:focus + .input-group-btn .btn { - border-left-color: #fff; -} -.skin-purple .sidebar-form .btn { - color: #999; - border-top-left-radius: 0; - border-top-right-radius: 2px; - border-bottom-right-radius: 2px; - border-bottom-left-radius: 0; -} diff --git a/public/css/skins/skin-purple.min.css b/public/css/skins/skin-purple.min.css deleted file mode 100755 index 1eff3d9dd..000000000 --- a/public/css/skins/skin-purple.min.css +++ /dev/null @@ -1 +0,0 @@ -.skin-purple .main-header .navbar{background-color:#605ca8}.skin-purple .main-header .navbar .nav>li>a{color:#fff}.skin-purple .main-header .navbar .nav>li>a:hover,.skin-purple .main-header .navbar .nav>li>a:active,.skin-purple .main-header .navbar .nav>li>a:focus,.skin-purple .main-header .navbar .nav .open>a,.skin-purple .main-header .navbar .nav .open>a:hover,.skin-purple .main-header .navbar .nav .open>a:focus,.skin-purple .main-header .navbar .nav>.active>a{background:rgba(0,0,0,0.1);color:#f6f6f6}.skin-purple .main-header .navbar .sidebar-toggle{color:#fff}.skin-purple .main-header .navbar .sidebar-toggle:hover{color:#f6f6f6;background:rgba(0,0,0,0.1)}.skin-purple .main-header .navbar .sidebar-toggle{color:#fff}.skin-purple .main-header .navbar .sidebar-toggle:hover{background-color:#555299}@media (max-width:767px){.skin-purple .main-header .navbar .dropdown-menu li.divider{background-color:rgba(255,255,255,0.1)}.skin-purple .main-header .navbar .dropdown-menu li a{color:#fff}.skin-purple .main-header .navbar .dropdown-menu li a:hover{background:#555299}}.skin-purple .main-header .logo{background-color:#555299;color:#fff;border-bottom:0 solid transparent}.skin-purple .main-header .logo:hover{background-color:#545096}.skin-purple .main-header li.user-header{background-color:#605ca8}.skin-purple .content-header{background:transparent}.skin-purple .wrapper,.skin-purple .main-sidebar,.skin-purple .left-side{background-color:#222d32}.skin-purple .user-panel>.info,.skin-purple .user-panel>.info>a{color:#fff}.skin-purple .sidebar-menu>li.header{color:#4b646f;background:#1a2226}.skin-purple .sidebar-menu>li>a{border-left:3px solid transparent}.skin-purple .sidebar-menu>li:hover>a,.skin-purple .sidebar-menu>li.active>a{color:#fff;background:#1e282c;border-left-color:#605ca8}.skin-purple .sidebar-menu>li>.treeview-menu{margin:0 1px;background:#2c3b41}.skin-purple .sidebar a{color:#b8c7ce}.skin-purple .sidebar a:hover{text-decoration:none}.skin-purple .treeview-menu>li>a{color:#8aa4af}.skin-purple .treeview-menu>li.active>a,.skin-purple .treeview-menu>li>a:hover{color:#fff}.skin-purple .sidebar-form{border-radius:3px;border:1px solid #374850;margin:10px 10px}.skin-purple .sidebar-form input[type="text"],.skin-purple .sidebar-form .btn{box-shadow:none;background-color:#374850;border:1px solid transparent;height:35px;-webkit-transition:all .3s ease-in-out;-o-transition:all .3s ease-in-out;transition:all .3s ease-in-out}.skin-purple .sidebar-form input[type="text"]{color:#666;border-top-left-radius:2px;border-top-right-radius:0;border-bottom-right-radius:0;border-bottom-left-radius:2px}.skin-purple .sidebar-form input[type="text"]:focus,.skin-purple .sidebar-form input[type="text"]:focus+.input-group-btn .btn{background-color:#fff;color:#666}.skin-purple .sidebar-form input[type="text"]:focus+.input-group-btn .btn{border-left-color:#fff}.skin-purple .sidebar-form .btn{color:#999;border-top-left-radius:0;border-top-right-radius:2px;border-bottom-right-radius:2px;border-bottom-left-radius:0} \ No newline at end of file diff --git a/public/css/skins/skin-red-light.css b/public/css/skins/skin-red-light.css deleted file mode 100755 index 4ba687f0a..000000000 --- a/public/css/skins/skin-red-light.css +++ /dev/null @@ -1,156 +0,0 @@ -/* - * Skin: Red - * --------- - */ -.skin-red-light .main-header .navbar { - background-color: #dd4b39; -} -.skin-red-light .main-header .navbar .nav > li > a { - color: #ffffff; -} -.skin-red-light .main-header .navbar .nav > li > a:hover, -.skin-red-light .main-header .navbar .nav > li > a:active, -.skin-red-light .main-header .navbar .nav > li > a:focus, -.skin-red-light .main-header .navbar .nav .open > a, -.skin-red-light .main-header .navbar .nav .open > a:hover, -.skin-red-light .main-header .navbar .nav .open > a:focus, -.skin-red-light .main-header .navbar .nav > .active > a { - background: rgba(0, 0, 0, 0.1); - color: #f6f6f6; -} -.skin-red-light .main-header .navbar .sidebar-toggle { - color: #ffffff; -} -.skin-red-light .main-header .navbar .sidebar-toggle:hover { - color: #f6f6f6; - background: rgba(0, 0, 0, 0.1); -} -.skin-red-light .main-header .navbar .sidebar-toggle { - color: #fff; -} -.skin-red-light .main-header .navbar .sidebar-toggle:hover { - background-color: #d73925; -} -@media (max-width: 767px) { - .skin-red-light .main-header .navbar .dropdown-menu li.divider { - background-color: rgba(255, 255, 255, 0.1); - } - .skin-red-light .main-header .navbar .dropdown-menu li a { - color: #fff; - } - .skin-red-light .main-header .navbar .dropdown-menu li a:hover { - background: #d73925; - } -} -.skin-red-light .main-header .logo { - background-color: #dd4b39; - color: #ffffff; - border-bottom: 0 solid transparent; -} -.skin-red-light .main-header .logo:hover { - background-color: #dc4735; -} -.skin-red-light .main-header li.user-header { - background-color: #dd4b39; -} -.skin-red-light .content-header { - background: transparent; -} -.skin-red-light .wrapper, -.skin-red-light .main-sidebar, -.skin-red-light .left-side { - background-color: #f9fafc; -} -.skin-red-light .content-wrapper, -.skin-red-light .main-footer { - border-left: 1px solid #d2d6de; -} -.skin-red-light .user-panel > .info, -.skin-red-light .user-panel > .info > a { - color: #444444; -} -.skin-red-light .sidebar-menu > li { - -webkit-transition: border-left-color 0.3s ease; - -o-transition: border-left-color 0.3s ease; - transition: border-left-color 0.3s ease; -} -.skin-red-light .sidebar-menu > li.header { - color: #848484; - background: #f9fafc; -} -.skin-red-light .sidebar-menu > li > a { - border-left: 3px solid transparent; - font-weight: 600; -} -.skin-red-light .sidebar-menu > li:hover > a, -.skin-red-light .sidebar-menu > li.active > a { - color: #000000; - background: #f4f4f5; -} -.skin-red-light .sidebar-menu > li.active { - border-left-color: #dd4b39; -} -.skin-red-light .sidebar-menu > li.active > a { - font-weight: 600; -} -.skin-red-light .sidebar-menu > li > .treeview-menu { - background: #f4f4f5; -} -.skin-red-light .sidebar a { - color: #444444; -} -.skin-red-light .sidebar a:hover { - text-decoration: none; -} -.skin-red-light .treeview-menu > li > a { - color: #777777; -} -.skin-red-light .treeview-menu > li.active > a, -.skin-red-light .treeview-menu > li > a:hover { - color: #000000; -} -.skin-red-light .treeview-menu > li.active > a { - font-weight: 600; -} -.skin-red-light .sidebar-form { - border-radius: 3px; - border: 1px solid #d2d6de; - margin: 10px 10px; -} -.skin-red-light .sidebar-form input[type="text"], -.skin-red-light .sidebar-form .btn { - box-shadow: none; - background-color: #fff; - border: 1px solid transparent; - height: 35px; - -webkit-transition: all 0.3s ease-in-out; - -o-transition: all 0.3s ease-in-out; - transition: all 0.3s ease-in-out; -} -.skin-red-light .sidebar-form input[type="text"] { - color: #666; - border-top-left-radius: 2px; - border-top-right-radius: 0; - border-bottom-right-radius: 0; - border-bottom-left-radius: 2px; -} -.skin-red-light .sidebar-form input[type="text"]:focus, -.skin-red-light .sidebar-form input[type="text"]:focus + .input-group-btn .btn { - background-color: #fff; - color: #666; -} -.skin-red-light .sidebar-form input[type="text"]:focus + .input-group-btn .btn { - border-left-color: #fff; -} -.skin-red-light .sidebar-form .btn { - color: #999; - border-top-left-radius: 0; - border-top-right-radius: 2px; - border-bottom-right-radius: 2px; - border-bottom-left-radius: 0; -} -@media (min-width: 768px) { - .skin-red-light.sidebar-mini.sidebar-collapse .sidebar-menu > li > .treeview-menu { - border-left: 1px solid #d2d6de; - } -} diff --git a/public/css/skins/skin-red-light.min.css b/public/css/skins/skin-red-light.min.css deleted file mode 100755 index 7ab4c1fde..000000000 --- a/public/css/skins/skin-red-light.min.css +++ /dev/null @@ -1 +0,0 @@ -.skin-red-light .main-header .navbar{background-color:#dd4b39}.skin-red-light .main-header .navbar .nav>li>a{color:#fff}.skin-red-light .main-header .navbar .nav>li>a:hover,.skin-red-light .main-header .navbar .nav>li>a:active,.skin-red-light .main-header .navbar .nav>li>a:focus,.skin-red-light .main-header .navbar .nav .open>a,.skin-red-light .main-header .navbar .nav .open>a:hover,.skin-red-light .main-header .navbar .nav .open>a:focus,.skin-red-light .main-header .navbar .nav>.active>a{background:rgba(0,0,0,0.1);color:#f6f6f6}.skin-red-light .main-header .navbar .sidebar-toggle{color:#fff}.skin-red-light .main-header .navbar .sidebar-toggle:hover{color:#f6f6f6;background:rgba(0,0,0,0.1)}.skin-red-light .main-header .navbar .sidebar-toggle{color:#fff}.skin-red-light .main-header .navbar .sidebar-toggle:hover{background-color:#d73925}@media (max-width:767px){.skin-red-light .main-header .navbar .dropdown-menu li.divider{background-color:rgba(255,255,255,0.1)}.skin-red-light .main-header .navbar .dropdown-menu li a{color:#fff}.skin-red-light .main-header .navbar .dropdown-menu li a:hover{background:#d73925}}.skin-red-light .main-header .logo{background-color:#dd4b39;color:#fff;border-bottom:0 solid transparent}.skin-red-light .main-header .logo:hover{background-color:#dc4735}.skin-red-light .main-header li.user-header{background-color:#dd4b39}.skin-red-light .content-header{background:transparent}.skin-red-light .wrapper,.skin-red-light .main-sidebar,.skin-red-light .left-side{background-color:#f9fafc}.skin-red-light .content-wrapper,.skin-red-light .main-footer{border-left:1px solid #d2d6de}.skin-red-light .user-panel>.info,.skin-red-light .user-panel>.info>a{color:#444}.skin-red-light .sidebar-menu>li{-webkit-transition:border-left-color .3s ease;-o-transition:border-left-color .3s ease;transition:border-left-color .3s ease}.skin-red-light .sidebar-menu>li.header{color:#848484;background:#f9fafc}.skin-red-light .sidebar-menu>li>a{border-left:3px solid transparent;font-weight:600}.skin-red-light .sidebar-menu>li:hover>a,.skin-red-light .sidebar-menu>li.active>a{color:#000;background:#f4f4f5}.skin-red-light .sidebar-menu>li.active{border-left-color:#dd4b39}.skin-red-light .sidebar-menu>li.active>a{font-weight:600}.skin-red-light .sidebar-menu>li>.treeview-menu{background:#f4f4f5}.skin-red-light .sidebar a{color:#444}.skin-red-light .sidebar a:hover{text-decoration:none}.skin-red-light .treeview-menu>li>a{color:#777}.skin-red-light .treeview-menu>li.active>a,.skin-red-light .treeview-menu>li>a:hover{color:#000}.skin-red-light .treeview-menu>li.active>a{font-weight:600}.skin-red-light .sidebar-form{border-radius:3px;border:1px solid #d2d6de;margin:10px 10px}.skin-red-light .sidebar-form input[type="text"],.skin-red-light .sidebar-form .btn{box-shadow:none;background-color:#fff;border:1px solid transparent;height:35px;-webkit-transition:all .3s ease-in-out;-o-transition:all .3s ease-in-out;transition:all .3s ease-in-out}.skin-red-light .sidebar-form input[type="text"]{color:#666;border-top-left-radius:2px;border-top-right-radius:0;border-bottom-right-radius:0;border-bottom-left-radius:2px}.skin-red-light .sidebar-form input[type="text"]:focus,.skin-red-light .sidebar-form input[type="text"]:focus+.input-group-btn .btn{background-color:#fff;color:#666}.skin-red-light .sidebar-form input[type="text"]:focus+.input-group-btn .btn{border-left-color:#fff}.skin-red-light .sidebar-form .btn{color:#999;border-top-left-radius:0;border-top-right-radius:2px;border-bottom-right-radius:2px;border-bottom-left-radius:0}@media (min-width:768px){.skin-red-light.sidebar-mini.sidebar-collapse .sidebar-menu>li>.treeview-menu{border-left:1px solid #d2d6de}} \ No newline at end of file diff --git a/public/css/skins/skin-red.css b/public/css/skins/skin-red.css deleted file mode 100755 index 6071511e9..000000000 --- a/public/css/skins/skin-red.css +++ /dev/null @@ -1,134 +0,0 @@ -/* - * Skin: Red - * --------- - */ -.skin-red .main-header .navbar { - background-color: #dd4b39; -} -.skin-red .main-header .navbar .nav > li > a { - color: #ffffff; -} -.skin-red .main-header .navbar .nav > li > a:hover, -.skin-red .main-header .navbar .nav > li > a:active, -.skin-red .main-header .navbar .nav > li > a:focus, -.skin-red .main-header .navbar .nav .open > a, -.skin-red .main-header .navbar .nav .open > a:hover, -.skin-red .main-header .navbar .nav .open > a:focus, -.skin-red .main-header .navbar .nav > .active > a { - background: rgba(0, 0, 0, 0.1); - color: #f6f6f6; -} -.skin-red .main-header .navbar .sidebar-toggle { - color: #ffffff; -} -.skin-red .main-header .navbar .sidebar-toggle:hover { - color: #f6f6f6; - background: rgba(0, 0, 0, 0.1); -} -.skin-red .main-header .navbar .sidebar-toggle { - color: #fff; -} -.skin-red .main-header .navbar .sidebar-toggle:hover { - background-color: #d73925; -} -@media (max-width: 767px) { - .skin-red .main-header .navbar .dropdown-menu li.divider { - background-color: rgba(255, 255, 255, 0.1); - } - .skin-red .main-header .navbar .dropdown-menu li a { - color: #fff; - } - .skin-red .main-header .navbar .dropdown-menu li a:hover { - background: #d73925; - } -} -.skin-red .main-header .logo { - background-color: #d73925; - color: #ffffff; - border-bottom: 0 solid transparent; -} -.skin-red .main-header .logo:hover { - background-color: #d33724; -} -.skin-red .main-header li.user-header { - background-color: #dd4b39; -} -.skin-red .content-header { - background: transparent; -} -.skin-red .wrapper, -.skin-red .main-sidebar, -.skin-red .left-side { - background-color: #222d32; -} -.skin-red .user-panel > .info, -.skin-red .user-panel > .info > a { - color: #fff; -} -.skin-red .sidebar-menu > li.header { - color: #4b646f; - background: #1a2226; -} -.skin-red .sidebar-menu > li > a { - border-left: 3px solid transparent; -} -.skin-red .sidebar-menu > li:hover > a, -.skin-red .sidebar-menu > li.active > a { - color: #ffffff; - background: #1e282c; - border-left-color: #dd4b39; -} -.skin-red .sidebar-menu > li > .treeview-menu { - margin: 0 1px; - background: #2c3b41; -} -.skin-red .sidebar a { - color: #b8c7ce; -} -.skin-red .sidebar a:hover { - text-decoration: none; -} -.skin-red .treeview-menu > li > a { - color: #8aa4af; -} -.skin-red .treeview-menu > li.active > a, -.skin-red .treeview-menu > li > a:hover { - color: #ffffff; -} -.skin-red .sidebar-form { - border-radius: 3px; - border: 1px solid #374850; - margin: 10px 10px; -} -.skin-red .sidebar-form input[type="text"], -.skin-red .sidebar-form .btn { - box-shadow: none; - background-color: #374850; - border: 1px solid transparent; - height: 35px; - -webkit-transition: all 0.3s ease-in-out; - -o-transition: all 0.3s ease-in-out; - transition: all 0.3s ease-in-out; -} -.skin-red .sidebar-form input[type="text"] { - color: #666; - border-top-left-radius: 2px; - border-top-right-radius: 0; - border-bottom-right-radius: 0; - border-bottom-left-radius: 2px; -} -.skin-red .sidebar-form input[type="text"]:focus, -.skin-red .sidebar-form input[type="text"]:focus + .input-group-btn .btn { - background-color: #fff; - color: #666; -} -.skin-red .sidebar-form input[type="text"]:focus + .input-group-btn .btn { - border-left-color: #fff; -} -.skin-red .sidebar-form .btn { - color: #999; - border-top-left-radius: 0; - border-top-right-radius: 2px; - border-bottom-right-radius: 2px; - border-bottom-left-radius: 0; -} diff --git a/public/css/skins/skin-red.min.css b/public/css/skins/skin-red.min.css deleted file mode 100755 index 3252b273b..000000000 --- a/public/css/skins/skin-red.min.css +++ /dev/null @@ -1 +0,0 @@ -.skin-red .main-header .navbar{background-color:#dd4b39}.skin-red .main-header .navbar .nav>li>a{color:#fff}.skin-red .main-header .navbar .nav>li>a:hover,.skin-red .main-header .navbar .nav>li>a:active,.skin-red .main-header .navbar .nav>li>a:focus,.skin-red .main-header .navbar .nav .open>a,.skin-red .main-header .navbar .nav .open>a:hover,.skin-red .main-header .navbar .nav .open>a:focus,.skin-red .main-header .navbar .nav>.active>a{background:rgba(0,0,0,0.1);color:#f6f6f6}.skin-red .main-header .navbar .sidebar-toggle{color:#fff}.skin-red .main-header .navbar .sidebar-toggle:hover{color:#f6f6f6;background:rgba(0,0,0,0.1)}.skin-red .main-header .navbar .sidebar-toggle{color:#fff}.skin-red .main-header .navbar .sidebar-toggle:hover{background-color:#d73925}@media (max-width:767px){.skin-red .main-header .navbar .dropdown-menu li.divider{background-color:rgba(255,255,255,0.1)}.skin-red .main-header .navbar .dropdown-menu li a{color:#fff}.skin-red .main-header .navbar .dropdown-menu li a:hover{background:#d73925}}.skin-red .main-header .logo{background-color:#d73925;color:#fff;border-bottom:0 solid transparent}.skin-red .main-header .logo:hover{background-color:#d33724}.skin-red .main-header li.user-header{background-color:#dd4b39}.skin-red .content-header{background:transparent}.skin-red .wrapper,.skin-red .main-sidebar,.skin-red .left-side{background-color:#222d32}.skin-red .user-panel>.info,.skin-red .user-panel>.info>a{color:#fff}.skin-red .sidebar-menu>li.header{color:#4b646f;background:#1a2226}.skin-red .sidebar-menu>li>a{border-left:3px solid transparent}.skin-red .sidebar-menu>li:hover>a,.skin-red .sidebar-menu>li.active>a{color:#fff;background:#1e282c;border-left-color:#dd4b39}.skin-red .sidebar-menu>li>.treeview-menu{margin:0 1px;background:#2c3b41}.skin-red .sidebar a{color:#b8c7ce}.skin-red .sidebar a:hover{text-decoration:none}.skin-red .treeview-menu>li>a{color:#8aa4af}.skin-red .treeview-menu>li.active>a,.skin-red .treeview-menu>li>a:hover{color:#fff}.skin-red .sidebar-form{border-radius:3px;border:1px solid #374850;margin:10px 10px}.skin-red .sidebar-form input[type="text"],.skin-red .sidebar-form .btn{box-shadow:none;background-color:#374850;border:1px solid transparent;height:35px;-webkit-transition:all .3s ease-in-out;-o-transition:all .3s ease-in-out;transition:all .3s ease-in-out}.skin-red .sidebar-form input[type="text"]{color:#666;border-top-left-radius:2px;border-top-right-radius:0;border-bottom-right-radius:0;border-bottom-left-radius:2px}.skin-red .sidebar-form input[type="text"]:focus,.skin-red .sidebar-form input[type="text"]:focus+.input-group-btn .btn{background-color:#fff;color:#666}.skin-red .sidebar-form input[type="text"]:focus+.input-group-btn .btn{border-left-color:#fff}.skin-red .sidebar-form .btn{color:#999;border-top-left-radius:0;border-top-right-radius:2px;border-bottom-right-radius:2px;border-bottom-left-radius:0} \ No newline at end of file diff --git a/public/css/skins/skin-yellow-light.css b/public/css/skins/skin-yellow-light.css deleted file mode 100755 index 1c977d4aa..000000000 --- a/public/css/skins/skin-yellow-light.css +++ /dev/null @@ -1,156 +0,0 @@ -/* - * Skin: Yellow - * ------------ - */ -.skin-yellow-light .main-header .navbar { - background-color: #f39c12; -} -.skin-yellow-light .main-header .navbar .nav > li > a { - color: #ffffff; -} -.skin-yellow-light .main-header .navbar .nav > li > a:hover, -.skin-yellow-light .main-header .navbar .nav > li > a:active, -.skin-yellow-light .main-header .navbar .nav > li > a:focus, -.skin-yellow-light .main-header .navbar .nav .open > a, -.skin-yellow-light .main-header .navbar .nav .open > a:hover, -.skin-yellow-light .main-header .navbar .nav .open > a:focus, -.skin-yellow-light .main-header .navbar .nav > .active > a { - background: rgba(0, 0, 0, 0.1); - color: #f6f6f6; -} -.skin-yellow-light .main-header .navbar .sidebar-toggle { - color: #ffffff; -} -.skin-yellow-light .main-header .navbar .sidebar-toggle:hover { - color: #f6f6f6; - background: rgba(0, 0, 0, 0.1); -} -.skin-yellow-light .main-header .navbar .sidebar-toggle { - color: #fff; -} -.skin-yellow-light .main-header .navbar .sidebar-toggle:hover { - background-color: #e08e0b; -} -@media (max-width: 767px) { - .skin-yellow-light .main-header .navbar .dropdown-menu li.divider { - background-color: rgba(255, 255, 255, 0.1); - } - .skin-yellow-light .main-header .navbar .dropdown-menu li a { - color: #fff; - } - .skin-yellow-light .main-header .navbar .dropdown-menu li a:hover { - background: #e08e0b; - } -} -.skin-yellow-light .main-header .logo { - background-color: #f39c12; - color: #ffffff; - border-bottom: 0 solid transparent; -} -.skin-yellow-light .main-header .logo:hover { - background-color: #f39a0d; -} -.skin-yellow-light .main-header li.user-header { - background-color: #f39c12; -} -.skin-yellow-light .content-header { - background: transparent; -} -.skin-yellow-light .wrapper, -.skin-yellow-light .main-sidebar, -.skin-yellow-light .left-side { - background-color: #f9fafc; -} -.skin-yellow-light .content-wrapper, -.skin-yellow-light .main-footer { - border-left: 1px solid #d2d6de; -} -.skin-yellow-light .user-panel > .info, -.skin-yellow-light .user-panel > .info > a { - color: #444444; -} -.skin-yellow-light .sidebar-menu > li { - -webkit-transition: border-left-color 0.3s ease; - -o-transition: border-left-color 0.3s ease; - transition: border-left-color 0.3s ease; -} -.skin-yellow-light .sidebar-menu > li.header { - color: #848484; - background: #f9fafc; -} -.skin-yellow-light .sidebar-menu > li > a { - border-left: 3px solid transparent; - font-weight: 600; -} -.skin-yellow-light .sidebar-menu > li:hover > a, -.skin-yellow-light .sidebar-menu > li.active > a { - color: #000000; - background: #f4f4f5; -} -.skin-yellow-light .sidebar-menu > li.active { - border-left-color: #f39c12; -} -.skin-yellow-light .sidebar-menu > li.active > a { - font-weight: 600; -} -.skin-yellow-light .sidebar-menu > li > .treeview-menu { - background: #f4f4f5; -} -.skin-yellow-light .sidebar a { - color: #444444; -} -.skin-yellow-light .sidebar a:hover { - text-decoration: none; -} -.skin-yellow-light .treeview-menu > li > a { - color: #777777; -} -.skin-yellow-light .treeview-menu > li.active > a, -.skin-yellow-light .treeview-menu > li > a:hover { - color: #000000; -} -.skin-yellow-light .treeview-menu > li.active > a { - font-weight: 600; -} -.skin-yellow-light .sidebar-form { - border-radius: 3px; - border: 1px solid #d2d6de; - margin: 10px 10px; -} -.skin-yellow-light .sidebar-form input[type="text"], -.skin-yellow-light .sidebar-form .btn { - box-shadow: none; - background-color: #fff; - border: 1px solid transparent; - height: 35px; - -webkit-transition: all 0.3s ease-in-out; - -o-transition: all 0.3s ease-in-out; - transition: all 0.3s ease-in-out; -} -.skin-yellow-light .sidebar-form input[type="text"] { - color: #666; - border-top-left-radius: 2px; - border-top-right-radius: 0; - border-bottom-right-radius: 0; - border-bottom-left-radius: 2px; -} -.skin-yellow-light .sidebar-form input[type="text"]:focus, -.skin-yellow-light .sidebar-form input[type="text"]:focus + .input-group-btn .btn { - background-color: #fff; - color: #666; -} -.skin-yellow-light .sidebar-form input[type="text"]:focus + .input-group-btn .btn { - border-left-color: #fff; -} -.skin-yellow-light .sidebar-form .btn { - color: #999; - border-top-left-radius: 0; - border-top-right-radius: 2px; - border-bottom-right-radius: 2px; - border-bottom-left-radius: 0; -} -@media (min-width: 768px) { - .skin-yellow-light.sidebar-mini.sidebar-collapse .sidebar-menu > li > .treeview-menu { - border-left: 1px solid #d2d6de; - } -} diff --git a/public/css/skins/skin-yellow-light.min.css b/public/css/skins/skin-yellow-light.min.css deleted file mode 100755 index 773b254fe..000000000 --- a/public/css/skins/skin-yellow-light.min.css +++ /dev/null @@ -1 +0,0 @@ -.skin-yellow-light .main-header .navbar{background-color:#f39c12}.skin-yellow-light .main-header .navbar .nav>li>a{color:#fff}.skin-yellow-light .main-header .navbar .nav>li>a:hover,.skin-yellow-light .main-header .navbar .nav>li>a:active,.skin-yellow-light .main-header .navbar .nav>li>a:focus,.skin-yellow-light .main-header .navbar .nav .open>a,.skin-yellow-light .main-header .navbar .nav .open>a:hover,.skin-yellow-light .main-header .navbar .nav .open>a:focus,.skin-yellow-light .main-header .navbar .nav>.active>a{background:rgba(0,0,0,0.1);color:#f6f6f6}.skin-yellow-light .main-header .navbar .sidebar-toggle{color:#fff}.skin-yellow-light .main-header .navbar .sidebar-toggle:hover{color:#f6f6f6;background:rgba(0,0,0,0.1)}.skin-yellow-light .main-header .navbar .sidebar-toggle{color:#fff}.skin-yellow-light .main-header .navbar .sidebar-toggle:hover{background-color:#e08e0b}@media (max-width:767px){.skin-yellow-light .main-header .navbar .dropdown-menu li.divider{background-color:rgba(255,255,255,0.1)}.skin-yellow-light .main-header .navbar .dropdown-menu li a{color:#fff}.skin-yellow-light .main-header .navbar .dropdown-menu li a:hover{background:#e08e0b}}.skin-yellow-light .main-header .logo{background-color:#f39c12;color:#fff;border-bottom:0 solid transparent}.skin-yellow-light .main-header .logo:hover{background-color:#f39a0d}.skin-yellow-light .main-header li.user-header{background-color:#f39c12}.skin-yellow-light .content-header{background:transparent}.skin-yellow-light .wrapper,.skin-yellow-light .main-sidebar,.skin-yellow-light .left-side{background-color:#f9fafc}.skin-yellow-light .content-wrapper,.skin-yellow-light .main-footer{border-left:1px solid #d2d6de}.skin-yellow-light .user-panel>.info,.skin-yellow-light .user-panel>.info>a{color:#444}.skin-yellow-light .sidebar-menu>li{-webkit-transition:border-left-color .3s ease;-o-transition:border-left-color .3s ease;transition:border-left-color .3s ease}.skin-yellow-light .sidebar-menu>li.header{color:#848484;background:#f9fafc}.skin-yellow-light .sidebar-menu>li>a{border-left:3px solid transparent;font-weight:600}.skin-yellow-light .sidebar-menu>li:hover>a,.skin-yellow-light .sidebar-menu>li.active>a{color:#000;background:#f4f4f5}.skin-yellow-light .sidebar-menu>li.active{border-left-color:#f39c12}.skin-yellow-light .sidebar-menu>li.active>a{font-weight:600}.skin-yellow-light .sidebar-menu>li>.treeview-menu{background:#f4f4f5}.skin-yellow-light .sidebar a{color:#444}.skin-yellow-light .sidebar a:hover{text-decoration:none}.skin-yellow-light .treeview-menu>li>a{color:#777}.skin-yellow-light .treeview-menu>li.active>a,.skin-yellow-light .treeview-menu>li>a:hover{color:#000}.skin-yellow-light .treeview-menu>li.active>a{font-weight:600}.skin-yellow-light .sidebar-form{border-radius:3px;border:1px solid #d2d6de;margin:10px 10px}.skin-yellow-light .sidebar-form input[type="text"],.skin-yellow-light .sidebar-form .btn{box-shadow:none;background-color:#fff;border:1px solid transparent;height:35px;-webkit-transition:all .3s ease-in-out;-o-transition:all .3s ease-in-out;transition:all .3s ease-in-out}.skin-yellow-light .sidebar-form input[type="text"]{color:#666;border-top-left-radius:2px;border-top-right-radius:0;border-bottom-right-radius:0;border-bottom-left-radius:2px}.skin-yellow-light .sidebar-form input[type="text"]:focus,.skin-yellow-light .sidebar-form input[type="text"]:focus+.input-group-btn .btn{background-color:#fff;color:#666}.skin-yellow-light .sidebar-form input[type="text"]:focus+.input-group-btn .btn{border-left-color:#fff}.skin-yellow-light .sidebar-form .btn{color:#999;border-top-left-radius:0;border-top-right-radius:2px;border-bottom-right-radius:2px;border-bottom-left-radius:0}@media (min-width:768px){.skin-yellow-light.sidebar-mini.sidebar-collapse .sidebar-menu>li>.treeview-menu{border-left:1px solid #d2d6de}} \ No newline at end of file diff --git a/public/css/skins/skin-yellow.css b/public/css/skins/skin-yellow.css deleted file mode 100755 index df00a4160..000000000 --- a/public/css/skins/skin-yellow.css +++ /dev/null @@ -1,134 +0,0 @@ -/* - * Skin: Yellow - * ------------ - */ -.skin-yellow .main-header .navbar { - background-color: #f39c12; -} -.skin-yellow .main-header .navbar .nav > li > a { - color: #ffffff; -} -.skin-yellow .main-header .navbar .nav > li > a:hover, -.skin-yellow .main-header .navbar .nav > li > a:active, -.skin-yellow .main-header .navbar .nav > li > a:focus, -.skin-yellow .main-header .navbar .nav .open > a, -.skin-yellow .main-header .navbar .nav .open > a:hover, -.skin-yellow .main-header .navbar .nav .open > a:focus, -.skin-yellow .main-header .navbar .nav > .active > a { - background: rgba(0, 0, 0, 0.1); - color: #f6f6f6; -} -.skin-yellow .main-header .navbar .sidebar-toggle { - color: #ffffff; -} -.skin-yellow .main-header .navbar .sidebar-toggle:hover { - color: #f6f6f6; - background: rgba(0, 0, 0, 0.1); -} -.skin-yellow .main-header .navbar .sidebar-toggle { - color: #fff; -} -.skin-yellow .main-header .navbar .sidebar-toggle:hover { - background-color: #e08e0b; -} -@media (max-width: 767px) { - .skin-yellow .main-header .navbar .dropdown-menu li.divider { - background-color: rgba(255, 255, 255, 0.1); - } - .skin-yellow .main-header .navbar .dropdown-menu li a { - color: #fff; - } - .skin-yellow .main-header .navbar .dropdown-menu li a:hover { - background: #e08e0b; - } -} -.skin-yellow .main-header .logo { - background-color: #e08e0b; - color: #ffffff; - border-bottom: 0 solid transparent; -} -.skin-yellow .main-header .logo:hover { - background-color: #db8b0b; -} -.skin-yellow .main-header li.user-header { - background-color: #f39c12; -} -.skin-yellow .content-header { - background: transparent; -} -.skin-yellow .wrapper, -.skin-yellow .main-sidebar, -.skin-yellow .left-side { - background-color: #222d32; -} -.skin-yellow .user-panel > .info, -.skin-yellow .user-panel > .info > a { - color: #fff; -} -.skin-yellow .sidebar-menu > li.header { - color: #4b646f; - background: #1a2226; -} -.skin-yellow .sidebar-menu > li > a { - border-left: 3px solid transparent; -} -.skin-yellow .sidebar-menu > li:hover > a, -.skin-yellow .sidebar-menu > li.active > a { - color: #ffffff; - background: #1e282c; - border-left-color: #f39c12; -} -.skin-yellow .sidebar-menu > li > .treeview-menu { - margin: 0 1px; - background: #2c3b41; -} -.skin-yellow .sidebar a { - color: #b8c7ce; -} -.skin-yellow .sidebar a:hover { - text-decoration: none; -} -.skin-yellow .treeview-menu > li > a { - color: #8aa4af; -} -.skin-yellow .treeview-menu > li.active > a, -.skin-yellow .treeview-menu > li > a:hover { - color: #ffffff; -} -.skin-yellow .sidebar-form { - border-radius: 3px; - border: 1px solid #374850; - margin: 10px 10px; -} -.skin-yellow .sidebar-form input[type="text"], -.skin-yellow .sidebar-form .btn { - box-shadow: none; - background-color: #374850; - border: 1px solid transparent; - height: 35px; - -webkit-transition: all 0.3s ease-in-out; - -o-transition: all 0.3s ease-in-out; - transition: all 0.3s ease-in-out; -} -.skin-yellow .sidebar-form input[type="text"] { - color: #666; - border-top-left-radius: 2px; - border-top-right-radius: 0; - border-bottom-right-radius: 0; - border-bottom-left-radius: 2px; -} -.skin-yellow .sidebar-form input[type="text"]:focus, -.skin-yellow .sidebar-form input[type="text"]:focus + .input-group-btn .btn { - background-color: #fff; - color: #666; -} -.skin-yellow .sidebar-form input[type="text"]:focus + .input-group-btn .btn { - border-left-color: #fff; -} -.skin-yellow .sidebar-form .btn { - color: #999; - border-top-left-radius: 0; - border-top-right-radius: 2px; - border-bottom-right-radius: 2px; - border-bottom-left-radius: 0; -} diff --git a/public/css/skins/skin-yellow.min.css b/public/css/skins/skin-yellow.min.css deleted file mode 100755 index 67fc2e2a0..000000000 --- a/public/css/skins/skin-yellow.min.css +++ /dev/null @@ -1 +0,0 @@ -.skin-yellow .main-header .navbar{background-color:#f39c12}.skin-yellow .main-header .navbar .nav>li>a{color:#fff}.skin-yellow .main-header .navbar .nav>li>a:hover,.skin-yellow .main-header .navbar .nav>li>a:active,.skin-yellow .main-header .navbar .nav>li>a:focus,.skin-yellow .main-header .navbar .nav .open>a,.skin-yellow .main-header .navbar .nav .open>a:hover,.skin-yellow .main-header .navbar .nav .open>a:focus,.skin-yellow .main-header .navbar .nav>.active>a{background:rgba(0,0,0,0.1);color:#f6f6f6}.skin-yellow .main-header .navbar .sidebar-toggle{color:#fff}.skin-yellow .main-header .navbar .sidebar-toggle:hover{color:#f6f6f6;background:rgba(0,0,0,0.1)}.skin-yellow .main-header .navbar .sidebar-toggle{color:#fff}.skin-yellow .main-header .navbar .sidebar-toggle:hover{background-color:#e08e0b}@media (max-width:767px){.skin-yellow .main-header .navbar .dropdown-menu li.divider{background-color:rgba(255,255,255,0.1)}.skin-yellow .main-header .navbar .dropdown-menu li a{color:#fff}.skin-yellow .main-header .navbar .dropdown-menu li a:hover{background:#e08e0b}}.skin-yellow .main-header .logo{background-color:#e08e0b;color:#fff;border-bottom:0 solid transparent}.skin-yellow .main-header .logo:hover{background-color:#db8b0b}.skin-yellow .main-header li.user-header{background-color:#f39c12}.skin-yellow .content-header{background:transparent}.skin-yellow .wrapper,.skin-yellow .main-sidebar,.skin-yellow .left-side{background-color:#222d32}.skin-yellow .user-panel>.info,.skin-yellow .user-panel>.info>a{color:#fff}.skin-yellow .sidebar-menu>li.header{color:#4b646f;background:#1a2226}.skin-yellow .sidebar-menu>li>a{border-left:3px solid transparent}.skin-yellow .sidebar-menu>li:hover>a,.skin-yellow .sidebar-menu>li.active>a{color:#fff;background:#1e282c;border-left-color:#f39c12}.skin-yellow .sidebar-menu>li>.treeview-menu{margin:0 1px;background:#2c3b41}.skin-yellow .sidebar a{color:#b8c7ce}.skin-yellow .sidebar a:hover{text-decoration:none}.skin-yellow .treeview-menu>li>a{color:#8aa4af}.skin-yellow .treeview-menu>li.active>a,.skin-yellow .treeview-menu>li>a:hover{color:#fff}.skin-yellow .sidebar-form{border-radius:3px;border:1px solid #374850;margin:10px 10px}.skin-yellow .sidebar-form input[type="text"],.skin-yellow .sidebar-form .btn{box-shadow:none;background-color:#374850;border:1px solid transparent;height:35px;-webkit-transition:all .3s ease-in-out;-o-transition:all .3s ease-in-out;transition:all .3s ease-in-out}.skin-yellow .sidebar-form input[type="text"]{color:#666;border-top-left-radius:2px;border-top-right-radius:0;border-bottom-right-radius:0;border-bottom-left-radius:2px}.skin-yellow .sidebar-form input[type="text"]:focus,.skin-yellow .sidebar-form input[type="text"]:focus+.input-group-btn .btn{background-color:#fff;color:#666}.skin-yellow .sidebar-form input[type="text"]:focus+.input-group-btn .btn{border-left-color:#fff}.skin-yellow .sidebar-form .btn{color:#999;border-top-left-radius:0;border-top-right-radius:2px;border-bottom-right-radius:2px;border-bottom-left-radius:0} \ No newline at end of file diff --git a/resources/lang/en/general.php b/resources/lang/en/general.php index 843d4af53..60ebf250e 100644 --- a/resources/lang/en/general.php +++ b/resources/lang/en/general.php @@ -177,6 +177,7 @@ 'settings' => 'Settings', 'sign_in' => 'Sign in', 'signature' => 'Signature', + 'skin' => 'Skin', 'some_features_disabled' => 'DEMO MODE: Some features are disabled for this installation.', 'site_name' => 'Site Name', 'state' => 'State', diff --git a/resources/macros/macros.php b/resources/macros/macros.php index faeb4de1f..571169965 100644 --- a/resources/macros/macros.php +++ b/resources/macros/macros.php @@ -511,3 +511,22 @@ Form::macro('customfield_elements', function ($name = "customfield_elements", $s return $select; }); + + + +Form::macro('skin', function ($name = "skin", $selected = null, $class = null) { + + $formats = array( + '' => 'Default Blue', + 'skin-green-dark.css' => 'Green Dark', + ); + + $select = ''; + return $select; + +}); diff --git a/resources/views/layouts/default.blade.php b/resources/views/layouts/default.blade.php index 8b8e676ee..782dde3e4 100644 --- a/resources/views/layouts/default.blade.php +++ b/resources/views/layouts/default.blade.php @@ -31,30 +31,33 @@ + + @if (($snipeSettings) && ($snipeSettings->skin!='')) + + @endif + diff --git a/resources/views/vendor/mail/html/message.blade.php b/resources/views/vendor/mail/html/message.blade.php index 2ad23a66e..fbbf0db69 100644 --- a/resources/views/vendor/mail/html/message.blade.php +++ b/resources/views/vendor/mail/html/message.blade.php @@ -2,7 +2,23 @@ {{-- Header --}} @slot('header') @component('mail::header', ['url' => config('app.url')]) - {{ config('app.name') }} + @if($snipeSettings::setupCompleted()) + @if ($snipeSettings->brand == '3') + @if ($snipeSettings->logo!='') + + @endif + {{ $snipeSettings->site_name }} + + @elseif ($snipeSettings->brand == '2') + @if ($snipeSettings->logo!='') + + @endif + @else + {{ $snipeSettings->site_name }} + @endif + @else + Snipe-it + @endif @endcomponent @endslot @@ -21,7 +37,11 @@ {{-- Footer --}} @slot('footer') @component('mail::footer') - © {{ date('Y') }} {{ config('app.name') }}. All rights reserved. + @if($snipeSettings::setupCompleted()) + © {{ date('Y') }} {{ $snipeSettings->site_name }}. All rights reserved. + @else + © {{ date('Y') }} Snipe-it. All rights reserved. + @endif @endcomponent @endslot @endcomponent diff --git a/resources/views/vendor/mail/markdown/message.blade.php b/resources/views/vendor/mail/markdown/message.blade.php index b409c71cb..fbbf0db69 100644 --- a/resources/views/vendor/mail/markdown/message.blade.php +++ b/resources/views/vendor/mail/markdown/message.blade.php @@ -2,7 +2,23 @@ {{-- Header --}} @slot('header') @component('mail::header', ['url' => config('app.url')]) - {{ config('app.name') }} + @if($snipeSettings::setupCompleted()) + @if ($snipeSettings->brand == '3') + @if ($snipeSettings->logo!='') + + @endif + {{ $snipeSettings->site_name }} + + @elseif ($snipeSettings->brand == '2') + @if ($snipeSettings->logo!='') + + @endif + @else + {{ $snipeSettings->site_name }} + @endif + @else + Snipe-it + @endif @endcomponent @endslot @@ -21,7 +37,11 @@ {{-- Footer --}} @slot('footer') @component('mail::footer') - © {{ date('Y') }} {{ config('app.name') }}. All rights reserved. + @if($snipeSettings::setupCompleted()) + © {{ date('Y') }} {{ $snipeSettings->site_name }}. All rights reserved. + @else + © {{ date('Y') }} Snipe-it. All rights reserved. + @endif @endcomponent @endslot @endcomponent From 31790e0bb725b42cd32d626688d02e94c2aba180 Mon Sep 17 00:00:00 2001 From: snipe Date: Fri, 2 Mar 2018 18:01:36 -0800 Subject: [PATCH 08/24] Tweaks to theme settings --- resources/macros/macros.php | 2 +- resources/views/layouts/default.blade.php | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/resources/macros/macros.php b/resources/macros/macros.php index 571169965..7470f4581 100644 --- a/resources/macros/macros.php +++ b/resources/macros/macros.php @@ -518,7 +518,7 @@ Form::macro('skin', function ($name = "skin", $selected = null, $class = null) { $formats = array( '' => 'Default Blue', - 'skin-green-dark.css' => 'Green Dark', + 'green-dark' => 'Green Dark', ); $select = ''; From 688a3251a91f0e7349f22828c5182b758da035c4 Mon Sep 17 00:00:00 2001 From: fordster78 Date: Sat, 3 Mar 2018 20:44:41 +0000 Subject: [PATCH 13/24] New Welcome Notification (#5146) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * New Test Notification Created Test Notification. Updated Vendor Mail message.blade files. Updated api settings controller to use Notification Façade. * Add show URL in Emails condition * New Welcome Notification --- app/Http/Controllers/UsersController.php | 23 +++++-- app/Notifications/WelcomeNotification.php | 66 +++++++++++++++++++ resources/views/notifications/Test.blade.php | 6 +- .../views/notifications/Welcome.blade.php | 19 ++++++ 4 files changed, 106 insertions(+), 8 deletions(-) create mode 100644 app/Notifications/WelcomeNotification.php create mode 100644 resources/views/notifications/Welcome.blade.php diff --git a/app/Http/Controllers/UsersController.php b/app/Http/Controllers/UsersController.php index 2b6f0c008..8d7ae3cdb 100755 --- a/app/Http/Controllers/UsersController.php +++ b/app/Http/Controllers/UsersController.php @@ -34,6 +34,7 @@ use View; use Illuminate\Http\Request; use Gate; use Artisan; +use App\Notifications\WelcomeNotification; /** * This controller handles all actions related to Users for @@ -148,11 +149,13 @@ class UsersController extends Controller $data['first_name'] = e($request->input('first_name')); $data['password'] = e($request->input('password')); - Mail::send('emails.send-login', $data, function ($m) use ($user) { + $user->notify(new WelcomeNotification($data)); + +/* Mail::send('emails.send-login', $data, function ($m) use ($user) { $m->to($user->email, $user->first_name . ' ' . $user->last_name); $m->replyTo(config('mail.reply_to.address'), config('mail.reply_to.name')); $m->subject(trans('mail.welcome', ['name' => $user->first_name])); - }); + });*/ } return redirect::route('users.index')->with('success', trans('admin/users/message.success.create')); } @@ -192,15 +195,17 @@ class UsersController extends Controller // Send the credentials through email $data = array(); $data['email'] = $request->input('email'); + $data['username'] = $request->input('username'); $data['first_name'] = $request->input('first_name'); - $data['last_name'] = $request->input('last_name'); $data['password'] = $request->input('password'); - Mail::send('emails.send-login', $data, function ($m) use ($user) { + $user->notify(new WelcomeNotification($data)); + + /*Mail::send('emails.send-login', $data, function ($m) use ($user) { $m->to($user->email, $user->first_name . ' ' . $user->last_name); $m->replyTo(config('mail.reply_to.address'), config('mail.reply_to.name')); $m->subject(trans('mail.welcome', ['name' => $user->first_name])); - }); + });*/ } return JsonResponse::create($user); @@ -852,16 +857,20 @@ class UsersController extends Controller // Send the credentials through email if ($row[3] != '') { $data = array(); + $data['email'] = trim(e($row[4])); $data['username'] = trim(e($row[2])); $data['first_name'] = trim(e($row[0])); $data['password'] = $pass; if ($newuser['email']) { - Mail::send('emails.send-login', $data, function ($m) use ($newuser) { + $user = User::where('username', $row[2])->first(); + $user->notify(new WelcomeNotification($data)); + + /*Mail::send('emails.send-login', $data, function ($m) use ($newuser) { $m->to($newuser['email'], $newuser['first_name'] . ' ' . $newuser['last_name']); $m->replyTo(config('mail.reply_to.address'), config('mail.reply_to.name')); $m->subject(trans('mail.welcome', ['name' => $newuser['first_name']])); - }); + });*/ } } } diff --git a/app/Notifications/WelcomeNotification.php b/app/Notifications/WelcomeNotification.php new file mode 100644 index 000000000..cc778b9cd --- /dev/null +++ b/app/Notifications/WelcomeNotification.php @@ -0,0 +1,66 @@ +_data['email'] = $content['email']; + $this->_data['first_name'] = $content['first_name']; + $this->_data['username'] = $content['username']; + $this->_data['password'] = $content['password']; + $this->_data['url'] = url('/'); + } + + /** + * Get the notification's delivery channels. + * + * @param mixed $notifiable + * @return array + */ + public function via($notifiable) + { + return ['mail']; + } + + /** + * Get the mail representation of the notification. + * + * @param mixed $notifiable + * @return \Illuminate\Notifications\Messages\MailMessage + */ + public function toMail($notifiable) + { + return (new MailMessage) + ->subject(trans('mail.welcome', ['name' => $this->_data['first_name'] ])) + ->markdown('notifications.Welcome', $this->_data); + } + + /** + * Get the array representation of the notification. + * + * @param mixed $notifiable + * @return array + */ + public function toArray($notifiable) + { + return [ + // + ]; + } +} diff --git a/resources/views/notifications/Test.blade.php b/resources/views/notifications/Test.blade.php index a651f2f3f..a7e2be1c5 100644 --- a/resources/views/notifications/Test.blade.php +++ b/resources/views/notifications/Test.blade.php @@ -3,5 +3,9 @@ {{ trans('mail.test_mail_text') }} Thanks,
-{{ $snipeSettings->site_name }} + @if ($snipeSettings->show_url_in_emails=='1') +

{{ $snipeSettings->site_name }}

+ @else +

{{ $snipeSettings->site_name }}

+ @endif @endcomponent diff --git a/resources/views/notifications/Welcome.blade.php b/resources/views/notifications/Welcome.blade.php new file mode 100644 index 000000000..fb4185435 --- /dev/null +++ b/resources/views/notifications/Welcome.blade.php @@ -0,0 +1,19 @@ +@component('mail::message') +{{ trans('mail.hello') }} {{ $first_name }}, + +{{ trans('mail.admin_has_created', ['web' => $snipeSettings->site_name]) }} + +{{ trans('mail.login') }} {{ $username }}
+{{ trans('mail.password') }} {{ $password }} + +@component('mail::button', ['url' => $url]) +Go To {{$snipeSettings->site_name}} +@endcomponent + +{{ trans('mail.best_regards') }}
+@if ($snipeSettings->show_url_in_emails=='1') +

{{ $snipeSettings->site_name }}

+@else +

{{ $snipeSettings->site_name }}

+@endif +@endcomponent From 68a98555066c13ec5a9749882362d538afdea9e3 Mon Sep 17 00:00:00 2001 From: fordster78 Date: Sat, 3 Mar 2018 22:37:42 +0000 Subject: [PATCH 14/24] New First Admin Notification (#5147) * New First Admin Notification * Include Last name in Welcome and First admin Notifications --- app/Http/Controllers/SettingsController.php | 14 +++- app/Http/Controllers/UsersController.php | 3 + app/Notifications/FirstAdminNotification.php | 67 +++++++++++++++++++ app/Notifications/WelcomeNotification.php | 3 +- .../views/notifications/FirstAdmin.blade.php | 17 +++++ .../views/notifications/Welcome.blade.php | 2 +- 6 files changed, 102 insertions(+), 4 deletions(-) create mode 100644 app/Notifications/FirstAdminNotification.php create mode 100644 resources/views/notifications/FirstAdmin.blade.php diff --git a/app/Http/Controllers/SettingsController.php b/app/Http/Controllers/SettingsController.php index 121143b67..464246a96 100755 --- a/app/Http/Controllers/SettingsController.php +++ b/app/Http/Controllers/SettingsController.php @@ -22,6 +22,7 @@ use App\Http\Requests\SetupUserRequest; use App\Http\Requests\ImageUploadRequest; use App\Http\Requests\SettingsLdapRequest; use App\Helpers\Helper; +use App\Notifications\FirstAdminNotification; /** * This controller handles all actions related to Settings for @@ -186,11 +187,20 @@ class SettingsController extends Controller $settings->save(); if (Input::get('email_creds')=='1') { - Mail::send(['text' => 'emails.firstadmin'], $data, function ($m) use ($data) { + $data = array(); + $data['email'] = $user->email; + $data['username'] = $user->username; + $data['first_name'] = $user->first_name; + $data['last_name'] = $user->last_name; + $data['password'] = $user->password; + + $user->notify(new FirstAdminNotification($data)); + + /*Mail::send(['text' => 'emails.firstadmin'], $data, function ($m) use ($data) { $m->to($data['email'], $data['first_name']); $m->replyTo(config('mail.reply_to.address'), config('mail.reply_to.name')); $m->subject(trans('mail.your_credentials')); - }); + });*/ } diff --git a/app/Http/Controllers/UsersController.php b/app/Http/Controllers/UsersController.php index 8d7ae3cdb..ee2164f94 100755 --- a/app/Http/Controllers/UsersController.php +++ b/app/Http/Controllers/UsersController.php @@ -147,6 +147,7 @@ class UsersController extends Controller $data['email'] = e($request->input('email')); $data['username'] = e($request->input('username')); $data['first_name'] = e($request->input('first_name')); + $data['last_name'] = e($request->input('last_name')); $data['password'] = e($request->input('password')); $user->notify(new WelcomeNotification($data)); @@ -197,6 +198,7 @@ class UsersController extends Controller $data['email'] = $request->input('email'); $data['username'] = $request->input('username'); $data['first_name'] = $request->input('first_name'); + $data['last_name'] = e($request->input('last_name')); $data['password'] = $request->input('password'); $user->notify(new WelcomeNotification($data)); @@ -860,6 +862,7 @@ class UsersController extends Controller $data['email'] = trim(e($row[4])); $data['username'] = trim(e($row[2])); $data['first_name'] = trim(e($row[0])); + $data['last_name'] = trim(e($row[1])); $data['password'] = $pass; if ($newuser['email']) { diff --git a/app/Notifications/FirstAdminNotification.php b/app/Notifications/FirstAdminNotification.php new file mode 100644 index 000000000..bf802070d --- /dev/null +++ b/app/Notifications/FirstAdminNotification.php @@ -0,0 +1,67 @@ +_data['email'] = $content['email']; + $this->_data['first_name'] = $content['first_name']; + $this->_data['last_name'] = $content['last_name']; + $this->_data['username'] = $content['username']; + $this->_data['password'] = $content['password']; + $this->_data['url'] = url('/'); + } + + /** + * Get the notification's delivery channels. + * + * @param mixed $notifiable + * @return array + */ + public function via($notifiable) + { + return ['mail']; + } + + /** + * Get the mail representation of the notification. + * + * @param mixed $notifiable + * @return \Illuminate\Notifications\Messages\MailMessage + */ + public function toMail($notifiable) + { + return (new MailMessage) + ->subject(trans('mail.welcome', ['name' => $this->_data['first_name'] . ' ' . $this->_data['last_name'] ])) + ->markdown('notifications.FirstAdmin', $this->_data); + } + + /** + * Get the array representation of the notification. + * + * @param mixed $notifiable + * @return array + */ + public function toArray($notifiable) + { + return [ + // + ]; + } +} diff --git a/app/Notifications/WelcomeNotification.php b/app/Notifications/WelcomeNotification.php index cc778b9cd..837a4e6d8 100644 --- a/app/Notifications/WelcomeNotification.php +++ b/app/Notifications/WelcomeNotification.php @@ -22,6 +22,7 @@ class WelcomeNotification extends Notification { $this->_data['email'] = $content['email']; $this->_data['first_name'] = $content['first_name']; + $this->_data['last_name'] = $content['last_name']; $this->_data['username'] = $content['username']; $this->_data['password'] = $content['password']; $this->_data['url'] = url('/'); @@ -47,7 +48,7 @@ class WelcomeNotification extends Notification public function toMail($notifiable) { return (new MailMessage) - ->subject(trans('mail.welcome', ['name' => $this->_data['first_name'] ])) + ->subject(trans('mail.welcome', ['name' => $this->_data['first_name'] . ' ' . $this->_data['last_name'] ])) ->markdown('notifications.Welcome', $this->_data); } diff --git a/resources/views/notifications/FirstAdmin.blade.php b/resources/views/notifications/FirstAdmin.blade.php new file mode 100644 index 000000000..f6d9202bb --- /dev/null +++ b/resources/views/notifications/FirstAdmin.blade.php @@ -0,0 +1,17 @@ +@component('mail::message') +{{ trans('mail.hello') }} {{ $first_name }} {{$last_name}}, + +{{ trans('mail.login') }} {{ $username }}
+{{ trans('mail.password') }} {{ $password }} + +@component('mail::button', ['url' => $url]) +Go To {{$snipeSettings->site_name}} +@endcomponent + +{{ trans('mail.best_regards') }}
+@if ($snipeSettings->show_url_in_emails=='1') +

{{ $snipeSettings->site_name }}

+@else +

{{ $snipeSettings->site_name }}

+@endif +@endcomponent diff --git a/resources/views/notifications/Welcome.blade.php b/resources/views/notifications/Welcome.blade.php index fb4185435..7501a81bb 100644 --- a/resources/views/notifications/Welcome.blade.php +++ b/resources/views/notifications/Welcome.blade.php @@ -1,5 +1,5 @@ @component('mail::message') -{{ trans('mail.hello') }} {{ $first_name }}, +{{ trans('mail.hello') }} {{ $first_name }} {{$last_name}}, {{ trans('mail.admin_has_created', ['web' => $snipeSettings->site_name]) }} From 123e317e52ac4517832667edbd57b6ce0af073c3 Mon Sep 17 00:00:00 2001 From: snipe Date: Sat, 3 Mar 2018 17:07:07 -0800 Subject: [PATCH 15/24] Check for an array (for PHP7.2 support) --- app/Helpers/Helper.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/Helpers/Helper.php b/app/Helpers/Helper.php index 746ade929..e92f25a2c 100644 --- a/app/Helpers/Helper.php +++ b/app/Helpers/Helper.php @@ -690,7 +690,7 @@ class Helper $array['status'] = $status; $array['messages'] = $messages; - if (($messages) && (count($messages) > 0)) { + if (($messages) && (is_array($messages)) && (count($messages) > 0)) { $array['messages'] = $messages; } ($payload) ? $array['payload'] = $payload : $array['payload'] = null; From 06805d70fe5c7e8cb34ad3ccfc2e69748602c697 Mon Sep 17 00:00:00 2001 From: snipe Date: Sat, 3 Mar 2018 17:07:28 -0800 Subject: [PATCH 16/24] Fixed incorrect settings HTML --- resources/views/settings/general.blade.php | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/resources/views/settings/general.blade.php b/resources/views/settings/general.blade.php index eff72b3c2..64dcb25f4 100644 --- a/resources/views/settings/general.blade.php +++ b/resources/views/settings/general.blade.php @@ -36,16 +36,15 @@ {{ trans('admin/settings/general.general_settings') }} -
+
- {{ Form::label('full_multiple_companies_support', - trans('admin/settings/general.full_multiple_companies_support_text')) }} + {{ Form::label('full_multiple_companies_support', trans('admin/settings/general.full_multiple_companies_support_text')) }}
{{ Form::checkbox('full_multiple_companies_support', '1', Input::old('full_multiple_companies_support', $setting->full_multiple_companies_support),array('class' => 'minimal')) }} @@ -56,6 +55,7 @@

+ @@ -251,6 +251,7 @@
+
+ From fabc9e5d1cf614b30ec6ae836d73984639974d25 Mon Sep 17 00:00:00 2001 From: snipe Date: Sat, 3 Mar 2018 17:15:59 -0800 Subject: [PATCH 17/24] Bumped hash --- config/version.php | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/config/version.php b/config/version.php index 8547150aa..53409aba8 100644 --- a/config/version.php +++ b/config/version.php @@ -1,10 +1,10 @@ 'v4.1.14', - 'full_app_version' => 'v4.1.14 - build 3408-ga705c71', - 'build_version' => '3408', + 'full_app_version' => 'v4.1.14 - build 3416-g14af95001', + 'build_version' => '3416', 'prerelease_version' => '', - 'hash_version' => 'ga705c71', - 'full_hash' => 'v4.1.14-17-ga705c71', + 'hash_version' => 'g14af95001', + 'full_hash' => 'v4.1.14-25-g14af95001', 'branch' => 'develop', -); +); \ No newline at end of file From f7784b65432a7a321630a1daed7baf9ac08c87f5 Mon Sep 17 00:00:00 2001 From: snipe Date: Sat, 3 Mar 2018 18:46:19 -0800 Subject: [PATCH 18/24] Fixed #2402 - add ability to restore manufacturers --- .../Api/ManufacturersController.php | 8 ++++++- .../Controllers/ManufacturersController.php | 23 +++++++++++++++++++ .../Transformers/ManufacturersTransformer.php | 4 +++- app/Models/Manufacturer.php | 2 +- .../lang/en/admin/manufacturers/message.php | 5 ++++ resources/lang/en/general.php | 4 +++- resources/views/manufacturers/index.blade.php | 10 +++++++- routes/web.php | 6 +++++ 8 files changed, 57 insertions(+), 5 deletions(-) diff --git a/app/Http/Controllers/Api/ManufacturersController.php b/app/Http/Controllers/Api/ManufacturersController.php index a542f103d..003fbb6ad 100644 --- a/app/Http/Controllers/Api/ManufacturersController.php +++ b/app/Http/Controllers/Api/ManufacturersController.php @@ -25,14 +25,20 @@ class ManufacturersController extends Controller $allowed_columns = ['id','name','url','support_url','support_email','support_phone','created_at','updated_at','image', 'assets_count', 'consumables_count', 'components_count', 'licenses_count']; $manufacturers = Manufacturer::select( - array('id','name','url','support_url','support_email','support_phone','created_at','updated_at','image') + array('id','name','url','support_url','support_email','support_phone','created_at','updated_at','image', 'deleted_at') )->withCount('assets')->withCount('licenses')->withCount('consumables')->withCount('accessories'); + if ($request->input('deleted')=='true') { + $manufacturers->onlyTrashed(); + } if ($request->has('search')) { $manufacturers = $manufacturers->TextSearch($request->input('search')); } + + + $offset = request('offset', 0); $limit = $request->input('limit', 50); $order = $request->input('order') === 'asc' ? 'asc' : 'desc'; diff --git a/app/Http/Controllers/ManufacturersController.php b/app/Http/Controllers/ManufacturersController.php index 323dfcbdf..6ee42e2fd 100755 --- a/app/Http/Controllers/ManufacturersController.php +++ b/app/Http/Controllers/ManufacturersController.php @@ -242,6 +242,29 @@ class ManufacturersController extends Controller return redirect()->route('manufacturers.index')->with('error', $error); } + /** + * Restore a given Manufacturer (mark as un-deleted) + * + * @author [A. Gianotto] [] + * @since [v4.1.15] + * @param int $id + * @return Redirect + */ + public function restore($manufacturers_id) + { + $this->authorize('create', Manufacturer::class); + $manufacturer = Manufacturer::onlyTrashed()->where('id',$manufacturers_id)->first(); + + if ($manufacturer) { + // I don't know why $manufacturer->restore(); didn't work here... + // $manufacturer->restore(); + return redirect()->route('manufacturers.index')->with('success', trans('admin/manufacturers/message.restore.success')); + } + \Log::debug('No joy'); + return redirect()->back()->with('error', trans('admin/manufacturers/message.does_not_exist')); + + } + diff --git a/app/Http/Transformers/ManufacturersTransformer.php b/app/Http/Transformers/ManufacturersTransformer.php index 6972d0bbc..3db65ee9f 100644 --- a/app/Http/Transformers/ManufacturersTransformer.php +++ b/app/Http/Transformers/ManufacturersTransformer.php @@ -36,10 +36,12 @@ class ManufacturersTransformer 'accessories_count' => (int) $manufacturer->accessories_count, 'created_at' => Helper::getFormattedDateObject($manufacturer->created_at, 'datetime'), 'updated_at' => Helper::getFormattedDateObject($manufacturer->updated_at, 'datetime'), + 'deleted_at' => Helper::getFormattedDateObject($manufacturer->deleted_at, 'datetime'), ]; $permissions_array['available_actions'] = [ - 'update' => Gate::allows('update', Manufacturer::class) ? true : false, + 'update' => (($manufacturer->deleted_at=='') && (Gate::allows('update', Manufacturer::class))) ? true : false, + 'restore' => (($manufacturer->deleted_at!='') && (Gate::allows('create', Manufacturer::class))) ? true : false, 'delete' => (Gate::allows('delete', Manufacturer::class) && ($manufacturer->assets_count == 0) && ($manufacturer->licenses_count==0) && ($manufacturer->consumables_count==0) && ($manufacturer->accessories_count==0) && ($manufacturer->deleted_at=='')) ? true : false, ]; diff --git a/app/Models/Manufacturer.php b/app/Models/Manufacturer.php index 358cccc48..bc1e80630 100755 --- a/app/Models/Manufacturer.php +++ b/app/Models/Manufacturer.php @@ -21,7 +21,7 @@ class Manufacturer extends SnipeModel 'support_email' => 'email|nullable' ); - protected $hidden = ['user_id','deleted_at']; + protected $hidden = ['user_id']; diff --git a/resources/lang/en/admin/manufacturers/message.php b/resources/lang/en/admin/manufacturers/message.php index 6586d2af4..21a4bc5aa 100644 --- a/resources/lang/en/admin/manufacturers/message.php +++ b/resources/lang/en/admin/manufacturers/message.php @@ -15,6 +15,11 @@ return array( 'success' => 'Manufacturer updated successfully.' ), + 'restore' => array( + 'error' => 'Manufacturer was not restored, please try again', + 'success' => 'Manufacturer restored successfully.' + ), + 'delete' => array( 'confirm' => 'Are you sure you wish to delete this manufacturer?', 'error' => 'There was an issue deleting the manufacturer. Please try again.', diff --git a/resources/lang/en/general.php b/resources/lang/en/general.php index 60ebf250e..c33c33381 100644 --- a/resources/lang/en/general.php +++ b/resources/lang/en/general.php @@ -175,9 +175,11 @@ 'select_company' => 'Select Company', 'select_asset' => 'Select Asset', 'settings' => 'Settings', + 'show_deleted' => 'Show Deleted', + 'show_current' => 'Show Current', 'sign_in' => 'Sign in', 'signature' => 'Signature', - 'skin' => 'Skin', + 'skin' => 'Skin', 'some_features_disabled' => 'DEMO MODE: Some features are disabled for this installation.', 'site_name' => 'Site Name', 'state' => 'State', diff --git a/resources/views/manufacturers/index.blade.php b/resources/views/manufacturers/index.blade.php index e007ba70d..54853a4b5 100755 --- a/resources/views/manufacturers/index.blade.php +++ b/resources/views/manufacturers/index.blade.php @@ -12,6 +12,14 @@ {{ trans('general.create') }} @endcan + + @if (Input::get('deleted')=='true') + {{ trans('general.show_current') }} + @else + + {{ trans('general.show_deleted') }} + @endif + @stop {{-- Page content --}} @@ -37,7 +45,7 @@ data-sort-order="asc" id="manufacturersTable" class="table table-striped snipe-table" - data-url="{{route('api.manufacturers.index') }}" + data-url="{{route('api.manufacturers.index', ['deleted' => e(Input::get('deleted')) ]) }}" data-export-options='{ "fileName": "export-manufacturers-{{ date('Y-m-d') }}", "ignoreColumn": ["actions","image","change","checkbox","checkincheckout","icon"] diff --git a/routes/web.php b/routes/web.php index 719a1c28a..68c176e34 100644 --- a/routes/web.php +++ b/routes/web.php @@ -26,6 +26,12 @@ Route::group(['middleware' => 'auth'], function () { /* * Manufacturers */ + + Route::group([ 'prefix' => 'manufacturers', 'middleware' => ['auth'] ], function () { + + Route::get('{manufacturers_id}/restore', [ 'as' => 'restore/manufacturer', 'uses' => 'ManufacturersController@restore']); + }); + Route::resource('manufacturers', 'ManufacturersController', [ 'parameters' => ['manufacturer' => 'manufacturers_id'] ]); From 0782222c6b8bb0b967346c89ae1aa5b093ffc4cb Mon Sep 17 00:00:00 2001 From: snipe Date: Sat, 3 Mar 2018 18:49:02 -0800 Subject: [PATCH 19/24] Removed commenting MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This restore() is still not working, though not sure why. Seems like it should be pretty straghtforward, and yet… Additonally, manually setting the deleted)at date to null or blank isn’t working either. I’m sure I’m just missing something obvious. --- app/Http/Controllers/ManufacturersController.php | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/app/Http/Controllers/ManufacturersController.php b/app/Http/Controllers/ManufacturersController.php index 6ee42e2fd..5171cefad 100755 --- a/app/Http/Controllers/ManufacturersController.php +++ b/app/Http/Controllers/ManufacturersController.php @@ -257,10 +257,9 @@ class ManufacturersController extends Controller if ($manufacturer) { // I don't know why $manufacturer->restore(); didn't work here... - // $manufacturer->restore(); + $manufacturer->restore(); return redirect()->route('manufacturers.index')->with('success', trans('admin/manufacturers/message.restore.success')); } - \Log::debug('No joy'); return redirect()->back()->with('error', trans('admin/manufacturers/message.does_not_exist')); } From 9effa3d2ab8ad62d8626d268465ac52e6f165ce3 Mon Sep 17 00:00:00 2001 From: snipe Date: Sat, 3 Mar 2018 19:14:27 -0800 Subject: [PATCH 20/24] Fixed manufacturer restore --- app/Http/Controllers/ManufacturersController.php | 12 ++++++++---- app/Models/Manufacturer.php | 2 -- 2 files changed, 8 insertions(+), 6 deletions(-) diff --git a/app/Http/Controllers/ManufacturersController.php b/app/Http/Controllers/ManufacturersController.php index 5171cefad..1d84fa37d 100755 --- a/app/Http/Controllers/ManufacturersController.php +++ b/app/Http/Controllers/ManufacturersController.php @@ -247,7 +247,7 @@ class ManufacturersController extends Controller * * @author [A. Gianotto] [] * @since [v4.1.15] - * @param int $id + * @param int $manufacturers_id * @return Redirect */ public function restore($manufacturers_id) @@ -256,9 +256,13 @@ class ManufacturersController extends Controller $manufacturer = Manufacturer::onlyTrashed()->where('id',$manufacturers_id)->first(); if ($manufacturer) { - // I don't know why $manufacturer->restore(); didn't work here... - $manufacturer->restore(); - return redirect()->route('manufacturers.index')->with('success', trans('admin/manufacturers/message.restore.success')); + + // Not sure why this is necessary - it shouldn't fail validation here, but it fails without this, so.... + $manufacturer->setValidating(false); + if ($manufacturer->restore()) { + return redirect()->route('manufacturers.index')->with('success', trans('admin/manufacturers/message.restore.success')); + } + return redirect()->back()->with('error', 'Could not restore.'); } return redirect()->back()->with('error', trans('admin/manufacturers/message.does_not_exist')); diff --git a/app/Models/Manufacturer.php b/app/Models/Manufacturer.php index bc1e80630..5cd7bcc15 100755 --- a/app/Models/Manufacturer.php +++ b/app/Models/Manufacturer.php @@ -23,8 +23,6 @@ class Manufacturer extends SnipeModel protected $hidden = ['user_id']; - - /** * Whether the model should inject it's identifier to the unique * validation rules before attempting validation. If this property From 48f9959fcd3da6bdbe750677945b1dbe0217ec02 Mon Sep 17 00:00:00 2001 From: tiagom62 Date: Mon, 5 Mar 2018 00:48:44 -0500 Subject: [PATCH 21/24] snipeit.sh improvements (#4708) * snipeit.sh improvements * Missing dependency for upgrade.php #4726 * Upgrade noninteractively --- snipeit.sh | 383 ++++++++++++++++++++--------------------------------- 1 file changed, 146 insertions(+), 237 deletions(-) diff --git a/snipeit.sh b/snipeit.sh index 832e5372c..1385c0560 100644 --- a/snipeit.sh +++ b/snipeit.sh @@ -28,64 +28,24 @@ clear name="snipeit" verbose="false" -hostname="$(hostname)" fqdn="$(hostname --fqdn)" -hosts=/etc/hosts spin[0]="-" spin[1]="\\" spin[2]="|" spin[3]="/" -# Debian/Ubuntu friendly f(x)s progress () { echo -n " " while kill -0 "$pid" > /dev/null 2>&1; do for i in "${spin[@]}"; do - echo -ne "\b$i" + echo -ne "\\b$i" sleep .1 done done echo "" } -setvhdebian () { - find /etc/apache2/mods-enabled -maxdepth 1 -name 'rewrite.load' >/dev/null 2>&1 - apachefile=/etc/apache2/sites-available/$name.conf - { - echo "" - echo "ServerAdmin webmaster@localhost" - echo "" - echo " Require all granted" - echo " AllowOverride All" - echo " " - echo " DocumentRoot $webdir/$name/public" - echo " ServerName $fqdn" - echo " ErrorLog /var/log/apache2/snipeIT.error.log" - echo " CustomLog /var/log/apache2/access.log combined" - echo "" - } >> $apachefile - log "a2ensite $name.conf" -} - -setvhcentos () { - apachefile=/etc/httpd/conf.d/$name.conf - { - echo "" - echo "ServerAdmin webmaster@localhost" - echo " " - echo " Allow From All" - echo " AllowOverride All" - echo " Options +Indexes" - echo " " - echo " DocumentRoot $webdir/$name/public" - echo " ServerName $fqdn" - echo " ErrorLog /var/log/httpd/snipeIT.error.log" - echo " CustomLog /var/log/access.log combined" - echo "" - } >> "$apachefile" -} - log () { if [ "$verbose" = true ]; then eval "$@" @@ -94,20 +54,75 @@ log () { fi } +installpackages () { + case $distro in + ubuntu|debian) + for p in $PACKAGES; do + if dpkg -s "$p" >/dev/null 2>&1; then + echo " * $p already installed" + else + echo " * Installing $p ... " + log "DEBIAN_FRONTEND=noninteractive apt-get install -y $p" + fi + done; + ;; + centos) + for p in $PACKAGES; do + if yum list installed "$p" >/dev/null 2>&1; then + echo " * $p already installed" + else + echo " * Installing $p ... " + log "yum -y install $p" + fi + done; + ;; + fedora) + for p in $PACKAGES; do + if dnf list installed "$p" >/dev/null 2>&1; then + echo " * $p already installed" + else + echo " * Installing $p ... " + log "dnf -y install $p" + fi + done; + ;; + esac +} + +createvh () { + { + echo "" + echo " " + echo " Allow From All" + echo " AllowOverride All" + echo " Options +Indexes" + echo " " + echo "" + echo " DocumentRoot $webdir/$name/public" + echo " ServerName $fqdn" + echo "" + } >> "$apachefile" +} + installsnipeit () { + echo "* Creating MariaDB Database/User." + echo "* Please Input your MariaDB root password:" + mysql -u root -p --execute="CREATE DATABASE snipeit;GRANT ALL PRIVILEGES ON snipeit.* TO snipeit@localhost IDENTIFIED BY '$mysqluserpw';" + echo "* Cloning Snipe-IT from github to the web directory." log "git clone https://github.com/snipe/snipe-it $webdir/$name" echo "* Configuring .env file." cp "$webdir/$name/.env.example" "$webdir/$name/.env" + #TODO escape SED delimiter in variables sed -i '1 i\#Created By Snipe-it Installer' "$webdir/$name/.env" - sed -i 's,^\(APP_TIMEZONE=\).*,\1'$tzone',' "$webdir/$name/.env" - sed -i 's,^\(DB_HOST=\).*,\1'localhost',' "$webdir/$name/.env" - sed -i 's,^\(DB_DATABASE=\).*,\1'snipeit',' "$webdir/$name/.env" - sed -i 's,^\(DB_USERNAME=\).*,\1'snipeit',' "$webdir/$name/.env" - sed -i 's,^\(DB_PASSWORD=\).*,\1'$mysqluserpw',' "$webdir/$name/.env" - sed -i 's,^\(APP_URL=\).*,\1'http://$fqdn',' "$webdir/$name/.env" + sed -i "s|^\\(APP_TIMEZONE=\\).*|\\1$tzone|" "$webdir/$name/.env" + sed -i "s|^\\(DB_HOST=\\).*|\\1localhost|" "$webdir/$name/.env" + sed -i "s|^\\(DB_DATABASE=\\).*|\\1snipeit|" "$webdir/$name/.env" + sed -i "s|^\\(DB_USERNAME=\\).*|\\1snipeit|" "$webdir/$name/.env" + sed -i "s|^\\(DB_PASSWORD=\\).*|\\1$mysqluserpw|" "$webdir/$name/.env" + sed -i "s|^\\(APP_URL=\\).*|\\1http://$fqdn|" "$webdir/$name/.env" echo "* Installing and running composer." cd "$webdir/$name/" @@ -131,22 +146,6 @@ installsnipeit () { (crontab -l ; echo "* * * * * /usr/bin/php $webdir/$name/artisan schedule:run >> /dev/null 2>&1") | crontab - } -isinstalled () { - if yum list installed "$@" >/dev/null 2>&1; then - true - else - false - fi -} - -isdnfinstalled () { - if dnf list installed "$@" >/dev/null 2>&1; then - true - else - false - fi -} - openfirewalld () { if [ "$(firewall-cmd --state)" == "running" ]; then echo "* Configuring firewall to allow HTTP traffic only." @@ -155,6 +154,17 @@ openfirewalld () { fi } +configureselinux () { + #Check if SELinux is enforcing + if [ "$(getenforce)" == "Enforcing" ]; then + echo "* Configuring SELinux." + #Required for ldap integration + setsebool -P httpd_can_connect_ldap on + #Sets SELinux context type so that scripts running in the web server process are allowed read/write access + chcon -R -h -t httpd_sys_script_rw_t "$webdir/$name/" + fi +} + if [[ -f /etc/lsb-release || -f /etc/debian_version ]]; then distro="$(lsb_release -s -i)" version="$(lsb_release -s -r)" @@ -165,7 +175,7 @@ elif [ -f /etc/os-release ]; then #Order is important here. If /etc/os-release and /etc/centos-release exist, we're on centos 7. #If only /etc/centos-release exist, we're on centos6(or earlier). Centos-release is less parsable, #so lets assume that it's version 6 (Plus, who would be doing a new install of anything on centos5 at this point..) - #/etc/os-release also properly detects fedora + #/etc/os-release properly detects fedora elif [ -f /etc/centos-release ]; then distro="Centos" version="6" @@ -187,11 +197,11 @@ echo " Welcome to Snipe-IT Inventory Installer for CentOS, Fedora, Debian and U echo "" shopt -s nocasematch case $distro in - *Ubuntu*) + *ubuntu*) echo " The installer has detected $distro version $version codename $codename." distro=ubuntu ;; - *Debian*) + *debian*) echo " The installer has detected $distro version $version codename $codename." distro=debian ;; @@ -210,12 +220,8 @@ case $distro in esac shopt -u nocasematch -echo -n " Q. What is the FQDN of your server? ($fqdn): " -read -r fqdn -if [ -z "$fqdn" ]; then - fqdn="$(hostname --fqdn)" -fi -echo " Setting to $fqdn" +echo "" +read -rsn1 -p " Press any key to continue..." echo "" ans=default @@ -249,34 +255,25 @@ case $distro in webdir=/var/www ownergroup=www-data:www-data tzone=$(cat /etc/timezone) + apachefile=/etc/apache2/sites-available/$name.conf - echo -n "* Updating with apt-get update." - log "apt-get update" & pid=$! - progress - - echo -n "* Upgrading packages with apt-get upgrade." + echo -n "* Updating installed packages." + log "apt-get update" log "apt-get -y upgrade" & pid=$! progress - echo -n "* Installing Apache httpd, PHP, MariaDB and other requirements." - log "DEBIAN_FRONTEND=noninteractive apt-get install -y mariadb-server mariadb-client apache2 libapache2-mod-php php php-mcrypt php-curl php-mysql php-gd php-ldap php-zip php-mbstring php-xml php-bcmath curl git unzip" & pid=$! - progress + echo "* Installing Apache httpd, PHP, MariaDB and other requirements." + PACKAGES="mariadb-server mariadb-client apache2 libapache2-mod-php php php-mcrypt php-curl php-mysql php-gd php-ldap php-zip php-mbstring php-xml php-bcmath curl git unzip" + installpackages + echo "* Configuring Apache." + createvh log "a2enmod rewrite" - - echo "* Creating the new virtual host in Apache." - setvhdebian - - echo "* Setting up hosts file." - echo >> $hosts "127.0.0.1 $hostname $fqdn" + log "a2ensite $name.conf" echo "* Securing MariaDB." /usr/bin/mysql_secure_installation - echo "* Creating MariaDB Database/User." - echo "* Please Input your MariaDB root password:" - mysql -u root -p --execute="CREATE DATABASE snipeit;GRANT ALL PRIVILEGES ON snipeit.* TO snipeit@localhost IDENTIFIED BY '$mysqluserpw';" - installsnipeit echo "* Restarting Apache httpd." @@ -287,6 +284,7 @@ case $distro in webdir=/var/www ownergroup=www-data:www-data tzone=$(cat /etc/timezone) + apachefile=/etc/apache2/sites-available/$name.conf echo "* Adding MariaDB and ppa:ondrej/php repositories." log "apt-get install -y software-properties-common" @@ -297,33 +295,23 @@ case $distro in log "wget -O /etc/apt/trusted.gpg.d/php.gpg https://packages.sury.org/php/apt.gpg" echo "deb https://packages.sury.org/php/ $codename main" > /etc/apt/sources.list.d/php.list - echo -n "* Updating with apt-get update." - log "apt-get update" & pid=$! - progress - - echo -n "* Upgrading packages with apt-get upgrade." + echo -n "* Updating installed packages." + log "apt-get update" log "apt-get -y upgrade" & pid=$! progress - echo -n "* Installing Apache httpd, PHP, MariaDB and other requirements." - log "DEBIAN_FRONTEND=noninteractive apt-get install -y mariadb-server mariadb-client php7.1 php7.1-mcrypt php7.1-curl php7.1-mysql php7.1-gd php7.1-ldap php7.1-zip php7.1-mbstring php7.1-xml php7.1-bcmath curl git unzip" & pid=$! - progress + echo "* Installing Apache httpd, PHP, MariaDB and other requirements." + PACKAGES="mariadb-server mariadb-client php7.1 php7.1-mcrypt php7.1-curl php7.1-mysql php7.1-gd php7.1-ldap php7.1-zip php7.1-mbstring php7.1-xml php7.1-bcmath curl git unzip" + installpackages - a2enmod rewrite - - echo "* Creating the new virtual host in Apache." - setvhdebian - - echo "* Setting up hosts file." - echo >> $hosts "127.0.0.1 $hostname $fqdn" + echo "* Configuring Apache." + createvh + log "a2enmod rewrite" + log "a2ensite $name.conf" echo "* Securing MariaDB." /usr/bin/mysql_secure_installation - echo "* Creating MariaDB Database/User." - echo "* Please Input your MariaDB root password:" - mysql -u root -p --execute="CREATE DATABASE snipeit;GRANT ALL PRIVILEGES ON snipeit.* TO snipeit@localhost IDENTIFIED BY '$mysqluserpw';" - installsnipeit echo "* Restarting Apache httpd." @@ -340,33 +328,28 @@ case $distro in webdir=/var/www ownergroup=www-data:www-data tzone=$(cat /etc/timezone) + apachefile=/etc/apache2/sites-available/$name.conf echo "* Adding MariaDB repository." - log "apt-get install software-properties-common" + log "apt-get install -y software-properties-common" log "apt-key adv --recv-keys --keyserver hkp://keyserver.ubuntu.com:80 0xF1656F24C74CD1D8" log "add-apt-repository 'deb [arch=amd64,i386] http://nyc2.mirrors.digitalocean.com/mariadb/repo/10.1/ubuntu $codename main'" - echo -n "* Updating with apt-get update." - log "apt-get update" & pid=$! + echo -n "* Updating installed packages." + log "apt-get update" + log "DEBIAN_FRONTEND=noninteractive apt-get -y upgrade" & pid=$! progress - echo -n "* Upgrading packages with apt-get upgrade." - log "apt-get -y upgrade" & pid=$! - progress - - echo -n "* Installing Apache httpd, PHP, MariaDB and other requirements." - log "DEBIAN_FRONTEND=noninteractive apt-get install -y mariadb-server mariadb-client apache2 libapache2-mod-php php php-mcrypt php-curl php-mysql php-gd php-ldap php-zip php-mbstring php-xml php-bcmath curl git unzip" & pid=$! - progress + echo "* Installing Apache httpd, PHP, MariaDB and other requirements." + PACKAGES="mariadb-server mariadb-client apache2 libapache2-mod-php php php-mcrypt php-curl php-mysql php-gd php-ldap php-zip php-mbstring php-xml php-bcmath curl git unzip" + installpackages + echo "* Configuring Apache." + createvh log "phpenmod mcrypt" log "phpenmod mbstring" log "a2enmod rewrite" - - echo "* Creating the new virtual host in Apache." - setvhdebian - - echo "* Setting up hosts file." - echo >> $hosts "127.0.0.1 $hostname $fqdn" + log "a2ensite $name.conf" echo "* Starting MariaDB." log "service mysql start" @@ -374,10 +357,6 @@ case $distro in echo "* Securing MariaDB." /usr/bin/mysql_secure_installation - echo "* Creating MariaDB Database/User." - echo "* Please Input your MariaDB root password:" - mysql -u root -p --execute="CREATE DATABASE snipeit;GRANT ALL PRIVILEGES ON snipeit.* TO snipeit@localhost IDENTIFIED BY '$mysqluserpw';" - installsnipeit echo "* Restarting Apache httpd." @@ -388,35 +367,30 @@ case $distro in webdir=/var/www ownergroup=www-data:www-data tzone=$(cat /etc/timezone) + apachefile=/etc/apache2/sites-available/$name.conf echo "* Adding MariaDB and ppa:ondrej/php repositories." - log "apt-get install software-properties-common" + log "apt-get install -y software-properties-common" log "apt-key adv --recv-keys --keyserver hkp://keyserver.ubuntu.com:80 0xcbcb082a1bb943db" log "add-apt-repository 'deb [arch=amd64,i386,ppc64el] http://nyc2.mirrors.digitalocean.com/mariadb/repo/10.1/ubuntu $codename main'" #PHP7 repository log "add-apt-repository ppa:ondrej/php -y" - echo -n "* Updating with apt-get update." - log "apt-get update" & pid=$! + echo -n "* Updating installed packages." + log "apt-get update" + log "DEBIAN_FRONTEND=noninteractive apt-get -y upgrade" & pid=$! progress - echo -n "* Upgrading packages with apt-get upgrade." - log "apt-get -y upgrade" & pid=$! - progress - - echo -n "* Installing Apache httpd, PHP, MariaDB and other requirements." - log "DEBIAN_FRONTEND=noninteractive apt-get install -y mariadb-server mariadb-client php7.1 php7.1-mcrypt php7.1-curl php7.1-mysql php7.1-gd php7.1-ldap php7.1-zip php7.1-mbstring php7.1-xml php7.1-bcmath curl git unzip" & pid=$! - progress + echo "* Installing Apache httpd, PHP, MariaDB and other requirements." + PACKAGES="mariadb-server mariadb-client php7.1 php7.1-mcrypt php7.1-curl php7.1-mysql php7.1-gd php7.1-ldap php7.1-zip php7.1-mbstring php7.1-xml php7.1-bcmath curl git unzip" + installpackages + echo "* Configuring Apache." + createvh log "phpenmod mcrypt" log "phpenmod mbstring" log "a2enmod rewrite" - - echo "* Creating the new virtual host in Apache." - setvhdebian - - echo "* Setting up hosts file." - echo >> $hosts "127.0.0.1 $hostname $fqdn" + log "a2ensite $name.conf" echo "* Starting MariaDB." log "service mysql start" @@ -424,10 +398,6 @@ case $distro in echo "* Securing MariaDB." /usr/bin/mysql_secure_installation - echo "* Creating MariaDB Database/User." - echo "* Please Input your MariaDB root password:" - mysql -u root -p --execute="CREATE DATABASE snipeit;GRANT ALL PRIVILEGES ON snipeit.* TO snipeit@localhost IDENTIFIED BY '$mysqluserpw';" - installsnipeit echo "* Restarting Apache httpd." @@ -444,6 +414,7 @@ case $distro in webdir=/var/www/html ownergroup=apache:apache tzone=$(grep ZONE /etc/sysconfig/clock | tr -d '"' | sed 's/ZONE=//g'); + apachefile=/etc/httpd/conf.d/$name.conf echo "* Adding IUS, epel-release and MariaDB repositories." mariadbRepo=/etc/yum.repos.d/MariaDB.repo @@ -462,16 +433,11 @@ case $distro in log "rpm --import /etc/pki/rpm-gpg/IUS-COMMUNITY-GPG-KEY" echo "* Installing Apache httpd, PHP, MariaDB and other requirements." - PACKAGES="httpd mariadb-server git unzip php71u php71u-mysqlnd php71u-bcmath php71u-cli php71u-common php71u-embedded php71u-gd php71u-mbstring php71u-mcrypt php71u-ldap php71u-json php71u-simplexml" + PACKAGES="httpd mariadb-server git unzip php71u php71u-mysqlnd php71u-bcmath php71u-cli php71u-common php71u-embedded php71u-gd php71u-mbstring php71u-mcrypt php71u-ldap php71u-json php71u-simplexml php71u-process" + installpackages - for p in $PACKAGES; do - if isinstalled "$p"; then - echo " * $p already installed" - else - echo " * Installing $p ... " - log "yum -y install $p" - fi - done; + echo "* Configuring Apache." + createvh echo "* Setting MariaDB to start on boot and starting MariaDB." log "chkconfig mysql on" @@ -480,15 +446,7 @@ case $distro in echo "* Securing MariaDB." /usr/bin/mysql_secure_installation - echo "* Creating MariaDB Database/User." - echo "* Please Input your MariaDB root password: " - mysql -u root -p --execute="CREATE DATABASE snipeit;GRANT ALL PRIVILEGES ON snipeit.* TO snipeit@localhost IDENTIFIED BY '$mysqluserpw';" - - echo "* Creating the new virtual host in Apache." - setvhcentos - - echo "* Setting up hosts file." - echo >> $hosts "127.0.0.1 $hostname $fqdn" + installsnipeit if /sbin/service iptables status >/dev/null 2>&1; then echo "* Configuring iptables." @@ -497,8 +455,6 @@ case $distro in service iptables save fi - installsnipeit - echo "* Setting Apache httpd to start on boot and starting service." log "chkconfig httpd on" log "/sbin/service httpd start" @@ -508,6 +464,7 @@ case $distro in webdir=/var/www/html ownergroup=apache:apache tzone=$(timedatectl | gawk -F'[: ]' ' $9 ~ /zone/ {print $11}'); + apachefile=/etc/httpd/conf.d/$name.conf echo "* Adding IUS, epel-release and MariaDB repositories." log "yum -y install wget epel-release" @@ -515,16 +472,11 @@ case $distro in log "rpm --import /etc/pki/rpm-gpg/IUS-COMMUNITY-GPG-KEY" echo "* Installing Apache httpd, PHP, MariaDB and other requirements." - PACKAGES="httpd mariadb-server git unzip php71u php71u-mysqlnd php71u-bcmath php71u-cli php71u-common php71u-embedded php71u-gd php71u-mbstring php71u-mcrypt php71u-ldap php71u-json php71u-simplexml" + PACKAGES="httpd mariadb-server git unzip php71u php71u-mysqlnd php71u-bcmath php71u-cli php71u-common php71u-embedded php71u-gd php71u-mbstring php71u-mcrypt php71u-ldap php71u-json php71u-simplexml php71u-process" + installpackages - for p in $PACKAGES; do - if isinstalled "$p"; then - echo " * $p already installed" - else - echo " * Installing $p ... " - log "yum -y install $p" - fi - done; + echo "* Configuring Apache." + createvh echo "* Setting MariaDB to start on boot and starting MariaDB." log "systemctl enable mariadb.service" @@ -533,31 +485,11 @@ case $distro in echo "* Securing MariaDB." /usr/bin/mysql_secure_installation - echo "* Creating MariaDB Database/User." - echo "* Please Input your MariaDB root password " - mysql -u root -p --execute="CREATE DATABASE snipeit;GRANT ALL PRIVILEGES ON snipeit.* TO snipeit@localhost IDENTIFIED BY '$mysqluserpw';" - - #TODO make sure the apachefile doesnt exist isnt already in there - echo "* Creating the new virtual host in Apache." - setvhcentos - - #TODO make sure this isnt already in there - echo "* Setting up hosts file." - echo >> $hosts "127.0.0.1 $hostname $fqdn" - installsnipeit - #open the firewall for HTTP traffic only openfirewalld - #Check if SELinux is enforcing - if [ "$(getenforce)" == "Enforcing" ]; then - echo "* Configuring SELinux." - #Required for ldap integration - setsebool -P httpd_can_connect_ldap on - #Sets SELinux context type so that scripts running in the web server process are allowed read/write access - chcon -R -h -t httpd_sys_script_rw_t $webdir/$name/ - fi + configureselinux echo "* Setting Apache httpd to start on boot and starting service." log "systemctl enable httpd.service" @@ -573,18 +505,14 @@ case $distro in webdir=/var/www/html ownergroup=apache:apache tzone=$(timedatectl | gawk -F'[: ]' ' $9 ~ /zone/ {print $11}'); + apachefile=/etc/httpd/conf.d/$name.conf echo "* Installing Apache httpd, PHP, MariaDB and other requirements." PACKAGES="httpd mariadb-server git unzip php php-mysqlnd php-bcmath php-cli php-common php-embedded php-gd php-mbstring php-mcrypt php-ldap php-json php-simplexml" + installpackages - for p in $PACKAGES; do - if isdnfinstalled "$p"; then - echo " * $p already installed" - else - echo " * Installing $p ... " - log "dnf -y install $p" - fi - done; + echo "* Configuring Apache." + createvh echo "* Setting MariaDB to start on boot and starting MariaDB." log "systemctl enable mariadb.service" @@ -593,31 +521,11 @@ case $distro in echo "* Securing MariaDB." /usr/bin/mysql_secure_installation - echo "* Creating MariaDB Database/User." - echo "* Please Input your MariaDB root password " - mysql -u root -p --execute="CREATE DATABASE snipeit;GRANT ALL PRIVILEGES ON snipeit.* TO snipeit@localhost IDENTIFIED BY '$mysqluserpw';" - - #TODO make sure the apachefile doesnt exist isnt already in there - echo "* Creating the new virtual host in Apache." - setvhcentos - - #TODO make sure this isnt already in there - echo "* Setting up hosts file." - echo >> $hosts "127.0.0.1 $hostname $fqdn" - installsnipeit - #open the firewall for HTTP traffic only openfirewalld - #Check if SELinux is enforcing - if [ "$(getenforce)" == "Enforcing" ]; then - echo "* Configuring SELinux." - #Required for ldap integration - setsebool -P httpd_can_connect_ldap on - #Sets SELinux context type so that scripts running in the web server process are allowed read/write access - chcon -R -h -t httpd_sys_script_rw_t $webdir/$name/ - fi + configureselinux echo "* Setting Apache httpd to start on boot and starting service." log "systemctl enable httpd.service" @@ -633,39 +541,40 @@ case $setupmail in [yY] | [yY][Ee][Ss] ) echo -n " Outgoing mailserver address:" read -r mailhost - sed -i 's,^\(MAIL_HOST=\).*,\1'$mailhost',' "$webdir/$name/.env" + sed -i "s|^\\(MAIL_HOST=\\).*|\\1$mailhost|" "$webdir/$name/.env" echo -n " Server port number:" read -r mailport - sed -i 's,^\(MAIL_PORT=\).*,\1'$mailport',' "$webdir/$name/.env" + sed -i "s|^\\(MAIL_PORT=\\).*|\\1$mailport|" "$webdir/$name/.env" echo -n " Username:" read -r mailusername - sed -i 's,^\(MAIL_USERNAME=\).*,\1'$mailusername',' "$webdir/$name/.env" + sed -i "s|^\\(MAIL_USERNAME=\\).*|\\1$mailusername|" "$webdir/$name/.env" echo -n " Password:" read -rs mailpassword - sed -i 's,^\(MAIL_PASSWORD=\).*,\1'$mailpassword',' "$webdir/$name/.env" + sed -i "s|^\\(MAIL_PASSWORD=\\).*|\\1$mailpassword|" "$webdir/$name/.env" + echo "" echo -n " Encryption(null/TLS/SSL):" read -r mailencryption - sed -i 's,^\(MAIL_ENCRYPTION=\).*,\1'$mailencryption',' "$webdir/$name/.env" + sed -i "s|^\\(MAIL_ENCRYPTION=\\).*|\\1$mailencryption|" "$webdir/$name/.env" echo -n " From address:" read -r mailfromaddr - sed -i 's,^\(MAIL_FROM_ADDR=\).*,\1'$mailfromaddr',' "$webdir/$name/.env" + sed -i "s|^\\(MAIL_FROM_ADDR=\\).*|\\1$mailfromaddr|" "$webdir/$name/.env" echo -n " From name:" read -r mailfromname - sed -i 's,^\(MAIL_FROM_NAME=\).*,\1'$mailfromname',' "$webdir/$name/.env" + sed -i "s|^\\(MAIL_FROM_NAME=\\).*|\\1$mailfromname|" "$webdir/$name/.env" echo -n " Reply to address:" read -r mailreplytoaddr - sed -i 's,^\(MAIL_REPLYTO_ADDR=\).*,\1'$mailreplytoaddr',' "$webdir/$name/.env" + sed -i "s|^\\(MAIL_REPLYTO_ADDR=\\).*|\\1$mailreplytoaddr|" "$webdir/$name/.env" echo -n " Reply to name:" read -r mailreplytoname - sed -i 's,^\(MAIL_REPLYTO_NAME=\).*,\1'$mailreplytoname',' "$webdir/$name/.env" + sed -i "s|^\\(MAIL_REPLYTO_NAME=\\).*|\\1$mailreplytoname|" "$webdir/$name/.env" setupmail="yes" ;; [nN] | [n|N][O|o] ) From 36cd63836e66c104b5453d87f38b9d5dfbf2ea33 Mon Sep 17 00:00:00 2001 From: snipe Date: Mon, 5 Mar 2018 16:26:40 -0800 Subject: [PATCH 22/24] Fixed #5151 - added asset tag to maintenances --- .../Api/AssetMaintenancesController.php | 8 ++++++ .../AssetMaintenancesTransformer.php | 13 ++++++++- app/Models/AssetMaintenance.php | 28 +++++++++++++++++++ .../views/asset_maintenances/index.blade.php | 6 ++-- .../views/partials/bootstrap-table.blade.php | 11 ++++++++ 5 files changed, 63 insertions(+), 3 deletions(-) diff --git a/app/Http/Controllers/Api/AssetMaintenancesController.php b/app/Http/Controllers/Api/AssetMaintenancesController.php index 2bf5b290c..682d3d2db 100644 --- a/app/Http/Controllers/Api/AssetMaintenancesController.php +++ b/app/Http/Controllers/Api/AssetMaintenancesController.php @@ -56,6 +56,8 @@ class AssetMaintenancesController extends Controller 'start_date', 'completion_date', 'notes', + 'asset_tag', + 'asset_name', 'user_id' ]; $order = Input::get('order') === 'asc' ? 'asc' : 'desc'; @@ -65,6 +67,12 @@ class AssetMaintenancesController extends Controller case 'user_id': $maintenances = $maintenances->OrderAdmin($order); break; + case 'asset_tag': + $maintenances = $maintenances->OrderByTag($order); + break; + case 'asset_name': + $maintenances = $maintenances->OrderByAssetName($order); + break; default: $maintenances = $maintenances->orderBy($sort, $order); break; diff --git a/app/Http/Transformers/AssetMaintenancesTransformer.php b/app/Http/Transformers/AssetMaintenancesTransformer.php index 875d882e8..bd4afe8fc 100644 --- a/app/Http/Transformers/AssetMaintenancesTransformer.php +++ b/app/Http/Transformers/AssetMaintenancesTransformer.php @@ -22,8 +22,19 @@ class AssetMaintenancesTransformer { $array = [ 'id' => (int) $assetmaintenance->id, - 'asset_name' => ($assetmaintenance->asset) ? ['id' => $assetmaintenance->asset->id,'name'=> e($assetmaintenance->asset->name)] : null, + + 'asset' => ($assetmaintenance->asset) ? [ + 'id' => (int) $assetmaintenance->asset->id, + 'name'=> ($assetmaintenance->asset->name) ? e($assetmaintenance->asset->name) : null, + 'asset_tag'=> e($assetmaintenance->asset->asset_tag) + + ] : null, 'title' => ($assetmaintenance->title) ? e($assetmaintenance->title) : null, + 'location' => ($assetmaintenance->asset->location) ? [ + 'id' => (int) $assetmaintenance->asset->location->id, + 'name'=> e($assetmaintenance->asset->location->name), + + ] : null, 'notes' => ($assetmaintenance->notes) ? e($assetmaintenance->notes) : null, 'supplier' => ($assetmaintenance->supplier) ? ['id' => $assetmaintenance->supplier->id,'name'=> e($assetmaintenance->supplier->name)] : null, 'cost' => Helper::formatCurrencyOutput($assetmaintenance->cost), diff --git a/app/Models/AssetMaintenance.php b/app/Models/AssetMaintenance.php index 13029a432..8a07ec0db 100644 --- a/app/Models/AssetMaintenance.php +++ b/app/Models/AssetMaintenance.php @@ -177,4 +177,32 @@ class AssetMaintenance extends Model implements ICompanyableChild ->orderBy('users.first_name', $order) ->orderBy('users.last_name', $order); } + + /** + * Query builder scope to order on asset tag + * + * @param Illuminate\Database\Query\Builder $query Query builder instance + * @param text $order Order + * + * @return Illuminate\Database\Query\Builder Modified query builder + */ + public function scopeOrderByTag($query, $order) + { + return $query->leftJoin('assets', 'asset_maintenances.asset_id', '=', 'assets.id') + ->orderBy('assets.asset_tag', $order); + } + + /** + * Query builder scope to order on asset tag + * + * @param Illuminate\Database\Query\Builder $query Query builder instance + * @param text $order Order + * + * @return Illuminate\Database\Query\Builder Modified query builder + */ + public function scopeOrderByAssetName($query, $order) + { + return $query->leftJoin('assets', 'asset_maintenances.asset_id', '=', 'assets.id') + ->orderBy('assets.name', $order); + } } diff --git a/resources/views/asset_maintenances/index.blade.php b/resources/views/asset_maintenances/index.blade.php index d80e26722..21aa93864 100644 --- a/resources/views/asset_maintenances/index.blade.php +++ b/resources/views/asset_maintenances/index.blade.php @@ -42,8 +42,10 @@
- - + + + + diff --git a/resources/views/partials/bootstrap-table.blade.php b/resources/views/partials/bootstrap-table.blade.php index e5cc07b23..82fc53050 100644 --- a/resources/views/partials/bootstrap-table.blade.php +++ b/resources/views/partials/bootstrap-table.blade.php @@ -413,6 +413,17 @@ return ' ' + value + ''; } + function assetTagLinkFormatter(value, row) { + return ' ' + row.asset.asset_tag + ''; + } + + function assetNameLinkFormatter(value, row) { + if ((row.asset) && (row.asset.name)) { + return ' ' + row.asset.name + ''; + } + + } + function trueFalseFormatter(value, row) { if ((value) && ((value == 'true') || (value == '1'))) { return ''; From 0ef4251462b580d1978433879566d9def505dded Mon Sep 17 00:00:00 2001 From: snipe Date: Mon, 5 Mar 2018 19:06:39 -0800 Subject: [PATCH 23/24] Include new icons in stalebot --- .github/stale.yml | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/.github/stale.yml b/.github/stale.yml index 75bc6bad0..4aead8d18 100644 --- a/.github/stale.yml +++ b/.github/stale.yml @@ -6,8 +6,9 @@ daysUntilClose: 7 exemptLabels: - pinned - security - - ready for dev - - bounty + - :woman_technologist: ready for dev + - :moneybag: bounty + - :hand: bug # Label to use when marking an issue as stale staleLabel: stale # Comment to post when marking an issue as stale. Set to `false` to disable From 2df19bcbb4360a5c53ca7e8c90ffdb5876653ab2 Mon Sep 17 00:00:00 2001 From: snipe Date: Mon, 5 Mar 2018 20:22:44 -0800 Subject: [PATCH 24/24] Only pull category matches for accessory category --- app/Models/Accessory.php | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/app/Models/Accessory.php b/app/Models/Accessory.php index d79ab05c5..e743c2efd 100755 --- a/app/Models/Accessory.php +++ b/app/Models/Accessory.php @@ -163,13 +163,12 @@ class Accessory extends SnipeModel */ public function scopeTextSearch($query, $search) { - $search = explode('+', $search); return $query->where(function ($query) use ($search) { - foreach ($search as $search) { $query->whereHas('category', function ($query) use ($search) { - $query->where('categories.name', 'LIKE', '%'.$search.'%'); + $query->where('categories.name', 'LIKE', '%'.$search.'%') + ->where('categories.category_type', '=', 'accessory'); })->orWhere(function ($query) use ($search) { $query->whereHas('company', function ($query) use ($search) { $query->where('companies.name', 'LIKE', '%'.$search.'%'); @@ -182,7 +181,7 @@ class Accessory extends SnipeModel ->orWhere('accessories.model_number', 'LIKE', '%'.$search.'%') ->orWhere('accessories.order_number', 'LIKE', '%'.$search.'%') ->orWhere('accessories.purchase_cost', '=', $search); - } + }); }
{{ trans('general.id') }} {{ trans('admin/companies/table.title') }}{{ trans('admin/asset_maintenances/table.asset_name') }}{{ trans('general.supplier') }}{{ trans('admin/asset_maintenances/table.asset_name') }}{{ trans('admin/hardware/table.asset_tag') }}{{ trans('admin/hardware/table.location') }}{{ trans('general.supplier') }} {{ trans('admin/asset_maintenances/form.asset_maintenance_type') }} {{ trans('admin/asset_maintenances/form.title') }} {{ trans('admin/asset_maintenances/form.start_date') }}