159 lines
4.5 KiB
JavaScript
159 lines
4.5 KiB
JavaScript
/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*-
|
|
* The contents of this file are subject to the Netscape Public
|
|
* License Version 1.1 (the "License"); you may not use this file
|
|
* except in compliance with the License. You may obtain a copy of
|
|
* the License at http://www.mozilla.org/NPL/
|
|
*
|
|
* Software distributed under the License is distributed on an "AS
|
|
* IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
|
|
* implied. See the License for the specific language governing
|
|
* rights and limitations under the License.
|
|
*
|
|
* The Original Code is Mozilla Communicator client code, released
|
|
* March 31, 1998.
|
|
*
|
|
* The Initial Developer of the Original Code is Netscape
|
|
* Communications Corporation. Portions created by Netscape are
|
|
* Copyright (C) 1998-1999 Netscape Communications Corporation. All
|
|
* Rights Reserved.
|
|
*/
|
|
|
|
function createHTML(tag) {
|
|
return document.createElementWithNameSpace(tag, "http://www.w3.org/TR/REC-html40");
|
|
}
|
|
|
|
function createXUL(tag) {
|
|
return document.createElementWithNameSpace(tag, "http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul");
|
|
}
|
|
|
|
function createOption(label,value) {
|
|
var opt = new Option(label, value);
|
|
return opt;
|
|
}
|
|
|
|
function createTextField() {
|
|
var text = createHTML("INPUT");
|
|
text.type = "text";
|
|
|
|
return text;
|
|
}
|
|
|
|
function createStringSelect() {
|
|
var sel = createHTML("select");
|
|
|
|
addStringComparators(sel);
|
|
|
|
return sel;
|
|
}
|
|
|
|
function addStringComparators(selWidget) {
|
|
var opt1=createOption("contains", "contains");
|
|
var opt2=createOption("doesn't contain", "nocontain");
|
|
|
|
selWidget.add(opt1, null);
|
|
selWidget.add(opt2, null);
|
|
}
|
|
|
|
function addDateComparators(selWidget) {
|
|
var opt1=createOption("is before", "before");
|
|
var opt2=createOption("is after", "after");
|
|
|
|
selWidget.add(opt1, null);
|
|
selWidget.add(opt2, null);
|
|
}
|
|
|
|
function addNumericComparators(selWidget) {
|
|
var opt1=createOption("is", "is");
|
|
var opt2=createOption("is greater than", "gt");
|
|
var opt3=createOption("is less than", "lt");
|
|
|
|
selWidget.add(opt1, null);
|
|
selWidget.add(opt2, null);
|
|
selWidget.add(opt3, null);
|
|
|
|
}
|
|
// eventually this will come from the search service
|
|
function createFieldSelect() {
|
|
var sel = createHTML("select");
|
|
var opt1=createOption("subject", "subject");
|
|
var opt2=createOption("sender", "sender");
|
|
var opt3=createOption("date", "date");
|
|
var opt4=createOption("text", "any text");
|
|
var opt5=createOption("keyword", "keyword");
|
|
var opt6=createOption("age in days", "age");
|
|
|
|
sel.add(opt1, null);
|
|
sel.add(opt2, null);
|
|
sel.add(opt3, null);
|
|
sel.add(opt4, null);
|
|
sel.add(opt5, null);
|
|
sel.add(opt6, null);
|
|
sel.onChange = OnFieldSelect;
|
|
sel.onchange = OnFieldSelect;
|
|
return sel;
|
|
}
|
|
|
|
function createRow() {
|
|
var result = createHTML("DIV");
|
|
|
|
var fieldSelect = createFieldSelect();
|
|
var containSelect = createStringSelect();
|
|
var fieldText = createTextField();
|
|
|
|
fieldText.setAttribute("flex", "100%");
|
|
|
|
result.appendChild(fieldSelect);
|
|
result.appendChild(containSelect);
|
|
result.appendChild(fieldText);
|
|
return result;
|
|
}
|
|
|
|
function OnMore(event) {
|
|
var parentBox = document.getElementById("criteriabox");
|
|
parentBox.appendChild(createRow());
|
|
|
|
var sel = document.getElementById("zoober");
|
|
}
|
|
|
|
function OnLess(event) {
|
|
var parentBox = document.getElementById("criteriabox");
|
|
if (parentBox.childNodes.length > 1) {
|
|
parentBox.removeChild(parentBox.lastChild);
|
|
}
|
|
}
|
|
function OnFieldSelect(event) {
|
|
var selWidget = event.target;
|
|
var selectedValue = selWidget.value;
|
|
dump(selectedValue + " was just selected\n");
|
|
|
|
dump("event.target is " + event.target + "\n");
|
|
var comp = selWidget.parentNode;
|
|
while (selWidget.length)
|
|
selWidget.remove(0);
|
|
|
|
if (selectedValue == "subject" ||
|
|
selectedValue == "sender" ||
|
|
selectedValue == "text" ||
|
|
selectedValue == "keyword") {
|
|
addStringComparators(comp);
|
|
|
|
} else if (selectedValue == "age") {
|
|
addNumericComparators(comp);
|
|
} else if (selectedValue == "date") {
|
|
addDateComparators(comp);
|
|
}
|
|
}
|
|
|
|
function OnComparatorSelect(event) {
|
|
var selWidget = event.target;
|
|
|
|
var selectedValue = selWidget.value;
|
|
dump(selectedValue + " was just selected\n");
|
|
|
|
}
|
|
// onchange="OnFieldSelect(event);"
|
|
|
|
function onOptions(event) {
|
|
window.openDialog("chrome://messenger/content/SearchOptions.xul", "options", "chrome,modal,height=100,width=70");
|
|
}
|