From 77cc35dfb4207d5110a2ed49487dc0174fd1823a Mon Sep 17 00:00:00 2001
From: Jan Dittberner <jan@dittberner.info>
Date: Sun, 2 Dec 2007 21:13:47 +0000
Subject: [PATCH] fixes #9 addresses #18 addresses #17  * create an english
 translation of the templates  * change the template directory for smarty
 depending on the language  * move existing templates to german subdirectory

---
 admin/common.inc.php                      | 27 +++++++++-
 admin/templates/{ => de}/directories.html |  2 +-
 admin/templates/de/error.html             | 36 +++++++++++++
 admin/templates/{ => de}/error.xml        |  0
 admin/templates/{ => de}/footer.html      |  0
 admin/templates/{ => de}/header.html      |  0
 admin/templates/{ => de}/start.html       |  0
 admin/templates/{ => de}/users.html       |  2 +-
 admin/templates/en/directories.html       | 66 +++++++++++++++++++++++
 admin/templates/{ => en}/error.html       |  0
 admin/templates/en/error.xml              | 28 ++++++++++
 admin/templates/en/footer.html            | 28 ++++++++++
 admin/templates/en/header.html            | 37 +++++++++++++
 admin/templates/en/start.html             | 35 ++++++++++++
 admin/templates/en/users.html             | 64 ++++++++++++++++++++++
 15 files changed, 322 insertions(+), 3 deletions(-)
 rename admin/templates/{ => de}/directories.html (97%)
 create mode 100644 admin/templates/de/error.html
 rename admin/templates/{ => de}/error.xml (100%)
 rename admin/templates/{ => de}/footer.html (100%)
 rename admin/templates/{ => de}/header.html (100%)
 rename admin/templates/{ => de}/start.html (100%)
 rename admin/templates/{ => de}/users.html (94%)
 create mode 100644 admin/templates/en/directories.html
 rename admin/templates/{ => en}/error.html (100%)
 create mode 100644 admin/templates/en/error.xml
 create mode 100644 admin/templates/en/footer.html
 create mode 100644 admin/templates/en/header.html
 create mode 100644 admin/templates/en/start.html
 create mode 100644 admin/templates/en/users.html

diff --git a/admin/common.inc.php b/admin/common.inc.php
index 0c29f1b..3aba89f 100644
--- a/admin/common.inc.php
+++ b/admin/common.inc.php
@@ -38,7 +38,32 @@ require_once("smarty/libs/Smarty.class.php");
 
 /** Global Smarty template engine instance. */
 $smarty = new Smarty();
