Вода
Дали мне задание написать программу для нашей конторы. Срок - неделя. БД по сотрудникам.
С-чего-начать и что-умею?
Во-первых бы здорово открывать это из браузера, не обременяя пользователя дополнительными программами на рабочем столе.
Во-вторых, у всех стоит Firefox. IE отключен, зарыт в недрах Program Files, и зарублен на сервере squid-ом. Все. Забудем про него.
С-чего-начать разобрались. Теперь что-умею.
Да почти ничего. sh/perl/sed/awk - обычный *nix-овый админ.
На HTML ничего не писал. Про java-script знаю что он есть. Всё.
PS : Глаза боятся, а руки делают. Оказалось что всё просто. Очень просто. Надо только разобраться как оно работает. Один раз. Дальше - хоть M$Word на ксуле писать. Вот оно будущее ::)
Благодарности и сцылки
WWW. Просто WWW. - для изучения HTML и JavaScript, смотрим, разбираем, учимся.
http://www.hevanet.com/acorbin/xul/top.xul - самое оно для начала разметки XUL.
http://www.georgenava.com - все остальное. Кликаем, смотрим, делаем также. Мужик рулит!
http://xulplanet.com/ - для более глубоких познаний.
Все остальное можно нагуглить.
Инструменты:
OpenBSD научила меня к минимализму, поэтому использую только то что нужно, ничего лишнего:
notepad2, vi(на сервере) - редактор - больше ничего не надо
winscp, putty - работа с сервером
MySQLQueryBrowser - работа с мускулом
гуглим "Armin Van Buuren state of trance episode mp3" - качаем, слушаем, работаем.
Благодарности:
George Nava - за то что он делает. Был момент, когда я просто не знал, куда двигаться дальше.
Начнем?
Оки-доки. Создали окно с одним textbox-ом и деревом для результатов. Никакой кнопки find. Будем искать по мере набора, для этого служит функция wm(WebMethod, стащил у George Nava). Т.е при вводе постоянно идет обращение к скрипту wm.
Собственно, вот он:
const OnlyXUL = "http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul";
function wm(url,request,callback)
{
var http = new XMLHttpRequest();
var mode = request?"POST":"GET";
http.open(mode,url,true);
if(mode=="POST"){http.setRequestHeader('Content-Type','application/x-www-form-urlencoded');}
http.onreadystatechange=function(){if(http.readyState==4 && http.status == 200){callback(http.responseText);}};
http.send(request);
}
function fs2(resp){
var r=eval(resp);
var tree=id('tree_s');
cleartree(tree);
var s=r.list;
for(i=0; i