God, what was I doing?

This commit is contained in:
Zixaphir 2014-01-02 02:07:29 -07:00
parent 2181553795
commit d9cab09436
3 changed files with 117 additions and 110 deletions

View File

@ -12717,7 +12717,7 @@
}, },
categories: ['Anime', 'Ponies', 'Questionable', 'Silhouette', 'Western'], categories: ['Anime', 'Ponies', 'Questionable', 'Silhouette', 'Western'],
dialog: function(key) { dialog: function(key) {
var container, dialog, div, fileInput, input, item, layout, name, option, optionHTML, setting, value, _i, _len, _ref; var container, dialog, div, fileInput, fileRice, imageFn, input, item, layout, name, nameFn, option, optionHTML, saveCheck, saveVal, setting, updateMascot, value, _i, _len, _ref;
Conf['editMode'] = 'mascot'; Conf['editMode'] = 'mascot';
if (Mascots[key]) { if (Mascots[key]) {
editMascot = JSON.parse(JSON.stringify(Mascots[key])); editMascot = JSON.parse(JSON.stringify(Mascots[key]));
@ -12743,6 +12743,38 @@
innerHTML: "<div id=mascotcontent><center>\nPROTIP: Shift-Click the Mascot Image field to upload your own images!\n<br><a href='https://github.com/zixaphir/appchan-x/issues/126#issuecomment-14365049'>This may have some caveats.</a></center></div><div id=save><a href='javascript:;'>Save Mascot</a></div><div id=close><a href='javascript:;'>Close</a></div>" innerHTML: "<div id=mascotcontent><center>\nPROTIP: Shift-Click the Mascot Image field to upload your own images!\n<br><a href='https://github.com/zixaphir/appchan-x/issues/126#issuecomment-14365049'>This may have some caveats.</a></center></div><div id=save><a href='javascript:;'>Save Mascot</a></div><div id=close><a href='javascript:;'>Close</a></div>"
}); });
container = $("#mascotcontent", dialog); container = $("#mascotcontent", dialog);
fileRice = function(e) {
if (e.shiftKey) {
return this.nextSibling.click();
}
};
updateMascot = function() {
return MascotTools.change(editMascot);
};
saveVal = function() {
editMascot[this.name] = this.value;
return updateMascot();
};
imageFn = function() {
if (MascotTools.URL === this.value) {
return MascotTools.change(editMascot);
} else if (MascotTools.URL) {
URL.revokeObjectURL(MascotTools.URL);
delete MascotTools.URL;
}
return saveVal.call(this);
};
nameFn = function() {
this.value = this.value.replace(/[^a-z-_0-9]/ig, "_");
if ((this.value !== "") && !/^[a-z]/i.test(this.value)) {
return alert("Mascot names must start with a letter.");
}
return saveVal.call(this);
};
saveCheck = function() {
editMascot[this.name] = this.checked ? true : false;
return updateMascot();
};
for (name in layout) { for (name in layout) {
item = layout[name]; item = layout[name];
value = editMascot[name] || (editMascot[name] = item[1]); value = editMascot[name] || (editMascot[name] = item[1]);
@ -12752,53 +12784,27 @@
input = $('input', div); input = $('input', div);
switch (name) { switch (name) {
case 'image': case 'image':
$.on(input, 'blur', function() { $.on(input, 'blur', imageFn);
if (MascotTools.URL === this.value) {
return MascotTools.change(editMascot);
} else if (MascotTools.URL) {
URL.revokeObjectURL(MascotTools.URL);
delete MascotTools.URL;
}
editMascot[this.name] = this.value;
return MascotTools.change(editMascot);
});
fileInput = $.el('input', { fileInput = $.el('input', {
type: "file", type: "file",
accept: "image/*", accept: "image/*",
title: "imagefile", title: "imagefile",
hidden: "hidden" hidden: "hidden"
}); });
$.on(input, 'click', function(e) { $.on(input, 'click', FileRice);
if (e.shiftKey) {
return this.nextSibling.click();
}
});
$.on(fileInput, 'change', MascotTools.uploadImage); $.on(fileInput, 'change', MascotTools.uploadImage);
$.after(input, fileInput); $.after(input, fileInput);
break; break;
case 'name': case 'name':
$.on(input, 'blur', function() { $.on(input, 'blur', nameFn);
this.value = this.value.replace(/[^a-z-_0-9]/ig, "_");
if ((this.value !== "") && !/^[a-z]/i.test(this.value)) {
return alert("Mascot names must start with a letter.");
}
editMascot[this.name] = this.value;
return MascotTools.change(editMascot);
});
break; break;
default: default:
$.on(input, 'blur', function() { $.on(input, 'blur', saveVal);
editMascot[this.name] = this.value;
return MascotTools.change(editMascot);
});
} }
break; break;
case "number": case "number":
div = this.input(item, name); div = this.input(item, name);
$.on($('input', div), 'blur', function() { $.on($('input', div), 'blur', saveVal);
editMascot[this.name] = parseInt(this.value);
return MascotTools.change(editMascot);
});
break; break;
case "select": case "select":
optionHTML = "<div class=optionlabel>" + item[0] + "</div><div class=option><select name='" + name + "' value='" + value + "'><br>"; optionHTML = "<div class=optionlabel>" + item[0] + "</div><div class=option><select name='" + name + "' value='" + value + "'><br>";
@ -12814,20 +12820,14 @@
}); });
setting = $("select", div); setting = $("select", div);
setting.value = value; setting.value = value;
$.on($('select', div), 'change', function() { $.on($('select', div), 'change', saveVal);
editMascot[this.name] = this.value;
return MascotTools.change(editMascot);
});
break; break;
case "checkbox": case "checkbox":
div = $.el("div", { div = $.el("div", {
className: "mascotvar", className: "mascotvar",
innerHTML: "<label><input type=" + item[2] + " class=field name='" + name + "' " + (value ? 'checked' : void 0) + ">" + item[0] + "</label>" innerHTML: "<label><input type=" + item[2] + " class=field name='" + name + "' " + (value ? 'checked' : void 0) + ">" + item[0] + "</label>"
}); });
$.on($('input', div), 'click', function() { $.on($('input', div), 'click', saveCheck);
editMascot[this.name] = this.checked ? true : false;
return MascotTools.change(editMascot);
});
} }
$.add(container, div); $.add(container, div);
} }