-$smarty->compile_dir = $davconfig['compile_dir'];
+
+// negotiate the correct template_dir
+if (is_dir(($dir = realpath(implode(DIRECTORY_SEPARATOR,
+                                    array($smarty->template_dir,
+                                          $_SESSION["language"])))))) {
+  $smarty->template_dir = $dir;
+} else if (is_dir(($dir = realpath(implode(DIRECTORY_SEPARATOR,
+                                           array($smarty->template_dir,
+                                                 substr($_SESSION["language"],
+                                                        0, 2))))))) {
+  $smarty->template_dir = $dir;
+} else {
+  _server_error(sprintf(_("Could not find one of the language directories!\n%s,\n%s"),
+                        implode(DIRECTORY_SEPARATOR,
+                                array($smarty->template_dir,
+                                      $_SESSION["language"])),
+                        implode(DIRECTORY_SEPARATOR,
+                                array($smarty->template_dir,
+                                      substr($_SESSION["language"], 0, 2)))));
+}
+$compile_dir = implode(DIRECTORY_SEPARATOR, array($davconfig['compile_dir'],
+                                                  $_SESSION["language"]));
+if (!is_dir($compile_dir)) {
+  mkdir($compile_dir);
+}
+$smarty->compile_dir = $compile_dir;
 
 /** Handle invalid requests to the application. */
 function invalidCall() {
diff --git a/admin/templates/directories.html b/admin/templates/de/directories.html
similarity index 97%
rename from admin/templates/directories.html
rename to admin/templates/de/directories.html
index c3a148c..89d61a2 100644
--- a/admin/templates/directories.html
+++ b/admin/templates/de/directories.html
@@ -56,7 +56,7 @@
   <dt><img src="images/groups.png" width="16" height="16" alt="Gruppen" /></dt>
   <dd>Die Gruppenberechtigungen dieses Verzeichnisses bearbeiten</dd>
   <dt><img src="images/delete.png" width="16" height="16" alt="löschen" /></dt>
-  <dd>Diese Verzeichnis löschen</dd>
+  <dd>Dieses Verzeichnis löschen</dd>
   <dt><img src="images/newdirectory.png" width="16" height="16" alt="neu" /></dt>
   <dd>Neues Verzeichnis anlegen</dd>
 </dl>
diff --git a/admin/templates/de/error.html b/admin/templates/de/error.html
new file mode 100644
index 0000000..0176033
--- /dev/null
+++ b/admin/templates/de/error.html
@@ -0,0 +1,36 @@
+{*
+ * Error page template.
+ *
+ * @author Jan Dittberner <jan@dittberner.info>
+ * @version $Id$
+ * @license GPL
+ * @package DAVAdmin
+ *
+ * Copyright (c) 2007 Jan Dittberner
+ *
+ * This file is part of DAVAdmin.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation; either version 2 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+ * 02110-1301 USA.
+ *}
+<html>
+ <head>
+  <title>DAVAdmin - Ein Fehler ist aufgetreten</title>
+ </head>
+ <body>
+  <h1>DAVAdmin - Ein Fehler ist aufgetreten</h1>
+  <p>{$errormsg}</p>
+ </body>
+</html>
\ No newline at end of file
diff --git a/admin/templates/error.xml b/admin/templates/de/error.xml
similarity index 100%
rename from admin/templates/error.xml
rename to admin/templates/de/error.xml
diff --git a/admin/templates/footer.html b/admin/templates/de/footer.html
similarity index 100%
rename from admin/templates/footer.html
rename to admin/templates/de/footer.html
diff --git a/admin/templates/header.html b/admin/templates/de/header.html
similarity index 100%
rename from admin/templates/header.html
rename to admin/templates/de/header.html
diff --git a/admin/templates/start.html b/admin/templates/de/start.html
similarity index 100%
rename from admin/templates/start.html
rename to admin/templates/de/start.html
diff --git a/admin/templates/users.html b/admin/templates/de/users.html
similarity index 94%
rename from admin/templates/users.html
rename to admin/templates/de/users.html
index 228341c..f48ca6a 100644
--- a/admin/templates/users.html
+++ b/admin/templates/de/users.html
@@ -41,7 +41,7 @@
     <tr id="uid{$user.uid}">
       <td>{$user.username}</td>
       <td>{$user.lastname}, {$user.firstname}</td>
-      <td><a id="edit{$user.uid}" class="editlink" href="#" title="Die Daten dieses Nutzers bearbeiten"><img class="actionicon" src="images/edit.png" width="16" height="16" alt="bearbeiten"/></a>{if !$user.loggedin}<a id="delete{$user.uid}" class="deletelink" href="#" title="Die Daten dieses Nutzers löschen"><img class="actionicon" src="images/delete.png" width="16" height="16" alt="löschen" /></a>{/if}</td>
+      <td><a id="edit{$user.uid}" class="editlink" href="#" title="Die Daten dieses Nutzers bearbeiten"><img class="actionicon" src="images/edit.png" width="16" height="16" alt="bearbeiten"/></a>{if !$user.loggedin}<a id="delete{$user.uid}" class="deletelink" href="#" title="Die Daten dieses Nutzers löschen."><img class="actionicon" src="images/delete.png" width="16" height="16" alt="löschen" /></a>{/if}</td>
     </tr>
 {/foreach}
   </tbody>
diff --git a/admin/templates/en/directories.html b/admin/templates/en/directories.html
new file mode 100644
index 0000000..9c601b5
--- /dev/null
+++ b/admin/templates/en/directories.html
@@ -0,0 +1,66 @@
+{*
+ * Directory page template.
+ *
+ * @author Jan Dittberner <jan@dittberner.info>
+ * @version $Id$
+ * @license GPL
+ * @package DAVAdmin
+ *
+ * Copyright (c) 2007 Jan Dittberner
+ *
+ * This file is part of DAVAdmin.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation; either version 2 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+ * 02110-1301 USA.
+ *}
+{include file="header.html" title="Directory management"}
+<script type="text/javascript" src="scripts/helper.js"></script>
+<script type="text/javascript" src="scripts/autocomplete.js"></script>
+<script type="text/javascript" src="scripts/directories.js"></script><div id="content">
+<h1>WebDAV administration</h1>
+<h2>Directory management</h2>
+<table id="dirtable">
+  <thead>
+    <tr><th id="hcol-directory">Directory</th><th id="hcol-groups">Groups</th><th id="hcol-files">included files (count and size)</th><th /></tr>
+  </thead>
+  <tbody>
+{foreach item=dir from=$directories}
+    <tr id="dir{$dir.name}">
+      <td>{$dir.name}</td>
+      <td>{foreach item=group from=$dir.groups name=dirloop}{$group}{if !$smarty.foreach.dirloop.last}, {/if}{/foreach}</td>
+      <td>{$dir.filecount}, {$dir.filesize}</td>
+      <td><a id="edit{$dir.name}" class="editlink" href="#" title="Edit this directory's group assignments."><img class="actionicon" src="images/groups.png" width="16" height="16" alt="Groups"/></a>{if $dir.maydelete}<a id="delete{$dir.name}" class="deletelink" href="#" title="Delete this directory"><img class="actionicon" src="images/delete.png" width="16" height="16" alt="delete" /></a>{/if}</td>
+    </tr>
+{foreachelse}
+    <tr><td colspan="4">there are no directories</td></tr>
+{/foreach}
+  </tbody>
+  <tfoot>
+    <tr><td colspan="4"><a id="newdir" class="newlink" href="#" title="Create new directory"><img class="actionicon" src="images/newdirectory.png" width="16" height="16" alt="new" /></a></td></tr>
+  </tfoot>
+</table>
+<h3>Icon description</h3>
+<dl>
+  <dt><img src="images/groups.png" width="16" height="16" alt="groups" /></dt>
+  <dd>Edit this directory's group assignments.</dd>
+  <dt><img src="images/delete.png" width="16" height="16" alt="delete" /></dt>
+  <dd>Delete this directory</dd>
+  <dt><img src="images/newdirectory.png" width="16" height="16" alt="new" /></dt>
+  <dd>Create new directory</dd>
+</dl>
+<div id="footer"><a href="index.php">Back</a></div>
+</div>
+<div id="direditor"></div>
+{include file="footer.html"}
\ No newline at end of file
diff --git a/admin/templates/error.html b/admin/templates/en/error.html
similarity index 100%
rename from admin/templates/error.html
rename to admin/templates/en/error.html
diff --git a/admin/templates/en/error.xml b/admin/templates/en/error.xml
new file mode 100644
index 0000000..9434861
--- /dev/null
+++ b/admin/templates/en/error.xml
@@ -0,0 +1,28 @@
+{*
+ * Error XML template.
+ *
+ * @author Jan Dittberner <jan@dittberner.info>
+ * @version $Id$
+ * @license GPL
+ * @package DAVAdmin
+ *
+ * Copyright (c) 2007 Jan Dittberner
+ *
+ * This file is part of DAVAdmin.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation; either version 2 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+ * 02110-1301 USA.
+ *}
+<?xml version="1.0" encoding="UTF-8"?><error><errormsg>{$errormsg}</errormsg></error>
\ No newline at end of file
diff --git a/admin/templates/en/footer.html b/admin/templates/en/footer.html
new file mode 100644
index 0000000..3f5bc68
--- /dev/null
+++ b/admin/templates/en/footer.html
@@ -0,0 +1,28 @@
+{*
+ * Page footer template.
+ *
+ * @author Jan Dittberner <jan@dittberner.info>
+ * @version $Id$
+ * @license GPL
+ * @package DAVAdmin
+ *
+ * Copyright (c) 2007 Jan Dittberner
+ *
+ * This file is part of DAVAdmin.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation; either version 2 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+ * 02110-1301 USA.
+ *}
+</body></html>
\ No newline at end of file
diff --git a/admin/templates/en/header.html b/admin/templates/en/header.html
new file mode 100644
index 0000000..73089fd
--- /dev/null
+++ b/admin/templates/en/header.html
@@ -0,0 +1,37 @@
+{*
+ * Page header template.
+ *
+ * @author Jan Dittberner <jan@dittberner.info>
+ * @version $Id$
+ * @license GPL
+ * @package DAVAdmin
+ *
+ * Copyright (c) 2007 Jan Dittberner
+ *
+ * This file is part of DAVAdmin.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation; either version 2 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+ * 02110-1301 USA.
+ *}
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+     "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="de">
+<head><title>{$smarty.server.SERVER_NAME} - WebDAV administration{if $title} - {$title}{/if}</title></head>
+<link rel="stylesheet" type="text/css" href="format.css" />
+<link rel="stylesheet" type="text/css" href="dynaform.css" />
+<script type="text/javascript" src="scripts/jquery.js"></script>
+<script type="text/javascript" src="scripts/translate.js"></script>
+<script type="text/javascript" src="scripts/i18n.php" ></script>
+<body>
\ No newline at end of file
diff --git a/admin/templates/en/start.html b/admin/templates/en/start.html
new file mode 100644
index 0000000..16b91a8
--- /dev/null
+++ b/admin/templates/en/start.html
@@ -0,0 +1,35 @@
+{*
+ * Start page template.
+ *
+ * @author Jan Dittberner <jan@dittberner.info>
+ * @version $Id$
+ * @license GPL
+ * @package DAVAdmin
+ *
+ * Copyright (c) 2007 Jan Dittberner
+ *
+ * This file is part of DAVAdmin.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation; either version 2 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+ * 02110-1301 USA.
+ *}
+{include file="header.html"}
+<h1>WebDAV Administration</h1>
+<p>Welcome to the WebDAV administration at {$smarty.server.SERVER_NAME}. You have the following options.</p>
+<ul>
+  <li><a href="directories.php">Directory management</a></li>
+  <li><a href="users.php">User management</a></li>
+</ul>
+{include file="footer.html"}
\ No newline at end of file
diff --git a/admin/templates/en/users.html b/admin/templates/en/users.html
new file mode 100644
index 0000000..cdc0dc4
--- /dev/null
+++ b/admin/templates/en/users.html
@@ -0,0 +1,64 @@
+{*
+ * User page template.
+ *
+ * @author Jan Dittberner <jan@dittberner.info>
+ * @version $Id$
+ * @license GPL
+ * @package DAVAdmin
+ *
+ * Copyright (c) 2007 Jan Dittberner
+ *
+ * This file is part of DAVAdmin.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation; either version 2 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+ * 02110-1301 USA.
+ *}
+{include file="header.html" title="User management"}
+<script type="text/javascript" src="scripts/helper.js"></script>
+<script type="text/javascript" src="scripts/autocomplete.js"></script>
+<script type="text/javascript" src="scripts/users.js"></script>
+<div id="content">
+<h1>WebDAV administration</h1>
+<h2>User management</h2>
+<table id="usertable">
+  <thead>
+    <tr><th id="hcol-username">User name</th><th id="hcol-name">First name, last name</th><th /></tr>
+  </thead>
+  <tbody>
+{foreach item=user from=$users}
+    <tr id="uid{$user.uid}">
+      <td>{$user.username}</td>
+      <td>{$user.lastname}, {$user.firstname}</td>
+      <td><a id="edit{$user.uid}" class="editlink" href="#" title="Edit this user's data."><img class="actionicon" src="images/edit.png" width="16" height="16" alt="edit"/></a>{if !$user.loggedin}<a id="delete{$user.uid}" class="deletelink" href="#" title="Delete this user's data."><img class="actionicon" src="images/delete.png" width="16" height="16" alt="delete" /></a>{/if}</td>
+    </tr>
+{/foreach}
+  </tbody>
+  <tfoot>
+    <tr><td colspan="3"><a id="newuser" class="newlink" href="#" title="Create new user"><img class="actionicon" src="images/newuser.png" width="16" height="16" alt="new" /></a></td></tr>
+  </tfoot>
+</table>
+<h3>Icon description</h3>
+<dl>
+  <dt><img src="images/edit.png" width="16" height="16" alt="edit" /></dt>
+  <dd>Edit this user's data.</dd>
+  <dt><img src="images/delete.png" width="16" height="16" alt="delete" /></dt>
+  <dd>Delete this user's data.</dd>
+  <dt><img src="images/newuser.png" width="16" height="16" alt="new" /></dt>
+  <dd>Create new user</dd>
+</dl>
+<div id="footer"><a href="index.php">Back</a></div>
+</div>
+<div id="usereditor"></div>
+{include file="footer.html"}