This commit is contained in:
franknstayn
2020-08-10 00:17:02 -05:00
parent 051d1ec5c9
commit fa9b61f794
4 changed files with 194 additions and 2 deletions

View File

@@ -95,7 +95,16 @@ class AdminController extends Controller
->with('client_design_array', $client_design_array)
->with('order_item_array', $order_item_array);
}
public function downloadPrintFile_mask($dc, $id){
$AdminModel = new AdminModel;
$client_design_array = $AdminModel->selectClientDesign($dc);
$order_item_array = $AdminModel->selectOrderItem('Id', $id);
// var_dump($order_item_array);
return view('admin_pages.download_pages.mask')
->with('client_design_array', $client_design_array)
->with('order_item_array', $order_item_array);
}

View File

@@ -84,6 +84,7 @@ Route::group(['middleware' => 'auth'], function () {
// Download Routes /////////////////
Route::get('orders/download/tshirt/{ck}/{id}', 'admin\AdminController@downloadPrintFile_tshirt');
Route::get('orders/download/jersey/{ck}/{id}', 'admin\AdminController@downloadPrintFile_jersey');
Route::get('orders/download/mask/{ck}/{id}', 'admin\AdminController@downloadPrintFile_mask');
// End Download Routes /////////////
});
});

View File

@@ -0,0 +1,179 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Customize Uniform</title>
<link href="{{asset('/designer/custom-fonts/custom-fonts.php')}}" rel='stylesheet' type='text/css'>
</head>
<body>
<div id="svgFrontContent" style="display:none;"></div>
<p>Please wait... Click here to go <a href="#" id="close_window" >back</a></p>
<canvas id="frontCanvas" width="572px" height="502px" style="border: 1px solid black; display:none"></canvas>
<div id="printFileDiv" style="display:none;"></div>
<form id="myForm" action="{{ url('admin/orders/download') }}" method="post" accept-charset="UTF-8"></form>
<p id="log"></p>
<!-- jQuery 3 -->
<script src="{{ asset('/bower_components/jquery/dist/jquery.min.js') }}"></script>
<!-- fabric js 1.7.20 -->
<script src="http://cdnjs.cloudflare.com/ajax/libs/fabric.js/1.7.20/fabric.min.js"></script>
<!-- curvetext -->
<script src="https://rawgit.com/EffEPi/fabric.curvedText/master/fabric.curvedText.js"></script>
<script>
function logSubmit(event) {
log.textContent = `Form Submitted! Time stamp: ${event.timeStamp}`;
event.preventDefault();
}
/* var dwn = document.getElementById('btndownload'); */
var form = document.getElementById('myForm');
var log = document.getElementById('log');
form.addEventListener('submit', logSubmit);
var frontCanvas = new fabric.StaticCanvas( document.getElementById("frontCanvas"));
tmp_frontCanvas = {!! json_encode($client_design_array[0]->ContentFront) !!};
frontCanvas.loadFromJSON(tmp_frontCanvas, function(objects, options) {
frontCanvas.overlayImage = null;
frontCanvas.renderAll();
setTimeout(function(){
frontCanvas.backgroundImage = 0;
frontCanvas.overlayImage = null;
frontCanvas.clear();
frontCanvas.renderAll();
setTimeout(function(){
frontCanvas.loadFromJSON(tmp_frontCanvas, function(objects, options) {
frontCanvas.overlayImage = null;
frontCanvas.renderAll();
frontCanvas.selection = false;
zoomIn(frontCanvas, "Front");
download(frontCanvas, 'print_file.jpg');
});
},1000);
} ,500);
});
/* dwn.onclick = function(){
download(frontCanvas, 'print_file.');
} */
function download(canvas, filename) {
/// create an "off-screen" anchor tag
var lnk = document.createElement('a'), e;
/// the key here is to set the download attribute of the a tag
lnk.download = filename;
/// convert canvas content to data-uri for link. When download
/// attribute is set the content pointed to by link will be
/// pushed as "download" in HTML5 capable browsers
lnk.href = canvas.toDataURL("image/jpeg;base64");
/// create a "fake" click-event to trigger the download
if (document.createEvent) {
e = document.createEvent("MouseEvents");
e.initMouseEvent("click", true, true, window,
0, 0, 0, 0, 0, false, false, false,
false, 0, null);
lnk.dispatchEvent(e);
} else if (lnk.fireEvent) {
lnk.fireEvent("onclick");
}
}
function zoomIn(canvas, side) {
var canvasScale = 1;
var SCALE_FACTOR = 1.2;
// TODO limit the max canvas zoom in
//Your scale factor is 2.172 (1086/500 = 2.172) or 2.13 (639/300 = 2.13) to be more precise.
// X = WIDTH and Y = HEIGHT
if(side == "Front"){
var SCALE_FACTOR_X = 792 / 572;
var SCALE_FACTOR_Y = 695.164 / 502;
}
canvasScale = canvasScale * SCALE_FACTOR;
canvas.setHeight(canvas.getHeight() * SCALE_FACTOR_Y);
canvas.setWidth(canvas.getWidth() * SCALE_FACTOR_X);
var objects = canvas.getObjects();
for (var i in objects) {
var scaleX = objects[i].scaleX;
var scaleY = objects[i].scaleY;
var left = objects[i].left;
var top = objects[i].top;
var tempScaleX = scaleX * SCALE_FACTOR_X;
var tempScaleY = scaleY * SCALE_FACTOR_Y;
var tempLeft = left * SCALE_FACTOR_X;
var tempTop = top * SCALE_FACTOR_Y;
objects[i].scaleX = tempScaleX;
objects[i].scaleY = tempScaleY;
objects[i].left = tempLeft;
objects[i].top = tempTop;
objects[i].setCoords();
}
canvas.renderAll();
}
function sendSVG(){
var svgText = document.getElementById('printFileDiv').innerHTML;
var form = document.querySelector('form');
// form.setAttribute("method", "post");
// form.setAttribute("id", "frm_svg");
// form.setAttribute("action", "");
// form.setAttribute("accept-charset", "UTF-8");
var hiddenSVGField = document.createElement("input");
hiddenSVGField.setAttribute("type", "hidden");
hiddenSVGField.setAttribute("name", "svgText");
hiddenSVGField.setAttribute("value", svgText);
var hiddenToken = document.createElement("input");
hiddenToken.setAttribute("type", "hidden");
hiddenToken.setAttribute("name", "_token");
hiddenToken.setAttribute("value", "{{ csrf_token() }}");
var hiddenDetails = document.createElement("input");
hiddenDetails.setAttribute("type", "hidden");
hiddenDetails.setAttribute("name", "filename");
hiddenDetails.setAttribute("value", "{{ $order_item_array[0]->ProductName . "_" . $order_item_array[0]->Size }}");
form.appendChild(hiddenSVGField);
form.appendChild(hiddenToken);
form.appendChild(hiddenDetails);
document.body.appendChild(form);
form.submit();
alert("Print file is successfully generated!");
setTimeout(function(){
window.location = "{{ url('admin/orders/view') }}" + "/" + "{{ $order_item_array[0]->CartKey }}"
},2000);
}
</script>
</body>
</html>

View File

@@ -86,7 +86,6 @@
<div class="row">
<div class="col-md-12">
@foreach($item_goup_array as $item)
<div style="border: 1px solid #e2e2e2; padding: 10px; margin-bottom: 10px;">
<div class="row">
<div class="col-md-2">
@@ -127,6 +126,7 @@
<tr>
<th>Price</th>
<th>Quantity</th>
<th></th>
</tr>
@@ -216,6 +216,9 @@
<tr>
<td>{{ $sub_item->Price }}</td>
<td>{{ $sub_item->Quantity }}</td>
<td>
<a href="{{ url('admin/orders/download/mask' . '/' . $sub_item->DesignCode . '/' . $sub_item->Id )}}" class="btn btn-xs btn-primary"><i class="fa fa-download"></i> Download Print File</a>
</td>
</tr>
@elseif($item->FormUsed=="name-number-form")