View File

@ -12722,7 +12722,7 @@
}, },
categories: ['Anime', 'Ponies', 'Questionable', 'Silhouette', 'Western'], categories: ['Anime', 'Ponies', 'Questionable', 'Silhouette', 'Western'],
dialog: function(key) { dialog: function(key) {
var container, dialog, div, fileInput, input, item, layout, name, option, optionHTML, setting, value, _i, _len, _ref; var container, dialog, div, fileInput, fileRice, imageFn, input, item, layout, name, nameFn, option, optionHTML, saveCheck, saveVal, setting, updateMascot, value, _i, _len, _ref;
Conf['editMode'] = 'mascot'; Conf['editMode'] = 'mascot';
if (Mascots[key]) { if (Mascots[key]) {
editMascot = JSON.parse(JSON.stringify(Mascots[key])); editMascot = JSON.parse(JSON.stringify(Mascots[key]));
@ -12748,6 +12748,38 @@
innerHTML: "<div id=mascotcontent><center>\nPROTIP: Shift-Click the Mascot Image field to upload your own images!\n<br><a href='https://github.com/zixaphir/appchan-x/issues/126#issuecomment-14365049'>This may have some caveats.</a></center></div><div id=save><a href='javascript:;'>Save Mascot</a></div><div id=close><a href='javascript:;'>Close</a></div>" innerHTML: "<div id=mascotcontent><center>\nPROTIP: Shift-Click the Mascot Image field to upload your own images!\n<br><a href='https://github.com/zixaphir/appchan-x/issues/126#issuecomment-14365049'>This may have some caveats.</a></center></div><div id=save><a href='javascript:;'>Save Mascot</a></div><div id=close><a href='javascript:;'>Close</a></div>"
}); });
container = $("#mascotcontent", dialog); container = $("#mascotcontent", dialog);
fileRice = function(e) {
if (e.shiftKey) {
return this.nextSibling.click();
}
};
updateMascot = function() {
return MascotTools.change(editMascot);
};
saveVal = function() {
editMascot[this.name] = this.value;
return updateMascot();
};
imageFn = function() {
if (MascotTools.URL === this.value) {
return MascotTools.change(editMascot);
} else if (MascotTools.URL) {
URL.revokeObjectURL(MascotTools.URL);
delete MascotTools.URL;
}
return saveVal.call(this);
};
nameFn = function() {
this.value = this.value.replace(/[^a-z-_0-9]/ig, "_");
if ((this.value !== "") && !/^[a-z]/i.test(this.value)) {
return alert("Mascot names must start with a letter.");
}
return saveVal.call(this);
};
saveCheck = function() {
editMascot[this.name] = this.checked ? true : false;
return updateMascot();
};
for (name in layout) { for (name in layout) {
item = layout[name]; item = layout[name];
value = editMascot[name] || (editMascot[name] = item[1]); value = editMascot[name] || (editMascot[name] = item[1]);
@ -12757,53 +12789,27 @@
input = $('input', div); input = $('input', div);
switch (name) { switch (name) {
case 'image': case 'image':
$.on(input, 'blur', function() { $.on(input, 'blur', imageFn);
if (MascotTools.URL === this.value) {
return MascotTools.change(editMascot);
} else if (MascotTools.URL) {
URL.revokeObjectURL(MascotTools.URL);
delete MascotTools.URL;
}
editMascot[this.name] = this.value;
return MascotTools.change(editMascot);
});
fileInput = $.el('input', { fileInput = $.el('input', {
type: "file", type: "file",
accept: "image/*", accept: "image/*",
title: "imagefile", title: "imagefile",
hidden: "hidden" hidden: "hidden"
}); });
$.on(input, 'click', function(e) { $.on(input, 'click', FileRice);
if (e.shiftKey) {
return this.nextSibling.click();
}
});
$.on(fileInput, 'change', MascotTools.uploadImage); $.on(fileInput, 'change', MascotTools.uploadImage);
$.after(input, fileInput); $.after(input, fileInput);
break; break;
case 'name': case 'name':
$.on(input, 'blur', function() { $.on(input, 'blur', nameFn);
this.value = this.value.replace(/[^a-z-_0-9]/ig, "_");
if ((this.value !== "") && !/^[a-z]/i.test(this.value)) {
return alert("Mascot names must start with a letter.");
}
editMascot[this.name] = this.value;
return MascotTools.change(editMascot);
});
break; break;
default: default:
$.on(input, 'blur', function() { $.on(input, 'blur', saveVal);
editMascot[this.name] = this.value;
return MascotTools.change(editMascot);
});
} }
break; break;
case "number": case "number":
div = this.input(item, name); div = this.input(item, name);
$.on($('input', div), 'blur', function() { $.on($('input', div), 'blur', saveVal);
editMascot[this.name] = parseInt(this.value);
return MascotTools.change(editMascot);
});
break; break;
case "select": case "select":
optionHTML = "<div class=optionlabel>" + item[0] + "</div><div class=option><select name='" + name + "' value='" + value + "'><br>"; optionHTML = "<div class=optionlabel>" + item[0] + "</div><div class=option><select name='" + name + "' value='" + value + "'><br>";
@ -12819,20 +12825,14 @@
}); });
setting = $("select", div); setting = $("select", div);
setting.value = value; setting.value = value;
$.on($('select', div), 'change', function() { $.on($('select', div), 'change', saveVal);
editMascot[this.name] = this.value;
return MascotTools.change(editMascot);
});
break; break;
case "checkbox": case "checkbox":
div = $.el("div", { div = $.el("div", {
className: "mascotvar", className: "mascotvar",
innerHTML: "<label><input type=" + item[2] + " class=field name='" + name + "' " + (value ? 'checked' : void 0) + ">" + item[0] + "</label>" innerHTML: "<label><input type=" + item[2] + " class=field name='" + name + "' " + (value ? 'checked' : void 0) + ">" + item[0] + "</label>"
}); });
$.on($('input', div), 'click', function() { $.on($('input', div), 'click', saveCheck);
editMascot[this.name] = this.checked ? true : false;
return MascotTools.change(editMascot);
});
} }
$.add(container, div); $.add(container, div);
} }

