-
Notifications
You must be signed in to change notification settings - Fork 0
/
creator.js
123 lines (98 loc) · 3.72 KB
/
creator.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
function commandEditor()
{
var id = "command-" + Math.random();
var editor = document.createElement("div");
editor.id = id;
editor.classList.add("spacer-max");
var deleteBtn = document.createElement("button");
deleteBtn.classList.add("spacer-right");
deleteBtn.textContent = "X";
deleteBtn.setAttribute("onClick", "remove(\""+id+"\")");
var input = document.createElement("input")
input.className = "commandInput";
input.classList.add("spacer-right");
input.placeholder = "Name";
input.size = 8;
var argAmount = document.createElement("input");
argAmount.classList.add("right-spacer");
argAmount.type = "number";
argAmount.min = 0;
argAmount.max = 9;
argAmount.placeholder = "Args"
argAmount.className = "argCountInput"
var addAction = document.createElement("button");
addAction.textContent = "+";
addAction.setAttribute("onClick", "actionEditor(\""+id+"\")");
editor.appendChild(deleteBtn);
editor.appendChild(input);
editor.appendChild(argAmount);
editor.appendChild(addAction);
return editor;
}
function actionEditor(_parentDiv)
{
const possibleActions = ["Reply", "SendMessage", "Purge", "AddRole", "CreateRole", "DeleteRole", "CreateTextChannel", "DeleteTextChannel", "ChangeNickname", "MoveToCategory", "ChangeServerName"];
var parentDiv = document.getElementById(_parentDiv);
var id = "action-" + Math.random();
var editor = document.createElement("div");
editor.id = id;
editor.classList.add("spacer");
editor.classList.add("move-right");
var deleteBtn = document.createElement("button");
deleteBtn.classList.add("spacer-right");
deleteBtn.textContent = "X";
deleteBtn.setAttribute("onClick", "remove(\""+id+"\")");
var input = document.createElement("select")
input.className = "actionInput";
input.classList.add("spacer-right");
for (var i = 0; i < possibleActions.length; i++)
{
var option = document.createElement("option");
option.value = possibleActions[i];
option.text = possibleActions[i];
input.appendChild(option);
}
//input.size = 10;
var addArg = document.createElement("button");
addArg.textContent = "+";
addArg.setAttribute("onClick", "argumentEditor(\""+id+"\")");
editor.appendChild(deleteBtn);
editor.appendChild(input);
editor.appendChild(addArg);
parentDiv.appendChild(editor);
}
function argumentEditor(_parentDiv)
{
var parentDiv = document.getElementById(_parentDiv);
var id = "arg-" + Math.random();
var editor = document.createElement("div");
editor.id = id;
editor.classList.add("spacer");
editor.classList.add("move-right");
var deleteBtn = document.createElement("button");
deleteBtn.classList.add("spacer-right");
deleteBtn.textContent = "X";
deleteBtn.setAttribute("onClick", "remove(\""+id+"\")");
var input = document.createElement("input");
input.className = "argInput";
input.classList.add("spacer-right");
input.placeholder = "Arg";
input.size = 8;
editor.appendChild(deleteBtn);
editor.appendChild(input);
parentDiv.appendChild(editor);
}
function remove(id)
{
var elem = document.getElementById(id);
elem.remove();
}
function download(filename, text) {
var element = document.createElement('a');
element.setAttribute('href', 'data:text/plain;charset=utf-8,' + encodeURIComponent(text));
element.setAttribute('download', filename);
element.style.display = 'none';
document.body.appendChild(element);
element.click();
document.body.removeChild(element);
}