Compare commits
139 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| d9a1dab827 | |||
| 5277f7cc5c | |||
| 25a5507d9d | |||
| a95fae0e94 | |||
| 890efb18d8 | |||
| eea2eabaee | |||
| 9596826259 | |||
| cd3b4754e8 | |||
| 1dab4b59e9 | |||
| 05dd2b4008 | |||
| b809625856 | |||
| 8d921359ca | |||
| c07c0c0f74 | |||
| cc82e86eeb | |||
| 8c9961aba8 | |||
| 46af40bd02 | |||
| 6cda9056b8 | |||
| 101bd9c404 | |||
| ad6b502005 | |||
| cb10c7af27 | |||
| 99d409c0a5 | |||
| 37c1d6fc04 | |||
| c69958d95d | |||
| 92776adb93 | |||
| dee36fc294 | |||
| a2773aa895 | |||
| e82fec2a5f | |||
| db4c86a4f4 | |||
| 8384786e8b | |||
| a5fd218c23 | |||
| d2435c6f86 | |||
| 1abcc8b802 | |||
| 724c054838 | |||
| 1e8f90bcf0 | |||
| 129e9b90dc | |||
| 4e6764428e | |||
| c7b8880d69 | |||
| 228f21ed91 | |||
| b7c390a257 | |||
| c45ede2d17 | |||
| 758d808772 | |||
| 754ec7563a | |||
| 352e53a036 | |||
| 0184d25a95 | |||
| bed1055c4e | |||
| 41eccaeae0 | |||
| c1f545a523 | |||
| 8792d654b6 | |||
| f8730adb11 | |||
| c21586dee5 | |||
| 581e56198c | |||
| f16e81e0e8 | |||
| 3de656f5c6 | |||
| 3b4004ac18 | |||
| 0bf423cda9 | |||
| a54fab5c33 | |||
| 96c6c93197 | |||
| 4d67c72eea | |||
| 6fa0d42bc2 | |||
| cfe6b07b3a | |||
| 7512400b56 | |||
| 1acb14a39f | |||
| bb7a41628a | |||
| 68c9fac971 | |||
| 402ff58628 | |||
| 492fb15036 | |||
| ac7f85fea9 | |||
| cc4cb14e9d | |||
| ee72c92d4f | |||
| 3aeea007b2 | |||
| 048ad57418 | |||
| 7bcb28d8fd | |||
| 660abeca9e | |||
| 0c31d5749c | |||
| 1509339b68 | |||
| 81ae32d3f9 | |||
| 279e6c7e4f | |||
| 16498fdcf8 | |||
| 81a982fd77 | |||
| 619712b927 | |||
| 359cd2a267 | |||
| 456d55c3bd | |||
| 5a88a64ebd | |||
| b1199100a0 | |||
| b7901ae2d8 | |||
| 4660a2e5b7 | |||
| a9123754f5 | |||
| cbef531811 | |||
| 7dab59c98d | |||
| c48a47936c | |||
| 66abf8d5c0 | |||
| 2ace24b176 | |||
| d65d1930e4 | |||
| 2d59517c35 | |||
| 3cb906a05f | |||
| 6b4f8f1813 | |||
| 929e107a20 | |||
| 1cfd7673e0 | |||
| afe9d43139 | |||
| aac627592b | |||
| f35f9f922e | |||
| 44441ec703 | |||
| 7c9a4ac161 | |||
| 64a9859efd | |||
| ef64843d2f | |||
| 0368b9df43 | |||
| 951521dc81 | |||
| 70a251de55 | |||
| e21a8b6717 | |||
| 7047869367 | |||
| 53d4fd1d0b | |||
| ccf3fe40ec | |||
| 3a63bcab73 | |||
| 30dade1fba | |||
| 97d6a34b8c | |||
| 431af5f530 | |||
| 3e3bb594ea | |||
| fb001caee4 | |||
| b73f20cadf | |||
| 3fb62874f0 | |||
| c66804bcee | |||
| e1af69f6ae | |||
| 27bea2abb9 | |||
| 1b18cd7fe6 | |||
| 78c400e948 | |||
| 75d7e3e1a0 | |||
| 5948679a4a | |||
| 774f21bb7f | |||
| 20367eecc9 | |||
| cda9dd57dd | |||
| 41b65bd9a2 | |||
| 17a83129b9 | |||
| 0e60184e95 | |||
| 1ea0de8bca | |||
| 17ccfa9ada | |||
| c1daabef08 | |||
| dc39d2c567 | |||
| 321e7c93ec | |||
| 8456b3ec0c |
@@ -46,6 +46,7 @@ class AssetModelsController extends Controller
|
||||
'requestable',
|
||||
'assets_count',
|
||||
'category',
|
||||
'fieldset',
|
||||
];
|
||||
|
||||
$assetmodels = AssetModel::select([
|
||||
@@ -94,6 +95,9 @@ class AssetModelsController extends Controller
|
||||
case 'category':
|
||||
$assetmodels->OrderCategory($order);
|
||||
break;
|
||||
case 'fieldset':
|
||||
$assetmodels->OrderFieldset($order);
|
||||
break;
|
||||
default:
|
||||
$assetmodels->orderBy($sort, $order);
|
||||
break;
|
||||
|
||||
@@ -6,6 +6,7 @@ use App\Helpers\Helper;
|
||||
use App\Http\Requests\ImageUploadRequest;
|
||||
use App\Models\AssetModel;
|
||||
use Illuminate\Support\Facades\Auth;
|
||||
use Illuminate\Support\Facades\DB;
|
||||
use Illuminate\Support\Facades\Input;
|
||||
use Illuminate\Support\Facades\View;
|
||||
use Illuminate\Support\Facades\Validator;
|
||||
@@ -173,8 +174,15 @@ class AssetModelsController extends Controller
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
if ($model->save()) {
|
||||
if ($model->wasChanged('eol')) {
|
||||
$newEol = $model->eol;
|
||||
$model->assets()->whereNotNull('purchase_date')->where('eol_explicit', false)
|
||||
->update(['asset_eol_date' => DB::raw('DATE_ADD(purchase_date, INTERVAL ' . $newEol . ' MONTH)')]);
|
||||
}
|
||||
return redirect()->route('models.index')->with('success', trans('admin/models/message.update.success'));
|
||||
}
|
||||
|
||||
|
||||
@@ -91,7 +91,8 @@ class AssetCheckoutController extends Controller
|
||||
|
||||
$settings = \App\Models\Setting::getSettings();
|
||||
|
||||
if ($settings->full_multiple_companies_support){
|
||||
// We have to check whether $target->company_id is null here since locations don't have a company yet
|
||||
if (($settings->full_multiple_companies_support) && ((!is_null($target->company_id)) && (!is_null($asset->company_id)))) {
|
||||
if ($target->company_id != $asset->company_id){
|
||||
return redirect()->to("hardware/$assetId/checkout")->with('error', trans('general.error_user_company'));
|
||||
}
|
||||
|
||||
@@ -6,6 +6,7 @@ use App\Helpers\Helper;
|
||||
use App\Http\Controllers\Controller;
|
||||
use App\Http\Requests\ImageUploadRequest;
|
||||
use App\Models\Actionlog;
|
||||
use Illuminate\Support\Facades\Log;
|
||||
use App\Models\Asset;
|
||||
use App\Models\AssetModel;
|
||||
use App\Models\CheckoutRequest;
|
||||
@@ -14,26 +15,18 @@ use App\Models\Location;
|
||||
use App\Models\Setting;
|
||||
use App\Models\Statuslabel;
|
||||
use App\Models\User;
|
||||
use Illuminate\Support\Facades\Auth;
|
||||
use App\View\Label;
|
||||
use Auth;
|
||||
use Carbon\Carbon;
|
||||
use DB;
|
||||
use Illuminate\Support\Facades\DB;
|
||||
use Illuminate\Support\Facades\View;
|
||||
use Illuminate\Support\Facades\Gate;
|
||||
use Illuminate\Http\Request;
|
||||
use Illuminate\Support\Facades\Cache;
|
||||
use Illuminate\Support\Facades\Crypt;
|
||||
use Illuminate\Support\Facades\Storage;
|
||||
use Illuminate\Support\Facades\Cookie;
|
||||
use Input;
|
||||
use Intervention\Image\Facades\Image;
|
||||
use Illuminate\Support\Facades\Validator;
|
||||
use League\Csv\Reader;
|
||||
use League\Csv\Statement;
|
||||
use Paginator;
|
||||
use Redirect;
|
||||
use Response;
|
||||
use Slack;
|
||||
use Str;
|
||||
use TCPDF;
|
||||
use View;
|
||||
use Illuminate\Support\Facades\Redirect;
|
||||
|
||||
/**
|
||||
* This class controls all actions related to assets for
|
||||
@@ -173,9 +166,9 @@ class AssetsController extends Controller
|
||||
if ($field->field_encrypted == '1') {
|
||||
if (Gate::allows('admin')) {
|
||||
if (is_array($request->input($field->db_column))) {
|
||||
$asset->{$field->db_column} = \Crypt::encrypt(implode(', ', $request->input($field->db_column)));
|
||||
$asset->{$field->db_column} = Crypt::encrypt(implode(', ', $request->input($field->db_column)));
|
||||
} else {
|
||||
$asset->{$field->db_column} = \Crypt::encrypt($request->input($field->db_column));
|
||||
$asset->{$field->db_column} = Crypt::encrypt($request->input($field->db_column));
|
||||
}
|
||||
}
|
||||
} else {
|
||||
@@ -298,10 +291,10 @@ class AssetsController extends Controller
|
||||
/**
|
||||
* Validate and process asset edit form.
|
||||
*
|
||||
* @author [A. Gianotto] [<snipe@snipe.net>]
|
||||
* @param int $assetId
|
||||
* @since [v1.0]
|
||||
* @return Redirect
|
||||
* @return \Illuminate\Http\RedirectResponse|Redirect
|
||||
*@since [v1.0]
|
||||
* @author [A. Gianotto] [<snipe@snipe.net>]
|
||||
*/
|
||||
public function update(ImageUploadRequest $request, $assetId = null)
|
||||
{
|
||||
@@ -315,9 +308,23 @@ class AssetsController extends Controller
|
||||
$asset->status_id = $request->input('status_id', null);
|
||||
$asset->warranty_months = $request->input('warranty_months', null);
|
||||
$asset->purchase_cost = $request->input('purchase_cost', null);
|
||||
$asset->asset_eol_date = request('asset_eol_date', null);
|
||||
|
||||
$asset->purchase_date = $request->input('purchase_date', null);
|
||||
$asset->purchase_date = $request->input('purchase_date', null);
|
||||
if ($request->filled('purchase_date') && !$request->filled('asset_eol_date') && $asset->model->eol) {
|
||||
$asset->purchase_date = $request->input('purchase_date', null);
|
||||
$asset->asset_eol_date = Carbon::parse($request->input('purchase_date'))->addMonths($asset->model->eol)->format('Y-m-d');
|
||||
} elseif ($request->filled('asset_eol_date')) {
|
||||
$asset->asset_eol_date = $request->input('asset_eol_date', null);
|
||||
$months = Carbon::parse($asset->asset_eol_date)->diffInMonths($asset->purchase_date);
|
||||
if($asset->model->eol) {
|
||||
if($months != $asset->model->eol) {
|
||||
$asset->eol_explicit = true;
|
||||
} else {
|
||||
$asset->eol_explicit = false;
|
||||
}
|
||||
} else {
|
||||
$asset->eol_explicit = true;
|
||||
}
|
||||
}
|
||||
$asset->supplier_id = $request->input('supplier_id', null);
|
||||
$asset->expected_checkin = $request->input('expected_checkin', null);
|
||||
|
||||
@@ -342,7 +349,7 @@ class AssetsController extends Controller
|
||||
unlink(public_path().'/uploads/assets/'.$asset->image);
|
||||
$asset->image = '';
|
||||
} catch (\Exception $e) {
|
||||
\Log::info($e);
|
||||
Log::info($e);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -370,9 +377,9 @@ class AssetsController extends Controller
|
||||
if ($field->field_encrypted == '1') {
|
||||
if (Gate::allows('admin')) {
|
||||
if (is_array($request->input($field->db_column))) {
|
||||
$asset->{$field->db_column} = \Crypt::encrypt(implode(', ', $request->input($field->db_column)));
|
||||
$asset->{$field->db_column} = Crypt::encrypt(implode(', ', $request->input($field->db_column)));
|
||||
} else {
|
||||
$asset->{$field->db_column} = \Crypt::encrypt($request->input($field->db_column));
|
||||
$asset->{$field->db_column} = Crypt::encrypt($request->input($field->db_column));
|
||||
}
|
||||
}
|
||||
} else {
|
||||
@@ -420,7 +427,7 @@ class AssetsController extends Controller
|
||||
try {
|
||||
Storage::disk('public')->delete('assets'.'/'.$asset->image);
|
||||
} catch (\Exception $e) {
|
||||
\Log::debug($e);
|
||||
Log::debug($e);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -535,7 +542,7 @@ class AssetsController extends Controller
|
||||
|
||||
return response($barcode_obj->getPngData())->header('Content-type', 'image/png');
|
||||
} catch (\Exception $e) {
|
||||
\Log::debug('The barcode format is invalid.');
|
||||
Log::debug('The barcode format is invalid.');
|
||||
|
||||
return response(file_get_contents(public_path('uploads/barcodes/invalid_barcode.gif')))->header('Content-type', 'image/gif');
|
||||
}
|
||||
@@ -856,7 +863,7 @@ class AssetsController extends Controller
|
||||
'next_audit_date' => 'date|nullable',
|
||||
];
|
||||
|
||||
$validator = \Validator::make($request->all(), $rules);
|
||||
$validator = Validator::make($request->all(), $rules);
|
||||
|
||||
if ($validator->fails()) {
|
||||
return response()->json(Helper::formatStandardApiResponse('error', null, $validator->errors()->all()));
|
||||
@@ -873,7 +880,7 @@ class AssetsController extends Controller
|
||||
// Check to see if they checked the box to update the physical location,
|
||||
// not just note it in the audit notes
|
||||
if ($request->input('update_location') == '1') {
|
||||
\Log::debug('update location in audit');
|
||||
Log::debug('update location in audit');
|
||||
$asset->location_id = $request->input('location_id');
|
||||
}
|
||||
|
||||
|
||||
@@ -56,10 +56,11 @@ class ComponentCheckinController extends Controller
|
||||
* @return \Illuminate\Http\RedirectResponse
|
||||
* @throws \Illuminate\Auth\Access\AuthorizationException
|
||||
*/
|
||||
public function store(Request $request, $component_asset_id)
|
||||
public function store(Request $request, $component_asset_id, $backto = null)
|
||||
{
|
||||
if ($component_assets = DB::table('components_assets')->find($component_asset_id)) {
|
||||
if (is_null($component = Component::find($component_assets->component_id))) {
|
||||
|
||||
return redirect()->route('components.index')->with('error',
|
||||
trans('admin/components/message.not_found'));
|
||||
}
|
||||
@@ -95,6 +96,10 @@ class ComponentCheckinController extends Controller
|
||||
$asset = Asset::find($component_assets->asset_id);
|
||||
|
||||
event(new CheckoutableCheckedIn($component, $asset, Auth::user(), $request->input('note'), Carbon::now()));
|
||||
if($backto == 'asset'){
|
||||
return redirect()->route('hardware.view', $asset->id)->with('success',
|
||||
trans('admin/components/message.checkin.success'));
|
||||
}
|
||||
|
||||
return redirect()->route('components.index')->with('success',
|
||||
trans('admin/components/message.checkin.success'));
|
||||
|
||||
@@ -31,7 +31,7 @@ class LabelsController extends Controller
|
||||
|
||||
$exampleAsset->id = 999999;
|
||||
$exampleAsset->name = 'JEN-867-5309';
|
||||
$exampleAsset->asset_tag = 'TCA-00001';
|
||||
$exampleAsset->asset_tag = '100001';
|
||||
$exampleAsset->serial = 'SN9876543210';
|
||||
|
||||
$exampleAsset->company = new Company();
|
||||
|
||||
@@ -76,7 +76,7 @@ class LicenseCheckinController extends Controller
|
||||
|
||||
// Declare the rules for the form validation
|
||||
$rules = [
|
||||
'note' => 'string|nullable',
|
||||
'notes' => 'string|nullable',
|
||||
];
|
||||
|
||||
// Create a new validator instance from our validation rules
|
||||
@@ -97,6 +97,7 @@ class LicenseCheckinController extends Controller
|
||||
// Update the asset data
|
||||
$licenseSeat->assigned_to = null;
|
||||
$licenseSeat->asset_id = null;
|
||||
$licenseSeat->notes = $request->input('notes');
|
||||
|
||||
// Was the asset updated?
|
||||
if ($licenseSeat->save()) {
|
||||
|
||||
@@ -63,6 +63,7 @@ class LicenseCheckoutController extends Controller
|
||||
|
||||
$licenseSeat = $this->findLicenseSeatToCheckout($license, $seatId);
|
||||
$licenseSeat->user_id = Auth::id();
|
||||
$licenseSeat->notes = $request->input('notes');
|
||||
|
||||
|
||||
$checkoutMethod = 'checkoutTo'.ucwords(request('checkout_to_type'));
|
||||
|
||||
@@ -275,6 +275,7 @@ class Importer extends Component
|
||||
'license_email' => trans('admin/licenses/form.to_email'),
|
||||
'license_name' => trans('admin/licenses/form.to_name'),
|
||||
'purchase_order' => trans('admin/licenses/form.purchase_order'),
|
||||
'order_number' => trans('general.order_number'),
|
||||
'reassignable' => trans('admin/licenses/form.reassignable'),
|
||||
'seats' => trans('admin/licenses/form.seats'),
|
||||
'notes' => trans('general.notes'),
|
||||
@@ -484,8 +485,17 @@ class Importer extends Component
|
||||
|
||||
public function selectFile($id)
|
||||
{
|
||||
$this->clearMessage();
|
||||
|
||||
$this->activeFile = Import::find($id);
|
||||
|
||||
if (!$this->activeFile) {
|
||||
$this->message = trans('admin/hardware/message.import.file_missing');
|
||||
$this->message_type = 'danger';
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
$this->field_map = null;
|
||||
foreach($this->activeFile->header_row as $element) {
|
||||
if(isset($this->activeFile->field_map[$element])) {
|
||||
@@ -520,6 +530,12 @@ class Importer extends Component
|
||||
}
|
||||
}
|
||||
|
||||
public function clearMessage()
|
||||
{
|
||||
$this->message = null;
|
||||
$this->message_type = null;
|
||||
}
|
||||
|
||||
public function render()
|
||||
{
|
||||
$this->files = Import::orderBy('id','desc')->get(); //HACK - slows down renders.
|
||||
|
||||
@@ -12,7 +12,7 @@ class SlackSettingsForm extends Component
|
||||
public $webhook_endpoint;
|
||||
public $webhook_channel;
|
||||
public $webhook_botname;
|
||||
public $isDisabled ='' ;
|
||||
public $isDisabled ='disabled' ;
|
||||
public $webhook_name;
|
||||
public $webhook_link;
|
||||
public $webhook_placeholder;
|
||||
@@ -22,11 +22,17 @@ class SlackSettingsForm extends Component
|
||||
|
||||
public Setting $setting;
|
||||
|
||||
public $webhook_endpoint_rules;
|
||||
|
||||
|
||||
protected $rules = [
|
||||
'webhook_endpoint' => 'url|required_with:webhook_channel|starts_with:https://hooks.slack.com/services|nullable',
|
||||
'webhook_endpoint' => 'required_with:webhook_channel|starts_with:http://,https://,ftp://,irc://,https://hooks.slack.com/services/|url|nullable',
|
||||
'webhook_channel' => 'required_with:webhook_endpoint|starts_with:#|nullable',
|
||||
'webhook_botname' => 'string|nullable',
|
||||
];
|
||||
public $messages = [
|
||||
'webhook_endpoint.starts_with' => 'your webhook endpoint should begin with http://, https:// or other protocol.',
|
||||
];
|
||||
|
||||
public function mount() {
|
||||
$this->webhook_text= [
|
||||
@@ -55,9 +61,7 @@ class SlackSettingsForm extends Component
|
||||
$this->webhook_botname = $this->setting->webhook_botname;
|
||||
$this->webhook_options = $this->setting->webhook_selected;
|
||||
|
||||
if($this->setting->webhook_selected == 'general'){
|
||||
$this->isDisabled='';
|
||||
}
|
||||
|
||||
if($this->setting->webhook_endpoint != null && $this->setting->webhook_channel != null){
|
||||
$this->isDisabled= '';
|
||||
}
|
||||
@@ -65,9 +69,8 @@ class SlackSettingsForm extends Component
|
||||
}
|
||||
public function updated($field) {
|
||||
|
||||
if($this->webhook_selected != 'general') {
|
||||
$this->validateOnly($field, $this->rules);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public function updatedWebhookSelected() {
|
||||
@@ -82,7 +85,6 @@ class SlackSettingsForm extends Component
|
||||
}
|
||||
|
||||
private function isButtonDisabled() {
|
||||
if($this->webhook_selected == 'slack') {
|
||||
if (empty($this->webhook_endpoint)) {
|
||||
$this->isDisabled = 'disabled';
|
||||
$this->save_button = trans('admin/settings/general.webhook_presave');
|
||||
@@ -91,8 +93,6 @@ class SlackSettingsForm extends Component
|
||||
$this->isDisabled = 'disabled';
|
||||
$this->save_button = trans('admin/settings/general.webhook_presave');
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public function render()
|
||||
@@ -108,6 +108,7 @@ class SlackSettingsForm extends Component
|
||||
'defaults' => [
|
||||
'exceptions' => false,
|
||||
],
|
||||
'allow_redirects' => false,
|
||||
]);
|
||||
|
||||
$payload = json_encode(
|
||||
@@ -116,18 +117,23 @@ class SlackSettingsForm extends Component
|
||||
'text' => trans('general.webhook_test_msg', ['app' => $this->webhook_name]),
|
||||
'username' => e($this->webhook_botname),
|
||||
'icon_emoji' => ':heart:',
|
||||
|
||||
]);
|
||||
|
||||
try {
|
||||
$test = $webhook->post($this->webhook_endpoint, ['body' => $payload]);
|
||||
|
||||
$webhook->post($this->webhook_endpoint, ['body' => $payload]);
|
||||
if(($test->getStatusCode() == 302)||($test->getStatusCode() == 301)){
|
||||
return session()->flash('error' , trans('admin/settings/message.webhook.error_redirect', ['endpoint' => $this->webhook_endpoint]));
|
||||
}
|
||||
$this->isDisabled='';
|
||||
$this->save_button = trans('general.save');
|
||||
return session()->flash('success' , 'Your '.$this->webhook_name.' Integration works!');
|
||||
return session()->flash('success' , trans('admin/settings/message.webhook.success', ['webhook_name' => $this->webhook_name]));
|
||||
|
||||
} catch (\Exception $e) {
|
||||
|
||||
$this->isDisabled= 'disabled';
|
||||
$this->isDisabled='disabled';
|
||||
$this->save_button = trans('admin/settings/general.webhook_presave');
|
||||
return session()->flash('error' , trans('admin/settings/message.webhook.error', ['error_message' => $e->getMessage(), 'app' => $this->webhook_name]));
|
||||
}
|
||||
|
||||
@@ -158,9 +164,7 @@ class SlackSettingsForm extends Component
|
||||
if (Helper::isDemoMode()) {
|
||||
session()->flash('error',trans('general.feature_disabled'));
|
||||
} else {
|
||||
if ($this->webhook_selected != 'general') {
|
||||
$this->validate($this->rules);
|
||||
}
|
||||
$this->validate($this->rules);
|
||||
|
||||
$this->setting->webhook_selected = $this->webhook_selected;
|
||||
$this->setting->webhook_endpoint = $this->webhook_endpoint;
|
||||
|
||||
@@ -43,9 +43,10 @@ class ActionlogsTransformer
|
||||
public function transformActionlog (Actionlog $actionlog, $settings = null)
|
||||
{
|
||||
$icon = $actionlog->present()->icon();
|
||||
$custom_field = CustomField::all();
|
||||
$custom_fields = CustomField::all();
|
||||
|
||||
if ($actionlog->filename!='') {
|
||||
$icon = e(\App\Helpers\Helper::filetype_icon($actionlog->filename));
|
||||
$icon = Helper::filetype_icon($actionlog->filename);
|
||||
}
|
||||
|
||||
// This is necessary since we can't escape special characters within a JSON object
|
||||
@@ -55,17 +56,29 @@ class ActionlogsTransformer
|
||||
$clean_meta = [];
|
||||
|
||||
if ($meta_array) {
|
||||
|
||||
foreach ($meta_array as $fieldname => $fieldata) {
|
||||
if( str_starts_with($fieldname, '_snipeit_')){
|
||||
if( $custom_field->where('db_column', '=', $fieldname)->where('field_encrypted', true)){
|
||||
$clean_meta[$fieldname]['old'] = "encrypted";
|
||||
$clean_meta[$fieldname]['new'] = "encrypted";
|
||||
|
||||
$clean_meta[$fieldname]['old'] = $this->clean_field($fieldata->old);
|
||||
$clean_meta[$fieldname]['new'] = $this->clean_field($fieldata->new);
|
||||
|
||||
// this is a custom field
|
||||
if (str_starts_with($fieldname, '_snipeit_')) {
|
||||
|
||||
foreach ($custom_fields as $custom_field) {
|
||||
|
||||
if ($custom_field->db_column == $fieldname) {
|
||||
|
||||
if ($custom_field->field_encrypted == '1') {
|
||||
$clean_meta[$fieldname]['old'] = "************";
|
||||
$clean_meta[$fieldname]['new'] = "************";
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
else {
|
||||
$clean_meta[$fieldname]['old'] = $this->clean_field($fieldata->old);
|
||||
$clean_meta[$fieldname]['new'] = $this->clean_field($fieldata->new);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
@@ -165,24 +178,26 @@ class ActionlogsTransformer
|
||||
|
||||
|
||||
if(array_key_exists('rtd_location_id',$clean_meta)) {
|
||||
$clean_meta['rtd_location_id']['old'] = $clean_meta['rtd_location_id']['old'] ? "[id: ".$clean_meta['rtd_location_id']['old']."] ". $location->find($clean_meta['rtd_location_id']['old'])->name : trans('general.unassigned');
|
||||
$clean_meta['rtd_location_id']['new'] = $clean_meta['rtd_location_id']['new'] ? "[id: ".$clean_meta['rtd_location_id']['new']."] ". $location->find($clean_meta['rtd_location_id']['new'])->name : trans('general.unassigned');
|
||||
$clean_meta['rtd_location_id']['old'] = $clean_meta['rtd_location_id']['old'] ? "[id: ".$clean_meta['rtd_location_id']['old']."] ". e($location->find($clean_meta['rtd_location_id']['old'])->name) : trans('general.unassigned');
|
||||
$clean_meta['rtd_location_id']['new'] = $clean_meta['rtd_location_id']['new'] ? "[id: ".$clean_meta['rtd_location_id']['new']."] ". e($location->find($clean_meta['rtd_location_id']['new'])->name) : trans('general.unassigned');
|
||||
$clean_meta['Default Location'] = $clean_meta['rtd_location_id'];
|
||||
unset($clean_meta['rtd_location_id']);
|
||||
}
|
||||
if(array_key_exists('location_id', $clean_meta)) {
|
||||
$clean_meta['location_id']['old'] = $clean_meta['location_id']['old'] ? "[id: ".$clean_meta['location_id']['old']."] ".$location->find($clean_meta['location_id']['old'])->name : trans('general.unassigned');
|
||||
$clean_meta['location_id']['new'] = $clean_meta['location_id']['new'] ? "[id: ".$clean_meta['location_id']['new']."] ".$location->find($clean_meta['location_id']['new'])->name : trans('general.unassigned');
|
||||
|
||||
if (array_key_exists('location_id', $clean_meta)) {
|
||||
$clean_meta['location_id']['old'] = $clean_meta['location_id']['old'] ? "[id: ".$clean_meta['location_id']['old']."] ".e($location->find($clean_meta['location_id']['old'])->name): trans('general.unassigned');
|
||||
$clean_meta['location_id']['new'] = $clean_meta['location_id']['new'] ? "[id: ".$clean_meta['location_id']['new']."] ".e($location->find($clean_meta['location_id']['new'])->name) : trans('general.unassigned');
|
||||
$clean_meta['Current Location'] = $clean_meta['location_id'];
|
||||
unset($clean_meta['location_id']);
|
||||
}
|
||||
|
||||
if(array_key_exists('model_id', $clean_meta)) {
|
||||
|
||||
$oldModel = $model->find($clean_meta['model_id']['old']);
|
||||
$oldModelName = $oldModel->name ?? trans('admin/models/message.deleted');
|
||||
$oldModelName = $oldModel ? e($oldModel->name) : trans('admin/models/message.deleted');
|
||||
|
||||
$newModel = $model->find($clean_meta['model_id']['new']);
|
||||
$newModelName = $newModel->name ?? trans('admin/models/message.deleted');
|
||||
$newModelName = $newModel ? e($newModel->name) : trans('admin/models/message.deleted');
|
||||
|
||||
$clean_meta['model_id']['old'] = "[id: ".$clean_meta['model_id']['old']."] ".$oldModelName;
|
||||
$clean_meta['model_id']['new'] = "[id: ".$clean_meta['model_id']['new']."] ".$newModelName; /** model is required at asset creation */
|
||||
@@ -193,10 +208,10 @@ class ActionlogsTransformer
|
||||
if(array_key_exists('company_id', $clean_meta)) {
|
||||
|
||||
$oldCompany = $company->find($clean_meta['company_id']['old']);
|
||||
$oldCompanyName = $oldCompany->name ?? trans('admin/companies/message.deleted');
|
||||
$oldCompanyName = $oldCompany ? e($oldCompany->name) : trans('admin/company/message.deleted');
|
||||
|
||||
$newCompany = $company->find($clean_meta['company_id']['new']);
|
||||
$newCompanyName = $newCompany->name ?? trans('admin/companies/message.deleted');
|
||||
$newCompanyName = $newCompany ? e($newCompany->name) : trans('admin/company/message.deleted');
|
||||
|
||||
$clean_meta['company_id']['old'] = $clean_meta['company_id']['old'] ? "[id: ".$clean_meta['company_id']['old']."] ". $oldCompanyName : trans('general.unassigned');
|
||||
$clean_meta['company_id']['new'] = $clean_meta['company_id']['new'] ? "[id: ".$clean_meta['company_id']['new']."] ". $newCompanyName : trans('general.unassigned');
|
||||
@@ -206,10 +221,10 @@ class ActionlogsTransformer
|
||||
if(array_key_exists('supplier_id', $clean_meta)) {
|
||||
|
||||
$oldSupplier = $supplier->find($clean_meta['supplier_id']['old']);
|
||||
$oldSupplierName = $oldSupplier->name ?? trans('admin/suppliers/message.deleted');
|
||||
$oldSupplierName = $oldSupplier ? e($oldSupplier->name) : trans('admin/suppliers/message.deleted');
|
||||
|
||||
$newSupplier = $supplier->find($clean_meta['supplier_id']['new']);
|
||||
$newSupplierName = $newSupplier->name ?? trans('admin/suppliers/message.deleted');
|
||||
$newSupplierName = $newSupplier ? e($newSupplier->name) : trans('admin/suppliers/message.deleted');
|
||||
|
||||
$clean_meta['supplier_id']['old'] = $clean_meta['supplier_id']['old'] ? "[id: ".$clean_meta['supplier_id']['old']."] ". $oldSupplierName : trans('general.unassigned');
|
||||
$clean_meta['supplier_id']['new'] = $clean_meta['supplier_id']['new'] ? "[id: ".$clean_meta['supplier_id']['new']."] ". $newSupplierName : trans('general.unassigned');
|
||||
|
||||
@@ -45,6 +45,7 @@ class LicenseSeatsTransformer
|
||||
'name'=> e($seat->location()->name),
|
||||
] : null,
|
||||
'reassignable' => (bool) $seat->license->reassignable,
|
||||
'notes' => e($seat->notes),
|
||||
'user_can_checkout' => (($seat->assigned_to == '') && ($seat->asset_id == '')),
|
||||
];
|
||||
|
||||
|
||||
@@ -3,7 +3,9 @@
|
||||
namespace App\Importer;
|
||||
|
||||
use App\Models\Asset;
|
||||
use App\Models\AssetModel;
|
||||
use App\Models\Statuslabel;
|
||||
use Carbon\Carbon;
|
||||
|
||||
class AssetImporter extends ItemImporter
|
||||
{
|
||||
@@ -63,6 +65,7 @@ class AssetImporter extends ItemImporter
|
||||
$asset_tag = Asset::autoincrement_asset();
|
||||
}
|
||||
|
||||
|
||||
$asset = Asset::where(['asset_tag'=> (string) $asset_tag])->first();
|
||||
if ($asset) {
|
||||
if (! $this->updating) {
|
||||
@@ -116,12 +119,7 @@ class AssetImporter extends ItemImporter
|
||||
if (isset($this->item['next_audit_date'])) {
|
||||
$item['next_audit_date'] = $this->item['next_audit_date'];
|
||||
}
|
||||
|
||||
$item['asset_eol_date'] = null;
|
||||
if (isset($this->item['asset_eol_date'])) {
|
||||
$item['asset_eol_date'] = $this->item['asset_eol_date'];
|
||||
}
|
||||
|
||||
|
||||
if ($editingAsset) {
|
||||
$asset->update($item);
|
||||
} else {
|
||||
@@ -134,9 +132,9 @@ class AssetImporter extends ItemImporter
|
||||
$asset->{$custom_field} = $val;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
if ($asset->save()) {
|
||||
|
||||
$asset->logCreate(trans('general.importer.import_note'));
|
||||
$this->log('Asset '.$this->item['name'].' with serial number '.$this->item['serial'].' was created');
|
||||
|
||||
|
||||
@@ -28,7 +28,7 @@ abstract class Importer
|
||||
/**
|
||||
* Default Map of item fields->csv names
|
||||
*
|
||||
* This has been moved into Livewire/Importer.php to be more granular.
|
||||
* This has been moved into app/Http/Livewire/Importer.php to be more granular.
|
||||
* @todo - remove references to this property since we don't use it anymore.
|
||||
*
|
||||
* @var array
|
||||
|
||||
@@ -10,6 +10,8 @@ use App\Models\Manufacturer;
|
||||
use App\Models\Statuslabel;
|
||||
use App\Models\Supplier;
|
||||
use App\Models\User;
|
||||
use Carbon\CarbonImmutable;
|
||||
use Illuminate\Support\Facades\Log;
|
||||
|
||||
class ItemImporter extends Importer
|
||||
{
|
||||
@@ -88,8 +90,14 @@ class ItemImporter extends Importer
|
||||
}
|
||||
|
||||
$this->item['asset_eol_date'] = null;
|
||||
if ($this->findCsvMatch($row, 'asset_eol_date') != '') {
|
||||
$this->item['asset_eol_date'] = date('Y-m-d', strtotime($this->findCsvMatch($row, 'asset_eol_date')));
|
||||
if($this->findCsvMatch($row, 'asset_eol_date') != '') {
|
||||
$csvMatch = $this->findCsvMatch($row, 'asset_eol_date');
|
||||
try {
|
||||
$this->item['asset_eol_date'] = CarbonImmutable::parse($csvMatch)->format('Y-m-d');
|
||||
} catch (\Exception $e) {
|
||||
Log::info($e->getMessage());
|
||||
$this->log('Unable to parse date: '.$csvMatch);
|
||||
}
|
||||
}
|
||||
|
||||
$this->item['qty'] = $this->findCsvMatch($row, 'quantity');
|
||||
|
||||
@@ -65,6 +65,7 @@ class LicenseImporter extends ItemImporter
|
||||
$this->item['license_name'] = $this->findCsvMatch($row, 'license_name');
|
||||
$this->item['maintained'] = $this->findCsvMatch($row, 'maintained');
|
||||
$this->item['purchase_order'] = $this->findCsvMatch($row, 'purchase_order');
|
||||
$this->item['order_number'] = $this->findCsvMatch($row, 'order_number');
|
||||
$this->item['reassignable'] = $this->findCsvMatch($row, 'reassignable');
|
||||
$this->item['manufacturer'] = $this->createOrFetchManufacturer($this->findCsvMatch($row, 'manufacturer'));
|
||||
|
||||
|
||||
@@ -72,6 +72,8 @@ class Asset extends Depreciable
|
||||
|
||||
protected $casts = [
|
||||
'purchase_date' => 'date',
|
||||
'asset_eol_date' => 'date',
|
||||
'eol_explicit' => 'boolean',
|
||||
'last_checkout' => 'datetime',
|
||||
'last_checkin' => 'datetime',
|
||||
'expected_checkin' => 'date',
|
||||
@@ -104,7 +106,8 @@ class Asset extends Depreciable
|
||||
'serial' => 'unique_serial|nullable',
|
||||
'purchase_cost' => 'numeric|nullable|gte:0',
|
||||
'supplier_id' => 'exists:suppliers,id|nullable',
|
||||
'asset_eol_date' => 'date|max:10|min:10|nullable',
|
||||
'asset_eol_date' => 'date|nullable',
|
||||
'eol_explicit' => 'boolean|nullable',
|
||||
'byod' => 'boolean',
|
||||
];
|
||||
|
||||
@@ -136,8 +139,10 @@ class Asset extends Depreciable
|
||||
'expected_checkin',
|
||||
'byod',
|
||||
'asset_eol_date',
|
||||
'eol_explicit',
|
||||
'last_audit_date',
|
||||
'next_audit_date',
|
||||
'asset_eol_date',
|
||||
];
|
||||
|
||||
use Searchable;
|
||||
|
||||
@@ -291,4 +291,9 @@ class AssetModel extends SnipeModel
|
||||
{
|
||||
return $query->leftJoin('categories', 'models.category_id', '=', 'categories.id')->orderBy('categories.name', $order);
|
||||
}
|
||||
|
||||
public function scopeOrderFieldset($query, $order)
|
||||
{
|
||||
return $query->leftJoin('custom_fieldsets', 'models.fieldset_id', '=', 'custom_fieldsets.id')->orderBy('custom_fieldsets.name', $order);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -21,6 +21,8 @@ class Field {
|
||||
|
||||
public static function makeArray(Field $field, Asset $asset) {
|
||||
return $field->getOptions()
|
||||
// filter out any FieldOptions that are accidentally null
|
||||
->filter()
|
||||
->map(fn($option) => $option->toArray($asset))
|
||||
->filter(fn($result) => $result['value'] != null);
|
||||
}
|
||||
@@ -36,4 +38,4 @@ class Field {
|
||||
->map(fn($optionString) => FieldOption::fromString($optionString));
|
||||
return $field;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -7,6 +7,7 @@ use Illuminate\Support\Collection;
|
||||
use Illuminate\Support\Facades\File;
|
||||
use TCPDF;
|
||||
use TCPDF_STATIC;
|
||||
use TypeError;
|
||||
|
||||
/**
|
||||
* Model for Labels.
|
||||
@@ -372,8 +373,8 @@ abstract class Label
|
||||
if (empty($value)) return;
|
||||
try {
|
||||
$pdf->write1DBarcode($value, $type, $x, $y, $width, $height, null, ['stretch'=>true]);
|
||||
} catch (\Exception $e) {
|
||||
\Log::error('The 1D barcode ' . $value . ' is not compliant with the barcode type '. $type);
|
||||
} catch (\Exception|TypeError $e) {
|
||||
\Log::debug('The 1D barcode ' . $value . ' is not compliant with the barcode type '. $type);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -6,6 +6,7 @@ use App\Models\Actionlog;
|
||||
use App\Models\Asset;
|
||||
use App\Models\Setting;
|
||||
use Auth;
|
||||
use Carbon\Carbon;
|
||||
|
||||
class AssetObserver
|
||||
{
|
||||
@@ -119,4 +120,29 @@ class AssetObserver
|
||||
$logAction->user_id = Auth::id();
|
||||
$logAction->logaction('delete');
|
||||
}
|
||||
|
||||
public function saving(Asset $asset)
|
||||
{
|
||||
//determine if calculated eol and then calculate it - this should only happen on a new asset
|
||||
if(is_null($asset->asset_eol_date) && !is_null($asset->purchase_date) && !is_null($asset->model->eol)){
|
||||
$asset->asset_eol_date = $asset->purchase_date->addMonths($asset->model->eol)->format('Y-m-d');
|
||||
$asset->eol_explicit = false;
|
||||
}
|
||||
|
||||
//determine if explicit and set eol_explit to true
|
||||
if(!is_null($asset->asset_eol_date) && !is_null($asset->purchase_date)) {
|
||||
if($asset->model->eol) {
|
||||
$months = Carbon::parse($asset->asset_eol_date)->diffInMonths($asset->purchase_date);
|
||||
if($months != $asset->model->eol) {
|
||||
$asset->eol_explicit = true;
|
||||
}
|
||||
}
|
||||
} elseif (!is_null($asset->asset_eol_date) && is_null($asset->purchase_date)) {
|
||||
$asset->eol_explicit = true;
|
||||
}
|
||||
if ((!is_null($asset->asset_eol_date)) && (!is_null($asset->purchase_date)) && (is_null($asset->model->eol))) {
|
||||
$asset->eol_explicit = true;
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@@ -3,6 +3,7 @@
|
||||
namespace App\Presenters;
|
||||
|
||||
use App\Models\CustomField;
|
||||
use Carbon\CarbonImmutable;
|
||||
use DateTime;
|
||||
|
||||
/**
|
||||
@@ -429,10 +430,7 @@ class AssetPresenter extends Presenter
|
||||
public function eol_date()
|
||||
{
|
||||
if (($this->purchase_date) && ($this->model->model) && ($this->model->model->eol)) {
|
||||
$date = date_create($this->purchase_date);
|
||||
date_add($date, date_interval_create_from_date_string($this->model->model->eol.' months'));
|
||||
|
||||
return date_format($date, 'Y-m-d');
|
||||
return CarbonImmutable::parse($this->purchase_date)->addMonths($this->model->model->eol)->format('Y-m-d');
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -254,6 +254,14 @@ class LicensePresenter extends Presenter
|
||||
'visible' => true,
|
||||
'formatter' => 'locationsLinkObjFormatter',
|
||||
],
|
||||
[
|
||||
'field' => 'notes',
|
||||
'searchable' => false,
|
||||
'sortable' => false,
|
||||
'visible' => false,
|
||||
'title' => trans('general.notes'),
|
||||
'formatter' => 'notesFormatter'
|
||||
],
|
||||
[
|
||||
'field' => 'checkincheckout',
|
||||
'searchable' => false,
|
||||
|
||||
+1
-1
@@ -239,7 +239,7 @@ return [
|
||||
|
|
||||
*/
|
||||
|
||||
'min_php' => '7.2.5',
|
||||
'min_php' => '7.4.0',
|
||||
|
||||
|
||||
/*
|
||||
|
||||
+5
-5
@@ -1,10 +1,10 @@
|
||||
<?php
|
||||
return array (
|
||||
'app_version' => 'v6.2.0',
|
||||
'full_app_version' => 'v6.2.0 - build 11566-g5a5b07f5a',
|
||||
'build_version' => '11566',
|
||||
'app_version' => 'v6.2.2',
|
||||
'full_app_version' => 'v6.2.2 - build 11714-ga95fae0e9',
|
||||
'build_version' => '11714',
|
||||
'prerelease_version' => '',
|
||||
'hash_version' => 'g5a5b07f5a',
|
||||
'full_hash' => 'v6.2.0-626-g5a5b07f5a',
|
||||
'hash_version' => 'ga95fae0e9',
|
||||
'full_hash' => 'v6.2.2-85-ga95fae0e9',
|
||||
'branch' => 'master',
|
||||
);
|
||||
@@ -8,6 +8,8 @@ use App\Models\Location;
|
||||
use App\Models\Statuslabel;
|
||||
use App\Models\Supplier;
|
||||
use App\Models\User;
|
||||
use Carbon\Carbon;
|
||||
use Carbon\CarbonImmutable;
|
||||
use Illuminate\Database\Eloquent\Factories\Factory;
|
||||
|
||||
class AssetFactory extends Factory
|
||||
@@ -48,6 +50,18 @@ class AssetFactory extends Factory
|
||||
'last_checkout' => null,
|
||||
];
|
||||
}
|
||||
|
||||
|
||||
public function configure()
|
||||
{
|
||||
return $this->afterMaking(function (Asset $asset) {
|
||||
// calculates the EOL date most of the time, but sometimes sets a random date so we have some explicits
|
||||
// the explicit boolean gets set in the saving() method on the observer
|
||||
$asset->asset_eol_date = $this->faker->boolean(5)
|
||||
? CarbonImmutable::parse($asset->purchase_date)->addMonths(rand(0, 20))->format('Y-m-d')
|
||||
: CarbonImmutable::parse($asset->purchase_date)->addMonths($asset->model->eol)->format('Y-m-d');
|
||||
});
|
||||
}
|
||||
|
||||
public function laptopMbp()
|
||||
{
|
||||
|
||||
+67
@@ -0,0 +1,67 @@
|
||||
<?php
|
||||
|
||||
use App\Models\Asset;
|
||||
use Carbon\CarbonImmutable;
|
||||
use Illuminate\Database\Migrations\Migration;
|
||||
use Illuminate\Database\Schema\Blueprint;
|
||||
use Illuminate\Support\Facades\DB;
|
||||
use Illuminate\Support\Facades\Schema;
|
||||
use Illuminate\Support\Facades\Log;
|
||||
|
||||
class DenormalizedEolAndAddColumnForExplicitDateToAssets extends Migration
|
||||
{
|
||||
/**
|
||||
* Run the migrations.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function up()
|
||||
{
|
||||
Schema::table('assets', function (Blueprint $table) {
|
||||
$table->boolean('eol_explicit')->default(false)->after('asset_eol_date');
|
||||
});
|
||||
|
||||
|
||||
// Update the eol_explicit column with the value from asset_eol_date if it exists and is different from the calculated value
|
||||
Asset::whereNotNull('asset_eol_date')->with('model')->chunkById(500, function ($assetsWithEolDates) {
|
||||
foreach ($assetsWithEolDates as $asset) {
|
||||
if ($asset->asset_eol_date && $asset->purchase_date) {
|
||||
try {
|
||||
$months = CarbonImmutable::parse($asset->asset_eol_date)->diffInMonths($asset->purchase_date);
|
||||
} catch (\Exception $e) {
|
||||
Log::info('asset_eol_date invalid for asset ' . $asset->id);
|
||||
}
|
||||
if ($asset->model->eol) {
|
||||
if ($months != $asset->model->eol) {
|
||||
$asset->update(['eol_explicit' => true]);
|
||||
}
|
||||
} else {
|
||||
$asset->update(['eol_explicit' => true]);
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
DB::table('assets')
|
||||
->whereNull('asset_eol_date')
|
||||
->whereNotNull('purchase_date')
|
||||
->whereNotNull('model_id')
|
||||
->join('models', 'assets.model_id', '=', 'models.id')
|
||||
->update([
|
||||
'asset_eol_date' => DB::raw('DATE_ADD(purchase_date, INTERVAL models.eol MONTH)')
|
||||
]);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Reverse the migrations.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function down()
|
||||
{
|
||||
Schema::table('assets', function (Blueprint $table) {
|
||||
$table->dropColumn('eol_explicit');
|
||||
});
|
||||
}
|
||||
}
|
||||
Generated
+80
-174
@@ -3546,11 +3546,6 @@
|
||||
"tslib": "^2.0.3"
|
||||
}
|
||||
},
|
||||
"camelcase": {
|
||||
"version": "6.3.0",
|
||||
"resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz",
|
||||
"integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA=="
|
||||
},
|
||||
"caniuse-api": {
|
||||
"version": "3.0.0",
|
||||
"resolved": "https://registry.npmjs.org/caniuse-api/-/caniuse-api-3.0.0.tgz",
|
||||
@@ -3724,6 +3719,16 @@
|
||||
"string-width": "^4.2.0"
|
||||
}
|
||||
},
|
||||
"clipboard": {
|
||||
"version": "2.0.11",
|
||||
"resolved": "https://registry.npmjs.org/clipboard/-/clipboard-2.0.11.tgz",
|
||||
"integrity": "sha512-C+0bbOqkezLIsmWSvlsXS0Q0bmkugu7jcfMIACB+RDEntIzQIkdr148we28AfSloQLRdZlYL/QYyrq05j/3Faw==",
|
||||
"requires": {
|
||||
"good-listener": "^1.2.2",
|
||||
"select": "^1.1.2",
|
||||
"tiny-emitter": "^2.0.0"
|
||||
}
|
||||
},
|
||||
"cliui": {
|
||||
"version": "7.0.4",
|
||||
"resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz",
|
||||
@@ -4165,24 +4170,27 @@
|
||||
}
|
||||
},
|
||||
"css-loader": {
|
||||
"version": "4.3.0",
|
||||
"resolved": "https://registry.npmjs.org/css-loader/-/css-loader-4.3.0.tgz",
|
||||
"integrity": "sha512-rdezjCjScIrsL8BSYszgT4s476IcNKt6yX69t0pHjJVnPUTDpn4WfIpDQTN3wCJvUvfsz/mFjuGOekf3PY3NUg==",
|
||||
"version": "5.2.7",
|
||||
"resolved": "https://registry.npmjs.org/css-loader/-/css-loader-5.2.7.tgz",
|
||||
"integrity": "sha512-Q7mOvpBNBG7YrVGMxRxcBJZFL75o+cH2abNASdibkj/fffYD8qWbInZrD0S9ccI6vZclF3DsHE7njGlLtaHbhg==",
|
||||
"requires": {
|
||||
"camelcase": "^6.0.0",
|
||||
"cssesc": "^3.0.0",
|
||||
"icss-utils": "^4.1.1",
|
||||
"icss-utils": "^5.1.0",
|
||||
"loader-utils": "^2.0.0",
|
||||
"postcss": "^7.0.32",
|
||||
"postcss-modules-extract-imports": "^2.0.0",
|
||||
"postcss-modules-local-by-default": "^3.0.3",
|
||||
"postcss-modules-scope": "^2.2.0",
|
||||
"postcss-modules-values": "^3.0.0",
|
||||
"postcss": "^8.2.15",
|
||||
"postcss-modules-extract-imports": "^3.0.0",
|
||||
"postcss-modules-local-by-default": "^4.0.0",
|
||||
"postcss-modules-scope": "^3.0.0",
|
||||
"postcss-modules-values": "^4.0.0",
|
||||
"postcss-value-parser": "^4.1.0",
|
||||
"schema-utils": "^2.7.1",
|
||||
"semver": "^7.3.2"
|
||||
"schema-utils": "^3.0.0",
|
||||
"semver": "^7.3.5"
|
||||
},
|
||||
"dependencies": {
|
||||
"@types/json-schema": {
|
||||
"version": "7.0.13",
|
||||
"resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.13.tgz",
|
||||
"integrity": "sha512-RbSSoHliUbnXj3ny0CNFOoxrIDV6SUGyStHsvDqosw6CkdPV8TtWGlfecuK4ToyMEAql6pzNxgCFKanovUzlgQ=="
|
||||
},
|
||||
"loader-utils": {
|
||||
"version": "2.0.4",
|
||||
"resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.4.tgz",
|
||||
@@ -4193,32 +4201,23 @@
|
||||
"json5": "^2.1.2"
|
||||
}
|
||||
},
|
||||
"picocolors": {
|
||||
"version": "0.2.1",
|
||||
"resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz",
|
||||
"integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA=="
|
||||
},
|
||||
"postcss": {
|
||||
"version": "7.0.39",
|
||||
"resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz",
|
||||
"integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==",
|
||||
"schema-utils": {
|
||||
"version": "3.3.0",
|
||||
"resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.3.0.tgz",
|
||||
"integrity": "sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==",
|
||||
"requires": {
|
||||
"picocolors": "^0.2.1",
|
||||
"source-map": "^0.6.1"
|
||||
"@types/json-schema": "^7.0.8",
|
||||
"ajv": "^6.12.5",
|
||||
"ajv-keywords": "^3.5.2"
|
||||
}
|
||||
},
|
||||
"semver": {
|
||||
"version": "7.3.8",
|
||||
"resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz",
|
||||
"integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==",
|
||||
"version": "7.5.4",
|
||||
"resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz",
|
||||
"integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==",
|
||||
"requires": {
|
||||
"lru-cache": "^6.0.0"
|
||||
}
|
||||
},
|
||||
"source-map": {
|
||||
"version": "0.6.1",
|
||||
"resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
|
||||
"integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g=="
|
||||
}
|
||||
}
|
||||
},
|
||||
@@ -4529,6 +4528,11 @@
|
||||
"integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==",
|
||||
"dev": true
|
||||
},
|
||||
"delegate": {
|
||||
"version": "3.2.0",
|
||||
"resolved": "https://registry.npmjs.org/delegate/-/delegate-3.2.0.tgz",
|
||||
"integrity": "sha512-IofjkYBZaZivn0V8nnsMJGBr4jVLxHDheKSW88PyxS5QC4Vo9ZbZVvhzlSxY87fVq3STR6r+4cGepyHkcWOQSw=="
|
||||
},
|
||||
"depd": {
|
||||
"version": "2.0.0",
|
||||
"resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz",
|
||||
@@ -14879,6 +14883,14 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"good-listener": {
|
||||
"version": "1.2.2",
|
||||
"resolved": "https://registry.npmjs.org/good-listener/-/good-listener-1.2.2.tgz",
|
||||
"integrity": "sha512-goW1b+d9q/HIwbVYZzZ6SsTr4IgE+WA44A0GmPIQstuOrgsFcT7VEJ48nmr9GaRtNu0XTKacFLGnBPAM6Afouw==",
|
||||
"requires": {
|
||||
"delegate": "^3.1.2"
|
||||
}
|
||||
},
|
||||
"gopd": {
|
||||
"version": "1.0.1",
|
||||
"resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz",
|
||||
@@ -15304,33 +15316,9 @@
|
||||
}
|
||||
},
|
||||
"icss-utils": {
|
||||
"version": "4.1.1",
|
||||
"resolved": "https://registry.npmjs.org/icss-utils/-/icss-utils-4.1.1.tgz",
|
||||
"integrity": "sha512-4aFq7wvWyMHKgxsH8QQtGpvbASCf+eM3wPRLI6R+MgAnTCZ6STYsRvttLvRWK0Nfif5piF394St3HeJDaljGPA==",
|
||||
"requires": {
|
||||
"postcss": "^7.0.14"
|
||||
},
|
||||
"dependencies": {
|
||||
"picocolors": {
|
||||
"version": "0.2.1",
|
||||
"resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz",
|
||||
"integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA=="
|
||||
},
|
||||
"postcss": {
|
||||
"version": "7.0.39",
|
||||
"resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz",
|
||||
"integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==",
|
||||
"requires": {
|
||||
"picocolors": "^0.2.1",
|
||||
"source-map": "^0.6.1"
|
||||
}
|
||||
},
|
||||
"source-map": {
|
||||
"version": "0.6.1",
|
||||
"resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
|
||||
"integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g=="
|
||||
}
|
||||
}
|
||||
"version": "5.1.0",
|
||||
"resolved": "https://registry.npmjs.org/icss-utils/-/icss-utils-5.1.0.tgz",
|
||||
"integrity": "sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA=="
|
||||
},
|
||||
"ieee754": {
|
||||
"version": "1.2.1",
|
||||
@@ -16816,8 +16804,7 @@
|
||||
"nanoid": {
|
||||
"version": "3.3.4",
|
||||
"resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.4.tgz",
|
||||
"integrity": "sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==",
|
||||
"dev": true
|
||||
"integrity": "sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw=="
|
||||
},
|
||||
"needle": {
|
||||
"version": "2.9.1",
|
||||
@@ -17444,7 +17431,6 @@
|
||||
"version": "8.4.5",
|
||||
"resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.5.tgz",
|
||||
"integrity": "sha512-jBDboWM8qpaqwkMwItqTQTiFikhs/67OYVvblFFTM7MrZjt6yMKd6r2kgXizEbTTljacm4NldIlZnhbjr84QYg==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"nanoid": "^3.1.30",
|
||||
"picocolors": "^1.0.0",
|
||||
@@ -17722,124 +17708,34 @@
|
||||
}
|
||||
},
|
||||
"postcss-modules-extract-imports": {
|
||||
"version": "2.0.0",
|
||||
"resolved": "https://registry.npmjs.org/postcss-modules-extract-imports/-/postcss-modules-extract-imports-2.0.0.tgz",
|
||||
"integrity": "sha512-LaYLDNS4SG8Q5WAWqIJgdHPJrDDr/Lv775rMBFUbgjTz6j34lUznACHcdRWroPvXANP2Vj7yNK57vp9eFqzLWQ==",
|
||||
"requires": {
|
||||
"postcss": "^7.0.5"
|
||||
},
|
||||
"dependencies": {
|
||||
"picocolors": {
|
||||
"version": "0.2.1",
|
||||
"resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz",
|
||||
"integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA=="
|
||||
},
|
||||
"postcss": {
|
||||
"version": "7.0.39",
|
||||
"resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz",
|
||||
"integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==",
|
||||
"requires": {
|
||||
"picocolors": "^0.2.1",
|
||||
"source-map": "^0.6.1"
|
||||
}
|
||||
},
|
||||
"source-map": {
|
||||
"version": "0.6.1",
|
||||
"resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
|
||||
"integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g=="
|
||||
}
|
||||
}
|
||||
"version": "3.0.0",
|
||||
"resolved": "https://registry.npmjs.org/postcss-modules-extract-imports/-/postcss-modules-extract-imports-3.0.0.tgz",
|
||||
"integrity": "sha512-bdHleFnP3kZ4NYDhuGlVK+CMrQ/pqUm8bx/oGL93K6gVwiclvX5x0n76fYMKuIGKzlABOy13zsvqjb0f92TEXw=="
|
||||
},
|
||||
"postcss-modules-local-by-default": {
|
||||
"version": "3.0.3",
|
||||
"resolved": "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-3.0.3.tgz",
|
||||
"integrity": "sha512-e3xDq+LotiGesympRlKNgaJ0PCzoUIdpH0dj47iWAui/kyTgh3CiAr1qP54uodmJhl6p9rN6BoNcdEDVJx9RDw==",
|
||||
"version": "4.0.3",
|
||||
"resolved": "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-4.0.3.tgz",
|
||||
"integrity": "sha512-2/u2zraspoACtrbFRnTijMiQtb4GW4BvatjaG/bCjYQo8kLTdevCUlwuBHx2sCnSyrI3x3qj4ZK1j5LQBgzmwA==",
|
||||
"requires": {
|
||||
"icss-utils": "^4.1.1",
|
||||
"postcss": "^7.0.32",
|
||||
"icss-utils": "^5.0.0",
|
||||
"postcss-selector-parser": "^6.0.2",
|
||||
"postcss-value-parser": "^4.1.0"
|
||||
},
|
||||
"dependencies": {
|
||||
"picocolors": {
|
||||
"version": "0.2.1",
|
||||
"resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz",
|
||||
"integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA=="
|
||||
},
|
||||
"postcss": {
|
||||
"version": "7.0.39",
|
||||
"resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz",
|
||||
"integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==",
|
||||
"requires": {
|
||||
"picocolors": "^0.2.1",
|
||||
"source-map": "^0.6.1"
|
||||
}
|
||||
},
|
||||
"source-map": {
|
||||
"version": "0.6.1",
|
||||
"resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
|
||||
"integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g=="
|
||||
}
|
||||
}
|
||||
},
|
||||
"postcss-modules-scope": {
|
||||
"version": "2.2.0",
|
||||
"resolved": "https://registry.npmjs.org/postcss-modules-scope/-/postcss-modules-scope-2.2.0.tgz",
|
||||
"integrity": "sha512-YyEgsTMRpNd+HmyC7H/mh3y+MeFWevy7V1evVhJWewmMbjDHIbZbOXICC2y+m1xI1UVfIT1HMW/O04Hxyu9oXQ==",
|
||||
"version": "3.0.0",
|
||||
"resolved": "https://registry.npmjs.org/postcss-modules-scope/-/postcss-modules-scope-3.0.0.tgz",
|
||||
"integrity": "sha512-hncihwFA2yPath8oZ15PZqvWGkWf+XUfQgUGamS4LqoP1anQLOsOJw0vr7J7IwLpoY9fatA2qiGUGmuZL0Iqlg==",
|
||||
"requires": {
|
||||
"postcss": "^7.0.6",
|
||||
"postcss-selector-parser": "^6.0.0"
|
||||
},
|
||||
"dependencies": {
|
||||
"picocolors": {
|
||||
"version": "0.2.1",
|
||||
"resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz",
|
||||
"integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA=="
|
||||
},
|
||||
"postcss": {
|
||||
"version": "7.0.39",
|
||||
"resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz",
|
||||
"integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==",
|
||||
"requires": {
|
||||
"picocolors": "^0.2.1",
|
||||
"source-map": "^0.6.1"
|
||||
}
|
||||
},
|
||||
"source-map": {
|
||||
"version": "0.6.1",
|
||||
"resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
|
||||
"integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g=="
|
||||
}
|
||||
"postcss-selector-parser": "^6.0.4"
|
||||
}
|
||||
},
|
||||
"postcss-modules-values": {
|
||||
"version": "3.0.0",
|
||||
"resolved": "https://registry.npmjs.org/postcss-modules-values/-/postcss-modules-values-3.0.0.tgz",
|
||||
"integrity": "sha512-1//E5jCBrZ9DmRX+zCtmQtRSV6PV42Ix7Bzj9GbwJceduuf7IqP8MgeTXuRDHOWj2m0VzZD5+roFWDuU8RQjcg==",
|
||||
"version": "4.0.0",
|
||||
"resolved": "https://registry.npmjs.org/postcss-modules-values/-/postcss-modules-values-4.0.0.tgz",
|
||||
"integrity": "sha512-RDxHkAiEGI78gS2ofyvCsu7iycRv7oqw5xMWn9iMoR0N/7mf9D50ecQqUo5BZ9Zh2vH4bCUR/ktCqbB9m8vJjQ==",
|
||||
"requires": {
|
||||
"icss-utils": "^4.0.0",
|
||||
"postcss": "^7.0.6"
|
||||
},
|
||||
"dependencies": {
|
||||
"picocolors": {
|
||||
"version": "0.2.1",
|
||||
"resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz",
|
||||
"integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA=="
|
||||
},
|
||||
"postcss": {
|
||||
"version": "7.0.39",
|
||||
"resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz",
|
||||
"integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==",
|
||||
"requires": {
|
||||
"picocolors": "^0.2.1",
|
||||
"source-map": "^0.6.1"
|
||||
}
|
||||
},
|
||||
"source-map": {
|
||||
"version": "0.6.1",
|
||||
"resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
|
||||
"integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g=="
|
||||
}
|
||||
"icss-utils": "^5.0.0"
|
||||
}
|
||||
},
|
||||
"postcss-normalize-charset": {
|
||||
@@ -18569,12 +18465,18 @@
|
||||
"version": "2.7.1",
|
||||
"resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.7.1.tgz",
|
||||
"integrity": "sha512-SHiNtMOUGWBQJwzISiVYKu82GiV4QYGePp3odlY1tuKO7gPtphAT5R/py0fA6xtbgLL/RvtJZnU9b8s0F1q0Xg==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"@types/json-schema": "^7.0.5",
|
||||
"ajv": "^6.12.4",
|
||||
"ajv-keywords": "^3.5.2"
|
||||
}
|
||||
},
|
||||
"select": {
|
||||
"version": "1.1.2",
|
||||
"resolved": "https://registry.npmjs.org/select/-/select-1.1.2.tgz",
|
||||
"integrity": "sha512-OwpTSOfy6xSs1+pwcNrv0RBMOzI39Lp3qQKUTPVVPRjCdNa5JH/oPRiqsesIskK8TVgmRiHwO4KXlV2Li9dANA=="
|
||||
},
|
||||
"select-hose": {
|
||||
"version": "2.0.0",
|
||||
"resolved": "https://registry.npmjs.org/select-hose/-/select-hose-2.0.0.tgz",
|
||||
@@ -18835,8 +18737,7 @@
|
||||
"source-map-js": {
|
||||
"version": "1.0.1",
|
||||
"resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.1.tgz",
|
||||
"integrity": "sha512-4+TN2b3tqOCd/kaGRJ/sTYA0tR0mdXx26ipdolxcwtJVqEnqNYvlCAt1q3ypy4QMlYus+Zh34RNtYLoq2oQ4IA==",
|
||||
"dev": true
|
||||
"integrity": "sha512-4+TN2b3tqOCd/kaGRJ/sTYA0tR0mdXx26ipdolxcwtJVqEnqNYvlCAt1q3ypy4QMlYus+Zh34RNtYLoq2oQ4IA=="
|
||||
},
|
||||
"source-map-support": {
|
||||
"version": "0.5.21",
|
||||
@@ -19401,6 +19302,11 @@
|
||||
"process": "~0.11.0"
|
||||
}
|
||||
},
|
||||
"tiny-emitter": {
|
||||
"version": "2.1.0",
|
||||
"resolved": "https://registry.npmjs.org/tiny-emitter/-/tiny-emitter-2.1.0.tgz",
|
||||
"integrity": "sha512-NB6Dk1A9xgQPMoGqC5CVXn123gWyte215ONT5Pp5a0yt4nlEoO1ZWeCwpncaekPHXO60i47ihFnZPiRPjRMq4Q=="
|
||||
},
|
||||
"tiny-inflate": {
|
||||
"version": "1.0.3",
|
||||
"resolved": "https://registry.npmjs.org/tiny-inflate/-/tiny-inflate-1.0.3.tgz",
|
||||
|
||||
+2
-1
@@ -37,7 +37,8 @@
|
||||
"bootstrap-less": "^3.3.8",
|
||||
"bootstrap-table": "1.22.1",
|
||||
"chart.js": "^2.9.4",
|
||||
"css-loader": "^4.0.0",
|
||||
"clipboard": "^2.0.11",
|
||||
"css-loader": "^5.0.0",
|
||||
"ekko-lightbox": "^5.1.1",
|
||||
"imagemin": "^8.0.1",
|
||||
"jquery-form-validator": "^2.3.79",
|
||||
|
||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
Vendored
+1
-1
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
Vendored
+1
-1
File diff suppressed because one or more lines are too long
@@ -1,8 +1,8 @@
|
||||
{
|
||||
"/js/build/app.js": "/js/build/app.js?id=702e6e07e76e6bafe529de43157509a7",
|
||||
"/js/build/app.js": "/js/build/app.js?id=72071a8a4dc754c61b0440d3c4119cbf",
|
||||
"/css/dist/skins/skin-blue.css": "/css/dist/skins/skin-blue.css?id=392cc93cfc0be0349bab9697669dd091",
|
||||
"/css/build/overrides.css": "/css/build/overrides.css?id=d96bcc45dc2a4414dd9840a14b096d4f",
|
||||
"/css/build/app.css": "/css/build/app.css?id=b0aa590a3a4de33d19147264fd31b743",
|
||||
"/css/build/overrides.css": "/css/build/overrides.css?id=1b392b587d6d9c6c3208cee77dd50c24",
|
||||
"/css/build/app.css": "/css/build/app.css?id=def81f26a041542b7831129c1935678b",
|
||||
"/css/build/AdminLTE.css": "/css/build/AdminLTE.css?id=f25c77ed07053646a42e9c19923d24fa",
|
||||
"/css/dist/skins/skin-orange.css": "/css/dist/skins/skin-orange.css?id=268041e902b019730c23ee3875838005",
|
||||
"/css/dist/skins/skin-orange-dark.css": "/css/dist/skins/skin-orange-dark.css?id=d409d9b1a3b69247df8b98941ba06e33",
|
||||
@@ -18,7 +18,7 @@
|
||||
"/css/dist/skins/skin-green.css": "/css/dist/skins/skin-green.css?id=b48f4d8af0e1ca5621c161e93951109f",
|
||||
"/css/dist/skins/skin-contrast.css": "/css/dist/skins/skin-contrast.css?id=f0fbbb0ac729ea092578fb05ca615460",
|
||||
"/css/dist/skins/skin-red.css": "/css/dist/skins/skin-red.css?id=b9a74ec0cd68f83e7480d5ae39919beb",
|
||||
"/css/dist/all.css": "/css/dist/all.css?id=585e3d8144b38119f62c59c1ed8e0714",
|
||||
"/css/dist/all.css": "/css/dist/all.css?id=ae9bfb0457654b249e68a445ebad6409",
|
||||
"/css/dist/signature-pad.css": "/css/dist/signature-pad.css?id=6a89d3cd901305e66ced1cf5f13147f7",
|
||||
"/css/dist/signature-pad.min.css": "/css/dist/signature-pad.min.css?id=6a89d3cd901305e66ced1cf5f13147f7",
|
||||
"/css/webfonts/fa-brands-400.ttf": "/css/webfonts/fa-brands-400.ttf?id=a656b2d865fe379d8851757e8e4001ef",
|
||||
@@ -29,10 +29,10 @@
|
||||
"/css/webfonts/fa-solid-900.woff2": "/css/webfonts/fa-solid-900.woff2?id=7f63d634454e771396bce3e09dfcdbc5",
|
||||
"/css/webfonts/fa-v4compatibility.ttf": "/css/webfonts/fa-v4compatibility.ttf?id=70ad875b2378eb850254f01dec991ade",
|
||||
"/css/webfonts/fa-v4compatibility.woff2": "/css/webfonts/fa-v4compatibility.woff2?id=d36941873b661076f146b0221f13497d",
|
||||
"/css/dist/bootstrap-table.css": "/css/dist/bootstrap-table.css?id=4801d104e8303a8fa134a927ebf55536",
|
||||
"/js/build/vendor.js": "/js/build/vendor.js?id=3592e07ae9a6d1805a4ea3bd3c034aef",
|
||||
"/css/dist/bootstrap-table.css": "/css/dist/bootstrap-table.css?id=2bd29fa7f9d666800c246a52ce708633",
|
||||
"/js/build/vendor.js": "/js/build/vendor.js?id=917784d6fe54bcfe39656e0ded1b43e4",
|
||||
"/js/dist/bootstrap-table.js": "/js/dist/bootstrap-table.js?id=1f678160a05960c3087fb8263168ff41",
|
||||
"/js/dist/all.js": "/js/dist/all.js?id=37dceeb0fe493b5c8af846264a1a34b2",
|
||||
"/js/dist/all.js": "/js/dist/all.js?id=8b6d5790410cef7c138c7807516eb0b0",
|
||||
"/js/dist/all-defer.js": "/js/dist/all-defer.js?id=07e52318da2cdf3171c4d88113f25fb6",
|
||||
"/css/dist/skins/skin-green.min.css": "/css/dist/skins/skin-green.min.css?id=b48f4d8af0e1ca5621c161e93951109f",
|
||||
"/css/dist/skins/skin-green-dark.min.css": "/css/dist/skins/skin-green-dark.min.css?id=44f9320d0739f419c9246f7f39395b02",
|
||||
|
||||
@@ -39,12 +39,18 @@ $(function () {
|
||||
model = link.data("dependency");
|
||||
select = link.data("select");
|
||||
refreshSelector = link.data("refresh");
|
||||
|
||||
|
||||
|
||||
$('#createModal').load(link.attr('href'),function () {
|
||||
|
||||
// this sets the focus to be the name field
|
||||
$('#modal-name').focus();
|
||||
|
||||
//do we need to re-select2 this, after load? Probably.
|
||||
$('#createModal').find('select.select2').select2();
|
||||
// Initialize the ajaxy select2 with images.
|
||||
// This is a copy/paste of the code from snipeit.js, would be great to only have this in one place.
|
||||
|
||||
$('.js-data-ajax').each( function (i,item) {
|
||||
var link = $(item);
|
||||
var endpoint = link.data("endpoint");
|
||||
|
||||
@@ -680,15 +680,15 @@ th.css-accessory > .th-inner::before
|
||||
margin-top:160px;
|
||||
}
|
||||
}
|
||||
@media screen and (max-width: 771px) and (min-width: 512px){
|
||||
@media screen and (max-width: 912px) and (min-width: 512px){
|
||||
.sidebar-menu {
|
||||
margin-top:160px
|
||||
margin-top:100px
|
||||
}
|
||||
}
|
||||
|
||||
@media screen and (max-width: 1098px) and (min-width: 772px){
|
||||
@media screen and (max-width: 1268px) and (min-width: 912px){
|
||||
.sidebar-menu {
|
||||
margin-top:98px
|
||||
margin-top:50px
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -50,6 +50,7 @@ return [
|
||||
'success' => 'Jou lêer is ingevoer',
|
||||
'file_delete_success' => 'Jou lêer is suksesvol verwyder',
|
||||
'file_delete_error' => 'Die lêer kon nie uitgevee word nie',
|
||||
'file_missing' => 'The file selected is missing',
|
||||
'header_row_has_malformed_characters' => 'One or more attributes in the header row contain malformed UTF-8 characters',
|
||||
'content_row_has_malformed_characters' => 'One or more attributes in the first row of content contain malformed UTF-8 characters',
|
||||
],
|
||||
|
||||
@@ -356,4 +356,10 @@ return [
|
||||
'google_login' => 'Google Workspace Login Settings',
|
||||
'enable_google_login' => 'Enable users to login with Google Workspace',
|
||||
'enable_google_login_help' => 'Users will not be automatically provisioned. They must have an existing account here AND in Google Workspace, and their username here must match their Google Workspace email address. ',
|
||||
'mail_reply_to' => 'Mail Reply-To Address',
|
||||
'mail_from' => 'Mail From Address',
|
||||
'database_driver' => 'Database Driver',
|
||||
'bs_table_storage' => 'Table Storage',
|
||||
'timezone' => 'Timezone',
|
||||
|
||||
];
|
||||
|
||||
@@ -35,10 +35,12 @@ return [
|
||||
],
|
||||
'webhook' => [
|
||||
'sending' => 'Sending :app test message...',
|
||||
'success' => 'Your :webhook_name Integration works!',
|
||||
'success_pt1' => 'Success! Check the ',
|
||||
'success_pt2' => ' channel for your test message, and be sure to click SAVE below to store your settings.',
|
||||
'500' => '500 Server Error.',
|
||||
'error' => 'Something went wrong. :app responded with: :error_message',
|
||||
'error_redirect' => 'ERROR: 301/302 :endpoint returns a redirect. For security reasons, we don’t follow redirects. Please use the actual endpoint.',
|
||||
'error_misc' => 'Something went wrong. :( ',
|
||||
]
|
||||
];
|
||||
|
||||
@@ -459,7 +459,7 @@ return [
|
||||
'serial_number' => 'Serial Number',
|
||||
'item_notes' => ':item Notes',
|
||||
'item_name_var' => ':item Name',
|
||||
'error_user_company' => 'User and Asset companies missmatch',
|
||||
'error_user_company' => 'Checkout target company and asset company do not match',
|
||||
'error_user_company_accept_view' => 'An Asset assigned to you belongs to a different company so you can\'t accept nor deny it, please check with your manager',
|
||||
'importer' => [
|
||||
'checked_out_to_fullname' => 'Checked Out to: Full Name',
|
||||
@@ -485,6 +485,8 @@ return [
|
||||
],
|
||||
'percent_complete' => '% complete',
|
||||
'uploading' => 'Uploading... ',
|
||||
'upload_error' => 'Error uploading file. Please check that there are no empty trailing rows.'
|
||||
'upload_error' => 'Error uploading file. Please check that there are no empty trailing rows.',
|
||||
'copy_to_clipboard' => 'Copy to Clipboard',
|
||||
'copied' => 'Copied!',
|
||||
|
||||
];
|
||||
|
||||
@@ -30,6 +30,7 @@ return [
|
||||
'ga-IE'=> 'Irish',
|
||||
'it'=> 'Italian',
|
||||
'ja'=> 'Japanese',
|
||||
'km' => 'Khmer',
|
||||
'ko'=> 'Korean',
|
||||
'lv'=>'Latvian',
|
||||
'lt'=> 'Lithuanian',
|
||||
|
||||
@@ -51,6 +51,7 @@ return [
|
||||
'success' => 'Your file has been imported',
|
||||
'file_delete_success' => 'Your file has been been successfully deleted',
|
||||
'file_delete_error' => 'The file was unable to be deleted',
|
||||
'file_missing' => 'The file selected is missing',
|
||||
'header_row_has_malformed_characters' => 'One or more attributes in the header row contain malformed UTF-8 characters',
|
||||
'content_row_has_malformed_characters' => 'One or more attributes in the first row of content contain malformed UTF-8 characters',
|
||||
],
|
||||
|
||||
@@ -356,4 +356,10 @@ return [
|
||||
'google_login' => 'Google Workspace Login Settings',
|
||||
'enable_google_login' => 'Enable users to login with Google Workspace',
|
||||
'enable_google_login_help' => 'Users will not be automatically provisioned. They must have an existing account here AND in Google Workspace, and their username here must match their Google Workspace email address. ',
|
||||
'mail_reply_to' => 'Mail Reply-To Address',
|
||||
'mail_from' => 'Mail From Address',
|
||||
'database_driver' => 'Database Driver',
|
||||
'bs_table_storage' => 'Table Storage',
|
||||
'timezone' => 'Timezone',
|
||||
|
||||
];
|
||||
|
||||
@@ -35,10 +35,12 @@ return [
|
||||
],
|
||||
'webhook' => [
|
||||
'sending' => 'Sending :app test message...',
|
||||
'success' => 'Your :webhook_name Integration works!',
|
||||
'success_pt1' => 'Success! Check the ',
|
||||
'success_pt2' => ' channel for your test message, and be sure to click SAVE below to store your settings.',
|
||||
'500' => '500 Server Error.',
|
||||
'error' => 'Something went wrong. :app responded with: :error_message',
|
||||
'error_redirect' => 'ERROR: 301/302 :endpoint returns a redirect. For security reasons, we don’t follow redirects. Please use the actual endpoint.',
|
||||
'error_misc' => 'Something went wrong. :( ',
|
||||
]
|
||||
];
|
||||
|
||||
@@ -459,7 +459,7 @@ return [
|
||||
'serial_number' => 'Serial Number',
|
||||
'item_notes' => ':item Notes',
|
||||
'item_name_var' => ':item Name',
|
||||
'error_user_company' => 'User and Asset companies missmatch',
|
||||
'error_user_company' => 'Checkout target company and asset company do not match',
|
||||
'error_user_company_accept_view' => 'An Asset assigned to you belongs to a different company so you can\'t accept nor deny it, please check with your manager',
|
||||
'importer' => [
|
||||
'checked_out_to_fullname' => 'Checked Out to: Full Name',
|
||||
@@ -485,6 +485,8 @@ return [
|
||||
],
|
||||
'percent_complete' => '% complete',
|
||||
'uploading' => 'Uploading... ',
|
||||
'upload_error' => 'Error uploading file. Please check that there are no empty trailing rows.'
|
||||
'upload_error' => 'Error uploading file. Please check that there are no empty trailing rows.',
|
||||
'copy_to_clipboard' => 'Copy to Clipboard',
|
||||
'copied' => 'Copied!',
|
||||
|
||||
];
|
||||
|
||||
@@ -30,6 +30,7 @@ return [
|
||||
'ga-IE'=> 'Irish',
|
||||
'it'=> 'Italian',
|
||||
'ja'=> 'Japanese',
|
||||
'km' => 'Khmer',
|
||||
'ko'=> 'Korean',
|
||||
'lv'=>'Latvian',
|
||||
'lt'=> 'Lithuanian',
|
||||
|
||||
@@ -50,6 +50,7 @@ return [
|
||||
'success' => 'تم استيراد الملف الخاص بك',
|
||||
'file_delete_success' => 'تم حذف ملفك بنجاح',
|
||||
'file_delete_error' => 'تعذر حذف الملف',
|
||||
'file_missing' => 'The file selected is missing',
|
||||
'header_row_has_malformed_characters' => 'One or more attributes in the header row contain malformed UTF-8 characters',
|
||||
'content_row_has_malformed_characters' => 'One or more attributes in the first row of content contain malformed UTF-8 characters',
|
||||
],
|
||||
|
||||
@@ -356,4 +356,10 @@ return [
|
||||
'google_login' => 'Google Workspace Login Settings',
|
||||
'enable_google_login' => 'Enable users to login with Google Workspace',
|
||||
'enable_google_login_help' => 'Users will not be automatically provisioned. They must have an existing account here AND in Google Workspace, and their username here must match their Google Workspace email address. ',
|
||||
'mail_reply_to' => 'Mail Reply-To Address',
|
||||
'mail_from' => 'Mail From Address',
|
||||
'database_driver' => 'Database Driver',
|
||||
'bs_table_storage' => 'Table Storage',
|
||||
'timezone' => 'Timezone',
|
||||
|
||||
];
|
||||
|
||||
@@ -35,10 +35,12 @@ return [
|
||||
],
|
||||
'webhook' => [
|
||||
'sending' => 'Sending :app test message...',
|
||||
'success' => 'Your :webhook_name Integration works!',
|
||||
'success_pt1' => 'Success! Check the ',
|
||||
'success_pt2' => ' channel for your test message, and be sure to click SAVE below to store your settings.',
|
||||
'500' => '500 Server Error.',
|
||||
'error' => 'Something went wrong. :app responded with: :error_message',
|
||||
'error_redirect' => 'ERROR: 301/302 :endpoint returns a redirect. For security reasons, we don’t follow redirects. Please use the actual endpoint.',
|
||||
'error_misc' => 'Something went wrong. :( ',
|
||||
]
|
||||
];
|
||||
|
||||
@@ -459,7 +459,7 @@ return [
|
||||
'serial_number' => 'Serial Number',
|
||||
'item_notes' => ':item Notes',
|
||||
'item_name_var' => ':item Name',
|
||||
'error_user_company' => 'User and Asset companies missmatch',
|
||||
'error_user_company' => 'Checkout target company and asset company do not match',
|
||||
'error_user_company_accept_view' => 'An Asset assigned to you belongs to a different company so you can\'t accept nor deny it, please check with your manager',
|
||||
'importer' => [
|
||||
'checked_out_to_fullname' => 'Checked Out to: Full Name',
|
||||
@@ -485,6 +485,8 @@ return [
|
||||
],
|
||||
'percent_complete' => '% complete',
|
||||
'uploading' => 'Uploading... ',
|
||||
'upload_error' => 'Error uploading file. Please check that there are no empty trailing rows.'
|
||||
'upload_error' => 'Error uploading file. Please check that there are no empty trailing rows.',
|
||||
'copy_to_clipboard' => 'Copy to Clipboard',
|
||||
'copied' => 'Copied!',
|
||||
|
||||
];
|
||||
|
||||
@@ -30,6 +30,7 @@ return [
|
||||
'ga-IE'=> 'Irish',
|
||||
'it'=> 'Italian',
|
||||
'ja'=> 'Japanese',
|
||||
'km' => 'Khmer',
|
||||
'ko'=> 'Korean',
|
||||
'lv'=>'Latvian',
|
||||
'lt'=> 'Lithuanian',
|
||||
|
||||
@@ -50,6 +50,7 @@ return [
|
||||
'success' => 'Вашият файл беше въведен.',
|
||||
'file_delete_success' => 'Вашият файл беше изтрит успешно.',
|
||||
'file_delete_error' => 'Файлът не е в състояние да бъде изтрит',
|
||||
'file_missing' => 'The file selected is missing',
|
||||
'header_row_has_malformed_characters' => 'Един или повече атрибути на заглавния ред съдържат неправилни UTF-8 символи',
|
||||
'content_row_has_malformed_characters' => 'Един или повече атрибути на заглавния ред съдържат неправилни UTF-8 символи',
|
||||
],
|
||||
|
||||
@@ -356,4 +356,10 @@ return [
|
||||
'google_login' => 'Google Workspace Login Settings',
|
||||
'enable_google_login' => 'Enable users to login with Google Workspace',
|
||||
'enable_google_login_help' => 'Users will not be automatically provisioned. They must have an existing account here AND in Google Workspace, and their username here must match their Google Workspace email address. ',
|
||||
'mail_reply_to' => 'Mail Reply-To Address',
|
||||
'mail_from' => 'Mail From Address',
|
||||
'database_driver' => 'Database Driver',
|
||||
'bs_table_storage' => 'Table Storage',
|
||||
'timezone' => 'Timezone',
|
||||
|
||||
];
|
||||
|
||||
@@ -35,10 +35,12 @@ return [
|
||||
],
|
||||
'webhook' => [
|
||||
'sending' => 'Изпращане :app тест съобщение...',
|
||||
'success' => 'Your :webhook_name Integration works!',
|
||||
'success_pt1' => 'Успешно! Проверете ',
|
||||
'success_pt2' => ' канал за вашето тестово съобщение и натиснете бутона SAVE за да запазите вашите настройки.',
|
||||
'500' => 'Грешка 500.',
|
||||
'error' => 'Възникна грешка. :app върна грешка: :error_message',
|
||||
'error_redirect' => 'ERROR: 301/302 :endpoint returns a redirect. For security reasons, we don’t follow redirects. Please use the actual endpoint.',
|
||||
'error_misc' => 'Възникна грешка. :( ',
|
||||
]
|
||||
];
|
||||
|
||||
@@ -459,7 +459,7 @@ return [
|
||||
'serial_number' => 'Сериен номер',
|
||||
'item_notes' => ':item бележки',
|
||||
'item_name_var' => ':item Име',
|
||||
'error_user_company' => 'Несъответсвие между фирмата на потребителя и актива',
|
||||
'error_user_company' => 'Checkout target company and asset company do not match',
|
||||
'error_user_company_accept_view' => 'Актива заведен на вас пренадлежи към друга фирма, затова не можете да го приемете или откажете. Свържете се с вашият администратор',
|
||||
'importer' => [
|
||||
'checked_out_to_fullname' => 'Изписан на: Full Name',
|
||||
@@ -485,6 +485,8 @@ return [
|
||||
],
|
||||
'percent_complete' => '% завърешен',
|
||||
'uploading' => 'Качване... ',
|
||||
'upload_error' => 'Грешка при качване. Проверете да няма празни редове в края.'
|
||||
'upload_error' => 'Грешка при качване. Проверете да няма празни редове в края.',
|
||||
'copy_to_clipboard' => 'Copy to Clipboard',
|
||||
'copied' => 'Copied!',
|
||||
|
||||
];
|
||||
|
||||
@@ -30,6 +30,7 @@ return [
|
||||
'ga-IE'=> 'Irish',
|
||||
'it'=> 'Italian',
|
||||
'ja'=> 'Japanese',
|
||||
'km' => 'Khmer',
|
||||
'ko'=> 'Korean',
|
||||
'lv'=>'Latvian',
|
||||
'lt'=> 'Lithuanian',
|
||||
|
||||
@@ -51,6 +51,7 @@ return [
|
||||
'success' => 'Your file has been imported',
|
||||
'file_delete_success' => 'Your file has been been successfully deleted',
|
||||
'file_delete_error' => 'The file was unable to be deleted',
|
||||
'file_missing' => 'The file selected is missing',
|
||||
'header_row_has_malformed_characters' => 'One or more attributes in the header row contain malformed UTF-8 characters',
|
||||
'content_row_has_malformed_characters' => 'One or more attributes in the first row of content contain malformed UTF-8 characters',
|
||||
],
|
||||
|
||||
@@ -356,4 +356,10 @@ return [
|
||||
'google_login' => 'Google Workspace Login Settings',
|
||||
'enable_google_login' => 'Enable users to login with Google Workspace',
|
||||
'enable_google_login_help' => 'Users will not be automatically provisioned. They must have an existing account here AND in Google Workspace, and their username here must match their Google Workspace email address. ',
|
||||
'mail_reply_to' => 'Mail Reply-To Address',
|
||||
'mail_from' => 'Mail From Address',
|
||||
'database_driver' => 'Database Driver',
|
||||
'bs_table_storage' => 'Table Storage',
|
||||
'timezone' => 'Timezone',
|
||||
|
||||
];
|
||||
|
||||
@@ -35,10 +35,12 @@ return [
|
||||
],
|
||||
'webhook' => [
|
||||
'sending' => 'Sending :app test message...',
|
||||
'success' => 'Your :webhook_name Integration works!',
|
||||
'success_pt1' => 'Success! Check the ',
|
||||
'success_pt2' => ' channel for your test message, and be sure to click SAVE below to store your settings.',
|
||||
'500' => '500 Server Error.',
|
||||
'error' => 'Something went wrong. :app responded with: :error_message',
|
||||
'error_redirect' => 'ERROR: 301/302 :endpoint returns a redirect. For security reasons, we don’t follow redirects. Please use the actual endpoint.',
|
||||
'error_misc' => 'Something went wrong. :( ',
|
||||
]
|
||||
];
|
||||
|
||||
@@ -459,7 +459,7 @@ return [
|
||||
'serial_number' => 'Serial Number',
|
||||
'item_notes' => ':item Notes',
|
||||
'item_name_var' => ':item Name',
|
||||
'error_user_company' => 'User and Asset companies missmatch',
|
||||
'error_user_company' => 'Checkout target company and asset company do not match',
|
||||
'error_user_company_accept_view' => 'An Asset assigned to you belongs to a different company so you can\'t accept nor deny it, please check with your manager',
|
||||
'importer' => [
|
||||
'checked_out_to_fullname' => 'Checked Out to: Full Name',
|
||||
@@ -485,6 +485,8 @@ return [
|
||||
],
|
||||
'percent_complete' => '% complete',
|
||||
'uploading' => 'Uploading... ',
|
||||
'upload_error' => 'Error uploading file. Please check that there are no empty trailing rows.'
|
||||
'upload_error' => 'Error uploading file. Please check that there are no empty trailing rows.',
|
||||
'copy_to_clipboard' => 'Copy to Clipboard',
|
||||
'copied' => 'Copied!',
|
||||
|
||||
];
|
||||
|
||||
@@ -30,6 +30,7 @@ return [
|
||||
'ga-IE'=> 'Irish',
|
||||
'it'=> 'Italian',
|
||||
'ja'=> 'Japanese',
|
||||
'km' => 'Khmer',
|
||||
'ko'=> 'Korean',
|
||||
'lv'=>'Latvian',
|
||||
'lt'=> 'Lithuanian',
|
||||
|
||||
@@ -51,6 +51,7 @@ return [
|
||||
'success' => 'Váš soubor byl importován',
|
||||
'file_delete_success' => 'Váš soubor byl úspěšně odstraněn',
|
||||
'file_delete_error' => 'Soubor nelze odstranit',
|
||||
'file_missing' => 'The file selected is missing',
|
||||
'header_row_has_malformed_characters' => 'Jeden nebo více sloupců obsahuje v záhlaví poškozené UTF-8 znaky',
|
||||
'content_row_has_malformed_characters' => 'Jedna nebo více hodnot v prvním řádku obsahu obsahuje poškozené UTF-8 znaky',
|
||||
],
|
||||
|
||||
@@ -356,4 +356,10 @@ return [
|
||||
'google_login' => 'Google Workspace Login Settings',
|
||||
'enable_google_login' => 'Enable users to login with Google Workspace',
|
||||
'enable_google_login_help' => 'Users will not be automatically provisioned. They must have an existing account here AND in Google Workspace, and their username here must match their Google Workspace email address. ',
|
||||
'mail_reply_to' => 'Mail Reply-To Address',
|
||||
'mail_from' => 'Mail From Address',
|
||||
'database_driver' => 'Database Driver',
|
||||
'bs_table_storage' => 'Table Storage',
|
||||
'timezone' => 'Timezone',
|
||||
|
||||
];
|
||||
|
||||
@@ -35,10 +35,12 @@ return [
|
||||
],
|
||||
'webhook' => [
|
||||
'sending' => 'Sending :app test message...',
|
||||
'success' => 'Your :webhook_name Integration works!',
|
||||
'success_pt1' => 'Success! Check the ',
|
||||
'success_pt2' => ' channel for your test message, and be sure to click SAVE below to store your settings.',
|
||||
'500' => '500 Server Error.',
|
||||
'error' => 'Something went wrong. :app responded with: :error_message',
|
||||
'error_redirect' => 'ERROR: 301/302 :endpoint returns a redirect. For security reasons, we don’t follow redirects. Please use the actual endpoint.',
|
||||
'error_misc' => 'Something went wrong. :( ',
|
||||
]
|
||||
];
|
||||
|
||||
@@ -459,7 +459,7 @@ return [
|
||||
'serial_number' => 'Serial Number',
|
||||
'item_notes' => ':item Notes',
|
||||
'item_name_var' => ':item Name',
|
||||
'error_user_company' => 'User and Asset companies missmatch',
|
||||
'error_user_company' => 'Checkout target company and asset company do not match',
|
||||
'error_user_company_accept_view' => 'An Asset assigned to you belongs to a different company so you can\'t accept nor deny it, please check with your manager',
|
||||
'importer' => [
|
||||
'checked_out_to_fullname' => 'Checked Out to: Full Name',
|
||||
@@ -485,6 +485,8 @@ return [
|
||||
],
|
||||
'percent_complete' => '% complete',
|
||||
'uploading' => 'Uploading... ',
|
||||
'upload_error' => 'Error uploading file. Please check that there are no empty trailing rows.'
|
||||
'upload_error' => 'Error uploading file. Please check that there are no empty trailing rows.',
|
||||
'copy_to_clipboard' => 'Copy to Clipboard',
|
||||
'copied' => 'Copied!',
|
||||
|
||||
];
|
||||
|
||||
@@ -30,6 +30,7 @@ return [
|
||||
'ga-IE'=> 'Irština',
|
||||
'it'=> 'Italština',
|
||||
'ja'=> 'Japonština',
|
||||
'km' => 'Khmer',
|
||||
'ko'=> 'Korejština',
|
||||
'lv'=>'Lotyšština',
|
||||
'lt'=> 'Litevština',
|
||||
|
||||
@@ -51,6 +51,7 @@ return [
|
||||
'success' => 'Mae\'ch ffeil wedi\'i mewnforio',
|
||||
'file_delete_success' => 'Mae eich ffeil wedi\'i dileu yn llwyddiannus',
|
||||
'file_delete_error' => 'Nid oedd yn bosib dileu\'r ffeil',
|
||||
'file_missing' => 'The file selected is missing',
|
||||
'header_row_has_malformed_characters' => 'One or more attributes in the header row contain malformed UTF-8 characters',
|
||||
'content_row_has_malformed_characters' => 'One or more attributes in the first row of content contain malformed UTF-8 characters',
|
||||
],
|
||||
|
||||
@@ -356,4 +356,10 @@ return [
|
||||
'google_login' => 'Google Workspace Login Settings',
|
||||
'enable_google_login' => 'Enable users to login with Google Workspace',
|
||||
'enable_google_login_help' => 'Users will not be automatically provisioned. They must have an existing account here AND in Google Workspace, and their username here must match their Google Workspace email address. ',
|
||||
'mail_reply_to' => 'Mail Reply-To Address',
|
||||
'mail_from' => 'Mail From Address',
|
||||
'database_driver' => 'Database Driver',
|
||||
'bs_table_storage' => 'Table Storage',
|
||||
'timezone' => 'Timezone',
|
||||
|
||||
];
|
||||
|
||||
@@ -35,10 +35,12 @@ return [
|
||||
],
|
||||
'webhook' => [
|
||||
'sending' => 'Sending :app test message...',
|
||||
'success' => 'Your :webhook_name Integration works!',
|
||||
'success_pt1' => 'Success! Check the ',
|
||||
'success_pt2' => ' channel for your test message, and be sure to click SAVE below to store your settings.',
|
||||
'500' => '500 Server Error.',
|
||||
'error' => 'Something went wrong. :app responded with: :error_message',
|
||||
'error_redirect' => 'ERROR: 301/302 :endpoint returns a redirect. For security reasons, we don’t follow redirects. Please use the actual endpoint.',
|
||||
'error_misc' => 'Something went wrong. :( ',
|
||||
]
|
||||
];
|
||||
|
||||
@@ -459,7 +459,7 @@ return [
|
||||
'serial_number' => 'Serial Number',
|
||||
'item_notes' => ':item Notes',
|
||||
'item_name_var' => ':item Name',
|
||||
'error_user_company' => 'User and Asset companies missmatch',
|
||||
'error_user_company' => 'Checkout target company and asset company do not match',
|
||||
'error_user_company_accept_view' => 'An Asset assigned to you belongs to a different company so you can\'t accept nor deny it, please check with your manager',
|
||||
'importer' => [
|
||||
'checked_out_to_fullname' => 'Checked Out to: Full Name',
|
||||
@@ -485,6 +485,8 @@ return [
|
||||
],
|
||||
'percent_complete' => '% complete',
|
||||
'uploading' => 'Uploading... ',
|
||||
'upload_error' => 'Error uploading file. Please check that there are no empty trailing rows.'
|
||||
'upload_error' => 'Error uploading file. Please check that there are no empty trailing rows.',
|
||||
'copy_to_clipboard' => 'Copy to Clipboard',
|
||||
'copied' => 'Copied!',
|
||||
|
||||
];
|
||||
|
||||
@@ -30,6 +30,7 @@ return [
|
||||
'ga-IE'=> 'Irish',
|
||||
'it'=> 'Italian',
|
||||
'ja'=> 'Japanese',
|
||||
'km' => 'Khmer',
|
||||
'ko'=> 'Korean',
|
||||
'lv'=>'Latvian',
|
||||
'lt'=> 'Lithuanian',
|
||||
|
||||
@@ -50,6 +50,7 @@ return [
|
||||
'success' => 'Din fil er blevet importeret',
|
||||
'file_delete_success' => 'Din fil er blevet slettet korrekt',
|
||||
'file_delete_error' => 'Filen kunne ikke slettes',
|
||||
'file_missing' => 'The file selected is missing',
|
||||
'header_row_has_malformed_characters' => 'One or more attributes in the header row contain malformed UTF-8 characters',
|
||||
'content_row_has_malformed_characters' => 'One or more attributes in the first row of content contain malformed UTF-8 characters',
|
||||
],
|
||||
|
||||
@@ -356,4 +356,10 @@ return [
|
||||
'google_login' => 'Google Workspace Login Settings',
|
||||
'enable_google_login' => 'Enable users to login with Google Workspace',
|
||||
'enable_google_login_help' => 'Users will not be automatically provisioned. They must have an existing account here AND in Google Workspace, and their username here must match their Google Workspace email address. ',
|
||||
'mail_reply_to' => 'Mail Reply-To Address',
|
||||
'mail_from' => 'Mail From Address',
|
||||
'database_driver' => 'Database Driver',
|
||||
'bs_table_storage' => 'Table Storage',
|
||||
'timezone' => 'Timezone',
|
||||
|
||||
];
|
||||
|
||||
@@ -35,10 +35,12 @@ return [
|
||||
],
|
||||
'webhook' => [
|
||||
'sending' => 'Sending :app test message...',
|
||||
'success' => 'Your :webhook_name Integration works!',
|
||||
'success_pt1' => 'Success! Check the ',
|
||||
'success_pt2' => ' channel for your test message, and be sure to click SAVE below to store your settings.',
|
||||
'500' => '500 Server Error.',
|
||||
'error' => 'Something went wrong. :app responded with: :error_message',
|
||||
'error_redirect' => 'ERROR: 301/302 :endpoint returns a redirect. For security reasons, we don’t follow redirects. Please use the actual endpoint.',
|
||||
'error_misc' => 'Something went wrong. :( ',
|
||||
]
|
||||
];
|
||||
|
||||
@@ -459,7 +459,7 @@ return [
|
||||
'serial_number' => 'Serial Number',
|
||||
'item_notes' => ':item Notes',
|
||||
'item_name_var' => ':item Name',
|
||||
'error_user_company' => 'User and Asset companies missmatch',
|
||||
'error_user_company' => 'Checkout target company and asset company do not match',
|
||||
'error_user_company_accept_view' => 'An Asset assigned to you belongs to a different company so you can\'t accept nor deny it, please check with your manager',
|
||||
'importer' => [
|
||||
'checked_out_to_fullname' => 'Checked Out to: Full Name',
|
||||
@@ -485,6 +485,8 @@ return [
|
||||
],
|
||||
'percent_complete' => '% complete',
|
||||
'uploading' => 'Uploading... ',
|
||||
'upload_error' => 'Error uploading file. Please check that there are no empty trailing rows.'
|
||||
'upload_error' => 'Error uploading file. Please check that there are no empty trailing rows.',
|
||||
'copy_to_clipboard' => 'Copy to Clipboard',
|
||||
'copied' => 'Copied!',
|
||||
|
||||
];
|
||||
|
||||
@@ -30,6 +30,7 @@ return [
|
||||
'ga-IE'=> 'Irsk',
|
||||
'it'=> 'Italiensk',
|
||||
'ja'=> 'Japansk',
|
||||
'km' => 'Khmer',
|
||||
'ko'=> 'Koreansk',
|
||||
'lv'=>'Lettisk',
|
||||
'lt'=> 'Litauisk',
|
||||
|
||||
@@ -51,6 +51,7 @@ return [
|
||||
'success' => 'Deine Datei wurde importiert',
|
||||
'file_delete_success' => 'Deine Datei wurde erfolgreich gelöscht',
|
||||
'file_delete_error' => 'Die Datei konnte nicht gelöscht werden',
|
||||
'file_missing' => 'The file selected is missing',
|
||||
'header_row_has_malformed_characters' => 'Ein oder mehrere Attribute in der Kopfzeile enthalten fehlerhafte UTF-8 Zeichen',
|
||||
'content_row_has_malformed_characters' => 'Ein oder mehrere Attribute in der ersten Zeile des Inhalts enthalten fehlerhafte UTF-8-Zeichen',
|
||||
],
|
||||
|
||||
@@ -356,4 +356,10 @@ return [
|
||||
'google_login' => 'Google Workspace Anmeldeeinstellungen',
|
||||
'enable_google_login' => 'Anmelden mit Google Workspace für Benutzer aktivieren',
|
||||
'enable_google_login_help' => 'Benutzer werden nicht automatisch bereitgestellt. Du musst ein bestehendes Konto hier UND in Google Workspace haben, und dein Benutzername muss mit der E-Mail-Adresse von Google Workspace übereinstimmen. ',
|
||||
'mail_reply_to' => 'Mail Reply-To Address',
|
||||
'mail_from' => 'Mail From Address',
|
||||
'database_driver' => 'Database Driver',
|
||||
'bs_table_storage' => 'Table Storage',
|
||||
'timezone' => 'Timezone',
|
||||
|
||||
];
|
||||
|
||||
@@ -35,10 +35,12 @@ return [
|
||||
],
|
||||
'webhook' => [
|
||||
'sending' => ':app Testnachricht wird gesendet ...',
|
||||
'success' => 'Your :webhook_name Integration works!',
|
||||
'success_pt1' => 'Erfolgreich! Überprüfe den ',
|
||||
'success_pt2' => ' Kanal für deine Testnachricht und klicke unten auf SPEICHERN, um die Einstellungen zu sichern.',
|
||||
'500' => '500 Server Fehler.',
|
||||
'error' => 'Etwas ist schiefgelaufen. :app antwortete mit: :error_message',
|
||||
'error_redirect' => 'ERROR: 301/302 :endpoint returns a redirect. For security reasons, we don’t follow redirects. Please use the actual endpoint.',
|
||||
'error_misc' => 'Etwas ist schiefgelaufen! :( ',
|
||||
]
|
||||
];
|
||||
|
||||
@@ -459,7 +459,7 @@ return [
|
||||
'serial_number' => 'Seriennummer',
|
||||
'item_notes' => ':item Notizen',
|
||||
'item_name_var' => ':item Name',
|
||||
'error_user_company' => 'Benutzer und Asset Unternehmen stimmen nicht überein',
|
||||
'error_user_company' => 'Checkout target company and asset company do not match',
|
||||
'error_user_company_accept_view' => 'Ein Asset, welches dir zugewiesen wurde, gehört einem anderen Unternehmen, sodass du es nicht akzeptieren oder ablehnen kannst. Bitte prüfe das mit deinem Vorgesetzten',
|
||||
'importer' => [
|
||||
'checked_out_to_fullname' => 'Herausgegeben an: Voller Name',
|
||||
@@ -485,6 +485,8 @@ return [
|
||||
],
|
||||
'percent_complete' => '% vollständig',
|
||||
'uploading' => 'Hochladen... ',
|
||||
'upload_error' => 'Fehler beim Hochladen der Datei. Bitte überprüfe, dass es keine leeren Leerzeilen gibt.'
|
||||
'upload_error' => 'Fehler beim Hochladen der Datei. Bitte überprüfe, dass es keine leeren Leerzeilen gibt.',
|
||||
'copy_to_clipboard' => 'In Zwischenablage kopieren',
|
||||
'copied' => 'Kopiert!',
|
||||
|
||||
];
|
||||
|
||||
@@ -30,6 +30,7 @@ return [
|
||||
'ga-IE'=> 'Irisch',
|
||||
'it'=> 'Italienisch',
|
||||
'ja'=> 'Japanisch',
|
||||
'km' => 'Khmer',
|
||||
'ko'=> 'Koreanisch',
|
||||
'lv'=>'Lettisch',
|
||||
'lt'=> 'Litauisch',
|
||||
|
||||
@@ -51,6 +51,7 @@ return [
|
||||
'success' => 'Ihre Datei wurde importiert',
|
||||
'file_delete_success' => 'Die Datei wurde erfolgreich gelöscht',
|
||||
'file_delete_error' => 'Die Datei konnte nicht gelöscht werden',
|
||||
'file_missing' => 'The file selected is missing',
|
||||
'header_row_has_malformed_characters' => 'Ein oder mehrere Attribute in der Kopfzeile enthalten fehlerhafte UTF-8 Zeichen',
|
||||
'content_row_has_malformed_characters' => 'Ein oder mehrere Attribute in der ersten Zeile des Inhalts enthalten fehlerhafte UTF-8-Zeichen',
|
||||
],
|
||||
|
||||
@@ -356,4 +356,10 @@ return [
|
||||
'google_login' => 'Google Workspace Anmeldeeinstellungen',
|
||||
'enable_google_login' => 'Anmelden mit Google Workspace für Benutzer aktivieren',
|
||||
'enable_google_login_help' => 'Benutzer werden nicht automatisch bereitgestellt. Sie müssen ein bestehendes Konto hier UND in Google Workspace haben, und Ihr Benutzername muss mit der E-Mail-Adresse von Google Workspace übereinstimmen. ',
|
||||
'mail_reply_to' => 'Mail Reply-To Address',
|
||||
'mail_from' => 'Mail From Address',
|
||||
'database_driver' => 'Database Driver',
|
||||
'bs_table_storage' => 'Table Storage',
|
||||
'timezone' => 'Timezone',
|
||||
|
||||
];
|
||||
|
||||
@@ -35,10 +35,12 @@ return [
|
||||
],
|
||||
'webhook' => [
|
||||
'sending' => ':app Testnachricht wird gesendet...',
|
||||
'success' => 'Your :webhook_name Integration works!',
|
||||
'success_pt1' => 'Erfolgreich! Überprüfen Sie den ',
|
||||
'success_pt2' => ' Kanal für Ihre Testnachricht und klicken Sie auf Speichern, um Ihre Einstellungen zu speichern.',
|
||||
'500' => '500 Server Error.',
|
||||
'error' => 'Etwas ist schief gelaufen. :app antwortete mit: :error_message',
|
||||
'error_redirect' => 'ERROR: 301/302 :endpoint returns a redirect. For security reasons, we don’t follow redirects. Please use the actual endpoint.',
|
||||
'error_misc' => 'Etwas ist schiefgelaufen. :( ',
|
||||
]
|
||||
];
|
||||
|
||||
@@ -459,7 +459,7 @@ return [
|
||||
'serial_number' => 'Seriennummer',
|
||||
'item_notes' => ':item Notizen',
|
||||
'item_name_var' => ':item Name',
|
||||
'error_user_company' => 'User and Asset companies missmatch',
|
||||
'error_user_company' => 'Checkout target company and asset company do not match',
|
||||
'error_user_company_accept_view' => 'An Asset assigned to you belongs to a different company so you can\'t accept nor deny it, please check with your manager',
|
||||
'importer' => [
|
||||
'checked_out_to_fullname' => 'Herausgegeben an: Voller Name',
|
||||
@@ -485,6 +485,8 @@ return [
|
||||
],
|
||||
'percent_complete' => '% vollständig',
|
||||
'uploading' => 'Uploading... ',
|
||||
'upload_error' => 'Error uploading file. Please check that there are no empty trailing rows.'
|
||||
'upload_error' => 'Error uploading file. Please check that there are no empty trailing rows.',
|
||||
'copy_to_clipboard' => 'Copy to Clipboard',
|
||||
'copied' => 'Copied!',
|
||||
|
||||
];
|
||||
|
||||
@@ -30,6 +30,7 @@ return [
|
||||
'ga-IE'=> 'Irisch',
|
||||
'it'=> 'Italienisch',
|
||||
'ja'=> 'Japanisch',
|
||||
'km' => 'Khmer',
|
||||
'ko'=> 'Koreanisch',
|
||||
'lv'=>'Lettisch',
|
||||
'lt'=> 'Litauisch',
|
||||
|
||||
@@ -51,6 +51,7 @@ return [
|
||||
'success' => 'Το αρχείο σας έχει εισαχθεί',
|
||||
'file_delete_success' => 'Το αρχείο σας έχει διαγραφεί με επιτυχία',
|
||||
'file_delete_error' => 'Το αρχείο δεν μπόρεσε να διαγραφεί',
|
||||
'file_missing' => 'The file selected is missing',
|
||||
'header_row_has_malformed_characters' => 'One or more attributes in the header row contain malformed UTF-8 characters',
|
||||
'content_row_has_malformed_characters' => 'One or more attributes in the first row of content contain malformed UTF-8 characters',
|
||||
],
|
||||
|
||||
@@ -356,4 +356,10 @@ return [
|
||||
'google_login' => 'Google Workspace Login Settings',
|
||||
'enable_google_login' => 'Enable users to login with Google Workspace',
|
||||
'enable_google_login_help' => 'Users will not be automatically provisioned. They must have an existing account here AND in Google Workspace, and their username here must match their Google Workspace email address. ',
|
||||
'mail_reply_to' => 'Mail Reply-To Address',
|
||||
'mail_from' => 'Mail From Address',
|
||||
'database_driver' => 'Database Driver',
|
||||
'bs_table_storage' => 'Table Storage',
|
||||
'timezone' => 'Timezone',
|
||||
|
||||
];
|
||||
|
||||
@@ -35,10 +35,12 @@ return [
|
||||
],
|
||||
'webhook' => [
|
||||
'sending' => 'Sending :app test message...',
|
||||
'success' => 'Your :webhook_name Integration works!',
|
||||
'success_pt1' => 'Success! Check the ',
|
||||
'success_pt2' => ' channel for your test message, and be sure to click SAVE below to store your settings.',
|
||||
'500' => '500 Server Error.',
|
||||
'error' => 'Something went wrong. :app responded with: :error_message',
|
||||
'error_redirect' => 'ERROR: 301/302 :endpoint returns a redirect. For security reasons, we don’t follow redirects. Please use the actual endpoint.',
|
||||
'error_misc' => 'Something went wrong. :( ',
|
||||
]
|
||||
];
|
||||
|
||||
@@ -459,7 +459,7 @@ return [
|
||||
'serial_number' => 'Serial Number',
|
||||
'item_notes' => ':item Notes',
|
||||
'item_name_var' => ':item Name',
|
||||
'error_user_company' => 'User and Asset companies missmatch',
|
||||
'error_user_company' => 'Checkout target company and asset company do not match',
|
||||
'error_user_company_accept_view' => 'An Asset assigned to you belongs to a different company so you can\'t accept nor deny it, please check with your manager',
|
||||
'importer' => [
|
||||
'checked_out_to_fullname' => 'Checked Out to: Full Name',
|
||||
@@ -485,6 +485,8 @@ return [
|
||||
],
|
||||
'percent_complete' => '% complete',
|
||||
'uploading' => 'Uploading... ',
|
||||
'upload_error' => 'Error uploading file. Please check that there are no empty trailing rows.'
|
||||
'upload_error' => 'Error uploading file. Please check that there are no empty trailing rows.',
|
||||
'copy_to_clipboard' => 'Copy to Clipboard',
|
||||
'copied' => 'Copied!',
|
||||
|
||||
];
|
||||
|
||||
@@ -30,6 +30,7 @@ return [
|
||||
'ga-IE'=> 'Irish',
|
||||
'it'=> 'Italian',
|
||||
'ja'=> 'Japanese',
|
||||
'km' => 'Khmer',
|
||||
'ko'=> 'Korean',
|
||||
'lv'=>'Latvian',
|
||||
'lt'=> 'Lithuanian',
|
||||
|
||||
@@ -51,6 +51,7 @@ return [
|
||||
'success' => 'Your file has been imported',
|
||||
'file_delete_success' => 'Your file has been been successfully deleted',
|
||||
'file_delete_error' => 'The file was unable to be deleted',
|
||||
'file_missing' => 'The file selected is missing',
|
||||
'header_row_has_malformed_characters' => 'One or more attributes in the header row contain malformed UTF-8 characters',
|
||||
'content_row_has_malformed_characters' => 'One or more attributes in the first row of content contain malformed UTF-8 characters',
|
||||
],
|
||||
|
||||
@@ -356,4 +356,10 @@ return [
|
||||
'google_login' => 'Google Workspace Login Settings',
|
||||
'enable_google_login' => 'Enable users to login with Google Workspace',
|
||||
'enable_google_login_help' => 'Users will not be automatically provisioned. They must have an existing account here AND in Google Workspace, and their username here must match their Google Workspace email address. ',
|
||||
'mail_reply_to' => 'Mail Reply-To Address',
|
||||
'mail_from' => 'Mail From Address',
|
||||
'database_driver' => 'Database Driver',
|
||||
'bs_table_storage' => 'Table Storage',
|
||||
'timezone' => 'Timezone',
|
||||
|
||||
];
|
||||
|
||||
@@ -35,10 +35,12 @@ return [
|
||||
],
|
||||
'webhook' => [
|
||||
'sending' => 'Sending :app test message...',
|
||||
'success' => 'Your :webhook_name Integration works!',
|
||||
'success_pt1' => 'Success! Check the ',
|
||||
'success_pt2' => ' channel for your test message, and be sure to click SAVE below to store your settings.',
|
||||
'500' => '500 Server Error.',
|
||||
'error' => 'Something went wrong. :app responded with: :error_message',
|
||||
'error_redirect' => 'ERROR: 301/302 :endpoint returns a redirect. For security reasons, we don’t follow redirects. Please use the actual endpoint.',
|
||||
'error_misc' => 'Something went wrong. :( ',
|
||||
]
|
||||
];
|
||||
|
||||
@@ -459,7 +459,7 @@ return [
|
||||
'serial_number' => 'Serial Number',
|
||||
'item_notes' => ':item Notes',
|
||||
'item_name_var' => ':item Name',
|
||||
'error_user_company' => 'User and Asset companies missmatch',
|
||||
'error_user_company' => 'Checkout target company and asset company do not match',
|
||||
'error_user_company_accept_view' => 'An Asset assigned to you belongs to a different company so you can\'t accept nor deny it, please check with your manager',
|
||||
'importer' => [
|
||||
'checked_out_to_fullname' => 'Checked Out to: Full Name',
|
||||
@@ -485,6 +485,8 @@ return [
|
||||
],
|
||||
'percent_complete' => '% complete',
|
||||
'uploading' => 'Uploading... ',
|
||||
'upload_error' => 'Error uploading file. Please check that there are no empty trailing rows.'
|
||||
'upload_error' => 'Error uploading file. Please check that there are no empty trailing rows.',
|
||||
'copy_to_clipboard' => 'Copy to Clipboard',
|
||||
'copied' => 'Copied!',
|
||||
|
||||
];
|
||||
|
||||
@@ -30,6 +30,7 @@ return [
|
||||
'ga-IE'=> 'Irish',
|
||||
'it'=> 'Italian',
|
||||
'ja'=> 'Japanese',
|
||||
'km' => 'Khmer',
|
||||
'ko'=> 'Korean',
|
||||
'lv'=>'Latvian',
|
||||
'lt'=> 'Lithuanian',
|
||||
|
||||
@@ -50,6 +50,7 @@ return [
|
||||
'success' => 'File Anda telah diimpor',
|
||||
'file_delete_success' => 'File anda telah berhasil dihapus',
|
||||
'file_delete_error' => 'File tidak dapat dihapus',
|
||||
'file_missing' => 'The file selected is missing',
|
||||
'header_row_has_malformed_characters' => 'One or more attributes in the header row contain malformed UTF-8 characters',
|
||||
'content_row_has_malformed_characters' => 'One or more attributes in the first row of content contain malformed UTF-8 characters',
|
||||
],
|
||||
|
||||
@@ -356,4 +356,10 @@ return [
|
||||
'google_login' => 'Google Workspace Login Settings',
|
||||
'enable_google_login' => 'Enable users to login with Google Workspace',
|
||||
'enable_google_login_help' => 'Users will not be automatically provisioned. They must have an existing account here AND in Google Workspace, and their username here must match their Google Workspace email address. ',
|
||||
'mail_reply_to' => 'Mail Reply-To Address',
|
||||
'mail_from' => 'Mail From Address',
|
||||
'database_driver' => 'Database Driver',
|
||||
'bs_table_storage' => 'Table Storage',
|
||||
'timezone' => 'Timezone',
|
||||
|
||||
];
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user