Files
Mozilla/mozilla/mailnews/base/search/resources/content/SearchDialog.js
alecf%netscape.com 147437fd49 some minor fixes for GFX widgets and changes to the DOM.
git-svn-id: svn://10.0.0.236/trunk@45305 18797224-902f-48f8-a5cc-f745e15eee43
1999-08-31 06:14:50 +00:00

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");
}