//net-core-util $path = function() { return "../../"; } function _externLoadComponent(resolv, reject, tag) { fetch("core/comp/comp.php?comp="+tag+"&path="+Comp.path) .then((response) => response.text()) .then((text) => { var json = "//"+ tag + "\n"+text; eval(json); if(newStyle) { var div = document.createElement("DIV"); div.innerHTML = ""; document.body.appendChild(div); } resolv(comp) }) .catch((error) => reject(error)); } async function api(path, data) { var headers = new Headers({ 'Content-type': 'application/x-www-form-urlencoded; charset=UTF-8' }); var request = data? {request :JSON.stringify(data)}:{}; var params = { method: 'post', body: new URLSearchParams(request), headers: headers } var post = await fetch(path,params); var result = {}; var res_text = ""; try { res_text = await post.text(); result = res_text?JSON.parse(res_text):{}; } catch (error) { result = {}; result.error = error result.text = res_text; } return result; } function getLength(input) { return (input && typeof input == "object")? Object.keys(input).length:0; } function getDatetimeString() { var d = new Date(); var year = d.getFullYear(); var month = ("0"+(d.getMonth()+1)).slice(-2) var day = ("0" + d.getDate()).slice(-2); var hours = ("0" + d.getHours()).slice(-2); var mins = ("0" + d.getMinutes()).slice(-2); var secs = ("0" + d.getSeconds()).slice(-2); return year + "-" + month + "-" + day + " " + hours + ":" + mins + ":" +secs; } function filterObj(obj,...keys) { if(!obj || isEmpty(obj)) return {}; console.log(keys); var clone = deepCopy(obj); var output = {}; if(keys) { for(var key in keys) { var obj_key = keys[key]; output[obj_key] = clone[obj_key] } } return output; } function deepCopy(inObj) { var outObj, value, key; if (typeof inObj !== "object" || inObj === null) { return inObj; } // Create an array or object to hold the values outObj = Array.isArray(inObj) ? [] : {} for (key in inObj) { value = inObj[key] // Recursively (deep) copy for nested objects, including arrays outObj[key] = deepCopy(value) } return outObj } function isEmpty(obj) { if(!obj)return true; if(obj.constructor === Object && Object.keys(obj).length === 0) return true; if(obj.constructor === Array && obj.length === 0) return true; return false; } function getKeys(obj) { if(!obj)return []; if(obj.constructor === Object) return Object.keys(obj); if(obj.constructor === Array) return obj.keys(); } function mergeDeep(target, source) { let output = Object.assign({}, target); if (isObject(target) && isObject(source)) { Object.keys(source).forEach(key => { if (isObject(source[key])) { if (!(key in target)) Object.assign(output, { [key]: source[key] }); else output[key] = mergeDeep(target[key], source[key]); } else { Object.assign(output, { [key]: source[key] }); } }); } return output; } function isObject(item) { return (item && typeof item === 'object' && !Array.isArray(item)); } var Util= { getAuthData(user) { var auth_data = {}; var result = ""; var characters = "0123456789101112131415ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"; var charactersLength = characters.length; for (var i = 0; i < 34; i++) { result += characters.charAt(Math.floor(Math.random() * charactersLength)); } auth_data.auth_hash = result; var date_time_created = this.formatDateTime(new Date()); auth_data.auth_created = date_time_created; var login_date = new Date(); login_date.setDate(login_date.getDate()); var date_time_login = this.formatDateTime(login_date); auth_data.auth_logged_in = date_time_login; auth_data.auth_deleted = 0; auth_data.user_id = user.id; return auth_data; }, getData(api) { var res = api.response||{}; return res.data || {}; }, setTableAction(table,action,request) { request =request|| {}; request.table = table; request.action = action; return request; }, formatDateTime(date) { var dd = String(date.getDate()).padStart(2, '0'); var mm = String(date.getMonth() + 1).padStart(2, '0'); var yyyy = date.getFullYear(); var time = date.toString().split(' ')[4]; date = yyyy + '-' + mm + '-' + dd + ' ' + time; return date; }, validateEmail(email_address) { var error = true; var mail_format = /[^@]+@[^.]+\.[^.]+/g; if (!email_address.match(mail_format)) { error = false; } return error; }, isNumber(num) { var valid_chars = "0123456789"; var is_number = true; var char; for (i = 0; i < num.length && is_number == true; i++) { char = num.charAt(i); if (valid_chars.indexOf(char) == -1) is_number = false; } return is_number; } } //net-core-comp Comp = function(){} Comp.initMain = function(comp,input_data) { this.vue = new Vue ({ el:"#main", data: { comp:"", compProps:null, }, created() { Comp.Load(this,comp,input_data); }, methods: { vFire(comp,event_name,data) { var parms = {}; parms.data = data; parms.path = this.getCompPath(comp); this.$emit(event_name,parms); } , vHook(comp,event_name,call,fire_path) { if(!this.hooks) this.hooks = {}; var hook = {} hook.event_name = event_name; hook.call = call; hook.path = fire_path; this.hooks[this.getCompPath(comp)] = hook; var event = this._events[event_name]; if(!event) { this.$on(event_name,e=> { for(var path in this.hooks) { var hook = this.hooks[path]; if(hook.event_name == event_name) { var canHook = true; if(hook.path && e.path != hook.path)canHook = false; if(canHook && hook.call && typeof hook.call == "function") hook.call(e); } } }); } }, isEmpty(val) { return isEmpty(val); }, debug(val) { console.log("debug",val); return "test!"; }, getCompPath(comp) { var path = comp.$vnode.tag; return path.substring(16, path.length); } } }); } Comp.vFire = function(comp,event_name,data) { this.vue.vFire(comp,event_name,data); } Comp.vHook = function(comp,event_name,call,fire_path) { this.vue.vHook(comp,event_name,call,fire_path); } Comp.setPath = function(path) { this.path = path; } Comp.Load = function(comp,comp_path,comp_data) { if(!comp) console.info("No Comp"); if(comp_path.substr(0,1)=="/") comp_path = "net"+comp_path.replace(/\//g,"-"); comp.comp = comp_path; if(!comp_data) comp_data = {}; comp.compProps = comp_data; } //net-main window.onload = async function() { Comp.setPath($path()); Comp.initMain("/comp/home_main"); // Comp.initMain("/comp/coming_soon"); await api("./data/db_init.php"); } window.unload = async function() { window.localStorage.removeItem("competition"); } async function comp_api(data={}) { return await api("./core/db/api.php",data)||{}; } //net-main-methods-auth var Auth = { save(data) { var auth_data = DB.save("auth",data); return auth_data; }, deleteAuth(data) { DB.deleteAuth("auth",data); }, getAuthFromAuthHash(data) { var auth_data = DB.getAuthFromAuthHash("auth",data); return auth_data; } } //net-main-methods-client var Client = { save(data) { var client_data = DB.save("client",data); return client_data; }, edit(data) { var client_data = DB.edit("client",data); return client_data; }, getClientIdFromUserId(data) { var client_id = DB.fetchClientId("user_client", data); return client_id; }, getClientIdFromOrderId(data) { var client_id = DB.getClientIdFromOrderId("client_order", data); return client_id; }, getClientFromClientId(data) { var client_data = DB.fetchClientFromClientId("client", data); return client_data; }, fetchClientFromEmail(email) { var client_data = DB.fetchClientFromClientEmail("client", email); return client_data; } } //net-main-methods-client_order_link var ClientOrderLink = { save(order_id, client_id) { var client_order_link = {}; client_order_link.order_id = order_id; client_order_link.client_id = client_id; console.log(client_order_link) var client_data = DB.save("client_order", client_order_link); return client_data; } } //net-main-methods-contact_us var ContactUs = { save(data) { var contact_us = DB.save("contact_us",data); return contact_us; } } //net-main-methods-db var DB = { async setlink(table,parent_id,child_type,child_id,data,id) { request = Util.setTableAction(table,"update"); request.data ={}; request.data.parent_id = parent_id; request.data.child_type = child_type; request.data.child_id = child_id; if(data)request.data.data = JSON.stringify(data); if(id)request.data.id = id; return await comp_api(request); }, async getLinks(table,parent,parent_id,child_type,child_id,request) { request = Util.setTableAction(table,"list",request); request.join = "INNER JOIN "+child_type+" ON "+child_type+".id = child_id "; request.join += "INNER JOIN "+parent+" ON "+parent+".id = parent_id "; if(child_type)request.where = "WHERE child_type = '"+child_type+"' "; if(parent_id)request.where += "WHERE parent_id="+parent_id+" "; if(child_id)request.where += "WHERE child_id = "+child_id; return Util.getData(await comp_api(request)||{}); }, async removeLinks(table,client_id,child) { if(!client_id && isEmpty(child)) return {}; request = Util.setTableAction(table,"delete"); request.data = {} if(!isEmpty(child)) { request.data.where = "WHERE child_id = " +child.id+" "; request.data.where += "WHERE child_type = '" +child.type+"' "; } else if(client_id)request.data.where = "WHERE client_id = " +client_id; return request.data.where ? await comp_api(request):{}; }, async save(table,data) { if(!data) return {}; request = Util.setTableAction(table,"update"); request.data = data; var save_data = Util.getData(await comp_api(request)); return save_data; }, async edit(table,data) { if(!data) return {}; request = Util.setTableAction(table,"edit_address"); request.data = data; var save_data = Util.getData(await comp_api(request)); return save_data; }, async fetchUser(table,data) { if(!data) return {}; request = Util.setTableAction(table,"select_user"); request.data = data; var user_fetch = Util.getData(await comp_api(request)); return user_fetch; }, async fetchClientId(table,data) { if(!data) return {}; request = Util.setTableAction(table,"select_client_id"); request.data = data; var user_fetch = Util.getData(await comp_api(request)); return user_fetch; }, async getUserIdFromClientId(table,data) { if(!data) return {}; request = Util.setTableAction(table,"get_user_id_from_client_id"); request.data = data; var user_fetch = Util.getData(await comp_api(request)); return user_fetch; }, async getClientIdFromOrderId(table,data) { if(!data) return {}; request = Util.setTableAction(table,"get_client_id_from_order_id"); request.data = data; var user_fetch = Util.getData(await comp_api(request)); return user_fetch; }, async fetchClientFromClientId(table,data) { if(!data) return {}; request = Util.setTableAction(table,"select_client_from_client_id"); request.data = data; var user_fetch = Util.getData(await comp_api(request)); return user_fetch; }, async fetchClientFromClientEmail(table,data) { if(!data) return {}; request = Util.setTableAction(table,"select_client_from_client_email"); request.data = data; var user_fetch = Util.getData(await comp_api(request)); return user_fetch; }, async getAuthFromAuthHash(table,data) { if(!data) return {}; request = Util.setTableAction(table,"select_auth_from_auth_hash"); request.data = data; var user_fetch = Util.getData(await comp_api(request)); return user_fetch; }, async getUserFromUserId(table,data) { if(!data) return {}; request = Util.setTableAction(table,"get_user_from_user_id"); request.data = data; var user_fetch = Util.getData(await comp_api(request)); return user_fetch; }, async deleteAuth(table,data) { if(!data) return {}; request = Util.setTableAction(table,"delete_auth"); request.data = data; var save_data = Util.getData(await comp_api(request)); return save_data; }, async getOrderFromOrderNumber(table,data) { if(!data) return {}; request = Util.setTableAction(table,"get_order_from_order_number"); request.data = data; var user_fetch = Util.getData(await comp_api(request)); return user_fetch; }, async editOrder(table,data) { if(!data) return {}; request = Util.setTableAction(table,"edit_order"); request.data = data; var edit_data = Util.getData(await comp_api(request)); return edit_data; }, async getOrders(table,data) { if(!data) return {}; request = Util.setTableAction(table,"get_orders"); request.data = data; var order_fetch = Util.getData(await comp_api(request)); return order_fetch; }, } //net-main-methods-order var Order = { save(order, date, order_number, pickup_date, pic_del, order_cancelled, payment_type) { var order_data = {}; order_data.data = JSON.stringify(order); order_data.date_order = date; order_data.order_number = order_number; order_data.pic_del_date = pickup_date; order_data.pic_del = pic_del; order_data.order_cancelled = order_cancelled; order_data.payment_type = payment_type; var order_data = DB.save("order_info",order_data); return order_data; }, getOrderFromOrderNumber(data) { var client_id = DB.getOrderFromOrderNumber("order_info", data); return client_id; }, cancelOrder(order_number, order_cancelled) { var order_data = {}; order_data.order_cancelled = order_cancelled order_data.order_number = order_number; var order_data = DB.editOrder("order_info",order_data); return order_data; }, getOrders(from_date, to_date) { var order_data = {}; order_data.from_date = from_date; order_data.to_date = to_date; var order = DB.getOrders("order_info",order_data); return order; } } //net-main-methods-user var User = { save(data) { var user_data = DB.save("user",data); return user_data; }, getUserFromUserId(data) { var user_data = DB.getUserFromUserId("user",data); return user_data; }, getUserIdFromClientId(data) { var client_id = DB.getUserIdFromClientId("user_client", data); return client_id; }, } //net-main-methods-user_link_client var UserLinkClient = { save(user_id, client_id) { var user_link_client = {}; user_link_client.user_id = user_id; user_link_client.client_id = client_id; var client_data = DB.save("user_client", user_link_client); return client_data; } } //net-main-methods-user_login var UserLogin = { fetchUser(data) { var user_data = DB.fetchUser("user",data); return user_data; } }