View File

@ -83,7 +83,7 @@ MascotTools =
dialog: (key) -> dialog: (key) ->
Conf['editMode'] = 'mascot' Conf['editMode'] = 'mascot'
if Mascots[key] if Mascots[key]
editMascot = JSON.parse(JSON.stringify(Mascots[key])) editMascot = JSON.parse JSON.stringify Mascots[key]
else else
editMascot = {} editMascot = {}
editMascot.name = key or '' editMascot.name = key or ''
@ -147,6 +147,35 @@ MascotTools =
innerHTML: """<%= grunt.file.read('src/General/html/Features/MascotDialog.html').replace(/>\s+</g, '><').trim() %>""" innerHTML: """<%= grunt.file.read('src/General/html/Features/MascotDialog.html').replace(/>\s+</g, '><').trim() %>"""
container = $ "#mascotcontent", dialog container = $ "#mascotcontent", dialog
fileRice = (e) ->
if e.shiftKey
@nextSibling.click()
updateMascot = ->
MascotTools.change editMascot
saveVal = ->
editMascot[@name] = @value
updateMascot()
imageFn = ->
if MascotTools.URL is @value
return MascotTools.change editMascot
else if MascotTools.URL
URL.revokeObjectURL MascotTools.URL
delete MascotTools.URL
saveVal.call @
nameFn = ->
@value = @value.replace /[^a-z-_0-9]/ig, "_"
if (@value isnt "") and !/^[a-z]/i.test @value
return alert "Mascot names must start with a letter."
saveVal.call @
saveCheck = ->
editMascot[@name] = if @checked then true else false
updateMascot()
for name, item of layout for name, item of layout
value = editMascot[name] or= item[1] value = editMascot[name] or= item[1]
@ -159,14 +188,7 @@ MascotTools =
switch name switch name
when 'image' when 'image'
$.on input, 'blur', -> $.on input, 'blur', imageFn
if MascotTools.URL is @value
return MascotTools.change editMascot
else if MascotTools.URL
URL.revokeObjectURL MascotTools.URL
delete MascotTools.URL
editMascot[@name] = @value
MascotTools.change editMascot
fileInput = $.el 'input', fileInput = $.el 'input',
type: "file" type: "file"
@ -174,32 +196,21 @@ MascotTools =
title: "imagefile" title: "imagefile"
hidden: "hidden" hidden: "hidden"
$.on input, 'click', (e) -> $.on input, 'click', FileRice
if e.shiftKey
@nextSibling.click()
$.on fileInput, 'change', MascotTools.uploadImage $.on fileInput, 'change', MascotTools.uploadImage
$.after input, fileInput $.after input, fileInput
when 'name' when 'name'
$.on input, 'blur', -> $.on input, 'blur', nameFn
@value = @value.replace /[^a-z-_0-9]/ig, "_"
if (@value isnt "") and !/^[a-z]/i.test @value
return alert "Mascot names must start with a letter."
editMascot[@name] = @value
MascotTools.change editMascot
else else
$.on input, 'blur', -> $.on input, 'blur', saveVal
editMascot[@name] = @value
MascotTools.change editMascot
when "number" when "number"
div = @input item, name div = @input item, name
$.on $('input', div), 'blur', -> $.on $('input', div), 'blur', saveVal
editMascot[@name] = parseInt @value
MascotTools.change editMascot
when "select" when "select"
optionHTML = "<div class=optionlabel>#{item[0]}</div><div class=option><select name='#{name}' value='#{value}'><br>" optionHTML = "<div class=optionlabel>#{item[0]}</div><div class=option><select name='#{name}' value='#{value}'><br>"
@ -212,17 +223,13 @@ MascotTools =
setting = $ "select", div setting = $ "select", div
setting.value = value setting.value = value
$.on $('select', div), 'change', -> $.on $('select', div), 'change', saveVal
editMascot[@name] = @value
MascotTools.change editMascot
when "checkbox" when "checkbox"
div = $.el "div", div = $.el "div",
className: "mascotvar" className: "mascotvar"
innerHTML: "<label><input type=#{item[2]} class=field name='#{name}' #{if value then 'checked'}>#{item[0]}</label>" innerHTML: "<label><input type=#{item[2]} class=field name='#{name}' #{if value then 'checked'}>#{item[0]}</label>"
$.on $('input', div), 'click', -> $.on $('input', div), 'click', saveCheck
editMascot[@name] = if @checked then true else false
MascotTools.change editMascot
$.add container, div $.add container, div