diff --git a/QuickGrade.html b/QuickGrade.html
index 9e468cc..de92e88 100644
--- a/QuickGrade.html
+++ b/QuickGrade.html
@@ -27429,6 +27429,11 @@
Grading scale
editing.written.push({ label: '', max: 5, kind: 'short', expected: '' });
renderWrittenList();
});
+ on($('#btnAddForm'), 'click', function () {
+ editing.forms = editing.forms || [];
+ editing.forms.push({ id: nextFormLetter(), code: unusedCode(), key: [], rules: {} });
+ renderForms();
+ });
['#f_mcCount', '#f_choices'].forEach(function (sel) {
on($(sel), 'change', function () {
editing.mc.count = Q.clamp(parseInt($('#f_mcCount').value, 10) || 0, 0, 300);
diff --git a/js/app.js b/js/app.js
index 1dc8a4f..92cb198 100644
--- a/js/app.js
+++ b/js/app.js
@@ -3484,6 +3484,11 @@ function wireUI() {
editing.written.push({ label: '', max: 5, kind: 'short', expected: '' });
renderWrittenList();
});
+ on($('#btnAddForm'), 'click', function () {
+ editing.forms = editing.forms || [];
+ editing.forms.push({ id: nextFormLetter(), code: unusedCode(), key: [], rules: {} });
+ renderForms();
+ });
['#f_mcCount', '#f_choices'].forEach(function (sel) {
on($(sel), 'change', function () {
editing.mc.count = Q.clamp(parseInt($('#f_mcCount').value, 10) || 0, 0, 300);
diff --git a/sw.js b/sw.js
index 5c8e797..b308459 100644
--- a/sw.js
+++ b/sw.js
@@ -15,7 +15,7 @@
* a stale name ships an update nobody receives, and a stale list leaves a
* file the app needs simply missing when offline.
*/
-var CACHE = 'quickgrade-c996e665524d';
+var CACHE = 'quickgrade-462da285317f';
var SHELL = [
'./',
'./index.html',