Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
loeasy68
GitHub Repository: loeasy68/loeasy68.github.io
Path: blob/main/website/Drawing-app/sketch2.js
2940 views
1
//------------------- This Sketch Is For Viewing Submissions ------------------------//
2
3
//Stores What Sent
4
let undoHistoryX,
5
undoHistoryY,
6
r,
7
g,
8
b,
9
lastradius,
10
downloadedCanvasX,
11
downloadedCanvasY,
12
canvas1;
13
14
let username = [];
15
let database; //Access The Firebase's Database
16
let ref; //Reference To The Database
17
let keys; //Stores Database's Keys
18
let dataList; //Stores Datalist
19
let colorList = ["#44e2a0",
20
"#c23d",
21
"#552ce7",
22
"#eeb902",
23
"#2b7e1c",
24
"#159d98",
25
"#b6dd26",
26
"#9b7a19",
27
"#18b797",
28
"#772211",
29
"#9938a4",
30
"#6282d2",
31
"#f13fe1",
32
"#000000"];
33
34
//----------------------------------------------- Setup Function
35
function setup(){
36
database = firebase.database();
37
ref = database.ref('gifts/');
38
ref.on('value',gotData,errorData);
39
}
40
41
//----------------------------------------------- Got Data Function
42
function gotData(data){
43
username = [];
44
45
dataList = data.val();
46
keys = Object.keys(dataList);
47
for(var i = keys.length - 1; i >= 0 ;i--){
48
//Showing Username
49
var k = keys[i];
50
username.unshift(dataList[k].username); // All I Need In This Function
51
52
//Creating List Of Username:
53
seplink = createDiv();
54
seplink.addClass("seplink");
55
var usernameAhref = createA('#',dataList[k].username);
56
usernameAhref.style("color",random(colorList));
57
seplink.child(usernameAhref)
58
usernameAhref.mousePressed(printLink);
59
}
60
document.getElementById("Header").innerHTML = "Click On Any Of The Link To View Submission";
61
}
62
63
//----------------------------------------------- Error In Getting Data Function
64
function errorData(err){
65
document.getElementById("Header").innerHTML = "An Error Occured [!]";
66
}
67
68
//----------------------------------------------- Printing Links & Drawing Canvas
69
function printLink(){
70
document.getElementById("Header").innerHTML = "By " + this.html();
71
console.log(this.html());
72
var clickKey = keys[username.indexOf(this.html())];
73
var oneDrawingRef = database.ref('gifts/' + clickKey);
74
75
oneDrawingRef.on('value',function(data){
76
77
//Storing All Data
78
undoHistoryX = dataList[clickKey].drawX;
79
undoHistoryY = dataList[clickKey].drawY;
80
r = dataList[clickKey].redChannel;
81
g = dataList[clickKey].greenChannel;
82
b = dataList[clickKey].blueChannel;
83
lastradius = dataList[clickKey].radius;
84
downloadedCanvasX = dataList[clickKey].canvasX;
85
downloadedCanvasY = dataList[clickKey].canvasY;
86
87
canvas1 = createCanvas(downloadedCanvasX,downloadedCanvasY);
88
canvas1.parent('#sketch2container');
89
canvas1.background(0);
90
91
for(var i = undoHistoryX.length - 1; i >= 0; i--){
92
canvas1.stroke(r[i],g[i],b[i]);
93
canvas1.strokeWeight(lastradius[i]);
94
for(var j = 0; j < undoHistoryX[i].length; j++){
95
canvas1.line(undoHistoryX[i][j],undoHistoryY[i][j],undoHistoryX[i][j+1],undoHistoryY[i][j+1]);
96
}
97
}
98
99
},errorData);
100
}
101