Removed GopherJS, basic frontend completed, need backend changes for

torrent storage
This commit is contained in:
2017-11-30 18:12:11 -05:00
parent 67fdef16b1
commit e98ad2cc88
69321 changed files with 5498914 additions and 337 deletions

124436
public/static/js/bundle.js Normal file

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,74 @@
package main
import (
"honnef.co/go/js/dom"
"github.com/gopherjs/websocket/websocketjs"
"github.com/gopherjs/gopherjs/js"
"github.com/johanbrandhorst/gopherjs-json"
"time"
//"honnef.co/go/js/dom"
)
var (
//d = dom.GetWindow().Document() //getting the dom to manipulate it
document = dom.GetWindow().Document().(dom.HTMLDocument)
//conn = func(){websocketjs.New("ws://192.168.1.141:8000/websocket")}//creating a global JS websocket connection
)
func main(){
document.AddEventListener("DOMContentLoaded", false, func(_ dom.Event){
println("DOMLoaded...")
go ready()
})
}
func ready(){
//conn := conn()
conn, err := websocketjs.New("ws://192.168.1.141:8000/websocket") // Blocks until connection is established.
if err != nil {
println("Error creating client websocket connection") // handle error
}
onOpen := func(ev *js.Object){
err := conn.Send("ping!") //on startup send the ping message
if err != nil {
println("Cannot send ping message")
}
}
onMessage := func(ev *js.Object){
messageData := ev.Get("data").String()
if messageData == "pong"{ //if the server says a pong, send a ping back
time.Sleep(6 * time.Second)
conn.Send("ping")
} else {
clientData, err := json.Unmarshal(messageData)
if err != nil {
println("Error unmarshalling server message")
}
println(clientData.String())
}
}
onClose := func(ev *js.Object){
println("Closing Connection....")
}
onError := func(ev *js.Object){
println("Error....")
}
conn.AddEventListener("open", false, onOpen)
conn.AddEventListener("message", false, onMessage)
conn.AddEventListener("close", false, onClose)
conn.AddEventListener("error", false, onError)
err = conn.Close()
}

View File

@@ -1,31 +0,0 @@
Vue.use(Vuetable);
var demo = new Vue({
delimiters: ['((', '))'],
el: '#torrentlist',
components:{
'vuetable-pagination': Vuetable.VuetablePagination
},
data: {
fields: ['Torrent Name', 'Status','Percent Complete','Size','Total Peers','Storage Location']
},
computed:{
/*httpOptions(){
return {headers: {'Authorization': "my-token"}} //table props -> :http-options="httpOptions"
},*/
},
methods: {
onPaginationData (paginationData) {
this.$refs.pagination.setPaginationData(paginationData)
},
onChangePage (page) {
this.$refs.vuetable.changePage(page)
},
editRow(rowData){
alert("You clicked edit on"+ JSON.stringify(rowData))
},
deleteRow(rowData){
alert("You clicked delete on"+ JSON.stringify(rowData))
}
}
})

View File

@@ -0,0 +1,102 @@
d := dom.GetWindow().Document() //getting the dom to manipulate it
logTextArea := d.GetElementByID("loggerData")
torrentLinkSubmit := d.GetElementByID("torrentLinkSubmit")
magnetLink := d.GetElementByID("magnetLink")
addTorrentModal := d.GetElementByID("addTorrentModal")
addTorrentLinkBtn := d.GetElementByID("addTorrentLink") // Get the button that opens the modal
addTorrentFileModal := d.GetElementByID("addTorrentFile")
addTorrentFileModalClose := d.GetElementsByClassName("addTorrentFileModalClose")
addTorrentModalClose := d.GetElementsByClassName("addTorrentModalClose") // Get the <span> element that closes the modal
//add magnet link modal
addTorrentLinkBtn.AddEventListener("click", false, func(event dom.Event){
addTorrentModal.SetAttribute("display", "block")
})
//close torrent link modal
addTorrentModalClose[0].AddEventListener("click", false, func(event dom.Event){
addTorrentModal.SetAttribute("display", "none")
})
//show torrent file modal
addTorrentFileModal.AddEventListener("click", false, func(event dom.Event){
addTorrentFileModal.SetAttribute("display", "block")
})
//hide torrent file modal
addTorrentFileModalClose[0].AddEventListener("click", false, func(event dom.Event){
addTorrentFileModal.SetAttribute("display", "none")
})
// When the user clicks anywhere outside of the modal, close it
d.AddEventListener("click", false, func(event dom.Event){
addTorrentModal.SetAttribute("display", "none")
addTorrentLinkBtn.SetAttribute("display", "none")
})
//websocket logic
conn, err := websocketjs.New("ws://192.168.1.141:8000/websocket") // Blocks until connection is established.
if err != nil {
println("Error creating client websocket connection") // handle error
}
onOpen := func(ev *js.Object){
err := conn.Send("ping!") //on startup send the ping message
if err != nil {
println("Cannot send ping message")
}
}
onMessage := func(ev *js.Object){
messageData := ev.Get("data").String()
if messageData == "pong"{ //if the server says a pong, send a ping back
time.Sleep(6 * time.Second)
conn.Send("ping")
} else {
clientData, err := json.Unmarshal(messageData)
if err != nil {
println("Error unmarshalling server message")
}
logTextArea.SetInnerHTML(logTextArea.InnerHTML() + "</br>" + "Client Update Event....")
logTextArea.SetInnerHTML(logTextArea.InnerHTML() + "</br>" + clientData.String())
}
}
onClose := func(ev *js.Object){
logTextArea.SetInnerHTML(logTextArea.InnerHTML() + "</br>" + "Connection closed")
}
onError := func(ev *js.Object){
logTextArea.SetInnerHTML(logTextArea.InnerHTML() + "</br>" + "Error opening websocket")
}
conn.AddEventListener("open", false, onOpen)
conn.AddEventListener("message", false, onMessage)
conn.AddEventListener("close", false, onClose)
conn.AddEventListener("error", false, onError)
err = conn.Close()
torrentLinkSubmit.AddEventListener("click", false, func(event dom.Event){ //listening to the submit button for magnet link
conn.Send(magnetLink.TextContent())
logTextArea.SetInnerHTML(logTextArea.InnerHTML() + "</br>" + "Adding Magnet Link: " + magnetLink.TextContent()) //adding the magnet link to the log
addTorrentModal.SetAttribute("display", "none")
magnetLink.SetTextContent("")
})
}

View File

@@ -0,0 +1,7 @@
var ws = new WebSocket("ws://192.168.1.141:8000/websocket"); //creating websocket
ws.onopen = function()
{
ws.send("clientUpdateRequest"); //sending out the first ping
console.log("Kicking off websocket to server on 192.168.1.141.....")
};

View File

@@ -3,12 +3,12 @@ function myWebsocketStart()
var torrentLinkSubmit = document.getElementById('torrentLinkSubmit');
var magnetLink = document.getElementById('magnetLink');
var modal = document.getElementById('addTorrentModal');
var addTorrentModal = document.getElementById('addTorrentModal');
var myTextArea = document.getElementById("loggerData");
var torrentHash = document.getElementById("hash");
var ws = new WebSocket("ws://192.168.1.141:8000/websocket");
var ws = new WebSocket("ws://192.168.1.141:8000/websocket"); //creating websocket
ws.onopen = function()
{
@@ -52,7 +52,7 @@ function myWebsocketStart()
ws.send(magnetLinkjs);
myTextArea.innerHTML = myTextArea.innerHTML + "</br> Send:" + magnetLinkjs
modal.style.display = "none";
addTorrentModal.style.display = "none";
magnetLink.value = '';
}