1 | <!DOCTYPE html>
|
2 |
|
3 | <html>
|
4 | <head>
|
5 | <title>Highfive Configuration</title>
|
6 | <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
|
7 |
|
8 | <link href='//fonts.googleapis.com/css?family=Raleway:100,400,300,600' rel='stylesheet' type='text/css'>
|
9 | <link rel="stylesheet" type="text/css" href="config.css">
|
10 |
|
11 | <script src="//ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js" charset="utf-8"></script>
|
12 | <script src="//cdnjs.cloudflare.com/ajax/libs/knockout/3.1.0/knockout-min.js" charset="utf-8"></script>
|
13 | <script src="gridforms.js" charset="utf-8"></script>
|
14 | <script src="config.js" charset="utf-8"></script>
|
15 | </head>
|
16 | <div class="container">
|
17 |
|
18 | <h1>Highfive Configuration</h1>
|
19 |
|
20 | <div class="grid-form">
|
21 | <fieldset>
|
22 | <legend>Plugin Settings</legend>
|
23 |
|
24 | <div data-row-span="3">
|
25 | <div data-field-span="1">
|
26 | <label>Chat Service</label>
|
27 | <select data-bind="options: services, value: HUBOT_HIGHFIVE_CHAT_SERVICE">
|
28 | </select>
|
29 | </div>
|
30 | <div data-field-span="1">
|
31 | <label>Announcement Room</label>
|
32 | <input type="text" data-bind="value: HUBOT_HIGHFIVE_ROOM,
|
33 | valueUpdate: 'input'">
|
34 | </div>
|
35 | <div data-field-span="1">
|
36 | <label>Allow Eavesdropping (true/false, default false)</label>
|
37 | <input type="text" data-bind="value: HUBOT_HIGHFIVE_ALLOW_EAVESDROPPING,
|
38 | valueUpdate: 'input'">
|
39 | </div>
|
40 | </div>
|
41 |
|
42 | <div data-row-span="4">
|
43 | <div data-field-span="1">
|
44 | <label>Award Limit (default 150)</label>
|
45 | <input type="text" data-bind="value: HUBOT_HIGHFIVE_AWARD_LIMIT,
|
46 | valueUpdate: 'input'">
|
47 | </div>
|
48 | <div data-field-span="1">
|
49 | <label>Daily Gifting Limit (default 500/giver/day)</label>
|
50 | <input type="text" data-bind="value: HUBOT_HIGHFIVE_DAILY_LIMIT,
|
51 | valueUpdate: 'input'">
|
52 | </div>
|
53 | <div data-field-span="1">
|
54 | <label>Daily double rate (0-1, default 0.1)</label>
|
55 | <input type="text" data-bind="value: HUBOT_HIGHFIVE_DOUBLE_RATE,
|
56 | valueUpdate: 'input'"/>
|
57 | </div>
|
58 | <div data-field-span="1">
|
59 | <label>Boomerang rate (0-1, default 0.1)</label>
|
60 | <input type="text" data-bind="value: HUBOT_HIGHFIVE_BOOMERANG_RATE,
|
61 | valueUpdate: 'input'"/>
|
62 | </div>
|
63 | </div>
|
64 |
|
65 | </fieldset>
|
66 | <br>
|
67 | <fieldset>
|
68 | <legend>Tango Card Settings (<span data-bind="text: cardnote,
|
69 | css: cardclass"></span>)</legend>
|
70 |
|
71 | <div data-row-span="3">
|
72 | <div data-field-span="1">
|
73 | <label>Tango Card API Username</label>
|
74 | <input type="text" data-bind="value: HUBOT_TANGOCARD_USER,
|
75 | valueUpdate: 'input'">
|
76 | </div>
|
77 | <div data-field-span="1">
|
78 | <label>Tango Card API Key</label>
|
79 | <input type="text" data-bind="value: HUBOT_TANGOCARD_KEY,
|
80 | valueUpdate: 'input'">
|
81 | </div>
|
82 | <div data-field-span="1">
|
83 | <label>Tango Card Root URL (default is production)</label>
|
84 | <input type="text" data-bind="value: HUBOT_TANGOCARD_ROOTURL,
|
85 | valueUpdate: 'input'">
|
86 | </div>
|
87 | </div>
|
88 |
|
89 | <div data-row-span="3">
|
90 | <div data-field-span="1">
|
91 | <label>Customer identifier</label>
|
92 | <input type="text" data-bind="value: HUBOT_TANGOCARD_CUSTOMER,
|
93 | valueUpdate: 'input'">
|
94 | </div>
|
95 | <div data-field-span="1">
|
96 | <label>Account identifier (default HubotHighfive)</label>
|
97 | <input type="text" data-bind="value: HUBOT_TANGOCARD_ACCOUNT,
|
98 | valueUpdate: 'input'">
|
99 | </div>
|
100 | <div data-field-span="1">
|
101 | <label>Account email</label>
|
102 | <input type="text" data-bind="value: HUBOT_TANGOCARD_EMAIL,
|
103 | valueUpdate: 'input'">
|
104 | </div>
|
105 | </div>
|
106 |
|
107 | <div data-row-span="5">
|
108 | <div data-field-span="3">
|
109 | <label>Credit Card Number (Hubot doesn't remember this)</label>
|
110 | <input type="text" data-bind="value: cc_number,
|
111 | valueUpdate: 'input'">
|
112 | </div>
|
113 | <div data-field-span="1">
|
114 | <label>Expiration (YYYY-MM)</label>
|
115 | <input type="text" data-bind="value: cc_expiration,
|
116 | valueUpdate: 'input'">
|
117 | </div>
|
118 | <div data-field-span="1">
|
119 | <label>Security Code</label>
|
120 | <input type="text" data-bind="value: HUBOT_TANGOCARD_AUTH,
|
121 | valueUpdate: 'input'">
|
122 | </div>
|
123 | </div>
|
124 |
|
125 | <div data-row-span="2">
|
126 | <div data-field-span="1">
|
127 | <label>First name</label>
|
128 | <input type="text" data-bind="value: cc_fname,
|
129 | valueUpdate: 'input'">
|
130 | </div>
|
131 | <div data-field-span="1">
|
132 | <label>Last name</label>
|
133 | <input type="text" data-bind="value: cc_lname,
|
134 | valueUpdate: 'input'">
|
135 | </div>
|
136 | </div>
|
137 |
|
138 | <div data-row-span="1">
|
139 | <div data-field-span="1">
|
140 | <label>Billing Address</label>
|
141 | <input type="text" data-bind="value: cc_address,
|
142 | valueUpdate: 'input'">
|
143 | </div>
|
144 | </div>
|
145 |
|
146 | <div data-row-span="4">
|
147 | <div data-field-span="1">
|
148 | <label>City</label>
|
149 | <input type="text" data-bind="value: cc_city,
|
150 | valueUpdate: 'input'">
|
151 | </div>
|
152 | <div data-field-span="1">
|
153 | <label>State</label>
|
154 | <input type="text" data-bind="value: cc_state,
|
155 | valueUpdate: 'input'">
|
156 | </div>
|
157 | <div data-field-span="1">
|
158 | <label>ZIP</label>
|
159 | <input type="text" data-bind="value: cc_zip,
|
160 | valueUpdate: 'input'">
|
161 | </div>
|
162 | <div data-field-span="1">
|
163 | <label>country</label>
|
164 | <input type="text" data-bind="value: cc_country,
|
165 | valueUpdate: 'input'">
|
166 | </div>
|
167 | </div>
|
168 |
|
169 | </fieldset>
|
170 | <button data-bind="click: tangocard_setup">Process</button>
|
171 |
|
172 | <p data-bind="text: tangocard_status,
|
173 | css: tangocard_class"></p>
|
174 | <br>
|
175 | <fieldset>
|
176 | <legend>Google Spreadsheet Settings</legend>
|
177 | <div data-row-span="5">
|
178 | <div data-field-span="2">
|
179 | <label>Spreadsheet Document ID</label>
|
180 | <input type="text" data-bind="value: HUBOT_HIGHFIVE_SHEET_DOCID,
|
181 | valueUpdate: 'input'">
|
182 | </div>
|
183 | <div data-field-span="1">
|
184 | <label>Worksheet Name</label>
|
185 | <input type="text" data-bind="value: HUBOT_HIGHFIVE_SHEET_SHEETNAME,
|
186 | valueUpdate: 'input'">
|
187 | </div>
|
188 | <div data-field-span="2">
|
189 | <label>App Email Address</label>
|
190 | <input type="text" data-bind="value: HUBOT_HIGHFIVE_SHEET_EMAIL,
|
191 | valueUpdate: 'input'">
|
192 | </div>
|
193 | </div>
|
194 | <div data-row-span="1">
|
195 | <div data-field-span="1">
|
196 | <label>Google API Key (contents of PEM file)</label>
|
197 | <textarea class="config-text-area"
|
198 | data-bind="value: HUBOT_HIGHFIVE_SHEET_KEY,
|
199 | valueUpdate: 'input'">
|
200 | </textarea>
|
201 | </div>
|
202 | </div>
|
203 | </fieldset>
|
204 |
|
205 |
|
206 |
|
207 | <br><br>
|
208 | <fieldset>
|
209 | <legend>Output</legend>
|
210 | <p>Copy and paste this to someone who can change Hubot's configuration:</p>
|
211 | <textarea class="config-text-area" data-bind="text: configoutput"></textarea>
|
212 |
|
213 | </fieldset>
|
214 | </div>
|
215 |
|
216 | </div>
|
217 | </html>
|