M3 Integration fixes
This commit is contained in:
@@ -10,7 +10,7 @@ window.jQuery = $;
|
|||||||
select2(window, $);
|
select2(window, $);
|
||||||
|
|
||||||
function livewireComponentFor(element) {
|
function livewireComponentFor(element) {
|
||||||
const componentRoot = element.closest('[wire\\:id]');
|
const componentRoot = element.closest(String.raw`[wire\:id]`);
|
||||||
|
|
||||||
if (!componentRoot || ! window.Livewire) {
|
if (!componentRoot || ! window.Livewire) {
|
||||||
return null;
|
return null;
|
||||||
@@ -30,8 +30,7 @@ function setLivewireProperty(element, model, value) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
function initialiseHelpdeskSelects() {
|
function initialiseHelpdeskSelects() {
|
||||||
$('[data-helpdesk-select2]').each(function () {
|
$('[data-helpdesk-select2]').each((_index, select) => {
|
||||||
const select = this;
|
|
||||||
const $select = $(select);
|
const $select = $(select);
|
||||||
const placeholder = $select.data('placeholder') || $select.find('option[value=""]').first().text() || 'Select option';
|
const placeholder = $select.data('placeholder') || $select.find('option[value=""]').first().text() || 'Select option';
|
||||||
|
|
||||||
|
|||||||
@@ -169,7 +169,7 @@ final class GitWebhookIngestionTest extends TestCase
|
|||||||
$repository = $this->repository([
|
$repository = $this->repository([
|
||||||
'provider' => 'gitea',
|
'provider' => 'gitea',
|
||||||
'project_id' => $fixtures['project']->id,
|
'project_id' => $fixtures['project']->id,
|
||||||
'remote_url' => 'http://git.vm:3000/Admin/WMS-Core.git',
|
'remote_url' => 'https://git.vm:3000/Admin/WMS-Core.git',
|
||||||
'webhook_secret' => 'gitea-secret',
|
'webhook_secret' => 'gitea-secret',
|
||||||
]);
|
]);
|
||||||
$ticket = $this->ticket(['project_id' => $fixtures['project']->id]);
|
$ticket = $this->ticket(['project_id' => $fixtures['project']->id]);
|
||||||
@@ -178,14 +178,14 @@ final class GitWebhookIngestionTest extends TestCase
|
|||||||
'repository' => [
|
'repository' => [
|
||||||
'name' => 'WMS-Core',
|
'name' => 'WMS-Core',
|
||||||
'full_name' => 'Admin/WMS-Core',
|
'full_name' => 'Admin/WMS-Core',
|
||||||
'clone_url' => 'http://git.vm:3000/Admin/WMS-Core.git',
|
'clone_url' => 'https://git.vm:3000/Admin/WMS-Core.git',
|
||||||
'html_url' => 'http://git.vm:3000/Admin/WMS-Core',
|
'html_url' => 'https://git.vm:3000/Admin/WMS-Core',
|
||||||
],
|
],
|
||||||
'commits' => [
|
'commits' => [
|
||||||
[
|
[
|
||||||
'id' => str_repeat('d', 40),
|
'id' => str_repeat('d', 40),
|
||||||
'message' => $ticket->reference . ' Fix local Gitea webhook ingestion',
|
'message' => $ticket->reference . ' Fix local Gitea webhook ingestion',
|
||||||
'url' => 'http://git.vm:3000/Admin/WMS-Core/commit/' . str_repeat('d', 40),
|
'url' => 'https://git.vm:3000/Admin/WMS-Core/commit/' . str_repeat('d', 40),
|
||||||
'timestamp' => '2026-06-24T14:20:00+00:00',
|
'timestamp' => '2026-06-24T14:20:00+00:00',
|
||||||
'author' => ['name' => 'Mark Gregory', 'email' => 'mark@example.com'],
|
'author' => ['name' => 'Mark Gregory', 'email' => 'mark@example.com'],
|
||||||
],
|
],
|
||||||
@@ -227,12 +227,12 @@ final class GitWebhookIngestionTest extends TestCase
|
|||||||
|
|
||||||
$this->repository([
|
$this->repository([
|
||||||
'provider' => 'gitea',
|
'provider' => 'gitea',
|
||||||
'remote_url' => 'http://git.vm:3000/Admin/WMS-Core.git',
|
'remote_url' => 'https://git.vm:3000/Admin/WMS-Core.git',
|
||||||
'webhook_secret' => 'gitea-secret',
|
'webhook_secret' => 'gitea-secret',
|
||||||
]);
|
]);
|
||||||
$payload = [
|
$payload = [
|
||||||
'ref' => 'refs/heads/main',
|
'ref' => 'refs/heads/main',
|
||||||
'repository' => ['clone_url' => 'http://git.vm:3000/Admin/WMS-Core.git'],
|
'repository' => ['clone_url' => 'https://git.vm:3000/Admin/WMS-Core.git'],
|
||||||
'commits' => [['id' => str_repeat('e', 40), 'message' => 'No auth']],
|
'commits' => [['id' => str_repeat('e', 40), 'message' => 'No auth']],
|
||||||
];
|
];
|
||||||
$json = json_encode($payload, JSON_THROW_ON_ERROR);
|
$json = json_encode($payload, JSON_THROW_ON_ERROR);
|
||||||
@@ -256,12 +256,12 @@ final class GitWebhookIngestionTest extends TestCase
|
|||||||
|
|
||||||
$repository = $this->repository([
|
$repository = $this->repository([
|
||||||
'provider' => 'gitea',
|
'provider' => 'gitea',
|
||||||
'remote_url' => 'http://git.vm:3000/Admin/WMS-Core.git',
|
'remote_url' => 'https://git.vm:3000/Admin/WMS-Core.git',
|
||||||
'webhook_secret' => 'gitea-secret',
|
'webhook_secret' => 'gitea-secret',
|
||||||
]);
|
]);
|
||||||
$payload = [
|
$payload = [
|
||||||
'ref' => 'refs/heads/main',
|
'ref' => 'refs/heads/main',
|
||||||
'repository' => ['clone_url' => 'http://git.vm:3000/Admin/WMS-Core.git'],
|
'repository' => ['clone_url' => 'https://git.vm:3000/Admin/WMS-Core.git'],
|
||||||
'commits' => [['id' => str_repeat('b', 40), 'message' => 'Valid signed Gitea push']],
|
'commits' => [['id' => str_repeat('b', 40), 'message' => 'Valid signed Gitea push']],
|
||||||
];
|
];
|
||||||
$json = json_encode($payload, JSON_THROW_ON_ERROR);
|
$json = json_encode($payload, JSON_THROW_ON_ERROR);
|
||||||
@@ -291,7 +291,7 @@ final class GitWebhookIngestionTest extends TestCase
|
|||||||
'provider' => 'Gitea',
|
'provider' => 'Gitea',
|
||||||
'project_id' => $fixtures['project']->id,
|
'project_id' => $fixtures['project']->id,
|
||||||
'name' => 'Local',
|
'name' => 'Local',
|
||||||
'remote_url' => 'http://git.vm:3000/Admin/WMS-Core',
|
'remote_url' => 'https://git.vm:3000/Admin/WMS-Core',
|
||||||
'webhook_secret' => 'gitea-secret',
|
'webhook_secret' => 'gitea-secret',
|
||||||
]);
|
]);
|
||||||
$payload = [
|
$payload = [
|
||||||
@@ -299,14 +299,14 @@ final class GitWebhookIngestionTest extends TestCase
|
|||||||
'repository' => [
|
'repository' => [
|
||||||
'name' => 'WMS-Core',
|
'name' => 'WMS-Core',
|
||||||
'full_name' => 'Admin/WMS-Core',
|
'full_name' => 'Admin/WMS-Core',
|
||||||
'clone_url' => 'http://git.vm:3000/Admin/WMS-Core.git',
|
'clone_url' => 'https://git.vm:3000/Admin/WMS-Core.git',
|
||||||
'html_url' => 'http://git.vm:3000/Admin/WMS-Core',
|
'html_url' => 'https://git.vm:3000/Admin/WMS-Core',
|
||||||
],
|
],
|
||||||
'commits' => [
|
'commits' => [
|
||||||
[
|
[
|
||||||
'id' => str_repeat('f', 40),
|
'id' => str_repeat('f', 40),
|
||||||
'message' => 'Local Gitea push should be visible on the dashboard',
|
'message' => 'Local Gitea push should be visible on the dashboard',
|
||||||
'url' => 'http://git.vm:3000/Admin/WMS-Core/commit/' . str_repeat('f', 40),
|
'url' => 'https://git.vm:3000/Admin/WMS-Core/commit/' . str_repeat('f', 40),
|
||||||
'timestamp' => '2026-06-24T15:00:00+00:00',
|
'timestamp' => '2026-06-24T15:00:00+00:00',
|
||||||
'author' => ['name' => 'Mark Gregory', 'email' => 'mark@example.com'],
|
'author' => ['name' => 'Mark Gregory', 'email' => 'mark@example.com'],
|
||||||
],
|
],
|
||||||
|
|||||||
@@ -224,7 +224,7 @@ class CloseShipment extends Controller
|
|||||||
// Close Shipment for Manifest or Single MacPKR
|
// Close Shipment for Manifest or Single MacPKR
|
||||||
if (count($iCM695M1TMP) > 0 && ($tRANSTYPE == 'M' || $tRANSTYPE == 'P')) {
|
if (count($iCM695M1TMP) > 0 && ($tRANSTYPE == 'M' || $tRANSTYPE == 'P')) {
|
||||||
// Loop the Results from $ICM595M1TMP
|
// Loop the Results from $ICM595M1TMP
|
||||||
foreach ($iCM695M1TMP as $key => $ICM695M1R) {
|
foreach ($iCM695M1TMP as $ICM695M1R) {
|
||||||
$pACKAGES = [];
|
$pACKAGES = [];
|
||||||
$aYWHS = trim($ICM695M1R->AYWHS);
|
$aYWHS = trim($ICM695M1R->AYWHS);
|
||||||
$aYCO = trim($ICM695M1R->AYCO);
|
$aYCO = trim($ICM695M1R->AYCO);
|
||||||
|
|||||||
@@ -283,7 +283,7 @@ class OrderLinesOfClosedOrder extends Controller
|
|||||||
if (Storage::disk('publicCL')->exists($fileName)) {
|
if (Storage::disk('publicCL')->exists($fileName)) {
|
||||||
// File exists, retrieve content or URL
|
// File exists, retrieve content or URL
|
||||||
// $content = Storage::disk('publicCL')->get($fileName);
|
// $content = Storage::disk('publicCL')->get($fileName);
|
||||||
$fileNameOnly = strpos($fileName, '/') != false ? substr($fileName, strpos($fileName, '/') + 1) : $fileName;
|
$fileNameOnly = strpos($fileName, '/') !== false ? substr($fileName, strpos($fileName, '/') + 1) : $fileName;
|
||||||
|
|
||||||
// Download the file
|
// Download the file
|
||||||
return Storage::disk('publicCL')->download($fileName, $fileNameOnly);
|
return Storage::disk('publicCL')->download($fileName, $fileNameOnly);
|
||||||
|
|||||||
@@ -11,15 +11,10 @@ use Modules\M3\Services\PostgresProgramBridge;
|
|||||||
|
|
||||||
class UserControlController extends Controller
|
class UserControlController extends Controller
|
||||||
{
|
{
|
||||||
private const AUTH_FAILURE_MESSAGE = 'Could not connect due to wrong user or password.';
|
|
||||||
|
|
||||||
private const DATABASE_NOT_FOUND_MESSAGE = 'Database not found. Try WRKRDBDIRE to check.';
|
|
||||||
|
|
||||||
private const CONNECTION_ERROR_PREFIX = 'Could not connect. Error: ';
|
|
||||||
|
|
||||||
private const PROGRAM_ERROR_PREFIX = 'Error calling program. Code: ';
|
|
||||||
|
|
||||||
private const MESSAGE_SEPARATOR = ' Msg: ';
|
|
||||||
|
|
||||||
public static function index(Request $request)
|
public static function index(Request $request)
|
||||||
{
|
{
|
||||||
@@ -176,19 +171,7 @@ class UserControlController extends Controller
|
|||||||
} catch (\Throwable $e) {
|
} catch (\Throwable $e) {
|
||||||
// Determine reason for failure.
|
// Determine reason for failure.
|
||||||
// Probably database authentication error or invalid or unreachable database.
|
// Probably database authentication error or invalid or unreachable database.
|
||||||
$code = $e->getCode();
|
return self::programBridgeConnectionError($e);
|
||||||
$msg = $e->getMessage();
|
|
||||||
|
|
||||||
switch ($code) {
|
|
||||||
case 8001:
|
|
||||||
// "Authorization failure on distributed database connection attempt"
|
|
||||||
// Usually means a wrong DB2 user or password
|
|
||||||
break;
|
|
||||||
case 42705:
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Add LIB
|
// Add LIB
|
||||||
@@ -250,19 +233,7 @@ class UserControlController extends Controller
|
|||||||
try {
|
try {
|
||||||
$conn = app(PostgresProgramBridge::class);
|
$conn = app(PostgresProgramBridge::class);
|
||||||
} catch (\Throwable $e) {
|
} catch (\Throwable $e) {
|
||||||
$code = $e->getCode();
|
return self::programBridgeConnectionError($e);
|
||||||
$msg = $e->getMessage();
|
|
||||||
|
|
||||||
switch ($code) {
|
|
||||||
case 8001:
|
|
||||||
// "Authorization failure on distributed database connection attempt"
|
|
||||||
// Usually means a wrong DB2 user or password
|
|
||||||
break;
|
|
||||||
case 42705:
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
$result = $conn->CLCommand('QSYS/CHGUSRPRF USRPRF(' . $request->R428US_PWD . ') PASSWORD(' . $request->NEW_PASSWORD . ') STATUS(*ENABLED) PWDEXP(*NO)');
|
$result = $conn->CLCommand('QSYS/CHGUSRPRF USRPRF(' . $request->R428US_PWD . ') PASSWORD(' . $request->NEW_PASSWORD . ') STATUS(*ENABLED) PWDEXP(*NO)');
|
||||||
|
|||||||
@@ -52,11 +52,6 @@ class ShipTo extends Model
|
|||||||
$existingRecord->where($this->getKeyName(), '!=', $this->getKey());
|
$existingRecord->where($this->getKeyName(), '!=', $this->getKey());
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($existingRecord->count() > 0) {
|
return $existingRecord->count() === 0;
|
||||||
return false;
|
|
||||||
} else {
|
|
||||||
return true;
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -14,17 +14,6 @@ class RouteServiceProvider extends ServiceProvider
|
|||||||
*/
|
*/
|
||||||
protected $moduleNamespace = 'Modules\M3\Http\Controllers';
|
protected $moduleNamespace = 'Modules\M3\Http\Controllers';
|
||||||
|
|
||||||
/**
|
|
||||||
* Called before routes are registered.
|
|
||||||
*
|
|
||||||
* Register any model bindings or pattern based filters.
|
|
||||||
*
|
|
||||||
* @return void
|
|
||||||
*/
|
|
||||||
public function boot()
|
|
||||||
{
|
|
||||||
parent::boot();
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Define the routes for the application.
|
* Define the routes for the application.
|
||||||
|
|||||||
@@ -121,7 +121,7 @@
|
|||||||
<div class="col-6">
|
<div class="col-6">
|
||||||
<div class="mb-3">
|
<div class="mb-3">
|
||||||
<label for="recipient-name" class="col-form-label">Warehouse:</label>
|
<label for="recipient-name" class="col-form-label">Warehouse:</label>
|
||||||
<select class="form-select" id="WHDDA" aria-label="WHDD" tabindex="4" required>
|
<select class="form-select" id="WHDDA" aria-label="WHDD" tabindex="0" required>
|
||||||
<option value="">Select Warehouse</option>
|
<option value="">Select Warehouse</option>
|
||||||
@foreach ($IC670M as $key => $IC670MR)
|
@foreach ($IC670M as $key => $IC670MR)
|
||||||
<option value="{{ trim($IC670MR->WDCO).trim($IC670MR->WDPL).trim($IC670MR->WDWHS) }}"
|
<option value="{{ trim($IC670MR->WDCO).trim($IC670MR->WDPL).trim($IC670MR->WDWHS) }}"
|
||||||
@@ -215,7 +215,7 @@
|
|||||||
<div class="col-6">
|
<div class="col-6">
|
||||||
<div class="mb-3">
|
<div class="mb-3">
|
||||||
<label for="recipient-name" class="col-form-label">Warehouse:</label>
|
<label for="recipient-name" class="col-form-label">Warehouse:</label>
|
||||||
<select class="form-select" id="WHDD" aria-label="WHDD" tabindex="4" disabled>
|
<select class="form-select" id="WHDD" aria-label="WHDD" tabindex="0" disabled>
|
||||||
<option value="">Select Warehouse</option>
|
<option value="">Select Warehouse</option>
|
||||||
@foreach ($IC670M as $key => $IC670MR)
|
@foreach ($IC670M as $key => $IC670MR)
|
||||||
<option value="{{ trim($IC670MR->WDCO).trim($IC670MR->WDPL).trim($IC670MR->WDWHS) }}"
|
<option value="{{ trim($IC670MR->WDCO).trim($IC670MR->WDPL).trim($IC670MR->WDWHS) }}"
|
||||||
|
|||||||
+1
-1
@@ -151,7 +151,7 @@ function livewireComponentFor(element) {
|
|||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
return window.Livewire.find(current.getAttribute('wire:id'));
|
return window.Livewire.find(current.dataset.wireId);
|
||||||
}
|
}
|
||||||
|
|
||||||
current = current.parentElement;
|
current = current.parentElement;
|
||||||
|
|||||||
Reference in New Issue
Block a user