To register on the focca website/app you either need to use your exisitng Woo ID or create a new one (see below).
Sign Up
Why sign up?
Get access to Registered User's priviledges, which may include hidden pages, special features and special pricing, if they exist, on this website.
Get access to all sites powered by Woo without having to enter your details everytime.
Sign In
Email Address (Woo ID)PasswordForgot Your Password?
User Name or Password is incorrect.
What is a Woo ID help
menu
shopping_cart
0
Cookies are disabled in your browser. This site requires cookies to manage your shopping cart.
Learn how to enable cookies.
login
lock
To register on the focca website/app you either need to use your exisitng Woo ID or create a new one (see below).
Sign Up
Why sign up?
Get access to Registered User's priviledges, which may include hidden pages, special features and special pricing, if they exist, on this website.
Get access to all sites powered by Woo without having to enter your details everytime.
Sign In
Email Address (Woo ID)PasswordForgot Your Password?
User Name or Password is incorrect.
What is a Woo ID help
shopping_cart
0
Cookies are disabled in your browser. This site requires cookies to manage your shopping cart.
Learn how to enable cookies.
menu
made with our own handcrafted freshly baked, fluffy, and lightly toasted Foccacia bread infused with olive oil garlic and thyme.
Healthy, delicious gourmet focaccia sandwiches
Focca offers delicious gourmet sandwiches, with vibrant healthy flavours—all on our own handcrafted focaccia bread.
NOTE: Focca makes all its own bread, toppings and sauces from healthy, locally sourced, natural ingredients. All our sauces (except mushroom sauce) are also dairy free.
Available every Saturday at The Shed Collective (8.30am-12.00pm) and Sunday at the Grey Lynn Market (8.30am - 12.00pm)
var woo_appProperties = (function() {
var woo_appProperties_Global = {};
var self = document.getElementById('woo_appProperties');
self.classList.add("woo-ui-gadget");
woo_appProperties_Global.unload = () => {
//Unload callbacks here
console.log("Unloaded woo_appProperties");
}
return woo_appProperties_Global;
})();var gkxwvsqf_20248415557__820_857 = (function() {
var self = document.getElementById('gkxwvsqf_20248415557__820_857');
var gkxwvsqf_20248415557__820_857_Global = {};
gkxwvsqf_20248415557__820_857_Global.unload = () => {
//Unload callbacks here
console.log("Unloaded gkxwvsqf_20248415557__820_857");
}
return gkxwvsqf_20248415557__820_857_Global;
})();var gkxwvsqf_202494204618_139 = (function() {
var self = document.getElementById('gkxwvsqf_202494204618_139');
var gkxwvsqf_202494204618_139_Global = {};
gkxwvsqf_202494204618_139_Global.unload = () => {
//Unload callbacks here
console.log("Unloaded gkxwvsqf_202494204618_139");
}
return gkxwvsqf_202494204618_139_Global;
})();var gkxwvsqf_202382815548_882_561_699 = (function() {
var self = document.getElementById('gkxwvsqf_202382815548_882_561_699');
//self.classList.add("sun_editor_content");
var gkxwvsqf_202382815548_882_561_699_Global = {};
gkxwvsqf_202382815548_882_561_699_Global.unload = () => {
//Unload callbacks here
console.log("Unloaded gkxwvsqf_202382815548_882_561_699");
}
return gkxwvsqf_202382815548_882_561_699_Global;
})();var gkxwvsqf_2025518171012__372_743 = (function() {
var self = document.getElementById('gkxwvsqf_2025518171012__372_743');
var gkxwvsqf_2025518171012__372_743_Global = {};
var merchantCouchDB,
merchantPouchDB,
invoiceSettingsData;
var thisUsersRoles = [];
if (woo.sessionData){
thisUsersRoles = woo.sessionData.roles;
};
function formatDollar(value) {
var tlS = "en-NZ";
var code = "NZD";
if (invoiceSettingsData) {
tlS = invoiceSettingsData.defaultCurrencyTLS;
code = invoiceSettingsData.defaultCurrencyType;
}
return parseFloat(value).toLocaleString(tlS, {
style: 'currency',
currency: code,
minimumFractionDigits: 2,
maximumFractionDigits: 2
});
}
function getInvoiceData(){
return new Promise((resolve) => {
var url = woo.getRemoteCouch() + "/focca$public/focca-invoice-settings";
var data = {}
resolve(woo.queryCouch(url, "GET", data));
});
}
function getStockTemplateById(queryStr, bookmark, resultsArr) {
return new Promise((resolve, reject) => {
$.ajax({
type: "POST",
url: woo.getRemoteCouch() + "/stock$focca-stock-templates/_find",
headers: {
"Content-Type": "application/json",
"Accept": "application/json"
},
xhrFields: {
withCredentials: true
},
crossDomain: true,
json: true,
processData: true,
cache: false,
timeout: 10000,
data: JSON.stringify({
selector: {
$or: [
{
"keyWords": { "$regex": "(?i)" + queryStr }
}
]
},
"bookmark": bookmark,
"fields": ["stockName", "stockCode", "nameUrl", "shortDescription", "images"]
})
}).then((page) => {
resultsArr.push(page.docs);
if (page.bookmark && page.docs.length == 25) {
return getStockTemplateById(queryStr, page.bookmark, resultsArr);
} else {
return true;
}
}).then(() => {
resolve(resultsArr);
}).catch((error) => {
reject(error);
});
});
}
function getStockPricingById(queryStr) {
return new Promise((resolve, reject) => {
$.ajax({
type: "POST",
url: woo.getAuthServer() + "/app/stock/focca-stock-pricing/get",
headers: {
"Content-Type": "application/json",
"Accept": "application/json"
},
xhrFields: {
withCredentials: true
},
crossDomain: true,
json: true,
processData: true,
cache: false,
timeout: 10000,
data: JSON.stringify({
"docID": queryStr
})
}).then((data) => {
resolve(data);
}).catch((error) => {
reject(error);
});
});
}
function fetchWooPricing(stockCode) {
return new Promise((resolve) => {
let pricing = {};
thisUsersRoles.push("focca$everyone");
// Filter user roles that start with the given wooAppId
let userRoles = thisUsersRoles.filter(role => role.startsWith("focca$"));
Promise.all(
userRoles.map(function (userRole) {
var roleName = userRole === "everyone" ? "everyone" : userRole.split("$")[1];
if (!roleName) return Promise.resolve(); // Skip if roleName is undefined
return getStockPricingById(stockCode + "-" + roleName)
.then((priceData) => {
if (priceData && Array.isArray(priceData.pricingData)) {
// Filter out non-live prices
priceData.pricingData = priceData.pricingData.filter(entry => entry.priceLive === true);
}
// Store only if there are live prices
pricing[userRole] = (priceData && priceData.pricingData.length > 0) ? priceData : null;
})
.catch((error) => {
if (error.status === 404 || error.status === 403) {
console.warn("No pricing found for " + roleName + ". Skipping.");
pricing[userRole] = null; // Assign null instead of crashing
} else {
console.error("Error fetching pricing for " + roleName + ": ", error);
}
});
})
).then(() => {
resolve(pricing);
});
});
}
function findLowestPrice(pricingObject) {
let lowestPrice = Infinity;
Object.values(pricingObject).forEach(roleData => {
if (roleData && roleData.pricingData) {
roleData.pricingData.forEach(entry => {
if (entry.forVariationType !== "multi") {
let price = parseFloat(entry.priceFinal);
if (!isNaN(price) && price < lowestPrice) {
lowestPrice = price;
}
}
});
}
});
return lowestPrice === Infinity ? null : lowestPrice === -2 ? "POA" : lowestPrice;
}
function getPageId(){
const url = window.location.href;
const lastValue = url.split("/").pop();
const result = lastValue
.split("-")
.map(word => word.charAt(0).toUpperCase() + word.slice(1))
.join(" ");
return result;
}
async function populateStock(){
invoiceSettingsData = await getInvoiceData();
console.log(invoiceSettingsData);
var keyWord = "burgers";
if (keyWord == "") {
keyWord = getPageId();
}
getStockTemplateById(keyWord, "", []).then(function(data) {
data[0].map(stock => {
var stockCode = stock.stockCode;
html = "
";
console.log(stock.images);
if (stock.images && Object.keys(stock.images).length > 0) {
console.log("true");
if ("true" == "true") {
var url = "/resources/focca/uploads/" + stock.images[0];
var quotedUrl = "'" + url + "'";
html += '
';
} else {
html += "";
}
}
html += "" + stock.stockName + "" +
"
" + stock.shortDescription + "
" +
"
Loading Price...
" +
"Order" +
"
";
$(self).append(html);
fetchWooPricing(stockCode).then(pricing => {
var lowestPrice = findLowestPrice(pricing);
if (lowestPrice == "POA"){
$("#price-" + stock.stockCode).html("From: POA");
} else {
if ("false" == "false"){
$("#price-" + stock.stockCode).html("From: " + formatDollar(lowestPrice) + " + " + invoiceSettingsData.salesTaxName);
} else {
$("#price-" + stock.stockCode).html("From: " + formatDollar(lowestPrice));
}
}
});
});
}).catch(function(error) {
console.error("An error occurred:", error);
});
}
$(document).on('click', '.stockItem .stockButton', function () {
var stockUrl = $(this).attr("data-nameUrl");
woo.updateCurrentPage("stock-details", null, "/" + stockUrl);
});
populateStock();
gkxwvsqf_2025518171012__372_743_Global.unload = () => {
//Unload callbacks here
$(document).off('click', '.stockItem .stockButton');
console.log("Unloaded gkxwvsqf_2025518171012__372_743");
}
return gkxwvsqf_2025518171012__372_743_Global;
})();var gkxwvsqf_202624121918_373 = (function() {
var self = document.getElementById('gkxwvsqf_202624121918_373');
var gkxwvsqf_202624121918_373_Global = {};
// ────────────────────────────────────────────────
// Admin check + current user
// ────────────────────────────────────────────────
let isSiteAdmin = false;
if (woo.sessionData) {
if (woo.sessionData.roles.includes("focca$admin")) {
isSiteAdmin = true;
}
}
const currentUserId = woo.sessionData?.user_id || null;
// ────────────────────────────────────────────────
// Database setup — custom visit log DB
// ────────────────────────────────────────────────
const dbId = "focca$visit-log";
const localDbId = dbId + "PouchDB";
const remoteDbId = dbId + "CouchDB";
let localDb = woo.getDB(localDbId);
let remoteDb = woo.getDB(remoteDbId);
if (!localDb) {
try {
localDb = new PouchDB(localDbId);
woo.addDB(localDbId, localDb);
console.log(`[VISIT] Created and registered local PouchDB: ${localDbId}`);
} catch (err) {
console.error("[VISIT] Failed to create local PouchDB:", err);
localDb = null;
}
}
if (!remoteDb) {
try {
remoteDb = new PouchDB(woo.getRemoteCouch() + "/" + dbId, { skip_setup: true });
woo.addDB(remoteDbId, remoteDb);
console.log(`[VISIT] Registered remote CouchDB reference: ${dbId}`);
} catch (err) {
console.warn("[VISIT] Remote DB not accessible yet:", err);
remoteDb = null;
}
}
// ────────────────────────────────────────────────
// Helper functions
// ────────────────────────────────────────────────
function getDeviceType(ua) {
if (/(tablet|ipad|playbook|silk)|(android(?!.*mobi))/i.test(ua)) return "tablet";
if (/Mobile|iP(hone|od)|Android|BlackBerry|IEMobile|Kindle|Silk-Accelerated|(hpw|web)OS|Opera M(obi|ini)/.test(ua)) return "mobile";
return "desktop";
}
function getOS(ua) {
if (/windows/i.test(ua)) return "Windows";
if (/mac\sos\sx/i.test(ua)) return "macOS";
if (/android/i.test(ua)) return "Android";
if (/linux/i.test(ua)) return "Linux";
if (/(ipod|iphone|ipad)/i.test(ua)) return "iOS";
return "Unknown";
}
function getBrowser(ua) {
if (/chrome/i.test(ua) && !/edge/i.test(ua) && !/opr/i.test(ua)) return "Chrome";
if (/firefox/i.test(ua)) return "Firefox";
if (/safari/i.test(ua) && !/chrome/i.test(ua)) return "Safari";
if (/edg/i.test(ua)) return "Edge";
if (/opr/i.test(ua) || /opera/i.test(ua)) return "Opera";
if (/trident/i.test(ua) || /msie/i.test(ua)) return "IE";
return "Unknown";
}
function getReferrerType(ref) {
if (!ref) return "direct";
try {
const refOrigin = new URL(ref).origin;
if (refOrigin === location.origin) return "internal";
if (/google\.com/i.test(ref)) return "google";
if (/bing\.com/i.test(ref)) return "bing";
if (/yahoo\.com/i.test(ref)) return "yahoo";
if (/duckduckgo\.com/i.test(ref)) return "duckduckgo";
return "external";
} catch (e) {
return "unknown";
}
}
// ────────────────────────────────────────────────
// Record visit + duration
// ────────────────────────────────────────────────
function recordVisit() {
if (!localDb) {
console.warn("[VISIT] Skipping — local DB not ready");
return;
}
const ua = navigator.userAgent;
const ref = document.referrer;
const now = new Date();
const ts = now.toISOString();
const random = Math.random().toString(36).slice(2, 10);
const visit_id = `visit-${ts}-${random}`;
// ── Locale-based country guess (zero network, no CORS) ──
const regionNames = new Intl.DisplayNames(['en'], { type: 'region' });
const localeRegion = navigator.language.split('-')[1] || 'NZ';
let country = regionNames.of(localeRegion) || 'Unknown';
let country_code = localeRegion;
const doc = {
_id: visit_id,
type: "page-visit",
page: window.location.href,
ts: ts,
user_id: currentUserId,
is_logged_in: !!woo.sessionData,
is_admin: isSiteAdmin,
referrer: ref,
referrer_type: getReferrerType(ref),
user_agent: ua,
device: getDeviceType(ua),
os: getOS(ua),
browser: getBrowser(ua),
// ── Newly added locale-based fields ──
country: country,
country_code: country_code
};
localDb.put(doc)
.then(putRes => {
console.log("[VISIT] Recorded:", putRes.id);
if (remoteDb) {
console.log("[VISIT] Starting one-shot sync...");
localDb.sync(remoteDb, { live: false, retry: true })
.on('complete', () => console.log("[VISIT] Sync complete"))
.on('error', err => console.error("[VISIT] Sync error:", err));
}
})
.catch(err => console.error("[VISIT] Put failed:", err));
const startTime = now.getTime();
function logDuration() {
if (!localDb) return;
const duration_ms = new Date().getTime() - startTime;
const dur_ts = new Date().toISOString();
const dur_id = `duration-${dur_ts}-${random}`;
const dur_doc = {
_id: dur_id,
type: "page-duration",
visit_id: visit_id,
page: window.location.href,
ts_start: ts,
ts_end: dur_ts,
duration_ms: duration_ms,
user_id: currentUserId,
is_admin: isSiteAdmin
};
localDb.put(dur_doc).catch(err => {
console.error("[DURATION] Put failed:", err);
});
}
window.addEventListener('beforeunload', logDuration);
gkxwvsqf_202624121918_373_Global.durationLogger = logDuration;
}
// ────────────────────────────────────────────────
// Unload handler
// ────────────────────────────────────────────────
gkxwvsqf_202624121918_373_Global.unload = function() {
if (gkxwvsqf_202624121918_373_Global.durationLogger) {
window.removeEventListener('beforeunload', gkxwvsqf_202624121918_373_Global.durationLogger);
}
console.log("Unloaded gkxwvsqf_202624121918_373");
};
// Start recording if DB is usable
if (localDb) {
recordVisit();
} else {
console.error("Visit log DB still unavailable after init attempt");
}
return gkxwvsqf_202624121918_373_Global;
})();var gkxwvsqf_20251027153855__670_836 = (function() {
var self = document.getElementById('gkxwvsqf_20251027153855__670_836');
var gkxwvsqf_20251027153855__670_836_Global = {};
gkxwvsqf_20251027153855__670_836_Global.unload = () => {
//Unload callbacks here
console.log("Unloaded gkxwvsqf_20251027153855__670_836");
}
var imageFileData = "";
var divCount = 0;
function loadImages(){
$("#gkxwvsqf_20251027153855__670_836").empty();
Promise.all([woo.getGadgetProperty("gkxwvsqf_2024518104845", woo.gadgetDB, "imageFileData"), woo.getGadgetProperty("gkxwvsqf_20251027153855__670_836", woo.instanceDB, "imageFileData"), woo.getGadgetProperty("gkxwvsqf_20251027153855__670_836", woo.pageDB, "imageFileData")]).then((results) => {
if (results){
var defaultValues = results[0];
if (defaultValues != ""){
imageFileData = defaultValues;
}
var instanceValues = results[1];
if (instanceValues != ""){
imageFileData = instanceValues;
}
var pageValues = results[2];
if (pageValues != ""){
imageFileData = pageValues;
}
if ("true" == "false"){
} else {
var imageContainerDiv = document.createElement('div');
imageContainerDiv.className = "image_Container_div";
self.appendChild(imageContainerDiv);
}
//console.log(imageFileData);
if (imageFileData != ""){
divCount = Object.keys(imageFileData).length - 1;
Object.entries(imageFileData).map((imageFile) => {
//console.log(imageFile);
if ("true" == "false"){
var imageFileDiv = document.createElement('div');
imageFileDiv.className = "image_File_Div";
imageFileDiv.id = "imageFile_" + imageFile[0];
imageFileDiv.style.backgroundImage= "url('/resources/focca/uploads/" + imageFile[1].name + "')";
imageFileDiv.setAttribute("caption", imageFile[1].caption);
/*var caption = document.createElement('span');
caption.className = "image_caption";
caption.textContent = imageFile[1].caption;
imageFileDiv.appendChild(caption);*/
self.appendChild(imageFileDiv);
} else {
var imageFileDiv = document.createElement('img');
imageFileDiv.className = "image_File_img";
imageFileDiv.id = "imageFile_" + imageFile[0];
imageFileDiv.src= "/resources/focca/uploads/" + imageFile[1].name;
imageFileDiv.setAttribute("caption", imageFile[1].caption);
imageContainerDiv.appendChild(imageFileDiv);
}
imageFileDiv.addEventListener('click', openImage.bind(this, imageFile[0]));
});
}
}
}).catch((err) => {
console.error(err);
});
}
function openImage(imageIndex){
var img = document.querySelector("#gkxwvsqf_20251027153855__670_836 #imageFile_" + imageIndex);
var bi = "";
// Check if the element is an tag or a
if (img.tagName.toLowerCase() === 'img') {
// If it's an img tag, just get the src attribute
bi = img.src;
} else {
// If it's a div, extract the URL from the background-image style
var style = img.currentStyle || window.getComputedStyle(img, false);
bi = style.backgroundImage.slice(4, -1).replace(/"/g, "").replace(/['"]/g, "");
}
console.log(bi);
var imageCaption = img.getAttribute('caption');
$(".woo-dialogBox").remove();
var form = document.createElement('div');
form.id = "image_parent";
var imageFileDiv = document.createElement('img');
imageFileDiv.className = "image_File_Div_modal";
imageFileDiv.src = bi;
form.appendChild(imageFileDiv);
var caption = document.createElement('span');
caption.className = "image_caption";
caption.textContent = imageCaption;
form.appendChild(caption);
var formLeft = document.createElement('div');
formLeft.className = "imageGallery_left";
var formRight = document.createElement('div');
formRight.className = "imageGallery_right";
form.appendChild(formLeft);
form.appendChild(formRight);
var nextImage = parseInt(imageIndex) + 1;
var previousImage = parseInt(imageIndex) - 1;
if (nextImage > divCount){
nextImage = 0;
}
if (previousImage < 0){
previousImage = divCount;
}
formLeft.addEventListener('click', openImage.bind(this, previousImage));
formRight.addEventListener('click', openImage.bind(this, nextImage));
makeModal(form, "woo-dialogContent_gallery");
}
function makeModal(content, extraClass){
var dialogBox = document.createElement('div');
dialogBox.className = "woo-dialogBox";
document.getElementsByClassName("wooMainContent")[0].appendChild(dialogBox);
var closeBox = document.createElement('button');
closeBox.className = 'woo-dialogClose';
closeBox.classList.add('material-symbols-outlined');
closeBox.addEventListener('click', closeButtonPressed);
var dialogContent = document.createElement('div');
dialogContent.className = "woo-dialogContent";
if (extraClass){
dialogContent.classList.add(extraClass);
}
dialogContent.appendChild(closeBox);
dialogContent.appendChild(content);
dialogBox.appendChild(dialogContent);
}
function closeButtonPressed(){
$(".woo-dialogBox").remove();
}
function updateValues(values){
var saveLevel = property_toolbar.getSaveLevel;
switch (saveLevel){
case "instance":
typeDB = woo.instanceDB;
break;
case "page":
typeDB = woo.pageDB;
break;
case "user":
typeDB = woo.pageDB;
break;
default:
typeDB = woo.pageDB;
}
woo.updateGadgetProperty("gkxwvsqf_20251027153855__670_836", typeDB, "imageFileData", values, woo.getCurrentPage()).then(() => {
loadImages();
}).catch((err) => {
console.log(err);
alert("Images not saved!");
});
}
function updateCaptions(captionNo, valueField){
imageFileData[captionNo]["caption"] = valueField.value;
console.log(imageFileData);
var saveLevel = property_toolbar.getSaveLevel;
switch (saveLevel){
case "instance":
typeDB = woo.instanceDB;
break;
case "page":
typeDB = woo.pageDB;
break;
case "user":
typeDB = woo.userDB;
break;
default:
typeDB = woo.pageDB;
}
woo.updateGadgetProperty("gkxwvsqf_20251027153855__670_836", typeDB, "imageFileData", imageFileData, woo.getCurrentPage()).then(() => {
loadImages();
}).catch((err) => {
console.log(err);
alert("Images not saved!");
});
}
function editCaptions(){
$(".woo-dialogBox").remove();
var form = document.createElement('div');
var title = document.createElement('span');
title.className = "dialog_title";
title.textContent = "Edit Captions";
form.appendChild(title);
if (imageFileData != ""){
Object.entries(imageFileData).map((imageFile) => {
var span1 = document.createElement('span');
form.appendChild(span1);
var label1 = document.createElement('label');
label1.className = "image_caption_input_label";
label1.textContent = "Image " + imageFile[0] + " Caption:";
span1.appendChild(label1);
var idInput = document.createElement('input');
idInput.className = "image_caption_input";
idInput.type = "text";
idInput.value = imageFile[1].caption;
span1.appendChild(idInput);
var imageName = document.createElement('span');
imageName.className = "image_name_label";
imageName.append("Image: " + imageFile[1].name);
span1.appendChild(imageName);
idInput.addEventListener('focusout', updateCaptions.bind(this, imageFile[0], idInput));
idInput.addEventListener('keypress', function (e) {
if (e.key === 'Enter') {
updateCaptions(imageFile[0], idInput);
}
});
});
} else {
var Error = document.createElement('span');
Error.className = "dialog_title";
Error.textContent = "Please upload image first!";
form.appendChild(Error);
}
makeModal(form);
}
function imageFileManager(){
$(".woo-dialogBox").remove();
var form = document.createElement('div');
var title = document.createElement('span');
title.className = "dialog_title";
title.textContent = "Upload Image";
form.appendChild(title);;
var span1 = document.createElement('span');
form.appendChild(span1);
var label1 = document.createElement('label');
label1.textContent = "Select Image:";
span1.appendChild(label1);
var idInput = document.createElement('input');
idInput.className = "file_upload_input";
idInput.type = "file";
idInput.setAttribute("multiple","");
idInput.required = "true";
span1.appendChild(idInput);
var span2 = document.createElement('span');
form.appendChild(span2);
var submitInput = document.createElement('input');
submitInput.type = "button";
submitInput.value = "Upload";
submitInput.addEventListener('click', uploadImage.bind(this, form, idInput));
form.appendChild(submitInput);
makeModal(form);
}
function uploadImage(form, idInput){
var formData = new FormData();
formData.append("name", "Images");
var fileLength = 0;
if (imageFileData != "") {
fileLength = Object.keys(imageFileData).length;
} else {
imageFileData = {};
}
for(let i = fileLength; i < (idInput.files.length + fileLength); i++) {
formData.append("files", idInput.files[i - fileLength]);
imageFileData[i] = {};
imageFileData[i]["name"] = idInput.files[i - fileLength].name;
imageFileData[i]["caption"] = "";
}
uploadFiles(formData).then((response) => {
console.log(response);
updateValues(imageFileData);
alert(response);
$(".woo-dialogBox").remove();
}).catch((error) => {
console.log(error);
alert("Something went wrong");
});
}
function uploadFiles(formData) {
console.log(formData);
return $.ajax({
type: "POST",
url: woo.getAuthServer() + "/app/upload_Files",
headers: {
//"Content-Type": "multipart/form-data",
"Authorization": "Bearer " + woo.sessionData.token + ":" + woo.sessionData.password
},
xhrFields: {
withCredentials: true
},
processData: false,
contentType: false,
crossDomain: true,
cache: false,
data: formData,
timeout: 10000
});
}
loadImages();
gkxwvsqf_20251027153855__670_836_Global.imageFileManager = () => {
imageFileManager();
}
gkxwvsqf_20251027153855__670_836_Global.editCaptions = () => {
editCaptions();
}
return gkxwvsqf_20251027153855__670_836_Global;
})();var login_734v0t = (function() {
var login_734v0t_Global = {};
var loginDom = document.getElementById('login-text_login_734v0t');
var loginDomMob = document.getElementById('mob_icon_login_734v0t');
var loggedIn = false;
var loggingInOrOut = false;
var openModal = false;
var whatIs = document.querySelector(".woo_whatIsWooID_login_734v0t");
var forgotPass = document.querySelector(".forgot_pass_login_734v0t");
function getAppData(){
return new Promise((resolve) => {
var url = woo.getRemoteCouch() + "/focca$public/focca-invoice-settings";
var data = {}
resolve(woo.queryCouch(url, "GET", data));
}).catch((error) => {
return null;
});
}
getAppData().then((data) => {
if (data){
$("#login_734v0t .website_name").html(data.brandName);
$("#login_734v0t #fullLogoImage").attr("src", "/resources/focca/uploads/" + data.logoImage);
}
})
function forgotPass_login_734v0t(){
woo.updateCurrentPage("forgot-password");
}
function whatIsClick_login_734v0t(){
var note = "
What is the Woo ID?
With a growing awareness of on-line privacy and security issues, further tightening of the spam laws worldwide and the need for businesses to have more robust collection of data systems in place, Woo has risen to the challenge by creating a universal ID for users on the platform - called a Woo ID.
The Woo ID provides you with the security that Woo is dedicated, and bound by law, to ensure your information is kept private and that all anti-spam laws are adhered to. Every user added to a Woo website gets to verify their email address. This ensures issues with data entry and out-of-date email accounts are spotted early.
The Woo ID universal ID is the market leader: creating a safe and spam free environment for you.
With a growing awareness of on-line privacy and security issues, further tightening of the spam laws worldwide and the need for businesses to have more robust collection of data systems in place, Woo has risen to the challenge by creating a universal ID for users on the platform - called a Woo ID.
The Woo ID provides you with the security that Woo is dedicated, and bound by law, to ensure your information is kept private and that all anti-spam laws are adhered to. Every user added to a Woo website gets to verify their email address. This ensures issues with data entry and out-of-date email accounts are spotted early.
The Woo ID universal ID is the market leader: creating a safe and spam free environment for you.