X-Git-Url: http://git.euphorik.ch/?p=pompage.git;a=blobdiff_plain;f=doc%2Fwebdeveloper%2Fdialogs%2Fcookie.js;fp=doc%2Fwebdeveloper%2Fdialogs%2Fcookie.js;h=8b62301abd9febffae6c77e8c06df95449afd052;hp=0000000000000000000000000000000000000000;hb=c3b0deb3d8c9f439739c79806e915c29bc1d4b84;hpb=cff6539539a79e014f6ac8df46716cafce2c8472 diff --git a/doc/webdeveloper/dialogs/cookie.js b/doc/webdeveloper/dialogs/cookie.js new file mode 100644 index 0000000..8b62301 --- /dev/null +++ b/doc/webdeveloper/dialogs/cookie.js @@ -0,0 +1,156 @@ +// Initializes the cookie dialog +function webdeveloper_initializeCookie() +{ + var stringBundle = document.getElementById("webdeveloper-string-bundle"); + + // If the first argument equals add + if(window.arguments[0] == "add") + { + var url = Components.classes["@mozilla.org/network/standard-url;1"].createInstance(Components.interfaces.nsIURL); + var windowContent = window.opener.document.getElementById("content"); + + document.title = stringBundle.getString("webdeveloper_addCookie"); + url.spec = windowContent.browsers[windowContent.mTabBox.selectedIndex].contentDocument.documentURI; + + document.getElementById("webdeveloper-cookie-expires").value = new Date().toUTCString(); + document.getElementById("webdeveloper-cookie-host").value = url.host; + document.getElementById("webdeveloper-cookie-path").value = url.path; + } + else + { + document.title = stringBundle.getString("webdeveloper_editCookie"); + + document.getElementById("webdeveloper-cookie-name").value = window.arguments[1]; + document.getElementById("webdeveloper-cookie-value").value = window.arguments[2]; + document.getElementById("webdeveloper-cookie-host").value = window.arguments[3]; + document.getElementById("webdeveloper-cookie-path").value = window.arguments[4]; + + // If the cookie is a session cookie + if(window.arguments[5] == stringBundle.getString("webdeveloper_viewCookieInformationSession")) + { + document.getElementById("webdeveloper-cookie-expires").disabled = true; + document.getElementById("webdeveloper-cookie-session").checked = true; + } + else + { + document.getElementById("webdeveloper-cookie-expires").value = window.arguments[5]; + } + + // If the cookie is secure + if(window.arguments[6] == "true") + { + document.getElementById("webdeveloper-cookie-secure").checked = true; + } + } +} + +// Saves the cookie +function webdeveloper_saveCookie() +{ + var host = document.getElementById("webdeveloper-cookie-host").value.trim(); + var errors = ""; + var expires = document.getElementById("webdeveloper-cookie-expires").value.trim(); + var expiresDate = new Date(expires); + var name = document.getElementById("webdeveloper-cookie-name").value.trim(); + var path = document.getElementById("webdeveloper-cookie-path").value.trim(); + var stringBundle = document.getElementById("webdeveloper-string-bundle"); + + // If the name is empty + if(!name) + { + errors += stringBundle.getString("webdeveloper_emptyName") + "\n"; + } + + // If the host is empty + if(!host) + { + errors += stringBundle.getString("webdeveloper_emptyHost") + "\n"; + } + + // If the path is empty + if(!path) + { + errors += stringBundle.getString("webdeveloper_emptyPath") + "\n"; + } + + // If this is not a session cookie + if(!document.getElementById("webdeveloper-cookie-session").checked) + { + // If the expires is empty + if(!expires) + { + errors += stringBundle.getString("webdeveloper_emptyExpires") + "\n"; + } + else if(expiresDate && expiresDate == "Invalid Date") + { + errors += stringBundle.getString("webdeveloper_invalidExpires") + "\n"; + } + } + + // If there are errors + if(errors) + { + webdeveloper_error(errors.trim()); + + return false; + } + else + { + var cookie = name + "=" + document.getElementById("webdeveloper-cookie-value").value.trim() + ";"; + var cookieService = Components.classes["@mozilla.org/cookieService;1"].getService().QueryInterface(Components.interfaces.nsICookieService); + var scheme = "http://"; + var secure = document.getElementById("webdeveloper-cookie-secure").checked; + var session = document.getElementById("webdeveloper-cookie-session").checked; + var uri = null; + + // If the first argument equals edit + if(window.arguments[0] == "edit") + { + Components.classes["@mozilla.org/cookiemanager;1"].getService(Components.interfaces.nsICookieManager).remove(window.arguments[3], window.arguments[1], window.arguments[4], false); + } + + // If the host is a domain + if(host.charAt(0) == ".") + { + cookie += "domain=" + host + ";"; + } + + cookie += "path=" + path + ";"; + + // If this is not a session cookie + if(!session) + { + cookie += "expires=" + expiresDate + ";"; + } + + // If the cookie is secure + if(secure) + { + cookie += "secure;"; + scheme = "https://"; + } + + uri = Components.classes["@mozilla.org/network/io-service;1"].getService(Components.interfaces.nsIIOService).newURI(scheme + host + path, null, null); + + cookieService.setCookieString(uri, null, cookie, null); + } + + return true; +} + +// Updates the expiry status +function webdeveloper_updateExpiryStatus() +{ + var disabled = false; + var expires = new Date(); + + // If session cookie is checked + if(document.getElementById("webdeveloper-cookie-session").checked) + { + disabled = true; + expires = ""; + } + + document.getElementById("webdeveloper-cookie-expires").disabled = disabled; + document.getElementById("webdeveloper-cookie-expires").value = expires; +} \ No newline at end of file