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 / wiki.js < prev    next >
Encoding:
Text File  |  2004-07-12  |  4.5 KB  |  139 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. importPackage(Packages.org.apache.excalibur.source);
  17. //importPackage(Packages.java.io);
  18.  
  19. var resolver = cocoon.getComponent(SourceResolver.ROLE);
  20.  
  21. function view() {
  22.  
  23.     var page = cocoon.request.getParameter("page");
  24.  
  25.     if (page==null)
  26.         page = "index";
  27.  
  28.     var source = null;
  29.  
  30.     var text = "";
  31.  
  32.     if (!exists(page)) {
  33.  
  34.         cocoon.sendPageAndWait("wiki/new.html", {page:page});
  35.  
  36.         text = cocoon.request.getParameter("text");
  37.  
  38.         write(page, text);
  39.     } else {    
  40.         text = read(page);
  41.     }
  42.  
  43.     cocoon.sendPage("wiki/view.html", {page:page, text:text});
  44. }
  45.  
  46. function edit() {
  47.  
  48.     var page = cocoon.request.getParameter("page");
  49.  
  50.     if (page==null)
  51.         page = "index";
  52.  
  53.     var text = read(page);
  54.  
  55.     cocoon.sendPageAndWait("wiki/edit.html", {page:page, text:text});
  56.  
  57.     var text = cocoon.request.getParameter("text");
  58.  
  59.     write(page, text);
  60.  
  61.     cocoon.sendPage("wiki/view.html", {page:page, text:text});
  62. }
  63.  
  64. function source() {
  65.                                                                                                                                                                                
  66.     var page = cocoon.request.getParameter("page");
  67.                                                                                                                                                                                
  68.     if (page==null)
  69.         page = "index";
  70.                                                                                                                                                                                
  71.     var text = read(page);
  72.                                                                                                                                                                                
  73.     cocoon.sendPage("wiki/source.xml", {page:page, text:text});
  74. }
  75.  
  76.  
  77. function read(page) {
  78.  
  79.     var text = "";
  80.     var source = null;                                                                                                                                       
  81.     try {
  82.         source = resolver.resolveURI("wiki/"+page+".txt");
  83.                                                                                                                                                              
  84.         var input = new Packages.java.io.BufferedReader(new Packages.java.io.InputStreamReader(source.getInputStream()));
  85.         var buffer = new Packages.java.lang.StringBuffer();
  86.         var line;
  87.         while (true) {
  88.             line = input.readLine();
  89.             if (line!=null)
  90.                 buffer.append(line+"\n");
  91.             else
  92.                 break;
  93.         }
  94.         text = buffer.toString();
  95.         input.close();
  96.                                                                                                                                                              
  97.     } finally {
  98.         if (source != null) {
  99.             resolver.release(source);
  100.         }
  101.     }
  102.  
  103.     return text;
  104. }
  105.  
  106. function write(page, text) {
  107.  
  108.     var source = null;
  109.     try {
  110.         source = resolver.resolveURI("wiki/"+page+".txt");
  111.                                                                                                                                                              
  112.         var out = new Packages.java.io.PrintStream(source.getOutputStream());
  113.         out.print(text);
  114.         out.flush();
  115.         out.close();
  116.                                                                                                                                                              
  117.     } finally {
  118.         if (source != null) {
  119.             resolver.release(source);
  120.         }
  121.     }
  122. }
  123.  
  124. function exists(page)  {
  125.  
  126.     var exists = true;
  127.     var source = null;
  128.     try {
  129.         source = resolver.resolveURI("wiki/"+page+".txt");
  130.         exists = source.exists();
  131.     } finally {
  132.         if (source != null) {
  133.             resolver.release(source);
  134.         }
  135.     }
  136.     return exists;
  137. }
  138.  
  139.