saving new visualizer done

This commit is contained in:
franknstayn
2020-01-04 18:35:48 +08:00
parent 168c59f6cf
commit 3ec1b08d13
4 changed files with 266 additions and 68 deletions

View File

@@ -689,10 +689,168 @@ class AdminController extends Controller
public function saveNewVisualizer(Request $request){
$post = $request->all();
$AdminModel = new AdminModel;
$tmp_arr_visualizer_pattern = array();
$template_thumbnail_path = "templates/thumbnail/";
$template_path = "uniform-templates/";
foreach($post['visualizer_pattern'] as $item_visualizer){
$arr_visualizer_pattern = explode("##", $item_visualizer);
array_push($tmp_arr_visualizer_pattern, $arr_visualizer_pattern['0']);
}
$orig_visualizer_thumbnail_filename = $request->file('visualizer_thumbnail')->getClientOriginalName();
$new_visualizer_thumbnail_filename = $this->generateFileName($orig_visualizer_thumbnail_filename);
Storage::disk('uploads')->put($template_thumbnail_path . $new_visualizer_thumbnail_filename, fopen($request->file('visualizer_thumbnail'), 'r+'));
$final_arr_visualizer_pattern = implode(",", $tmp_arr_visualizer_pattern);
$data = array(
'SportsId' => $post['sportName'],
'Category' => $post['sport_category'],
'Thumbnail' => $template_thumbnail_path . $new_visualizer_thumbnail_filename,
'TemplateName' => $post['visualizer_name'],
'Trim' => $post['numberOfTrims'],
'PatternId' => $final_arr_visualizer_pattern,
'WithGradient' => ($post['visualizer_format'] == "png") ? 'no' : null,
'TemplateFormat'=> $post['visualizer_format'],
'IsActive' => "TRUE"
);
$res_saveNewVisualizer = $AdminModel->saveNewVisualizer($data);
$templateCode = "TEMP-" . str_pad($res_saveNewVisualizer['lastId'], 5,'0',STR_PAD_LEFT);
$data_to_update = array(
'TemplateCode' => $templateCode ,
'HashTemplateCode' => md5($templateCode)
);
$res_updateVisualizer = $AdminModel->updateVisualizer($res_saveNewVisualizer['lastId'], $data_to_update);
$data_def_main_color = array(
'TemplateCode' => $templateCode ,
'RGBColor' => $post['main_body_def_color'],
'DisplayName' => $post['main_body_label']
);
$res_saveVisualizerDefaultBodyColor = $AdminModel->saveVisualizerDefaultBodyColor($data_def_main_color);
if($post['numberOfTrims'] != 0){
for($i = 0; $i < $post['numberOfTrims']; $i++){
$t = $i + 1;
$data_def_trim_color = array(
'TrimNumber' => $t,
'TemplateCode' => $templateCode,
'RGBColor' => $post['trim_def_color'][$i],
'DisplayName' => $post['trim_label'][$i]
);
$AdminModel->saveVisualizerDefaultTrimColor($data_def_trim_color);
}
}
// front saving
if(isset($post['front_visualizer'])){
$orig_front_visualize_filename = $request->file('front_visualizer')->getClientOriginalName();
$new_front_visualize_filename = $this->generateFileName($orig_front_visualize_filename);
Storage::disk('uploads')->put($template_path . $templateCode . '/DISPLAY/' . $new_front_visualize_filename, fopen($request->file('front_visualizer'), 'r+'));
$data_front_visualizer = array(
'TemplateCode' => $templateCode ,
'HashTemplateCode' => md5($templateCode),
'Type' => $post['front_visualizer_type'],
'Side' => "Front",
'Path' => $template_path . $templateCode . '/DISPLAY/' . $new_front_visualize_filename,
'TemplateFormat' => $post['visualizer_format'],
'IsActive' => "TRUE"
);
$AdminModel->saveVisualizerPath($data_front_visualizer);
// var_dump($data_front_visualizer);
}
// back saving
if(isset($post['back_visualizer'])){
$orig_front_visualize_filename = $request->file('back_visualizer')->getClientOriginalName();
$new_back_visualize_filename = $this->generateFileName($orig_front_visualize_filename);
Storage::disk('uploads')->put($template_path . $templateCode . '/DISPLAY/' . $new_back_visualize_filename, fopen($request->file('back_visualizer'), 'r+'));
$data_back_visualizer = array(
'TemplateCode' => $templateCode ,
'HashTemplateCode' => md5($templateCode),
'Type' => $post['back_visualizer_type'],
'Side' => "Back",
'Path' => $template_path . $templateCode . '/DISPLAY/' . $new_back_visualize_filename,
'TemplateFormat' => $post['visualizer_format'],
'IsActive' => "TRUE"
);
$AdminModel->saveVisualizerPath($data_back_visualizer);
}
// right saving
if(isset($post['right_visualizer'])){
$orig_right_visualize_filename = $request->file('right_visualizer')->getClientOriginalName();
$new_right_visualize_filename = $this->generateFileName($orig_right_visualize_filename);
Storage::disk('uploads')->put($template_path . $templateCode . '/DISPLAY/' . $new_right_visualize_filename, fopen($request->file('right_visualizer'), 'r+'));
$data_right_visualizer = array(
'TemplateCode' => $templateCode ,
'HashTemplateCode' => md5($templateCode),
'Type' => $post['right_visualizer_type'],
'Side' => "Right",
'Path' => $template_path . $templateCode . '/DISPLAY/' . $new_right_visualize_filename,
'TemplateFormat' => $post['visualizer_format'],
'IsActive' => "TRUE"
);
$AdminModel->saveVisualizerPath($data_right_visualizer);
}
// left saving
if(isset($post['left_visualizer'])){
$orig_left_visualize_filename = $request->file('left_visualizer')->getClientOriginalName();
$new_left_visualize_filename = $this->generateFileName($orig_left_visualize_filename);
Storage::disk('uploads')->put($template_path . $templateCode . '/DISPLAY/' . $new_left_visualize_filename, fopen($request->file('left_visualizer'), 'r+'));
$data_left_visualizer = array(
'TemplateCode' => $templateCode ,
'HashTemplateCode' => md5($templateCode),
'Type' => $post['left_visualizer_type'],
'Side' => "Left",
'Path' => $template_path . $templateCode . '/DISPLAY/' . $new_left_visualize_filename,
'TemplateFormat' => $post['visualizer_format'],
'IsActive' => "TRUE"
);
$AdminModel->saveVisualizerPath($data_left_visualizer);
}
return response()->json(array(
'success' => true,
'message' => "Visualizer is successfully added."
));
var_dump($post);
}
public function generateFileName($filename){
$lower_filename = str_replace(' ','-',strtolower($filename));
$getExt = substr($lower_filename, strrpos($lower_filename, '.'));;
$clean_filename = preg_replace("/\.[^.\s]{3,4}$/", "", $lower_filename);
$final_filename = date('Ymd') . "-" . time().'-' . $clean_filename . "-".$getExt;
return $final_filename;
}
}

