home *** CD-ROM | disk | FTP | other *** search
/ PC Professionell 2004 December / PCpro_2004_12.ISO / files / webserver / xampp / xampp-cocoon-addon-1.4.9-installer.exe / edit.js < prev    next >
Encoding:
JavaScript  |  2004-07-12  |  2.3 KB  |  66 lines

  1. /*
  2. * Copyright 1999-2004 The Apache Software Foundation
  3. *
  4. * Licensed under the Apache License, Version 2.0 (the "License");
  5. * you may not use this file except in compliance with the License.
  6. * You may obtain a copy of the License at
  7. *
  8. *     http://www.apache.org/licenses/LICENSE-2.0
  9. *
  10. * Unless required by applicable law or agreed to in writing, software
  11. * distributed under the License is distributed on an "AS IS" BASIS,
  12. * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  13. * See the License for the specific language governing permissions and
  14. * limitations under the License.
  15. */
  16. function editPage() {
  17.     var page = cocoon.parameters["page"];
  18.     var repoUri = cocoon.parameters["repo"];
  19.     var editPage = "editpage/" + page;
  20.     var docUri = "repo/" + page;
  21.     cocoon.sendPageAndWait(editPage, {});
  22.     writeDoc(repoUri+docUri, "getdata");
  23.     writeDoc(repoUri+docUri+".meta", "getmetadata");
  24.     var dir = docUri.substring(0, docUri.lastIndexOf("/")+1);
  25.     cocoon.sendPage(dir, {});
  26. }
  27.  
  28. function newPage() {
  29.     var dir = cocoon.parameters["dir"];
  30.     var repoUri = cocoon.parameters["repo"];
  31.     cocoon.sendPageAndWait("newpage", {});
  32.     var page = cocoon.request.getParameter("filename");
  33.     var docUri = dir+page;
  34.     writeDoc(repoUri+docUri, "getdata");
  35.     writeDoc(repoUri+docUri+".meta", "getmetadata");
  36.     cocoon.sendPage(dir, {});
  37. }
  38.  
  39. function writeDoc(doc, pipeline) {
  40.     var resolver = null;
  41.     var source = null;
  42.     var output = null;
  43.     try {
  44.         resolver = cocoon.getComponent(Packages.org.apache.excalibur.source.SourceResolver.ROLE);
  45.         source = resolver.resolveURI(doc);
  46.         if (source instanceof Packages.org.apache.excalibur.source.ModifiableSource) {
  47.             output = source.getOutputStream();
  48.             cocoon.processPipelineTo(pipeline, {}, output);
  49.             output.close();
  50.         } else {
  51.             cocoon.log.error("Cannot write to " + doc + ": not a modifiable source");
  52.         }
  53.     } catch (error) {
  54.         cocoon.log.error("Error getting output stream: " + error);
  55.     } finally {
  56.         if (source != null) resolver.release(source);
  57.         cocoon.releaseComponent(resolver);
  58.         if (output != null) {
  59.             try {
  60.                 output.close();
  61.             } catch (error) {
  62.                 cocoon.log.error("Error closing output stream: " + error);
  63.             }
  64.         }
  65.     }
  66. }