diff --git a/app/Models/Labels/FieldOption.php b/app/Models/Labels/FieldOption.php index 7e45cc0ce7..38a90e31dc 100644 --- a/app/Models/Labels/FieldOption.php +++ b/app/Models/Labels/FieldOption.php @@ -18,8 +18,14 @@ class FieldOption { // assignedTo directly on the asset is a special case where // we want to avoid returning the property directly // and instead return the entity's presented name. - if ($dataPath[0] === 'assignedTo'){ - return $asset->assignedTo ? $asset->assignedTo->present()->fullName() : null; + if ($dataPath[0] === 'assignedTo') { + if ($asset->relationLoaded('assignedTo')) { + // If the "assignedTo" relationship was eager loaded then the way to get the + // relationship changes from $asset->assignedTo to $asset->assigned. + return $asset->assigned ? $asset->assigned->present()->fullName() : null; + } + + return $asset->assignedTo ? $asset->assignedTo->present()->fullName() : null; } return $dataPath->reduce(function ($myValue, $path) { diff --git a/app/Providers/ValidationServiceProvider.php b/app/Providers/ValidationServiceProvider.php index 803d540865..4646b3c78b 100644 --- a/app/Providers/ValidationServiceProvider.php +++ b/app/Providers/ValidationServiceProvider.php @@ -279,7 +279,24 @@ class ValidationServiceProvider extends ServiceProvider Validator::extend('is_unique_department', function ($attribute, $value, $parameters, $validator) { $data = $validator->getData(); - if ((array_key_exists('location_id', $data) && $data['location_id'] != null) && (array_key_exists('company_id', $data) && $data['company_id'] != null)) { + + if ( + array_key_exists('location_id', $data) && $data['location_id'] !== null && + array_key_exists('company_id', $data) && $data['company_id'] !== null + ) { + //for updating existing departments + if(array_key_exists('id', $data) && $data['id'] !== null){ + $count = Department::where('name', $data['name']) + ->where('location_id', $data['location_id']) + ->where('company_id', $data['company_id']) + ->whereNotNull('company_id') + ->whereNotNull('location_id') + ->where('id', '!=', $data['id']) + ->count('name'); + + return $count < 1; + }else // for entering in new departments + { $count = Department::where('name', $data['name']) ->where('location_id', $data['location_id']) ->where('company_id', $data['company_id']) @@ -289,9 +306,10 @@ class ValidationServiceProvider extends ServiceProvider return $count < 1; } + } else { return true; - } + } }); Validator::extend('not_array', function ($attribute, $value, $parameters, $validator) { diff --git a/app/View/Label.php b/app/View/Label.php index f47ad6acd5..3ec3a4099c 100644 --- a/app/View/Label.php +++ b/app/View/Label.php @@ -142,7 +142,32 @@ class Label implements View // Remove Duplicates $toAdd = $field ->filter(fn($o) => !$myFields->contains('dataSource', $o['dataSource'])) - ->first(); + // For fields that have multiple options, we need to combine them + // into a single field so all values are displayed. + ->reduce(function ($previous, $current) { + // On the first iteration we simply return the item. + // If there is only one item to be processed for the row + // then this effectively skips everything below this if block. + if (is_null($previous)) { + return $current; + } + + // At this point we are dealing with a row with multiple items being displayed. + // We need to combine the label and value of the current item with the previous item. + + // The end result of this will be in this format: + // {labelOne} {valueOne} | {labelTwo} {valueTwo} | {labelThree} {valueThree} + $previous['value'] = trim(implode(' | ', [ + implode(' ', [$previous['label'], $previous['value']]), + implode(' ', [$current['label'], $current['value']]), + ])); + + // We'll set the label to an empty string since we + // injected the label into the value field above. + $previous['label'] = ''; + + return $previous; + }); return $toAdd ? $myFields->push($toAdd) : $myFields; }, new Collection()); diff --git a/package-lock.json b/package-lock.json index 3a81578e6a..4dfe83582d 100644 --- a/package-lock.json +++ b/package-lock.json @@ -19162,6 +19162,11 @@ "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", "dev": true }, + "signature_pad": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/signature_pad/-/signature_pad-4.2.0.tgz", + "integrity": "sha512-YLWysmaUBaC5wosAKkgbX7XI+LBv2w5L0QUcI6Jc4moHYzv9BUBJtAyNLpWzHjtjKTeWOH6bfP4a4pzf0UinfQ==" + }, "simple-concat": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/simple-concat/-/simple-concat-1.0.1.tgz", diff --git a/package.json b/package.json index 7908293012..ebadfb06be 100644 --- a/package.json +++ b/package.json @@ -56,6 +56,7 @@ "papaparse": "^4.3.3", "select2": "4.0.13", "sheetjs": "^2.0.0", + "signature_pad": "^4.2.0", "tableexport.jquery.plugin": "1.28.0", "tether": "^1.4.0", "vue-resource": "^1.5.2", diff --git a/public/css/dist/skins/skin-black-dark.css b/public/css/dist/skins/skin-black-dark.css index f12332df6d..d053edf605 100644 Binary files a/public/css/dist/skins/skin-black-dark.css and b/public/css/dist/skins/skin-black-dark.css differ diff --git a/public/css/dist/skins/skin-black-dark.min.css b/public/css/dist/skins/skin-black-dark.min.css index f12332df6d..d053edf605 100644 Binary files a/public/css/dist/skins/skin-black-dark.min.css and b/public/css/dist/skins/skin-black-dark.min.css differ diff --git a/public/css/dist/skins/skin-blue-dark.css b/public/css/dist/skins/skin-blue-dark.css index c4f2672931..f3c91e453c 100644 Binary files a/public/css/dist/skins/skin-blue-dark.css and b/public/css/dist/skins/skin-blue-dark.css differ diff --git a/public/css/dist/skins/skin-blue-dark.min.css b/public/css/dist/skins/skin-blue-dark.min.css index c4f2672931..f3c91e453c 100644 Binary files a/public/css/dist/skins/skin-blue-dark.min.css and b/public/css/dist/skins/skin-blue-dark.min.css differ diff --git a/public/css/dist/skins/skin-green-dark.css b/public/css/dist/skins/skin-green-dark.css index e024040c4e..73c055b242 100644 Binary files a/public/css/dist/skins/skin-green-dark.css and b/public/css/dist/skins/skin-green-dark.css differ diff --git a/public/css/dist/skins/skin-green-dark.min.css b/public/css/dist/skins/skin-green-dark.min.css index e024040c4e..73c055b242 100644 Binary files a/public/css/dist/skins/skin-green-dark.min.css and b/public/css/dist/skins/skin-green-dark.min.css differ diff --git a/public/css/dist/skins/skin-orange-dark.css b/public/css/dist/skins/skin-orange-dark.css index 1ec2c0701a..b3655a40ac 100644 Binary files a/public/css/dist/skins/skin-orange-dark.css and b/public/css/dist/skins/skin-orange-dark.css differ diff --git a/public/css/dist/skins/skin-orange-dark.min.css b/public/css/dist/skins/skin-orange-dark.min.css index 1ec2c0701a..b3655a40ac 100644 Binary files a/public/css/dist/skins/skin-orange-dark.min.css and b/public/css/dist/skins/skin-orange-dark.min.css differ diff --git a/public/css/dist/skins/skin-purple-dark.css b/public/css/dist/skins/skin-purple-dark.css index cec9819d7d..8e95bec108 100644 Binary files a/public/css/dist/skins/skin-purple-dark.css and b/public/css/dist/skins/skin-purple-dark.css differ diff --git a/public/css/dist/skins/skin-purple-dark.min.css b/public/css/dist/skins/skin-purple-dark.min.css index cec9819d7d..8e95bec108 100644 Binary files a/public/css/dist/skins/skin-purple-dark.min.css and b/public/css/dist/skins/skin-purple-dark.min.css differ diff --git a/public/css/dist/skins/skin-red-dark.css b/public/css/dist/skins/skin-red-dark.css index 17d495cbbb..d97c79bedf 100644 Binary files a/public/css/dist/skins/skin-red-dark.css and b/public/css/dist/skins/skin-red-dark.css differ diff --git a/public/css/dist/skins/skin-red-dark.min.css b/public/css/dist/skins/skin-red-dark.min.css index 17d495cbbb..d97c79bedf 100644 Binary files a/public/css/dist/skins/skin-red-dark.min.css and b/public/css/dist/skins/skin-red-dark.min.css differ diff --git a/public/css/dist/skins/skin-yellow-dark.css b/public/css/dist/skins/skin-yellow-dark.css index 09babaa6ab..80289831c0 100644 Binary files a/public/css/dist/skins/skin-yellow-dark.css and b/public/css/dist/skins/skin-yellow-dark.css differ diff --git a/public/css/dist/skins/skin-yellow-dark.min.css b/public/css/dist/skins/skin-yellow-dark.min.css index 09babaa6ab..80289831c0 100644 Binary files a/public/css/dist/skins/skin-yellow-dark.min.css and b/public/css/dist/skins/skin-yellow-dark.min.css differ diff --git a/public/mix-manifest.json b/public/mix-manifest.json index 8052e88763..60e7299046 100644 --- a/public/mix-manifest.json +++ b/public/mix-manifest.json @@ -5,16 +5,16 @@ "/css/build/app.css": "/css/build/app.css?id=8e63a06059e22f0cd450bcde31055f81", "/css/build/AdminLTE.css": "/css/build/AdminLTE.css?id=dc383f8560a8d4adb51d44fb4043e03b", "/css/dist/skins/skin-orange.css": "/css/dist/skins/skin-orange.css?id=6f0563e726c2fe4fab4026daaa5bfdf2", - "/css/dist/skins/skin-orange-dark.css": "/css/dist/skins/skin-orange-dark.css?id=e6e53eef152bba01a4c666a4d8b01117", - "/css/dist/skins/skin-blue-dark.css": "/css/dist/skins/skin-blue-dark.css?id=07273f6ca3c698a39e8fc2075af4fa07", - "/css/dist/skins/skin-yellow-dark.css": "/css/dist/skins/skin-yellow-dark.css?id=c1f33574ecb9d3e69d9b8fe5bd68e101", + "/css/dist/skins/skin-orange-dark.css": "/css/dist/skins/skin-orange-dark.css?id=6b6facc1efe19a7de3f1f93bb47bbf14", + "/css/dist/skins/skin-blue-dark.css": "/css/dist/skins/skin-blue-dark.css?id=8c17b6762a4155288938f17e61ffa864", + "/css/dist/skins/skin-yellow-dark.css": "/css/dist/skins/skin-yellow-dark.css?id=9482fa0de7e64aa149179bbc514395ed", "/css/dist/skins/skin-yellow.css": "/css/dist/skins/skin-yellow.css?id=7b315b9612b8fde8f9c5b0ddb6bba690", - "/css/dist/skins/skin-purple-dark.css": "/css/dist/skins/skin-purple-dark.css?id=7d92dea45d94be7e1d4e427c728d335d", + "/css/dist/skins/skin-purple-dark.css": "/css/dist/skins/skin-purple-dark.css?id=6b2cf3ef635113ac62239fdf9d4566e9", "/css/dist/skins/skin-purple.css": "/css/dist/skins/skin-purple.css?id=6fe68325d5356197672c27bc77cedcb4", - "/css/dist/skins/skin-red-dark.css": "/css/dist/skins/skin-red-dark.css?id=8ca888bbc050d9680cbb65021382acba", - "/css/dist/skins/skin-black-dark.css": "/css/dist/skins/skin-black-dark.css?id=b061bb141af3bdb6280c6ee772cf8f4f", + "/css/dist/skins/skin-red-dark.css": "/css/dist/skins/skin-red-dark.css?id=fc36e0e4e556223e2518749d8d8fae74", + "/css/dist/skins/skin-black-dark.css": "/css/dist/skins/skin-black-dark.css?id=afa8d43e9671ae3f98a647c4bb792417", "/css/dist/skins/skin-black.css": "/css/dist/skins/skin-black.css?id=76482123f6c70e866d6b971ba91de7bb", - "/css/dist/skins/skin-green-dark.css": "/css/dist/skins/skin-green-dark.css?id=d419cb63a12dc175d71645c876bfc2ab", + "/css/dist/skins/skin-green-dark.css": "/css/dist/skins/skin-green-dark.css?id=a06da73050e9225c34f9bb6562792ba0", "/css/dist/skins/skin-green.css": "/css/dist/skins/skin-green.css?id=0a82a6ae6bb4e58fe62d162c4fb50397", "/css/dist/skins/skin-contrast.css": "/css/dist/skins/skin-contrast.css?id=da6c7997d9de2f8329142399f0ce50da", "/css/dist/skins/skin-red.css": "/css/dist/skins/skin-red.css?id=44bf834f2110504a793dadec132a5898", @@ -35,18 +35,18 @@ "/js/dist/all.js": "/js/dist/all.js?id=13bdb521e0c745d7f81dae3fb110b650", "/js/dist/all-defer.js": "/js/dist/all-defer.js?id=19ccc62a8f1ea103dede4808837384d4", "/css/dist/skins/skin-green.min.css": "/css/dist/skins/skin-green.min.css?id=0a82a6ae6bb4e58fe62d162c4fb50397", - "/css/dist/skins/skin-green-dark.min.css": "/css/dist/skins/skin-green-dark.min.css?id=d419cb63a12dc175d71645c876bfc2ab", + "/css/dist/skins/skin-green-dark.min.css": "/css/dist/skins/skin-green-dark.min.css?id=a06da73050e9225c34f9bb6562792ba0", "/css/dist/skins/skin-black.min.css": "/css/dist/skins/skin-black.min.css?id=76482123f6c70e866d6b971ba91de7bb", - "/css/dist/skins/skin-black-dark.min.css": "/css/dist/skins/skin-black-dark.min.css?id=b061bb141af3bdb6280c6ee772cf8f4f", + "/css/dist/skins/skin-black-dark.min.css": "/css/dist/skins/skin-black-dark.min.css?id=afa8d43e9671ae3f98a647c4bb792417", "/css/dist/skins/skin-blue.min.css": "/css/dist/skins/skin-blue.min.css?id=f677207c6cf9678eb539abecb408c374", - "/css/dist/skins/skin-blue-dark.min.css": "/css/dist/skins/skin-blue-dark.min.css?id=07273f6ca3c698a39e8fc2075af4fa07", + "/css/dist/skins/skin-blue-dark.min.css": "/css/dist/skins/skin-blue-dark.min.css?id=8c17b6762a4155288938f17e61ffa864", "/css/dist/skins/skin-yellow.min.css": "/css/dist/skins/skin-yellow.min.css?id=7b315b9612b8fde8f9c5b0ddb6bba690", - "/css/dist/skins/skin-yellow-dark.min.css": "/css/dist/skins/skin-yellow-dark.min.css?id=c1f33574ecb9d3e69d9b8fe5bd68e101", + "/css/dist/skins/skin-yellow-dark.min.css": "/css/dist/skins/skin-yellow-dark.min.css?id=9482fa0de7e64aa149179bbc514395ed", "/css/dist/skins/skin-red.min.css": "/css/dist/skins/skin-red.min.css?id=44bf834f2110504a793dadec132a5898", - "/css/dist/skins/skin-red-dark.min.css": "/css/dist/skins/skin-red-dark.min.css?id=8ca888bbc050d9680cbb65021382acba", + "/css/dist/skins/skin-red-dark.min.css": "/css/dist/skins/skin-red-dark.min.css?id=fc36e0e4e556223e2518749d8d8fae74", "/css/dist/skins/skin-purple.min.css": "/css/dist/skins/skin-purple.min.css?id=6fe68325d5356197672c27bc77cedcb4", - "/css/dist/skins/skin-purple-dark.min.css": "/css/dist/skins/skin-purple-dark.min.css?id=7d92dea45d94be7e1d4e427c728d335d", + "/css/dist/skins/skin-purple-dark.min.css": "/css/dist/skins/skin-purple-dark.min.css?id=6b2cf3ef635113ac62239fdf9d4566e9", "/css/dist/skins/skin-orange.min.css": "/css/dist/skins/skin-orange.min.css?id=6f0563e726c2fe4fab4026daaa5bfdf2", - "/css/dist/skins/skin-orange-dark.min.css": "/css/dist/skins/skin-orange-dark.min.css?id=e6e53eef152bba01a4c666a4d8b01117", + "/css/dist/skins/skin-orange-dark.min.css": "/css/dist/skins/skin-orange-dark.min.css?id=6b6facc1efe19a7de3f1f93bb47bbf14", "/css/dist/skins/skin-contrast.min.css": "/css/dist/skins/skin-contrast.min.css?id=da6c7997d9de2f8329142399f0ce50da" } diff --git a/resources/assets/less/skins/skin-black-dark.less b/resources/assets/less/skins/skin-black-dark.less index 6f0a2204b2..61e3d6d32c 100644 --- a/resources/assets/less/skins/skin-black-dark.less +++ b/resources/assets/less/skins/skin-black-dark.less @@ -375,7 +375,10 @@ input[type=text], input[type=search] { color: var(--text-main); } .skin-black-dark .main-header .navbar .dropdown-menu li a { - color: var(--header); + color: #FFFFFF; +} +.skin-black-dark .main-header .navbar .dropdown-menu li a:hover { + background-color: #000000; } .fixed-table-body thead th .th-inner, .skin-black-dark .sidebar-menu>li.active>a, .skin-black .sidebar-menu>li:hover>a, .sidebar-toggle:hover { background-color: var(--header)!important; diff --git a/resources/assets/less/skins/skin-blue-dark.less b/resources/assets/less/skins/skin-blue-dark.less index 6c502b1781..1383dbb357 100644 --- a/resources/assets/less/skins/skin-blue-dark.less +++ b/resources/assets/less/skins/skin-blue-dark.less @@ -361,7 +361,10 @@ input[type=text], input[type=search] { color: var(--text-main); } .skin-blue-dark .main-header .navbar .dropdown-menu li a { - color: var(--header); + color: #FFFFFF; +} +.skin-blue-dark .main-header .navbar .dropdown-menu li a:hover { + background-color: #3c8dbc; } .fixed-table-body thead th .th-inner, .skin-blue-dark .sidebar-menu>li.active>a, .skin-blue .sidebar-menu>li:hover>a, .sidebar-toggle:hover { background-color: var(--header)!important; diff --git a/resources/assets/less/skins/skin-green-dark.less b/resources/assets/less/skins/skin-green-dark.less index 5267803656..dadfc25d30 100644 --- a/resources/assets/less/skins/skin-green-dark.less +++ b/resources/assets/less/skins/skin-green-dark.less @@ -348,7 +348,10 @@ input[type=text], input[type=search] { color: var(--text-main); } .skin-green-dark .main-header .navbar .dropdown-menu li a { - color: var(--link); + color: #FFFFFF; +} +.skin-green-dark .main-header .navbar .dropdown-menu li a:hover { + background-color: #006300; } .fixed-table-body thead th .th-inner, .skin-green-dark .sidebar-menu>li.active>a, .skin-green .sidebar-menu>li:hover>a, .sidebar-toggle:hover { background-color: var(--header)!important; diff --git a/resources/assets/less/skins/skin-orange-dark.less b/resources/assets/less/skins/skin-orange-dark.less index 98925b475e..2686d0214d 100644 --- a/resources/assets/less/skins/skin-orange-dark.less +++ b/resources/assets/less/skins/skin-orange-dark.less @@ -359,7 +359,10 @@ input[type=text], input[type=search] { color: var(--text-main); } .skin-orange-dark .main-header .navbar .dropdown-menu li a { - color: var(--header); + color: #FFFFFF; +} +.skin-orange-dark .main-header .navbar .dropdown-menu li a:hover { + background-color: #ff8c00; } .fixed-table-body thead th .th-inner, .skin-orange-dark .sidebar-menu>li.active>a, .skin-orange .sidebar-menu>li:hover>a, .sidebar-toggle:hover { background-color: var(--header)!important; diff --git a/resources/assets/less/skins/skin-purple-dark.less b/resources/assets/less/skins/skin-purple-dark.less index 10868045af..afb08b3859 100644 --- a/resources/assets/less/skins/skin-purple-dark.less +++ b/resources/assets/less/skins/skin-purple-dark.less @@ -362,7 +362,10 @@ input[type=text], input[type=search] { color: var(--text-main); } .skin-purple-dark .main-header .navbar .dropdown-menu li a { - color: var(--header); + color: #FFFFFF; +} +.skin-purple-dark .main-header .navbar .dropdown-menu li a:hover { + background-color: #5f5ca8; } .fixed-table-body thead th .th-inner, .skin-purple-dark .sidebar-menu>li.active>a, .skin-purple .sidebar-menu>li:hover>a, .sidebar-toggle:hover { background-color: var(--header)!important; diff --git a/resources/assets/less/skins/skin-red-dark.less b/resources/assets/less/skins/skin-red-dark.less index 3fded5f067..961b822198 100644 --- a/resources/assets/less/skins/skin-red-dark.less +++ b/resources/assets/less/skins/skin-red-dark.less @@ -363,7 +363,10 @@ input[type=text], input[type=search] { color: var(--text-main); } .skin-red-dark .main-header .navbar .dropdown-menu li a { - color: var(--header); + color: #FFFFFF; +} +.skin-red-dark .main-header .navbar .dropdown-menu li a:hover { + background-color: #c23320; } .fixed-table-body thead th .th-inner, .skin-red-dark .sidebar-menu>li.active>a, .skin-red .sidebar-menu>li:hover>a, .sidebar-toggle:hover { background-color: var(--header)!important; diff --git a/resources/assets/less/skins/skin-yellow-dark.less b/resources/assets/less/skins/skin-yellow-dark.less index c111cb122c..ec4198ea26 100644 --- a/resources/assets/less/skins/skin-yellow-dark.less +++ b/resources/assets/less/skins/skin-yellow-dark.less @@ -355,8 +355,11 @@ input[type=text], input[type=search] { .skin-yellow-dark .main-header .navbar .dropdown-menu li a { color: var(--header); } +.skin-yellow-dark .main-header .navbar .dropdown-menu li a:hover { + background-color: #000000; +} tr th div.th-inner { - color:var(--text-main); + color: #FFFFFF; } .tab-content, .tab-pane { background-color: var(--back-main); diff --git a/resources/views/account/accept/create.blade.php b/resources/views/account/accept/create.blade.php index c05bc3a892..fa6e4b8b56 100644 --- a/resources/views/account/accept/create.blade.php +++ b/resources/views/account/accept/create.blade.php @@ -70,7 +70,7 @@

{{trans('general.sign_tos')}}

- +
@@ -94,6 +94,7 @@ @section('moar_scripts')