Sahli/editor-old-js/sahliedit.js

482 lines
13 KiB
JavaScript
Raw Normal View History

// Generated by CoffeeScript 1.11.0
2014-08-05 10:49:47 +03:00
(function() {
var Sahli, ansiorascii, arraytocolor, booltoint, colorindex, colortoarray, colortoname, dec2hex, dumpjson, emptyfiledef, getfilelist, hex2dec, inttobool, loadsahli, newsahli, resolvefiletype, sahlicolor, statustobool;
2014-08-05 10:49:47 +03:00
$(function() {
return $("h1").hide().slideDown(500);
});
$(function() {
return $("#newsahli").button({
disabled: false
}).click(function() {
return newsahli();
});
});
$(function() {
return $("#loadsahli").button({
disabled: false
}).click(function() {
return loadsahli();
});
});
$(function() {
$(".hidden").hide();
$("#entryamiga").button({
icons: {
primary: "ui-icon-gear"
}
}).click(function() {
var stuff;
stuff = $(this).children();
if (this.value === "1") {
stuff[1].textContent = 'Ansi';
return this.value = "0";
} else {
stuff[1].textContent = 'Ascii';
return this.value = "1";
}
});
$(".45box").css({
width: '45%',
display: 'inline-block'
});
$(".groupbox p").css({
margin: "0 0 .25em 0"
});
$(".colorbox").change((function(_this) {
return function() {
return sahlicolor();
};
})(this));
2014-08-05 10:49:47 +03:00
$("#entryfilepick").change(function() {
if (this.files[0] != null) {
return $("#entryfile").val(this.files[0].name);
}
});
return $("#entryfile").click(function() {
return $("#entryfilepick").click();
});
});
emptyfiledef = (function() {
function emptyfiledef() {
this.file = "";
this.name = "";
this.amiga = true;
this.filetype = 'plain';
this.width = "";
this.author = "";
this.font = "Propaz";
this.color = [255, 255, 255, 255];
this.bg = [0, 0, 0, 0];
this.line1 = "";
this.line2 = "";
this.text = "";
}
return emptyfiledef;
})();
2014-08-05 10:49:47 +03:00
Sahli = (function() {
function Sahli() {
this.emptyfiledef = new emptyfiledef;
2014-08-05 10:49:47 +03:00
this.emptyslidesdef = {
"background": "",
"template": "",
"css": ""
};
this.empty = {
"location": "",
2014-08-05 10:49:47 +03:00
"slides": this.emptyslidesdef,
"filedata": []
};
}
Sahli.prototype.loader = function() {
return $.ajax({
url: '../list.sahli',
dataType: "json",
success: (function(_this) {
return function(result) {
_this.data = result;
return _this.edit();
};
})(this)
});
};
Sahli.prototype.edit = function() {
$('#buttonbox').hide();
$('#dirlocation').change((function(_this) {
return function(event) {
return _this.data.location = event.target.value;
};
})(this));
2014-08-05 10:49:47 +03:00
$('#listsave').button({
icons: {
primary: "ui-icon-disk"
}
}).click((function(_this) {
return function() {
2014-08-06 17:24:27 +03:00
$('#sahlioutput').text(dumpjson(_this.data));
$('#dumparea').show(100);
2014-08-05 10:49:47 +03:00
return console.log(dumpjson(_this.data));
};
})(this));
$('#listlist').button({
icons: {
primary: "ui-icon-folder-open"
}
}).click(function() {
return getfilelist();
});
$('#listappend').button({
icons: {
primary: "ui-icon-1-n"
}
}).click((function(_this) {
return function(event) {
var newentry;
newentry = new emptyfiledef;
_this.data.filedata.push(newentry);
return _this.buildlist(_this.data);
};
})(this));
$('#listdisplay').button({
icons: {
primary: "ui-icon-refresh"
}
}).click((function(_this) {
return function() {
return _this.buildlist(_this.data);
};
})(this));
2014-08-06 17:24:27 +03:00
$('#closespan').click(function() {
$(this.parentElement.parentElement).hide();
return $('#sahlioutput').text('');
});
2014-08-05 10:49:47 +03:00
return this.buildlist(this.data);
};
Sahli.prototype.buildlist = function(data) {
var i, item, j, k, len, len1, ref, ref1, x;
2014-08-05 10:49:47 +03:00
$('#list').show(100);
$('#list ol li').remove();
ref = this.data.filedata;
for (j = 0, len = ref.length; j < len; j++) {
i = ref[j];
console.log(i.author);
}
x = 0;
$('#dirlocation').val(this.data.location);
ref1 = this.data.filedata;
for (k = 0, len1 = ref1.length; k < len1; k++) {
item = ref1[k];
2014-08-05 10:49:47 +03:00
$('#sortlist').append(this.additem(item, x++));
}
return $('#sortlist').sortable({
start: function(event, ui) {
return ui.item.data({
startpos: ui.item.index()
});
},
stop: (function(_this) {
return function(event, ui) {
var e, l, len2, name, ref2, s;
2014-08-05 10:49:47 +03:00
s = ui.item.data().startpos;
e = ui.item.index();
_this.data.filedata = _this.rearrangearray(s, e, _this.data.filedata);
ref2 = _this.data.filedata;
for (l = 0, len2 = ref2.length; l < len2; l++) {
name = ref2[l];
console.log(name.author, name.name, name.file);
2014-08-05 10:49:47 +03:00
}
console.log('---');
return _this.buildlist(_this.data);
2014-08-05 10:49:47 +03:00
};
})(this)
});
};
Sahli.prototype.rearrangearray = function(startpos, endpos, a) {
var alen, moving, tarr;
moving = a[startpos];
alen = a.length;
tarr = a.slice(0, startpos).concat(a.slice(startpos + 1));
return tarr.slice(0, endpos).concat([moving].concat(tarr.slice(endpos)));
};
Sahli.prototype.additem = function(item, pos) {
var entry;
entry = this.genentryline(item, pos);
return entry.dblclick((function(_this) {
return function() {
return _this.editline(item, pos);
};
})(this));
};
Sahli.prototype.genentryline = function(item, pos) {
var amigastatus, arrows, delbutton, entry;
arrows = "<span class='ui-icon ui-icon-arrowthick-2-n-s'></span>";
amigastatus = ansiorascii(booltoint(item.amiga));
delbutton = $("<span class='righty' id=del-" + pos + ">delete</span>").click((function(_this) {
return function(event) {
pos = event.currentTarget.id.replace("del-", "");
_this.data.filedata.splice(pos, 1);
return _this.buildlist(_this.data);
2014-08-05 10:49:47 +03:00
};
})(this));
entry = $("<li class='entry' id='" + item.file + "'>" + arrows + amigastatus + " | " + item.author + " : " + item.name + " : " + item.file + "</li>");
return entry.append(delbutton);
};
Sahli.prototype.save = function() {
var entry, pos;
pos = $("#entryindex").val();
entry = this.data.filedata[pos];
entry.name = $("#entryname").val();
entry.author = $("#entryauthor").val();
entry.amiga = statustobool($("#entryamiga").children()[1].textContent);
console.log($("#entryamiga").children()[1].textContent, entry.amiga, entry.author);
entry.color = colortoarray($("#entrycolor").val());
entry.bg = colortoarray($("#entrybg").val());
entry.width = $("#entrywidth").val();
entry.line1 = $("#entryline1").val();
entry.line2 = $("#entryline2").val();
entry.text = $("#entrytext").val();
entry.file = $("#entryfile").val();
entry.filetype = $("#entryfiletype").val();
return this.buildlist(this.data);
2014-08-05 10:49:47 +03:00
};
Sahli.prototype.editline = function(data, pos) {
var bcol, fcol;
2014-08-05 10:49:47 +03:00
$("#formica").dialog({
width: '800',
modal: false,
title: "Entry " + data.file + " ",
buttons: [
{
text: "Cancel",
icons: {
primary: 'ui-icon-trash'
},
click: function() {
return $(this).dialog("close");
}
}, {
text: "Save",
icons: {
primary: 'ui-icon-disk'
},
click: (function(_this) {
return function(event) {
event.preventDefault();
_this.save();
return event.currentTarget.previousElementSibling.click();
2014-08-05 10:49:47 +03:00
};
})(this)
}
]
});
data.amiga = booltoint(data.amiga);
fcol = colortoname(arraytocolor(data.color));
bcol = colortoname(arraytocolor(data.bg));
2014-08-05 10:49:47 +03:00
$("#entryindex").val(pos);
$("#entryname").val(data.name);
$("#entryauthor").val(data.author);
$("#entryfiletpye").val(data.filetype);
$("#entryfiletype").children()[resolvefiletype(data.filetype)].selected = true;
2014-08-05 10:49:47 +03:00
$("#entryamiga").val(data.amiga);
$("#entryamiga").children()[1].textContent = ansiorascii(data.amiga);
$("#entryfont").val(data.font);
$("#entrycolor").val(fcol);
$("#entrycolor").children()[colorindex(fcol)].selected = true;
$("#entrybg").val(bcol);
$("#entrybg").children()[colorindex(bcol)].selected = true;
2014-08-05 10:49:47 +03:00
$("#entrywidth").val(data.width);
$("#entryline1").val(data.line1);
$("#entryline2").val(data.line2);
$("#entrytext").val(data.text);
$("#entryfile").val(data.file);
return sahlicolor();
2014-08-05 10:49:47 +03:00
};
return Sahli;
})();
dumpjson = function(obj) {
return JSON.stringify(obj, null, "\t");
};
booltoint = function(bool) {
return bool + 1 - 1;
};
inttobool = function(intstr) {
return (intstr === 1).toString();
};
statustobool = function(status) {
if (status === 'Ascii') {
return true;
} else {
return false;
}
};
resolvefiletype = function(filetype) {
var options;
options = {
"plain": 0,
"ansi": 1,
"xbin": 2,
"ice": 3,
"adf": 4,
"avatar": 5,
"bin": 6,
"idf": 7,
"pcboard": 8,
"tundra": 9
};
return options[filetype];
};
2014-08-05 10:49:47 +03:00
ansiorascii = function(status) {
if (status === 0) {
return "Ansi";
} else {
return "Ascii";
}
};
dec2hex = function(num) {
return "" + (('000' + num.toString(16)).slice(-2));
};
hex2dec = function(num) {
return parseInt(num, 16);
};
arraytocolor = function(array) {
var c, x;
c = ((function() {
var j, len, results;
results = [];
for (j = 0, len = array.length; j < len; j++) {
x = array[j];
results.push(dec2hex(x));
2014-08-05 10:49:47 +03:00
}
return results;
2014-08-05 10:49:47 +03:00
})()).slice(0, 3).join('');
return "#" + c;
};
colortoarray = function(color) {
var c1, i, x;
color = color.slice(1);
c1 = [color.slice(0, 2), color.slice(2, 4), color.slice(4, 6)];
x = (function() {
var j, len, results;
results = [];
for (j = 0, len = c1.length; j < len; j++) {
i = c1[j];
results.push(hex2dec(i));
2014-08-05 10:49:47 +03:00
}
return results;
2014-08-05 10:49:47 +03:00
})();
x.push(255);
2014-08-05 10:49:47 +03:00
return x;
};
colortoname = function(color) {
var bw, colorname, names, ret;
2014-08-05 10:49:47 +03:00
names = {
"#E0E0E0": "Light Grey",
"#A0A0E0": "Light Blue",
"#9AFE2E": "Light Green",
"#FF0000": "Red",
"#FF8000": "Orange",
"#FFFF00": "Yellow",
"#00F000": "Green",
2014-08-05 10:49:47 +03:00
"#2EFEF7": "Cyan",
"#002EF7": "Blue",
2014-08-05 10:49:47 +03:00
"#0B0B3B": "Navy",
"#FF00FF": "Magenta",
"#8000FF": "Purple",
"#0A2A0A": "Dark Green",
"#3B3B3B": "Dark Grey",
"#FFFFFF": "White",
"#000000": "Black"
};
color = color.toUpperCase();
colorname = names[color];
bw = hex2dec(color.slice(1)) > 8421504 ? 'White' : "Black";
return ret = colorname != null ? colorname : bw;
};
colorindex = function(colorname) {
var names;
names = {
"Light Grey": 0,
"Light Blue": 1,
"Light Green": 2,
"Red": 3,
"Orange": 4,
"Yellow": 5,
"Green": 6,
"Cyan": 7,
"Blue": 8,
"Navy": 9,
"Magenta": 10,
"Purple": 11,
"Dark Green": 12,
"Dark Grey": 13,
"White": 14,
"Black": 15
};
return names[colorname];
2014-08-05 10:49:47 +03:00
};
sahlicolor = function() {
var bg, fg;
fg = $('#entrycolor').val();
bg = $('#entrybg').val();
console.log('sahlicolor', fg, bg);
return $('#sahliascii').css({
'color': fg,
'background': bg
});
};
getfilelist = function() {
var location;
location = $("#dirlocation").val();
return $.get("../" + location, function(listing) {
return console.log(listing);
});
};
2014-08-05 10:49:47 +03:00
newsahli = function() {
var newentry, sahli;
2014-08-05 10:49:47 +03:00
sahli = new Sahli;
sahli.data = sahli.empty;
newentry = new emptyfiledef;
sahli.data.filedata.push(newentry);
2014-08-05 10:49:47 +03:00
return sahli.edit();
};
loadsahli = function() {
var sahli;
sahli = new Sahli;
return sahli.loader('list.sahli');
};
}).call(this);