home *** CD-ROM | disk | FTP | other *** search
/ ftp.swcp.com / ftp.swcp.com.zip / ftp.swcp.com / mac / mozilla-macos9-1.3.1.sea.bin / Mozilla1.3.1 / Chrome / comm.jar / content / editor / EdPageProps.js < prev    next >
Text File  |  2003-06-08  |  5KB  |  188 lines

  1. /* 
  2.  * The contents of this file are subject to the Netscape Public
  3.  * License Version 1.1 (the "License"); you may not use this file
  4.  * except in compliance with the License. You may obtain a copy of
  5.  * the License at http://www.mozilla.org/NPL/
  6.  *  
  7.  * Software distributed under the License is distributed on an "AS
  8.  * IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
  9.  * implied. See the License for the specific language governing
  10.  * rights and limitations under the License.
  11.  *  
  12.  * The Original Code is Mozilla Communicator client code, released
  13.  * March 31, 1998.
  14.  * 
  15.  * The Initial Developer of the Original Code is Netscape
  16.  * Communications Corporation. Portions created by Netscape are
  17.  * Copyright (C) 1998-1999 Netscape Communications Corporation. All
  18.  * Rights Reserved.
  19.  * 
  20.  * Contributor(s): 
  21.  *    Charles Manske (cmanske@netscape.com)
  22.  */
  23.  
  24. var gNewTitle = "";
  25. var gAuthor = "";
  26. var gDescription = "";
  27. var gAuthorElement;
  28. var gDescriptionElement;
  29. var gInsertNewAuthor = false;
  30. var gInsertNewDescription = false;
  31. var gTitleWasEdited = false;
  32. var gAuthorWasEdited = false;
  33. var gDescWasEdited = false;
  34.  
  35. //Cancel() is in EdDialogCommon.js
  36. // dialog initialization code
  37. function Startup()
  38. {
  39.   var editor = GetCurrentEditor();
  40.   if (!editor)
  41.   {
  42.     window.close();
  43.     return;
  44.   }
  45.  
  46.   gDialog.PageLocation     = document.getElementById("PageLocation");
  47.   gDialog.PageModDate      = document.getElementById("PageModDate");
  48.   gDialog.TitleInput       = document.getElementById("TitleInput");
  49.   gDialog.AuthorInput      = document.getElementById("AuthorInput");
  50.   gDialog.DescriptionInput = document.getElementById("DescriptionInput");
  51.   
  52.   // Default string for new page is set from DTD string in XUL,
  53.   //   so set only if not new doc URL
  54.   var location = GetDocumentUrl();
  55.   var lastmodString = GetString("Unknown");
  56.  
  57.   if (!IsUrlAboutBlank(location))
  58.   {
  59.     // NEVER show username and password in clear text
  60.     gDialog.PageLocation.setAttribute("value", StripPassword(location));
  61.  
  62.     // Get last-modified file date+time
  63.     // TODO: Convert this to local time?
  64.     var lastmod;
  65.     try {
  66.       lastmod = editor.document.lastModified;  // get string of last modified date
  67.     } catch (e) {}
  68.     // Convert modified string to date (0 = unknown date or January 1, 1970 GMT)
  69.     if(Date.parse(lastmod))
  70.     {
  71.       try {
  72.         const nsScriptableDateFormat_CONTRACTID = "@mozilla.org/intl/scriptabledateformat;1";
  73.         const nsIScriptableDateFormat = Components.interfaces.nsIScriptableDateFormat;
  74.         var dateService = Components.classes[nsScriptableDateFormat_CONTRACTID]
  75.          .getService(nsIScriptableDateFormat);
  76.  
  77.         var lastModDate = new Date();
  78.         lastModDate.setTime(Date.parse(lastmod));
  79.         lastmodString =  dateService.FormatDateTime("", 
  80.                                       dateService.dateFormatLong,
  81.                                       dateService.timeFormatSeconds,
  82.                                       lastModDate.getFullYear(),
  83.                                       lastModDate.getMonth()+1,
  84.                                       lastModDate.getDate(),
  85.                                       lastModDate.getHours(),
  86.                                       lastModDate.getMinutes(),
  87.                                       lastModDate.getSeconds());
  88.       } catch (e) {}
  89.     }
  90.   }
  91.   gDialog.PageModDate.value = lastmodString;
  92.  
  93.   gAuthorElement = GetMetaElement("author");
  94.   if (!gAuthorElement)
  95.   {
  96.     gAuthorElement = CreateMetaElement("author");
  97.     if (!gAuthorElement)
  98.     {
  99.       window.close();
  100.       return;
  101.     }
  102.     gInsertNewAuthor = true;
  103.   }
  104.  
  105.   gDescriptionElement = GetMetaElement("description");
  106.   if (!gDescriptionElement)
  107.   {
  108.     gDescriptionElement = CreateMetaElement("description");
  109.     if (!gDescriptionElement)
  110.       window.close();
  111.  
  112.     gInsertNewDescription = true;
  113.   }
  114.   
  115.   InitDialog();
  116.  
  117.   SetTextboxFocus(gDialog.TitleInput);
  118.  
  119.   SetWindowLocation();
  120. }
  121.  
  122. function InitDialog()
  123. {
  124.   gDialog.TitleInput.value = GetDocumentTitle();
  125.  
  126.   var gAuthor = TrimString(gAuthorElement.getAttribute("content"));
  127.   if (!gAuthor)
  128.   {
  129.     // Fill in with value from editor prefs
  130.     var prefs = GetPrefs();
  131.     if (prefs) 
  132.       gAuthor = prefs.getCharPref("editor.author");
  133.   }
  134.   gDialog.AuthorInput.value = gAuthor;
  135.   gDialog.DescriptionInput.value = gDescriptionElement.getAttribute("content");
  136. }
  137.  
  138. function TextboxChanged(ID)
  139. {
  140.   switch(ID)
  141.   {
  142.     case "TitleInput":
  143.       gTitleWasEdited = true;
  144.       break;
  145.     case "AuthorInput":
  146.       gAuthorWasEdited = true;
  147.       break;
  148.     case "DescriptionInput":
  149.       gDescWasEdited = true;
  150.       break;
  151.   }
  152. }
  153.  
  154. function ValidateData()
  155. {
  156.   gNewTitle = TrimString(gDialog.TitleInput.value);
  157.   gAuthor = TrimString(gDialog.AuthorInput.value);
  158.   gDescription = TrimString(gDialog.DescriptionInput.value);
  159.   return true;
  160. }
  161.  
  162. function onAccept()
  163. {
  164.   if (ValidateData())
  165.   {
  166.     var editor = GetCurrentEditor();
  167.     editor.beginTransaction();
  168.  
  169.     // Set title contents even if string is empty
  170.     //  because TITLE is a required HTML element
  171.     if (gTitleWasEdited)
  172.       SetDocumentTitle(gNewTitle);
  173.     
  174.     if (gAuthorWasEdited)
  175.       SetMetaElementContent(gAuthorElement, gAuthor, gInsertNewAuthor, false);
  176.  
  177.     if (gDescWasEdited)
  178.       SetMetaElementContent(gDescriptionElement, gDescription, gInsertNewDescription, false);
  179.  
  180.     editor.endTransaction();
  181.  
  182.     SaveWindowLocation();
  183.     return true; // do close the window
  184.   }
  185.   return false;
  186. }
  187.  
  188.