/*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
*/
// Wait for the deviceready event before using any of Cordova's device APIs.
// See https://cordova.apache.org/docs/en/latest/cordova/events/events.html#deviceready
document.addEventListener('deviceready', onDeviceReady, false);
function onDeviceReady() {
// screen.orientation.lock('potrait');
var i = screen.orientation.lock('portrait');
console.log('Orientation is ' + screen.orientation.type);
}
////// get warna baju //////
function $_GET(param) {
var vars = {};
window.location.href.replace( location.hash, '' ).replace(
/[?&]+([^=&]+)=?([^&]*)?/gi, // regexp
function( m, key, value ) { // callback
vars[key] = value !== undefined ? value : '';
}
);
if ( param ) {
return vars[param] ? vars[param] : null;
}
return vars;
}
var id_desain = $_GET('id');
///// end get warna baju ///////
var list_desain = JSON.parse(localStorage.getItem('simpanan'));
function hapus_desain(){
swal({
title: "Yakin ingin Hapus Desain ini?",
text: "Desain akan terhapus permanen dari aplikasi",
icon: "warning",
buttons: true,
dangerMode: true,
})
.then((logout) => {
if (logout) {
var list_desain_baru = list_desain.filter(function(item){
return item['id'] != id_desain
// console.log(item)
})
// console.log(JSON.stringify(list_desain_baru))
if (JSON.stringify(list_desain_baru) == '[]') {
// console.log("desain tiada")
localStorage.removeItem('simpanan')
window.location.replace("desain_1.html")
}
else
{
localStorage.setItem('simpanan',JSON.stringify(list_desain_baru))
window.location.replace("desain_1.html")
}
}
});
}
// console.log(list_desain)
var baju_color;
var detail_desain;
// console.log(list_desain)
for (var i = 0; i < list_desain.length; i++) {
// console.log(list_desain[i].id);
if (list_desain[i].id == id_desain) {
baju_color = list_desain[i].canvas
detail_desain = list_desain[i].isi_depan;
// console.log(detail_desain)
break;
}
}
$("#sini_div_baju_color").attr("style","background-image: url(assets/img/"+baju_color+"1.JPG); height: 350px; width: 100%;background-size: 100% 100%;");
function toastnya(id,mesej){
toastr.options = {
"closeButton": true,
"debug": false,
"progressBar": true,
"positionClass": "toast-top-right",
"showDuration": "300",
"hideDuration": "1000",
"timeOut": "5000",
"extendedTimeOut": "1000",
"showEasing": "swing",
"hideEasing": "linear",
"showMethod": "fadeIn",
"hideMethod": "fadeOut"
};
toastr.error("
"+mesej+"");
$("#"+id).focus();
}
///// responsive canvas /////
function resizeCanvas() {
const outerCanvasContainer = $('#sini_div_canvas')[0];
const ratio = canvas.getWidth() / canvas.getHeight();
const containerWidth = outerCanvasContainer.clientWidth;
const containerHeight = outerCanvasContainer.clientHeight;
const scale = containerWidth / canvas.getWidth();
const zoom = canvas.getZoom() * scale;
canvas.setDimensions({width: containerWidth, height: outerCanvasContainer.clientHeight});
canvas.setViewportTransform([zoom, 0, 0, zoom, 0, 0]);
}
$("#sini_div_canvas").resize(resizeCanvas);
//// end responsive canvas ///
var canvas = this.__canvas = new fabric.Canvas('c',{width: 900,height: 1050});
canvas.renderTop();
resizeCanvas();
for (var i = 0; i < detail_desain.length; ++i) {
// if (detail_desain[i].kategori == 'segi_empat') {
// segi_empat(detail_desain[i].id,detail_desain[i].angle,detail_desain[i].left,detail_desain[i].top,detail_desain[i].fill,detail_desain[i].width,detail_desain[i].heightdetail_desain[i].stroke)
// console.log(detail_desain[i]);
// }
if (detail_desain[i].kategori == "segi_empat") {
// console.log('ada segi empat')
segi_empat(detail_desain[i].id,detail_desain[i].angle,detail_desain[i].left,detail_desain[i].top,detail_desain[i].fill,detail_desain[i].width,detail_desain[i].height,detail_desain[i].stroke)
}
else if (detail_desain[i].kategori == "segi_tiga") {
// console.log('ada segi empat')
segi_tiga(detail_desain[i].id,detail_desain[i].angle,detail_desain[i].left,detail_desain[i].top,detail_desain[i].fill,detail_desain[i].width,detail_desain[i].height,detail_desain[i].stroke)
}
else if (detail_desain[i].kategori == "lingkaran") {
// console.log('ada segi empat')
segi_lingkaran(detail_desain[i].id,detail_desain[i].angle,detail_desain[i].left,detail_desain[i].top,detail_desain[i].fill,detail_desain[i].radius,detail_desain[i].stroke,detail_desain[i].scaleX,detail_desain[i].scaleY)
}
else if (detail_desain[i].kategori == "free_drawing") {
// console.log('ada segi empat')
free_draw(detail_desain[i].id,detail_desain[i].path,detail_desain[i].left,detail_desain[i].top,detail_desain[i].height,detail_desain[i].width,detail_desain[i].stroke_width,detail_desain[i].stroke)
}
else if (detail_desain[i].kategori == "teks") {
// console.log('ada segi empat')
// tambah_teks(id,input,fill,family,top,left,width,height,scaleX,scaleY)
tambah_teks(detail_desain[i].id,detail_desain[i].input_teks,detail_desain[i].fill,detail_desain[i].fontFamily,detail_desain[i].top,detail_desain[i].left,detail_desain[i].width,detail_desain[i].height,detail_desain[i].angle,detail_desain[i].scaleX,detail_desain[i].scaleY)
}
else if (detail_desain[i].kategori == "foto") {
// console.log('ada segi empat')
// add_image(id,base,scaleX,scaleX,left,top,angle)
add_image(detail_desain[i].id,detail_desain[i].detail,detail_desain[i].scaleX,detail_desain[i].scaleY,detail_desain[i].left,detail_desain[i].top,detail_desain[i].angle )
}
}
function add_image(id,base,scaleX,scaleY,left,top,angle){
var x = document.createElement("IMG");
x.setAttribute("src", base);
x.setAttribute("id", 'img_yg_terupload_'+id);
x.async = true;
document.getElementById("sini_tampung_image").appendChild(x);
setTimeout(function(){
var imgElement = document.getElementById('img_yg_terupload_'+id);
var imgInstance = new fabric.Image(imgElement, {
id : id,
left: left,
top: top,
angle: angle,
opacity: 1,
scaleX : scaleX,
scaleY : scaleY
});
canvas.add(imgInstance);
}, 200)
}
function segi_empat(id,angle,left,top,fillnya,width,height,stroke) {
var rect = new fabric.Rect({
id : id,
// kategori : bentuk,
angle:angle,
left: left,
top: top,
fill: fillnya,
width: width,
height: height,
// objectCaching: true,
stroke: stroke,
strokeWidth: 10,
// padding : 5
});
canvas.add(rect);
}
function segi_tiga(id,angle,left,top,fillnya,width,height,stroke) {
var tri = new fabric.Triangle({
id : id,
// kategori : bentuk,
angle:angle,
left: left,
top: top,
fill: fillnya,
width: width,
height: height,
// objectCaching: true,
stroke: stroke,
strokeWidth: 10,
// padding : 5
});
canvas.add(tri);
}
function segi_lingkaran(id,angle,left,top,fillnya,radius,stroke,scaleX,scaleY) {
var cir = new fabric.Circle({
id : id,
angle:angle,
left: left,
top: top,
fill: fillnya,
radius : radius,
// objectCaching: true,
stroke: stroke,
strokeWidth: 10,
scaleX : scaleX,
scaleY : scaleY
// padding : 5
});
// console.log(cir);
canvas.add(cir);
}
function free_draw(id,path,top,left,height,width,stroke_width,stroke){
var garis = new fabric.Path(path);
garis.set({
id : id,
fill: null,
// top: top,
// left: left,
// height: height,
// width: width,
strokeWidth: stroke_width,
stroke: stroke
});
canvas.add(garis);
}
function tambah_teks(id,input,fill,family,top,left,width,height,angle,scaleX,scaleY){
var text = new fabric.Text(input, {
id : id,
angle:angle,
fill: fill ,
fontSize: 100,
left: left,
top: top,
width : width,
height : height,
fontFamily: family,
scaleX : scaleX,
scaleY : scaleY
});
console.log(text)
canvas.add(text);
}
function desain_belakang(){
console.log(id_desain)
window.location.href ="desain_complete_belakang.html?id="+id_desain;
}
function takeshot() {
var div = document.getElementById('sini_div_canvas');
canvas.backgroundColor=null;
canvas.renderAll();
var canvasnya = canvas;
// Use the html2canvas
// function to take a screenshot
// and append it
// to the output div
html2canvas(div).then(
function (canvas) {
document
.getElementById('output')
.appendChild(canvas);
var base64URL = canvas.toDataURL('image/png');
console.log(base64URL)
$("#ini_untuk_share").attr('onclick',"window.plugins.socialsharing.share(null, 'Irwan T-Shirt Design', '"+base64URL+"', null)");
var x = document.createElement("IMG");
x.setAttribute("src", base64URL);
x.setAttribute("id", 'img_yg_terupload_'+id_desain);
x.async = true;
document.getElementById("sini_tampung_image").appendChild(x);
setTimeout(function(){
$('#ini_untuk_share').trigger('click');
}, 200);
canvasnya.backgroundColor = null;
canvasnya.renderAll();
})
}
async function DownloadToDevice() {
$.blockUI({
message: "Sedang Diproses",
css: {
border: 'none',
padding: '15px',
backgroundColor: '#000',
'-webkit-border-radius': '10px',
'-moz-border-radius': '10px',
opacity: .5,
color: '#fff'
} });
var div = document.getElementById('sini_div_canvas');
canvas.backgroundColor=null;
canvas.renderAll();
await html2canvas(div).then(
function (canvas) {
document
.getElementById('output')
.appendChild(canvas);
var base64URL = canvas.toDataURL('image/png');
$.ajax({
url: "http://irwan.kuwakuwi.com/",
type: 'post',
data: {proses : "ambil_gambar" , base64 : base64URL, id : "desain_depan"+id_desain},
beforeSend: function(res) {
},
success: function (response) {
console.log(response);
},
error: function(XMLHttpRequest, textStatus, errorThrown) {
console.log(errorThrown)
}
});
})
await sleep(3000);
ambil_foto();
}
function ambil_foto(){
var blob = null;
var xhr = new XMLHttpRequest();
xhr.open("GET", "http://irwan.kuwakuwi.com/"+"desain_depan"+id_desain+".png");
xhr.responseType = "blob";//force the HTTP response, response-type header to be blob
xhr.onload = function()
{
blob = xhr.response;//xhr.response is now a blob object
console.log(blob);
var storageLocation = "";
// switch (device.platform) {
// case "Android":
storageLocation = 'file:///storage/emulated/0/';
// break;
// case "iOS":
// storageLocation = cordova.file.documentsDirectory;
// break;
// }
var folderpath = storageLocation + "Download";
var filename = "desain_depan"+id_desain+".png";
var DataBlob = blob;
window.resolveLocalFileSystemURL(folderpath, function(dir) {
dir.getFile(filename, {create:true}, function(file) {
file.createWriter(function(fileWriter) {
fileWriter.write(DataBlob);
toastr.options = {
"closeButton": true,
"debug": false,
"progressBar": true,
"positionClass": "toast-top-right",
"showDuration": "300",
"hideDuration": "1000",
"timeOut": "5000",
"extendedTimeOut": "1000",
"showEasing": "swing",
"hideEasing": "linear",
"showMethod": "fadeIn",
"hideMethod": "fadeOut"
};
toastr.success("Desain Baju Berhasil Disimpan di Folder Download");
//Download was succesfull
}, function(err){
// failed
console.log(err);
});
});
});
}
xhr.send();
$.unblockUI();
canvas.backgroundColor = null;
canvas.renderAll();
}
function sleep(ms) {
return new Promise(resolve => setTimeout(resolve, ms));
}