feat: implement helper functions and add branding assets for admin panel interface

This commit is contained in:
Ümit Tunç
2026-04-28 22:34:17 +03:00
parent faa129a02a
commit 4ad58c1b84
20 changed files with 2785 additions and 2451 deletions
+142 -141
View File
@@ -1,167 +1,168 @@
<!-- pdf.js CDN -->
<script src="https://cdn.jsdelivr.net/npm/pdfjs-dist@2.10.377/build/pdf.min.js"></script>
<style>
.flowchart .page {
zoom: 50%;
transition:all .5s
}
.flowchart .page {
zoom: 50%;
transition: all .5s
}
</style>
<script>
$(function(){
var zoom = 50;
$(".zoomin").on("click", function(){
zoom = zoom + 10;
$(".flowchart .page").css("zoom", zoom + "%");
});
$(".zoomout").on("click", function(){
zoom = zoom - 10;
$(".flowchart .page").css("zoom", zoom + "%");
});
$(function () {
var zoom = 50;
$(".zoomin").on("click", function () {
zoom = zoom + 10;
$(".flowchart .page").css("zoom", zoom + "%");
});
});
$(".zoomout").on("click", function () {
zoom = zoom - 10;
$(".flowchart .page").css("zoom", zoom + "%");
});
});
</script>
<script>
$(function(){
const $pdf = '{{url("assets/diagram.pdf")}}';
$(function () {
const $pdf = '{{url("assets/diagram.pdf")}}';
const $initialState = {
pdfDoc: null,
currentPage: 1,
pageCount: 0,
zoom: 0.615,
};
const $initialState = {
pdfDoc: null,
currentPage: 1,
pageCount: 0,
zoom: 0.615,
};
// Render the page.
const renderPage = () => {
// Load the first page.
$initialState.pdfDoc
.getPage($initialState.currentPage)
.then((page) => {
console.log('page', page);
// Render the page.
const renderPage = () => {
// Load the first page.
$initialState.pdfDoc
.getPage($initialState.currentPage)
.then((page) => {
console.log('page', page);
const canvas = $('#canvas')[0];
const $ctx = canvas.getContext('2d');
const $viewport = page.getViewport({
scale: $initialState.zoom,
const canvas = $('#canvas')[0];
const $ctx = canvas.getContext('2d');
const $viewport = page.getViewport({
scale: $initialState.zoom,
});
canvas.height = $viewport.height;
canvas.width = $viewport.width;
// Render the PDF page into the canvas context.
const renderCtx = {
canvasContext: $ctx,
viewport: $viewport,
};
page.render(renderCtx);
$('#page_num').html($initialState.currentPage);
});
};
// Load the document.
pdfjsLib
.getDocument($pdf)
.promise.then((doc) => {
$initialState.pdfDoc = doc;
console.log('pdfDocument', $initialState.pdfDoc);
$('#page_count').html($initialState.pdfDoc.numPages);
renderPage();
})
.catch((err) => {
alert(err.message);
});
canvas.height = $viewport.height;
canvas.width = $viewport.width;
function showPrevPage() {
if ($initialState.pdfDoc === null || $initialState.currentPage <= 1)
return;
$initialState.currentPage--;
// Render the current page
$('#current_page').val($initialState.currentPage);
renderPage();
}
// Render the PDF page into the canvas context.
const renderCtx = {
canvasContext: $ctx,
viewport: $viewport,
};
function showNextPage() {
if (
$initialState.pdfDoc === null ||
$initialState.currentPage >=
$initialState.pdfDoc._pdfInfo.numPages
)
return;
page.render(renderCtx);
$initialState.currentPage++;
$('#current_page').val($initialState.currentPage);
renderPage();
}
$('#page_num').html($initialState.currentPage);
// Button events.
$('#prev-page').click(showPrevPage);
$('#next-page').click(showNextPage);
// Display a specific page.
$('#current_page').on('keypress', (event) => {
if ($initialState.pdfDoc === null) return;
// Get the key code.
const $keycode = event.keyCode ? event.keyCode : event.which;
if ($keycode === 13) {
// Get the new page number and render it.
let desiredPage = $('#current_page')[0].valueAsNumber;
$initialState.currentPage = Math.min(
Math.max(desiredPage, 1),
$initialState.pdfDoc._pdfInfo.numPages,
);
renderPage();
$('#current_page').val($initialState.currentPage);
}
});
};
// Load the document.
pdfjsLib
.getDocument($pdf)
.promise.then((doc) => {
$initialState.pdfDoc = doc;
console.log('pdfDocument', $initialState.pdfDoc);
// Zoom functionality.
$('#zoom_in').on('click', () => {
if ($initialState.pdfDoc === null) return;
$initialState.zoom *= 4 / 3;
$('#page_count').html($initialState.pdfDoc.numPages);
renderPage();
});
renderPage();
})
.catch((err) => {
alert(err.message);
$('#zoom_out').on('click', () => {
if ($initialState.pdfDoc === null) return;
$initialState.zoom *= 2 / 3;
renderPage();
});
});
function showPrevPage() {
if ($initialState.pdfDoc === null || $initialState.currentPage <= 1)
return;
$initialState.currentPage--;
// Render the current page
$('#current_page').val($initialState.currentPage);
renderPage();
}
function showNextPage() {
if (
$initialState.pdfDoc === null ||
$initialState.currentPage >=
$initialState.pdfDoc._pdfInfo.numPages
)
return;
$initialState.currentPage++;
$('#current_page').val($initialState.currentPage);
renderPage();
}
// Button events.
$('#prev-page').click(showPrevPage);
$('#next-page').click(showNextPage);
// Display a specific page.
$('#current_page').on('keypress', (event) => {
if ($initialState.pdfDoc === null) return;
// Get the key code.
const $keycode = event.keyCode ? event.keyCode : event.which;
if ($keycode === 13) {
// Get the new page number and render it.
let desiredPage = $('#current_page')[0].valueAsNumber;
$initialState.currentPage = Math.min(
Math.max(desiredPage, 1),
$initialState.pdfDoc._pdfInfo.numPages,
);
renderPage();
$('#current_page').val($initialState.currentPage);
}
});
// Zoom functionality.
$('#zoom_in').on('click', () => {
if ($initialState.pdfDoc === null) return;
$initialState.zoom *= 4 / 3;
renderPage();
});
$('#zoom_out').on('click', () => {
if ($initialState.pdfDoc === null) return;
$initialState.zoom *= 2 / 3;
renderPage();
});
});
</script>
<header>
<table class="table ">
<tr>
<td width="20%" style="vertical-align: middle">
<div class="btn-group">
<button class="btn btn-outline-primary" id="zoom_in">
<i class="fas fa-search-plus"></i>
</button>
<table class="table ">
<tr>
<td width="20%" style="vertical-align: middle">
<div class="btn-group">
<button class="btn btn-outline-primary" id="zoom_in">
<i class="fas fa-search-plus"></i>
</button>
<button class="btn btn-outline-primary" id="zoom_out">
<i class="fas fa-search-minus"></i>
</button>
</div>
</td>
<td width="60%" class="text-center"><img src="{{url("assets/logo.svg")}}" class="p-1" alt=""></td>
<td width="20%" style="vertical-align: bottom;font-size:16px">
</td>
</tr>
</table>
</header>
<button class="btn btn-outline-primary" id="zoom_out">
<i class="fas fa-search-minus"></i>
</button>
</div>
</td>
<td width="60%" class="text-center"><img src="{{url("assets/citrus-logos/citrus-yatay.svg")}}" class="p-1"
alt=""></td>
<td width="20%" style="vertical-align: bottom;font-size:16px">
</td>
</tr>
</table>
</header>
<div class="flowchart" style="overflow:auto;width:100%;height:80vh;margin-top:10px">
<!-- Canvas to place the PDF -->
<canvas id="canvas" class="canvas__container"></canvas>
</div>
<!-- Canvas to place the PDF -->
<canvas id="canvas" class="canvas__container"></canvas>
</div>
@@ -1,168 +1,168 @@
<!-- pdf.js CDN -->
<script src="https://cdn.jsdelivr.net/npm/pdfjs-dist@2.10.377/build/pdf.min.js"></script>
<style>
.flowchart .page {
zoom: 50%;
transition:all .5s
}
.flowchart .page {
zoom: 50%;
transition: all .5s
}
</style>
<script>
$(function(){
var zoom = 50;
$(".zoomin").on("click", function(){
zoom = zoom + 10;
$(".flowchart .page").css("zoom", zoom + "%");
});
$(".zoomout").on("click", function(){
zoom = zoom - 10;
$(".flowchart .page").css("zoom", zoom + "%");
});
$(function () {
var zoom = 50;
$(".zoomin").on("click", function () {
zoom = zoom + 10;
$(".flowchart .page").css("zoom", zoom + "%");
});
});
$(".zoomout").on("click", function () {
zoom = zoom - 10;
$(".flowchart .page").css("zoom", zoom + "%");
});
});
</script>
<script>
$(function(){
const $pdf = '{{url("assets/diagram.pdf")}}';
$(function () {
const $pdf = '{{url("assets/diagram.pdf")}}';
const $initialState = {
pdfDoc: null,
currentPage: 1,
pageCount: 0,
zoom: 0.615,
};
const $initialState = {
pdfDoc: null,
currentPage: 1,
pageCount: 0,
zoom: 0.615,
};
// Render the page.
const renderPage = () => {
// Load the first page.
$initialState.pdfDoc
.getPage($initialState.currentPage)
.then((page) => {
console.log('page', page);
// Render the page.
const renderPage = () => {
// Load the first page.
$initialState.pdfDoc
.getPage($initialState.currentPage)
.then((page) => {
console.log('page', page);
const canvas = $('#canvas')[0];
const $ctx = canvas.getContext('2d');
const $viewport = page.getViewport({
scale: $initialState.zoom,
const canvas = $('#canvas')[0];
const $ctx = canvas.getContext('2d');
const $viewport = page.getViewport({
scale: $initialState.zoom,
});
canvas.height = $viewport.height;
canvas.width = $viewport.width;
// Render the PDF page into the canvas context.
const renderCtx = {
canvasContext: $ctx,
viewport: $viewport,
};
page.render(renderCtx);
$('#page_num').html($initialState.currentPage);
});
};
// Load the document.
pdfjsLib
.getDocument($pdf)
.promise.then((doc) => {
$initialState.pdfDoc = doc;
console.log('pdfDocument', $initialState.pdfDoc);
$('#page_count').html($initialState.pdfDoc.numPages);
renderPage();
})
.catch((err) => {
alert(err.message);
});
canvas.height = $viewport.height;
canvas.width = $viewport.width;
function showPrevPage() {
if ($initialState.pdfDoc === null || $initialState.currentPage <= 1)
return;
$initialState.currentPage--;
// Render the current page
$('#current_page').val($initialState.currentPage);
renderPage();
}
// Render the PDF page into the canvas context.
const renderCtx = {
canvasContext: $ctx,
viewport: $viewport,
};
function showNextPage() {
if (
$initialState.pdfDoc === null ||
$initialState.currentPage >=
$initialState.pdfDoc._pdfInfo.numPages
)
return;
page.render(renderCtx);
$initialState.currentPage++;
$('#current_page').val($initialState.currentPage);
renderPage();
}
$('#page_num').html($initialState.currentPage);
// Button events.
$('#prev-page').click(showPrevPage);
$('#next-page').click(showNextPage);
// Display a specific page.
$('#current_page').on('keypress', (event) => {
if ($initialState.pdfDoc === null) return;
// Get the key code.
const $keycode = event.keyCode ? event.keyCode : event.which;
if ($keycode === 13) {
// Get the new page number and render it.
let desiredPage = $('#current_page')[0].valueAsNumber;
$initialState.currentPage = Math.min(
Math.max(desiredPage, 1),
$initialState.pdfDoc._pdfInfo.numPages,
);
renderPage();
$('#current_page').val($initialState.currentPage);
}
});
};
// Load the document.
pdfjsLib
.getDocument($pdf)
.promise.then((doc) => {
$initialState.pdfDoc = doc;
console.log('pdfDocument', $initialState.pdfDoc);
// Zoom functionality.
$('#zoom_in').on('click', () => {
if ($initialState.pdfDoc === null) return;
$initialState.zoom *= 4 / 3;
$('#page_count').html($initialState.pdfDoc.numPages);
renderPage();
});
renderPage();
})
.catch((err) => {
alert(err.message);
$('#zoom_out').on('click', () => {
if ($initialState.pdfDoc === null) return;
$initialState.zoom *= 2 / 3;
renderPage();
});
});
function showPrevPage() {
if ($initialState.pdfDoc === null || $initialState.currentPage <= 1)
return;
$initialState.currentPage--;
// Render the current page
$('#current_page').val($initialState.currentPage);
renderPage();
}
function showNextPage() {
if (
$initialState.pdfDoc === null ||
$initialState.currentPage >=
$initialState.pdfDoc._pdfInfo.numPages
)
return;
$initialState.currentPage++;
$('#current_page').val($initialState.currentPage);
renderPage();
}
// Button events.
$('#prev-page').click(showPrevPage);
$('#next-page').click(showNextPage);
// Display a specific page.
$('#current_page').on('keypress', (event) => {
if ($initialState.pdfDoc === null) return;
// Get the key code.
const $keycode = event.keyCode ? event.keyCode : event.which;
if ($keycode === 13) {
// Get the new page number and render it.
let desiredPage = $('#current_page')[0].valueAsNumber;
$initialState.currentPage = Math.min(
Math.max(desiredPage, 1),
$initialState.pdfDoc._pdfInfo.numPages,
);
renderPage();
$('#current_page').val($initialState.currentPage);
}
});
// Zoom functionality.
$('#zoom_in').on('click', () => {
if ($initialState.pdfDoc === null) return;
$initialState.zoom *= 4 / 3;
renderPage();
});
$('#zoom_out').on('click', () => {
if ($initialState.pdfDoc === null) return;
$initialState.zoom *= 2 / 3;
renderPage();
});
});
</script>
<header>
<table class="table ">
<tr>
<td width="20%" style="vertical-align: middle">
<div class="btn-group">
<button class="btn btn-outline-primary" id="zoom_in">
<i class="fas fa-search-plus"></i>
</button>
<table class="table ">
<tr>
<td width="20%" style="vertical-align: middle">
<div class="btn-group">
<button class="btn btn-outline-primary" id="zoom_in">
<i class="fas fa-search-plus"></i>
</button>
<button class="btn btn-outline-primary" id="zoom_out">
<i class="fas fa-search-minus"></i>
</button>
</div>
</td>
<td width="60%" class="text-center"><img src="{{url("assets/logo.svg")}}" class="p-1" alt=""></td>
<td width="20%" style="vertical-align: bottom;font-size:16px">
</td>
</tr>
</table>
</header>
<button class="btn btn-outline-primary" id="zoom_out">
<i class="fas fa-search-minus"></i>
</button>
</div>
</td>
<td width="60%" class="text-center"><img src="{{url("assets/citrus-logos/citrus-yatay.svg")}}" class="p-1"
alt=""></td>
<td width="20%" style="vertical-align: bottom;font-size:16px">
</td>
</tr>
</table>
</header>
<div class="flowchart" style="overflow:auto;width:100%;height:80vh;margin-top:10px">
<!-- Canvas to place the PDF -->
<canvas id="canvas" class="canvas__container"></canvas>
</div>
<!-- Canvas to place the PDF -->
<canvas id="canvas" class="canvas__container"></canvas>
</div>
@@ -6,11 +6,12 @@
{{__('Profile Settings')}}
</h3>
<div class="block-options">
<button type="button" class="btn-block-option" data-toggle="block-option" data-action="content_toggle"><i class="si si-arrow-up"></i></button>
<button type="button" class="btn-block-option" data-toggle="block-option"
data-action="content_toggle"><i class="si si-arrow-up"></i></button>
</div>
</div>
<div class="block-content block-content-full text-center bg-body-light">
<img class="" src="{{asset('assets/logo.svg')}}" alt="">
<img class="" src="{{asset('assets/citrus-logos/citrus-yatay.svg')}}" alt="">
<div class="mt-10 font-w600">{{ Auth::user()->name }} {{ Auth::user()->surname }}</div>
<div class="pt-10">
<span class="badge badge-success">{{ Auth::user()->level }}</span>
File diff suppressed because it is too large Load Diff
@@ -320,23 +320,23 @@ if (getisset("send-mail")) {
worksheet.columns.forEach(function (column, colIndex) {
let maxLength = 10;
let isNumericColumn = true;
column.eachCell({ includeEmpty: false }, function (cell, rowNumber) {
const cellValue = cell.value ? cell.value.toString() : '';
if (cellValue.length > maxLength) maxLength = cellValue.length;
// Check if column contains mostly numeric values (skip header row)
if (rowNumber > 1 && cellValue && isNaN(parseFloat(cellValue))) {
isNumericColumn = false;
}
});
// Apply 80% width reduction for numeric columns (defect counts, etc.)
let calculatedWidth = Math.min(maxLength + 2, 30);
if (isNumericColumn && colIndex > 0) {
calculatedWidth = Math.max(Math.floor(calculatedWidth * 0.5), 6); // 50% width, min 6
}
column.width = calculatedWidth;
});
}
@@ -729,7 +729,8 @@ if (getisset("send-mail")) {
</td>
<td width="60%" class="text-center"><img src="{{url("assets/logo.svg")}}" class="p-5" alt="">
<td width="60%" class="text-center"><img src="{{url("assets/citrus-logos/citrus-yatay.svg")}}"
class="p-5" alt="">
</td>
<td width="20%" style="vertical-align: bottom;font-size:16px">
<small>{{e2("Report Date")}}</small> <br>
File diff suppressed because it is too large Load Diff
@@ -50,94 +50,96 @@
<img style="background: white;
padding: 10px;
border-radius: 10px;
margin: 10px auto;" src="{{url("assets/logo.svg")}}" alt="">
margin: 10px auto;" src="{{url("assets/citrus-logos/citrus-yatay.svg")}}" alt="">
<h3>Work Permit Hierarchical Structure</h3>
</div>
<div class="tree-content" id="tree-diagram">
@php
// Get all column names from both tables
$workPermitColumns = Schema::getColumnListing('work_permit_documents');
$subcontractorColumns = Schema::getColumnListing('subcontractors');
$workPermitUsers = DB::table("work_permit_documents")
->select([
'work_permit_documents.id',
'work_permit_documents.name_surname',
'work_permit_documents.company',
'work_permit_documents.certificates_number',
'work_permit_documents.duty',
'work_permit_documents.document_number',
'work_permit_documents.attorney',
'work_permit_documents.attorney_date',
'work_permit_documents.zone as project',
'work_permit_documents.sign_order as personel_sign_order',
'subcontractors.company_name_ru',
'subcontractors.company_name_en',
'subcontractors.job_description',
'subcontractors.company_code',
'subcontractors.operation_type',
'subcontractors.city',
'subcontractors.address',
'subcontractors.logo',
'subcontractors.sign_order as firma_sign_order'
])
->join("subcontractors", "work_permit_documents.company", "subcontractors.company_name_ru")
->orderBy('subcontractors.operation_type')
->orderBy('work_permit_documents.sign_order')
->get();
// Get all column names from both tables
$workPermitColumns = Schema::getColumnListing('work_permit_documents');
$subcontractorColumns = Schema::getColumnListing('subcontractors');
// Prepare array for single project names
$allSingleProjects = [];
$projectMapping = [];
// Parse comma-separated projects and organize
foreach ($workPermitUsers as $user) {
$projectParts = explode(',', $user->project);
foreach ($projectParts as $singleProject) {
$singleProject = trim($singleProject);
if (!empty($singleProject) && !in_array($singleProject, $allSingleProjects)) {
$allSingleProjects[] = $singleProject;
}
if (!empty($singleProject)) {
if (!isset($projectMapping[$singleProject])) {
$projectMapping[$singleProject] = [];
$workPermitUsers = DB::table("work_permit_documents")
->select([
'work_permit_documents.id',
'work_permit_documents.name_surname',
'work_permit_documents.company',
'work_permit_documents.certificates_number',
'work_permit_documents.duty',
'work_permit_documents.document_number',
'work_permit_documents.attorney',
'work_permit_documents.attorney_date',
'work_permit_documents.zone as project',
'work_permit_documents.sign_order as personel_sign_order',
'subcontractors.company_name_ru',
'subcontractors.company_name_en',
'subcontractors.job_description',
'subcontractors.company_code',
'subcontractors.operation_type',
'subcontractors.city',
'subcontractors.address',
'subcontractors.logo',
'subcontractors.sign_order as firma_sign_order'
])
->join("subcontractors", "work_permit_documents.company", "subcontractors.company_name_ru")
->orderBy('subcontractors.operation_type')
->orderBy('work_permit_documents.sign_order')
->get();
// Prepare array for single project names
$allSingleProjects = [];
$projectMapping = [];
// Parse comma-separated projects and organize
foreach ($workPermitUsers as $user) {
$projectParts = explode(',', $user->project);
foreach ($projectParts as $singleProject) {
$singleProject = trim($singleProject);
if (!empty($singleProject) && !in_array($singleProject, $allSingleProjects)) {
$allSingleProjects[] = $singleProject;
}
// Add this user to this project
$found = false;
foreach ($projectMapping[$singleProject] as $existingUser) {
if ($existingUser->name_surname === $user->name_surname &&
$existingUser->operation_type === $user->operation_type &&
$existingUser->personel_sign_order === $user->personel_sign_order) {
$found = true;
break;
if (!empty($singleProject)) {
if (!isset($projectMapping[$singleProject])) {
$projectMapping[$singleProject] = [];
}
// Add this user to this project
$found = false;
foreach ($projectMapping[$singleProject] as $existingUser) {
if (
$existingUser->name_surname === $user->name_surname &&
$existingUser->operation_type === $user->operation_type &&
$existingUser->personel_sign_order === $user->personel_sign_order
) {
$found = true;
break;
}
}
if (!$found) {
$projectMapping[$singleProject][] = $user;
}
}
if (!$found) {
$projectMapping[$singleProject][] = $user;
}
}
}
}
// Group companies by operation_type
$companyOperationMapping = [];
foreach ($workPermitUsers as $user) {
$key = $user->operation_type;
if (!isset($companyOperationMapping[$key])) {
$companyOperationMapping[$key] = [];
// Group companies by operation_type
$companyOperationMapping = [];
foreach ($workPermitUsers as $user) {
$key = $user->operation_type;
if (!isset($companyOperationMapping[$key])) {
$companyOperationMapping[$key] = [];
}
if (!in_array($user->company_name_ru, $companyOperationMapping[$key])) {
$companyOperationMapping[$key][] = $user->company_name_ru;
}
}
if (!in_array($user->company_name_ru, $companyOperationMapping[$key])) {
$companyOperationMapping[$key][] = $user->company_name_ru;
}
}
// Sort projects alphabetically
ksort($projectMapping);
// Sort projects alphabetically
ksort($projectMapping);
@endphp
<div class="tree-node root-node">
@@ -145,10 +147,10 @@
<div class="tree-children">
@foreach($projectMapping as $singleProject => $users)
@php
// Group by operation_type for each project
$operationGroups = collect($users)->groupBy('operation_type');
// Group by operation_type for each project
$operationGroups = collect($users)->groupBy('operation_type');
@endphp
<div class="tree-node project-node" data-project="{{ $singleProject }}">
<div class="tree-node-content project-title">
{{ $singleProject }}
@@ -156,8 +158,8 @@
<div class="tree-children">
@foreach($operationGroups as $operationType => $operationGroup)
@php
// Get companies for this operation type in this project
$companiesForThisOp = collect($operationGroup)->pluck('company_name_ru')->unique()->implode(', ');
// Get companies for this operation type in this project
$companiesForThisOp = collect($operationGroup)->pluck('company_name_ru')->unique()->implode(', ');
@endphp
<div class="tree-node operation-node">
<div class="tree-node-content operation-type">
@@ -165,18 +167,18 @@
<div class="company-name">
Company: {{ $companiesForThisOp }}
@php
$masterSignOrders = collect($operationGroup)->pluck('firma_sign_order')->filter()->unique()->implode(', ');
$masterSignOrders = collect($operationGroup)->pluck('firma_sign_order')->filter()->unique()->implode(', ');
@endphp
@if(!empty($masterSignOrders))
<span class="sign-order-badge master-badge">{{ $masterSignOrders }}</span>
<span class="sign-order-badge master-badge">{{ $masterSignOrders }}</span>
@endif
</div>
</div>
<div class="tree-children">
@php
$sortedUsers = collect($operationGroup)->sortBy('personel_sign_order');
$sortedUsers = collect($operationGroup)->sortBy('personel_sign_order');
@endphp
@foreach($sortedUsers as $user)
<div class="tree-node user-node">
<div class="tree-node-content">
@@ -225,7 +227,7 @@
</div>
</div>
</div>
<div class="tab-content">
<div class="tab-pane active" id="wp-{{$user->id}}">
<div class="placeholder-list scrollable-list">
@@ -234,12 +236,12 @@
</div>
<!-- Work Permit Document Placeholders -->
@foreach($workPermitColumns as $column)
<div class="placeholder-item">
<code class="copyable" data-clipboard-text="{!! "{".$user->job_description.$user->firma_sign_order."_".$user->personel_sign_order."_".$column."}" !!}">
{!! "{".$user->job_description.$user->firma_sign_order."_".$user->personel_sign_order."_".$column."}" !!}
</code>
<i class="fa fa-copy copy-icon"></i>
</div>
<div class="placeholder-item">
<code class="copyable" data-clipboard-text="{!! "{" . $user->job_description . $user->firma_sign_order . "_" . $user->personel_sign_order . "_" . $column . "}" !!}">
{!! "{" . $user->job_description . $user->firma_sign_order . "_" . $user->personel_sign_order . "_" . $column . "}" !!}
</code>
<i class="fa fa-copy copy-icon"></i>
</div>
@endforeach
</div>
</div>
@@ -250,18 +252,18 @@
</div>
<!-- Subcontractor Placeholders -->
@foreach($subcontractorColumns as $column)
<div class="placeholder-item">
<code class="copyable" data-clipboard-text="{!! "{".$user->job_description.$user->firma_sign_order."_".$user->personel_sign_order."_sub_".$column."}" !!}">
{!! "{".$user->job_description.$user->firma_sign_order."_".$user->personel_sign_order."_sub_".$column."}" !!}
</code>
<i class="fa fa-copy copy-icon"></i>
</div>
<div class="placeholder-item">
<code class="copyable" data-clipboard-text="{!! "{" . $user->job_description . $user->firma_sign_order . "_" . $user->personel_sign_order . "_sub_" . $column . "}" !!}">
{!! "{" . $user->job_description . $user->firma_sign_order . "_" . $user->personel_sign_order . "_sub_" . $column . "}" !!}
</code>
<i class="fa fa-copy copy-icon"></i>
</div>
@endforeach
</div>
</div>
</div>
</div>
<div class="placeholder-search mt-2">
<div class="input-group input-group-sm">
<input type="text" class="form-control placeholder-filter" placeholder="Search placeholders...">
@@ -272,30 +274,30 @@
</div>
</div>
</div>
<div class="placeholder-common mt-2">
<h6 class="text-white font-size-sm">Common Placeholders</h6>
<div class="placeholder-item">
<code class="copyable" data-clipboard-text="{!! "{".$user->job_description.$user->firma_sign_order."_".$user->personel_sign_order."_name_surname}" !!}">
{!! "{".$user->job_description.$user->firma_sign_order."_".$user->personel_sign_order."_name_surname}" !!}
<code class="copyable" data-clipboard-text="{!! "{" . $user->job_description . $user->firma_sign_order . "_" . $user->personel_sign_order . "_name_surname}" !!}">
{!! "{" . $user->job_description . $user->firma_sign_order . "_" . $user->personel_sign_order . "_name_surname}" !!}
</code>
<i class="fa fa-copy copy-icon"></i>
</div>
<div class="placeholder-item">
<code class="copyable" data-clipboard-text="{!! "{".$user->job_description.$user->firma_sign_order."_".$user->personel_sign_order."_company_name}" !!}">
{!! "{".$user->job_description.$user->firma_sign_order."_".$user->personel_sign_order."_company_name}" !!}
<code class="copyable" data-clipboard-text="{!! "{" . $user->job_description . $user->firma_sign_order . "_" . $user->personel_sign_order . "_company_name}" !!}">
{!! "{" . $user->job_description . $user->firma_sign_order . "_" . $user->personel_sign_order . "_company_name}" !!}
</code>
<i class="fa fa-copy copy-icon"></i>
</div>
<div class="placeholder-item">
<code class="copyable" data-clipboard-text="{!! "{".$user->job_description.$user->firma_sign_order."_".$user->personel_sign_order."_certificate_no}" !!}">
{!! "{".$user->job_description.$user->firma_sign_order."_".$user->personel_sign_order."_certificate_no}" !!}
<code class="copyable" data-clipboard-text="{!! "{" . $user->job_description . $user->firma_sign_order . "_" . $user->personel_sign_order . "_certificate_no}" !!}">
{!! "{" . $user->job_description . $user->firma_sign_order . "_" . $user->personel_sign_order . "_certificate_no}" !!}
</code>
<i class="fa fa-copy copy-icon"></i>
</div>
<div class="placeholder-item">
<code class="copyable" data-clipboard-text="{!! "{".$user->job_description.$user->firma_sign_order."_".$user->personel_sign_order."_duty}" !!}">
{!! "{".$user->job_description.$user->firma_sign_order."_".$user->personel_sign_order."_duty}" !!}
<code class="copyable" data-clipboard-text="{!! "{" . $user->job_description . $user->firma_sign_order . "_" . $user->personel_sign_order . "_duty}" !!}">
{!! "{" . $user->job_description . $user->firma_sign_order . "_" . $user->personel_sign_order . "_duty}" !!}
</code>
<i class="fa fa-copy copy-icon"></i>
</div>
+85 -85
View File
@@ -2,100 +2,100 @@
@extends('admin.master')
@section('content')
<div id="page-container" class="main-content-boxed side-trans-enabled">
<div id="page-container" class="main-content-boxed side-trans-enabled">
<!-- Main Container -->
<main id="main-container" style="min-height: 969px;">
<!-- Main Container -->
<main id="main-container" style="min-height: 969px;">
<!-- Page Content -->
<div class="bg-image" style="background-image: url('{{url("assets/back.jpg")}}'); background-color: #f8f9fa;
background-position: center;
background-size: contain; ">
<div class="row mx-0 bg-black-op">
<div class="hero-static col-md-6 col-xl-8 d-none d-md-flex align-items-md-end" >
<div class="p-30 js-appear-enabled animated fadeIn" data-toggle="appear">
<p class="font-size-h3 font-w600 text-white">
{{e2("Learning without stopping. Recognizing that everything you know can be renewed again.")}}
</p>
<p class="font-italic text-white-op">
{{e2("Copyright")}} © <span class="js-year-copy js-year-copy-enabled">{{e2("1991")}} - {{date('Y')}}</span>
</p>
</div>
</div>
<div style="background-color:#ffffffe6 !important;" class="hero-static text-center col-md-6 col-xl-4 d-flex align-items-center bg-white js-appear-enabled animated fadeInRight" data-toggle="appear" data-class="animated fadeInRight">
<div class="content content-full">
<!-- Header -->
<div class="px-30 py-10">
<a class="link-effect font-w700" href="#">
<img src="{{url("assets/logo.svg")}}" style="width:70%" class="img-fluid" alt="" />
</a>
<h1 class="h3 font-w700 mt-30 mb-10">{{e2("Welcome")}}</h1>
<h2 class="h5 font-w400 text-muted mb-0">{{e2("Please sign in")}}</h2>
<!-- Page Content -->
<div class="bg-image" style="background-image: url('{{url("assets/back.jpg")}}'); background-color: #f8f9fa;
background-position: center;
background-size: contain; ">
<div class="row mx-0 bg-black-op">
<div class="hero-static col-md-6 col-xl-8 d-none d-md-flex align-items-md-end" >
<div class="p-30 js-appear-enabled animated fadeIn" data-toggle="appear">
<p class="font-size-h3 font-w600 text-white">
{{e2("Learning without stopping. Recognizing that everything you know can be renewed again.")}}
</p>
<p class="font-italic text-white-op">
{{e2("Copyright")}} © <span class="js-year-copy js-year-copy-enabled">{{e2("1991")}} - {{date('Y')}}</span>
</p>
</div>
<!-- END Header -->
</div>
<div style="background-color:#ffffffe6 !important;" class="hero-static text-center col-md-6 col-xl-4 d-flex align-items-center bg-white js-appear-enabled animated fadeInRight" data-toggle="appear" data-class="animated fadeInRight">
<div class="content content-full">
<!-- Header -->
<div class="px-30 py-10">
<a class="link-effect font-w700" href="#">
<img src="{{url("assets/citrus-logos/citrus-yatay.svg")}}" style="width:70%" class="img-fluid" alt="" />
</a>
<h1 class="h3 font-w700 mt-30 mb-10">{{e2("Welcome")}}</h1>
<h2 class="h5 font-w400 text-muted mb-0">{{e2("Please sign in")}}</h2>
</div>
<!-- END Header -->
<!-- Sign In Form -->
<!-- jQuery Validation functionality is initialized with .js-validation-signin class in js/pages/op_auth_signin.min.js which was auto compiled from _es6/pages/op_auth_signin.js -->
<!-- For more examples you can check out https://github.com/jzaefferer/jquery-validation -->
<form class="js-validation-signin px-30" action="{{ route('login') }}" method="post" novalidate="novalidate">
@csrf
<div class="form-group row">
<div class="col-12">
<div class="form-material floating">
<input type="text" class="form-control p-4" id="login-username" name="email">
<label for="login-username">{{ __('Username') }}</label>
</div>
@error('email')
<div class="alert alert-danger" >
<strong>{{ $message }}</strong>
</div>
@enderror
</div>
</div>
<div class="form-group row">
<div class="col-12">
<div class="form-material floating">
<input type="password" class="form-control p-4" id="login-password" name="password">
<label for="login-password">{{ __('Password') }}</label>
</div>
@error('password')
<div class="alert alert-danger">
<strong>{{ $message }}</strong>
</div>
@enderror
</div>
</div>
<div class="form-group row">
<div class="col-12">
<div class="custom-control custom-checkbox">
<input type="checkbox" class="custom-control-input" checked id="login-remember-me" name="remember" {{ old('remember') ? 'checked' : '' }}>
<label class="custom-control-label" for="login-remember-me">{{ __('Remember Me') }}</label>
<!-- Sign In Form -->
<!-- jQuery Validation functionality is initialized with .js-validation-signin class in js/pages/op_auth_signin.min.js which was auto compiled from _es6/pages/op_auth_signin.js -->
<!-- For more examples you can check out https://github.com/jzaefferer/jquery-validation -->
<form class="js-validation-signin px-30" action="{{ route('login') }}" method="post" novalidate="novalidate">
@csrf
<div class="form-group row">
<div class="col-12">
<div class="form-material floating">
<input type="text" class="form-control p-4" id="login-username" name="email">
<label for="login-username">{{ __('Username') }}</label>
</div>
@error('email')
<div class="alert alert-danger" >
<strong>{{ $message }}</strong>
</div>
@enderror
</div>
</div>
</div>
<div class="form-group">
<button type="submit" class="btn btn-sm btn-hero btn-alt-primary">
<i class="si si-login mr-10"></i> {{e2("Sign In")}}
</button>
<div class="mt-30 d-none">
<a class="link-effect text-muted mr-10 mb-5 d-inline-block" href="op_auth_signup2.html">
<i class="fa fa-plus mr-5"></i> {{e2("Create Account")}}
</a>
<a class="link-effect text-muted mr-10 mb-5 d-inline-block" href="op_auth_reminder2.html">
<i class="fa fa-warning mr-5"></i> {{e2("Forgot Password")}}
</a>
<div class="form-group row">
<div class="col-12">
<div class="form-material floating">
<input type="password" class="form-control p-4" id="login-password" name="password">
<label for="login-password">{{ __('Password') }}</label>
</div>
@error('password')
<div class="alert alert-danger">
<strong>{{ $message }}</strong>
</div>
@enderror
</div>
</div>
</div>
</form>
<!-- END Sign In Form -->
<div class="form-group row">
<div class="col-12">
<div class="custom-control custom-checkbox">
<input type="checkbox" class="custom-control-input" checked id="login-remember-me" name="remember" {{ old('remember') ? 'checked' : '' }}>
<label class="custom-control-label" for="login-remember-me">{{ __('Remember Me') }}</label>
</div>
</div>
</div>
<div class="form-group">
<button type="submit" class="btn btn-sm btn-hero btn-alt-primary">
<i class="si si-login mr-10"></i> {{e2("Sign In")}}
</button>
<div class="mt-30 d-none">
<a class="link-effect text-muted mr-10 mb-5 d-inline-block" href="op_auth_signup2.html">
<i class="fa fa-plus mr-5"></i> {{e2("Create Account")}}
</a>
<a class="link-effect text-muted mr-10 mb-5 d-inline-block" href="op_auth_reminder2.html">
<i class="fa fa-warning mr-5"></i> {{e2("Forgot Password")}}
</a>
</div>
</div>
</form>
<!-- END Sign In Form -->
</div>
</div>
</div>
</div>
</div>
<!-- END Page Content -->
<!-- END Page Content -->
</main>
<!-- END Main Container -->
</div>
</main>
<!-- END Main Container -->
</div>
@endsection