view templates/classic/html/help_controls.js @ 2077:3e0961d6d44d

Added the "actor" property. Metakit backend not done (still not confident I know how it's supposed to work ;) Currently it will come up as NULL in the RDBMS backends for older items. The *dbm backends will look up the journal. I hope to remedy the former before 0.7's release. Fixed a bunch of migration issues in the rdbms backends while I was at it (index changes for key prop changes) and simplified the class table update code for RDBMSes that have "alter table" in their command set (ie. not sqlite) ... migration from "version 1" to "version 2" still hasn't actually been tested yet though.
author Richard Jones <richard@users.sourceforge.net>
date Mon, 15 Mar 2004 05:50:20 +0000
parents 75fe2131b6d9
children 37bf760544f3
line wrap: on
line source

// initial values for either Nosy, Superseder, Topic and Waiting On,
// depending on which has called

original_field = window.opener.document.itemSynopsis[field].value;


// pop() and push() methods for pre5.5 IE browsers

function bName() {
    // test for IE 
    if (navigator.appName == "Microsoft Internet Explorer")
      return 1;
    return 0;
}

function bVer() {
    // return version number (e.g., 4.03)
    msieIndex = navigator.appVersion.indexOf("MSIE") + 5;
    return(parseFloat(navigator.appVersion.substr(msieIndex,3)));
}

function pop() {
    // make a pop method for old IE browsers
    var lastElement = this[this.length - 1];
    this.length--;
    return lastElement;
}

function push() {
    // make a pop method for old IE browsers
    var sub = this.length;
    for (var i = 0; i < push.arguments.length; ++i) {
      this[sub] = push.arguments[i];
        sub++;
  }
}

// add the pop() and push() method to Array if they're not there
if (!Array.prototype.pop) {
    Array.prototype.pop = pop;
}
if (!Array.prototype.push) {
    Array.prototype.push = push;
}

function trim(value) {
  var temp = value;
  var obj = /^(\s*)([\W\w]*)(\b\s*$)/;
  if (obj.test(temp)) { temp = temp.replace(obj, '$2'); }
  var obj = /  /g;
  while (temp.match(obj)) { temp = temp.replace(obj, " "); }
  return temp;
}

function determineList() {
  // generate a comma-separated list of the checked items
  if (document.frm_help.check==undefined) { return; }
  var list = new Array();
  if (document.frm_help.check.length==undefined) {
      if (document.frm_help.check.checked) {
          list.push(document.frm_help.check.value);
      }
  } else {
      for (box=0; box < document.frm_help.check.length; box++) {
          if (document.frm_help.check[box].checked) {
              list.push(document.frm_help.check[box].value);
          }
      }
  }
  return new String(list.join(','));
}

function updateList() {
  // write back to opener window
  if (document.frm_help.check==undefined) { return; }
  window.opener.document.itemSynopsis[field].value = determineList();
}

function updatePreview() {
  // update the preview box
  if (document.frm_help.check==undefined) { return; }
  writePreview(determineList());
}

function clearList() {
  // uncheck all checkboxes
  if (document.frm_help.check==undefined) { return; }
  for (box=0; box < document.frm_help.check.length; box++) {
      document.frm_help.check[box].checked = false;
  }
}

function reviseList(vals) {
  // update the checkboxes based on the preview field
  if (document.frm_help.check==undefined) { return; }
  var to_check;
  var list = vals.split(",");
  if (document.frm_help.check.length==undefined) {
      check = document.frm_help.check;
      to_check = false;
      for (val in list) {
          if (check.value==trim(list[val])) {
              to_check = true;
              break;
          }
      }
      check.checked = to_check;
  } else {
    for (box=0; box < document.frm_help.check.length; box++) {
      check = document.frm_help.check[box];
      to_check = false;
      for (val in list) {
          if (check.value==trim(list[val])) {
              to_check = true;
              break;
          }
      }
      check.checked = to_check;
    }
  }
}

function resetList() {
  // reset preview and check boxes to initial values
  if (document.frm_help.check==undefined) { return; }
  writePreview(original_field);
  reviseList(original_field);
}

function writePreview(val) {
   // writes a value to the text_preview
   document.frm_help.text_preview.value = val;
}

function focusField(name) {
    for(i=0; i < document.forms.length; ++i) {
      var obj = document.forms[i].elements[name];
      if (obj && obj.focus) {obj.focus();}
    }
}

function selectField(name) {
    for(i=0; i < document.forms.length; ++i) {
      var obj = document.forms[i].elements[name];
      if (obj && obj.focus){obj.focus();} 
      if (obj && obj.select){obj.select();}
    }
}


Roundup Issue Tracker: http://roundup-tracker.org/