Onionr/onionr/static-data/www/shared/misc.js
2019-09-07 15:08:15 -05:00

179 lines
4.9 KiB
JavaScript
Executable File

/*
Onionr - Private P2P Communication
This file handles the mail interface
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
webpass = document.location.hash.replace('#', '')
nowebpass = false
myPub = ""
fetch('/getHumanReadable', {
headers: {
"token": webpass
}})
.then((resp) => resp.text())
.then(function(resp) {
myPub = resp
})
function post_to_url(path, params) {
var form = document.createElement("form")
form.setAttribute("method", "POST")
form.setAttribute("action", path)
for(var key in params) {
var hiddenField = document.createElement("input")
hiddenField.setAttribute("type", "hidden")
hiddenField.setAttribute("name", key)
hiddenField.setAttribute("value", params[key])
form.appendChild(hiddenField)
}
document.body.appendChild(form)
form.submit()
}
if (typeof webpass == "undefined"){
webpass = localStorage['webpass']
}
else{
localStorage['webpass'] = webpass
//document.location.hash = ''
}
if (typeof webpass == "undefined" || webpass == ""){
alert('Web password was not found in memory or URL')
nowebpass = true
}
function arrayContains(needle, arrhaystack) {
return (arrhaystack.indexOf(needle) > -1);
}
function httpGet(theUrl) {
var xmlHttp = new XMLHttpRequest()
xmlHttp.open( "GET", theUrl, false ) // false for synchronous request
xmlHttp.setRequestHeader('token', webpass)
xmlHttp.send( null )
if (xmlHttp.status == 200){
return xmlHttp.responseText
}
else{
return ""
}
}
function overlay(overlayID) {
el = document.getElementById(overlayID)
el.style.visibility = (el.style.visibility == "visible") ? "hidden" : "visible"
scroll(0,0)
}
var passLinks = document.getElementsByClassName("idLink")
for(var i = 0; i < passLinks.length; i++) {
passLinks[i].href += '#' + webpass
}
var refreshLinks = document.getElementsByClassName("refresh")
for(var i = 0; i < refreshLinks.length; i++) {
//Can't use .reload because of webpass
refreshLinks[i].onclick = function(){
location.reload()
}
}
for (var i = 0; i < document.getElementsByClassName('closeOverlay').length; i++){
document.getElementsByClassName('closeOverlay')[i].onclick = function(e){
document.getElementById(e.target.getAttribute('overlay')).style.visibility = 'hidden'
}
}
function setIdStrings(){
if (myPub === ""){
setTimeout(function(){setIdStrings()}, 700)
return
}
var idStrings = document.getElementsByClassName('myPub')
for (var i = 0; i < idStrings.length; i++){
if (idStrings[i].tagName.toLowerCase() == 'input'){
idStrings[i].value = myPub
}
else{
idStrings[i].innerText = myPub
}
}
}
setIdStrings()
/* Copy public ID on homepage */
if (typeof myPubCopy != "undefined"){
myPubCopy.onclick = function() {
var copyText = document.getElementById("myPub");
copyText.select()
document.execCommand("copy")
if (typeof PNotify != 'undefined'){
PNotify.success({
text: "Copied to clipboard"
})
}
console.log("copied pubkey to clipboard")
}
}
/* For Config toggle on homepage */
var toggle = document.getElementById("configToggle")
var content = document.getElementById("configContent")
if(typeof toggle !== 'undefined' && toggle !== null) {
toggle.addEventListener("click", function() {
content.classList.toggle("show");
})
}
var aboutBtns = document.getElementsByClassName('aboutLink')
var aboutModals = document.getElementsByClassName('aboutModal')
var aboutCloseBtns = document.getElementsByClassName('closeAboutModal')
var aboutText = ''
setAbout = function(){
if (aboutText === ''){
setTimeout(function(){setAbout()}, 100)
return
}
let aboutBody = document.getElementsByClassName('aboutBody')
for (i = 0; i < aboutBody.length; i++){
aboutBody[i].innerHTML = aboutText
}
}
for (x = 0; x < aboutBtns.length; x++){
aboutBtns[x].onclick = function(){
for (i = 0; i < aboutModals.length; i++){
aboutModals[i].classList.add('is-active')
}
}
}
for (i = 0; i < aboutCloseBtns.length; i++){
aboutCloseBtns[i].onclick = function(e){
e.target.parentElement.parentElement.parentElement.classList.remove('is-active')
}
}
setAbout()