View File

@@ -258,4 +258,39 @@ class AdminModel extends Model
->get();
return $i;
}
function saveNewVisualizer($data){
$i = DB::table('templates')->insert($data);
$id = DB::getPdo()->lastInsertId();
return array(
'i' => $i,
'lastId' => $id
);
}
function updateVisualizer($id, $data){
$i = DB::table('templates')
->where("Id", $id)
->update($data);
return $i;
}
function saveVisualizerDefaultBodyColor($data){
$i = DB::table('template_body_colors')->insert($data);
return $i;
}
function saveVisualizerDefaultTrimColor($data){
$i = DB::table('template_trim_colors')->insert($data);
return $i;
}
function saveVisualizerPath($data){
$i = DB::table('template_paths')->insert($data);
return $i;
}
}

View File

@@ -208,6 +208,8 @@ desired effect
<script src="{{ asset('/bower_components/jquery/dist/jquery.min.js') }}"></script>
<!-- Bootstrap 3.3.7 -->
<script src="{{ asset('/bower_components/bootstrap/dist/js/bootstrap.min.js') }}"></script>
{{-- spectrum --}}
<script src="http://bgrins.github.com/spectrum/spectrum.js"></script>
<!-- DataTables -->
<script src="{{ asset('/bower_components/datatables.net/js/jquery.dataTables.min.js') }}"></script>
<script src="{{ asset('/bower_components/datatables.net-bs/js/dataTables.bootstrap.min.js') }}"></script>
@@ -234,8 +236,7 @@ desired effect
<script src="{{ asset('/bower_components/select2/dist/js/select2.min.js') }}"></script>
<!-- jquery-ui -->
<script src="https://code.jquery.com/ui/1.12.1/jquery-ui.js"></script>
{{-- spectrum --}}
<script src="http://bgrins.github.com/spectrum/spectrum.js"></script>
<script>
$(document).ready(function() {
@@ -774,7 +775,7 @@ desired effect
height: normal_obj.getHeight()
}
});
console.log(new FormData($('#frm_clipart')[0]))
$.ajax({
type: "POST",
url : "{{ url('admin/clipart/save-svg-clipart') }}",
@@ -927,20 +928,20 @@ desired effect
$('#list_of_trims').append('<div class="form-group"> ' +
'<label class="col-sm-4 control-label">Set Default Trim Color</label> ' +
'<div class="col-sm-6"> ' +
' <input type="text" class="form-control" value="Trim '+i+'"> ' +
' <input type="text" name="trim_label[]" class="form-control" value="Trim '+i+'"> ' +
'</div> ' +
'<div class="col-sm-2"> ' +
' <input type="color" class="colorPicker-trim form-control"> ' +
' <input type="hidden" name="trim_def_color[]" class="colorPicker-trim" value="#FFFFFF" form-control"> ' +
'</div> ' +
'</div>');
}else{
$('#list_of_trims').append('<div class="form-group"> ' +
'<label class="col-sm-4 control-label">&nbsp;</label> ' +
'<div class="col-sm-6"> ' +
' <input type="text" class="form-control" value="Trim '+i+'"> ' +
' <input type="text" name="trim_label[]" class="form-control" value="Trim '+i+'"> ' +
'</div> ' +
'<div class="col-sm-2"> ' +
' <input type="color" class="colorPicker-trim form-control"> ' +
' <input type="hidden" name="trim_def_color[]" class="colorPicker-trim" value="#FFFFFF" form-control"> ' +
'</div> ' +
'</div>');
}
@@ -953,7 +954,8 @@ desired effect
$(".colorPicker").spectrum({
preferredFormat: "rgb",
showInput: true
showInput: true,
localStorageKey: "spectrum.demo",
});
@@ -1012,9 +1014,9 @@ desired effect
$("#frm_addnew_visualizer").validate({
rules: {
// store_name: {
// required: true
// },
sportName: {
required: true
}
// store_url: {
// required: true
// },
@@ -1066,8 +1068,11 @@ desired effect
function callSpectrumApi(){
$(".colorPicker-trim").spectrum({
preferredFormat: "rgb",
showInput: true
showInput: true,
localStorageKey: "spectrum.demo",
});
}
@@ -1179,8 +1184,8 @@ desired effect
contentType: false,
dataType: 'json',
beforeSend: function(xhr){
$("#submitTemplateBtn").attr('disabled', true);
$("#submitTemplateBtn").html('<i class="fa fa-spinner fa-spin"></i> Saving...');
// $("#submitTemplateBtn").attr('disabled', true);
// $("#submitTemplateBtn").html('<i class="fa fa-spinner fa-spin"></i> Saving...');
var token = $('meta[name="csrf_token"]').attr('content');
@@ -1191,39 +1196,11 @@ desired effect
},
success: function (response) {
console.log(response);
// if(response.success){
// $('#create_store_msg').html('<div class="alert alert-success alert-dismissible"> ' +
// '<button type="button" class="close" data-dismiss="alert" aria-hidden="true">×</button> ' +
// '<h4><i class="icon fa fa-check"></i> Success!</h4> ' +
// '<p>'+response.message+'</p> ' +
// '</div>').fadeIn().delay(5000).fadeOut();
// }else{
// $('#create_store_msg').html('<div class="alert alert-danger alert-dismissible"> ' +
// '<button type="button" class="close" data-dismiss="alert" aria-hidden="true">×</button> ' +
// '<h4><i class="icon fa fa-ban"></i> Error!</h4> ' +
// '<p>'+response.message+'</p> ' +
// '</div>').fadeIn().delay(5000).fadeOut();
// }
// $("html, body").animate({ scrollTop: 0 }, "slow");
// $("#btn_save_new_store").attr('disabled', false);
// $("#btn_save_new_store").html('Save');
// if(response.clearform){
// var form = $('#frm_create_store')
// form.validate().resetForm();
// form[0].reset();
// // $("#with_password_opt").prop("checked", false);
// $('.img_store_logo_href').attr('href', "{{ config('site_config.images_directory') . 'teamstore/store-logo-placeholder.jpg' }}");
// $('.img_store_logo_img').attr('src', "{{ config('site_config.images_directory') . 'teamstore/store-logo-placeholder.jpg' }}");
// $('.img_store_banner_href').attr('href', "{{ config('site_config.images_directory') . 'teamstore/store-banner-placeholder.jpg' }}");
// $('.img_store_banner_img').attr('src', "{{ config('site_config.images_directory') . 'teamstore/store-banner-placeholder.jpg' }}");
// }
console.log(response)
if(response.success){
alert(response.message);
location.reload();
}
}
});
return false;

View File

@@ -256,7 +256,7 @@
<div class="form-group">
<label class="col-sm-4 control-label">Visualizer Name</label>
<div class="col-sm-8">
<input type="text" class="form-control" name="templateName" placeholder="Visualizer Name" />
<input type="text" class="form-control" name="visualizer_name" placeholder="Visualizer Name" />
</div>
</div>
{{-- <div class="form-group">
@@ -273,11 +273,7 @@
</select> --}}
<select class="form-control" id='select2_select_pattern' name="visualizer_pattern[]" multiple="multiple" style='min-width:200px'>
@foreach ($pattern_array as $pattern)
@if ($pattern->PatternName == "None")
<option selected disabled="disabled" value="{{ $pattern->PatternId . '##' . $pattern->PatternThumbnail .'##' . $pattern->NoOFColor . '##' . $pattern->Opacity . '##' . $pattern->Gradient }}"> {{ $pattern->PatternName }}</option>
@else
<option value="{{ $pattern->PatternId . '##' . $pattern->PatternThumbnail .'##' . $pattern->NoOFColor . '##' . $pattern->Opacity . '##' . $pattern->Gradient }}"> {{ $pattern->PatternName }}</option>
@endif
<option value="{{ $pattern->PatternId . '##' . $pattern->PatternThumbnail .'##' . $pattern->NoOFColor . '##' . $pattern->Opacity . '##' . $pattern->Gradient }}"> {{ $pattern->PatternName }}</option>
@endforeach
</select>
</div>
@@ -285,7 +281,7 @@
<div class="form-group">
<label class="col-sm-4 control-label">Add Thumbnail</label>
<div class="col-sm-8">
<input type="file" data-use-id="img_store_logo" class="form-control upload_img" name="store_logo" reqiured="required" />
<input type="file" data-use-id="img_store_logo" class="form-control upload_img" name="visualizer_thumbnail" reqiured="required" />
</div>
</div>
<div class="form-group" >
@@ -316,9 +312,17 @@
</div>
<div class="col-sm-6">
<div class="form-group">
<label class="col-sm-4 control-label">Front</label>
<div class="col-sm-8">
<label class="col-sm-2 control-label">Front</label>
<div class="col-sm-10">
<div class="input-group">
<span class="input-group-btn">
<select name="front_visualizer_type" class="form-control" style="width:100px;">
<option>Jersey</option>
<option>Shorts</option>
<option>Shirts</option>
<option>Hoodie</option>
</select>
</span>
<input type="file" name="front_visualizer" data-use-id="front_visualizer" class="form-control upload-visualizer">
<span class="input-group-btn">
<button data-visualizer="#" class="btn btn-primary front_visualizer_href btn-preview-visualizer" type="button">
@@ -331,9 +335,17 @@
</div>
<div class="form-group">
<label class="col-sm-4 control-label">Back</label>
<div class="col-sm-8">
<label class="col-sm-2 control-label">Back</label>
<div class="col-sm-10">
<div class="input-group">
<span class="input-group-btn">
<select name="back_visualizer_type" class="form-control" style="width:100px;">
<option>Jersey</option>
<option>Shorts</option>
<option>Shirts</option>
<option>Hoodie</option>
</select>
</span>
<input type="file" name="back_visualizer" data-use-id="back_visualizer" class="form-control upload-visualizer">
<span class="input-group-btn">
<button data-visualizer="#" class="btn btn-primary back_visualizer_href btn-preview-visualizer" type="button">
@@ -346,9 +358,17 @@
</div>
<div class="form-group">
<label class="col-sm-4 control-label">Right</label>
<div class="col-sm-8">
<label class="col-sm-2 control-label">Right</label>
<div class="col-sm-10">
<div class="input-group">
<span class="input-group-btn">
<select name="right_visualizer_type" class="form-control" style="width:100px;">
<option>Jersey</option>
<option>Shorts</option>
<option>Shirts</option>
<option>Hoodie</option>
</select>
</span>
<input type="file" name="right_visualizer" data-use-id="right_visualizer" class="form-control upload-visualizer">
<span class="input-group-btn">
<button data-visualizer="#" class="btn btn-primary right_visualizer_href btn-preview-visualizer" type="button">
@@ -360,9 +380,17 @@
</div>
</div>
<div class="form-group">
<label class="col-sm-4 control-label">Left</label>
<div class="col-sm-8">
<label class="col-sm-2 control-label">Left</label>
<div class="col-sm-10">
<div class="input-group">
<span class="input-group-btn">
<select name="left_visualizer_type" class="form-control" style="width:100px;">
<option>Jersey</option>
<option>Shorts</option>
<option>Shirts</option>
<option>Hoodie</option>
</select>
</span>
<input type="file" name="left_visualizer" data-use-id="left_visualizer" class="form-control upload-visualizer">
<span class="input-group-btn">
<button data-visualizer="#" class="btn btn-primary left_visualizer_href btn-preview-visualizer" type="button">
@@ -377,9 +405,9 @@
<div class="col-sm-6">
<div class="form-group">
<label class="col-sm-4 control-label">Select Visualizer Type</label>
<label class="col-sm-4 control-label">Select Visualizer Format</label>
<div class="col-sm-8">
<select class="form-control" name="visualizerType">
<select class="form-control" name="visualizer_format">
<option value="svg">SVG</option>
<option value="png">PNG</option>
</select>
@@ -388,10 +416,10 @@
<div class="form-group">
<label class="col-sm-4 control-label">Set Default Body Color</label>
<div class="col-sm-6">
<input type="text" class="form-control" value="Main Body" placeholder="Set Default Body Color">
<input type="text" class="form-control" name="main_body_label" value="Main Body" placeholder="Set Default Body Color">
</div>
<div class="col-sm-2">
<input type="color" class="colorPicker form-control">
<input type="hidden" name="main_body_def_color" value="#e2e2e2" class="colorPicker form-control">
</div>
</div>
<div class="form-group">
@@ -422,7 +450,7 @@
<p>You have successfully completed every steps.</p>
<ul class="list-inline pull-right">
<li><button type="button" class="btn btn-default prev-step"><i class="fa fa-long-arrow-left" aria-hidden="true"></i> Previous</button></li>
<li><button id="submitTemplateBtn" class="btn btn-primary btn-info-full next-step">Save new template</button></li>
<li><button type="submit" id="submitTemplateBtn" class="btn btn-primary btn-info-full next-step">Save new template</button></li>
</ul>
</div>
<!-- <div class="clearfix"></div> -->