support for managing users/article types/languages/comment statusses
authorzapata <zapata>
Fri, 13 Dec 2002 17:57:31 +0000 (17:57 +0000)
committerzapata <zapata>
Fri, 13 Dec 2002 17:57:31 +0000 (17:57 +0000)
37 files changed:
bundles/admin_ay.properties
bundles/admin_de.properties
bundles/admin_en.properties
bundles/admin_es.properties
bundles/admin_gn.properties
bundles/admin_qu.properties
bundles/admin_tr.properties
etc/config.properties-dist
source/mir/servlet/ServletModule.java
source/mir/storage/Database.java
source/mircoders/module/ModuleArticleType.java [new file with mode: 0755]
source/mircoders/module/ModuleCommentStatus.java [new file with mode: 0755]
source/mircoders/servlet/ServletModuleAdmin.java [new file with mode: 0755]
source/mircoders/servlet/ServletModuleArticleType.java [new file with mode: 0755]
source/mircoders/servlet/ServletModuleCommentStatus.java [new file with mode: 0755]
source/mircoders/servlet/ServletModuleContent.java
source/mircoders/servlet/ServletModuleLanguage.java
source/mircoders/servlet/ServletModuleUsers.java
source/mircoders/storage/DatabaseCommentStatus.java [new file with mode: 0755]
templates/admin/articletype.template [new file with mode: 0755]
templates/admin/articletypelist.template [new file with mode: 0755]
templates/admin/comment.template
templates/admin/commentstatus.template [new file with mode: 0755]
templates/admin/commentstatuslist.template [new file with mode: 0755]
templates/admin/content.template
templates/admin/head.template
templates/admin/head_nonavi.template
templates/admin/language.template
templates/admin/languagelist.template
templates/admin/producerqueue.template
templates/admin/start_admin.template
templates/admin/superusermenu.template [new file with mode: 0755]
templates/admin/topic.template
templates/admin/topiclist.template
templates/admin/user.template
templates/admin/userlist.template
web/style/admin.css

index 865cd03..eb65ffe 100755 (executable)
@@ -245,7 +245,9 @@ start.mediafolder.title=CARPETA DE RECURSOS MEDIATICOS
 start.languages.title=TÍTULO\r
 start.imcs.title=IMCS\r
 start.messageboard.title=Mensajería Interna\r
-start.messageboard.no_messages=no hay mensajes\r
+start.messageboard.no_messages=no hay mensajes
+
+start.superusermenu=Superuser menu (use with care!) # needs translation\r
 \r
 # topic\r
 topic.htmltitle=tema\r
@@ -255,7 +257,29 @@ topic.filename=Nombre del fichero
 topic.main_url=página de información principal\r
 topic.archive_url=URL del archivo\r
 \r
-topiclist.htmltitle=lista de temas\r
+topiclist.htmltitle=lista de temas
+
+articletype.htmltitle=Article type  # needs translation
+articletype.id=id  # needs translation
+articletype.name=Name  # needs translation
+
+articletypelist.htmltitle=Article types  # needs translation
+
+commentstatus.htmltitle=Comment status  # needs translation
+commentstatus.id=id  # needs translation
+commentstatus.name=Name  # needs translation
+
+commentstatuslist.htmltitle=Comment status values  # needs translation
+
+
+superusermenu.htmltitle = Super-user functions                  # needs translation\r
+superusermenu.topics = Manage topics                            # needs translation\r
+superusermenu.articletypes = Manage article types               # needs translation  \r
+superusermenu.comment_statuses = Manage comment status values   # needs translation\r
+superusermenu.users = Manage users                              # needs translation\r
+superusermenu.languages = Manage languages                      # needs translation \r
+superusermenu.imcs = Manage IMCS (obsolete)                     # needs translation\r
+\r
 \r
 # users\r
 user.htmltitle=usuario\r
index 26974af..fa49b73 100755 (executable)
@@ -1,6 +1,6 @@
 ########## admin ##########
 # language: deutsch / german
-# $Id: admin_de.properties,v 1.18 2002/12/01 22:12:25 zapata Exp $
+# $Id: admin_de.properties,v 1.19 2002/12/13 18:00:23 zapata Exp $
 
 # general
 yes=ja
@@ -263,6 +263,9 @@ start.imcs.title=IMCS
 start.messageboard.title=Internes Messageboard
 start.messageboard.no_messages=keine nachrichten
 
+start.superusermenu=Superuser menu (use with care!) # needs translation\r
+
+
 # topic
 topic.htmltitle=topic
 topic.title=Name
@@ -273,6 +276,28 @@ topic.archive_url=Archiv url
 
 topiclist.htmltitle=topiclist
 
+articletype.htmltitle=Article type                              # needs translation
+articletype.id=id                                               # needs translation
+articletype.name=Name                                           # needs translation
+
+articletypelist.htmltitle=Article types                         # needs translation
+
+commentstatus.htmltitle=Comment status                          # needs translation
+commentstatus.id=id                                             # needs translation
+commentstatus.name=Name                                         # needs translation
+
+commentstatuslist.htmltitle=Comment status values               # needs translation
+
+
+superusermenu.htmltitle = Super-user functions                  # needs translation\r
+superusermenu.topics = Manage topics                            # needs translation\r
+superusermenu.articletypes = Manage article types               # needs translation  \r
+superusermenu.comment_statuses = Manage comment status values   # needs translation\r
+superusermenu.users = Manage users                              # needs translation\r
+superusermenu.languages = Manage languages                      # needs translation \r
+superusermenu.imcs = Manage IMCS (obsolete)                     # needs translation\r
+
+
 # users
 user.htmltitle=user
 user.login=login
index 6861e7b..45f8fff 100755 (executable)
@@ -1,6 +1,6 @@
 ########## admin ##########
 # language: english
-# $Id: admin_en.properties,v 1.26 2002/12/01 22:12:25 zapata Exp $
+# $Id: admin_en.properties,v 1.27 2002/12/13 18:00:23 zapata Exp $
 
 # general
 yes=yes
@@ -258,6 +258,8 @@ start.imcs.title=IMCS
 start.messageboard.title=Internal Messageboard
 start.messageboard.no_messages=no messages
 
+start.superusermenu=Super-user functions (use with care!)
+
 start.editfiles.title=EDIT FILES
 start.editfiles.include=Include files
 
@@ -272,12 +274,25 @@ topic.archive_url=Archive url
 topiclist.htmltitle=topiclist
 
 # users
-user.htmltitle=user
-user.login=login
-user.password=password
-user.admin=admin
+user.htmltitle=User
+user.login=Login
+user.password=Password
+user.admin=Admin
+
+userlist.htmltitle=Users
+
+
+articletype.htmltitle=Article type
+articletype.id=id
+articletype.name=Name
 
-userlist.htmltitle=userlist
+articletypelist.htmltitle=Article types
+
+commentstatus.htmltitle=Comment status
+commentstatus.id=id
+commentstatus.name=Name
+
+commentstatuslist.htmltitle=Comment status values
 
 
 #file editing
@@ -306,6 +321,15 @@ producer.producerlist.title = Add a new job
 producerqueue.htmltitle = Generate manually
 
 
+superusermenu.htmltitle = Super-user functions\r
+superusermenu.topics = Manage topics\r
+superusermenu.articletypes = Manage article types\r
+superusermenu.comment_statuses = Manage comment status values\r
+superusermenu.users = Manage users\r
+superusermenu.languages = Manage languages\r
+superusermenu.imcs = Manage IMCS (obsolete)\r
+
+
 
 # head
 head.start=start
index 6da5667..1add7ab 100755 (executable)
@@ -1,6 +1,6 @@
 ########## admin ##########
 # language: espanol / spanish
-# $Id: admin_es.properties,v 1.10 2002/12/01 22:12:25 zapata Exp $
+# $Id: admin_es.properties,v 1.11 2002/12/13 18:00:23 zapata Exp $
 
 # general
 yes=sí
@@ -250,6 +250,7 @@ start.content.hidden=hidden articles                                # needs to b
 start.editfiles.title=EDIT FILES                                    # needs to be translated
 start.editfiles.include=Include files                               # needs to be translated
 
+start.superusermenu=Superuser menu (use with care!) # needs translation\r
 
 
 
@@ -264,6 +265,20 @@ topic.archive_url=URL del archivo
 
 topiclist.htmltitle=lista de temas
 
+
+articletype.htmltitle=Article type  # needs translation
+articletype.id=id  # needs translation
+articletype.name=Name  # needs translation
+
+articletypelist.htmltitle=Article types  # needs translation
+
+commentstatus.htmltitle=Comment status  # needs translation
+commentstatus.id=id  # needs translation
+commentstatus.name=Name  # needs translation
+
+commentstatuslist.htmltitle=Comment status values  # needs translation
+
+
 # users
 user.htmltitle=usuario
 user.login=login
@@ -291,6 +306,15 @@ producer.producerlist.title = Add a new job           # needs to be translated
 producerqueue.htmltitle = Generate manually           # needs to be translated
 
 
+superusermenu.htmltitle = Super-user functions                  # needs translation\r
+superusermenu.topics = Manage topics                            # needs translation\r
+superusermenu.articletypes = Manage article types               # needs translation  \r
+superusermenu.comment_statuses = Manage comment status values   # needs translation\r
+superusermenu.users = Manage users                              # needs translation\r
+superusermenu.languages = Manage languages                      # needs translation \r
+superusermenu.imcs = Manage IMCS (obsolete)                     # needs translation\r
+
+
 #file editing
 fileeditlist.htmltitle = Editable files               # needs to be translated
 fileeditlist.filename = Filename                      # needs to be translated
index 8364f90..4f87cbd 100755 (executable)
@@ -248,6 +248,9 @@ start.imcs.title=IMCS
 start.messageboard.title=Mensajería Interna
 start.messageboard.no_messages=no hay mensajes
 
+start.superusermenu=Superuser menu (use with care!) # needs translation\r
+
+
 # topic
 topic.htmltitle=tema
 topic.title=Nombre
@@ -258,6 +261,28 @@ topic.archive_url=URL del archivo
 
 topiclist.htmltitle=lista de temas
 
+articletype.htmltitle=Article type  # needs translation
+articletype.id=id  # needs translation
+articletype.name=Name  # needs translation
+
+articletypelist.htmltitle=Article types  # needs translation
+
+commentstatus.htmltitle=Comment status  # needs translation
+commentstatus.id=id  # needs translation
+commentstatus.name=Name  # needs translation
+
+commentstatuslist.htmltitle=Comment status values  # needs translation
+
+
+superusermenu.htmltitle = Super-user functions                  # needs translation\r
+superusermenu.topics = Manage topics                            # needs translation\r
+superusermenu.articletypes = Manage article types               # needs translation  \r
+superusermenu.comment_statuses = Manage comment status values   # needs translation\r
+superusermenu.users = Manage users                              # needs translation\r
+superusermenu.languages = Manage languages                      # needs translation \r
+superusermenu.imcs = Manage IMCS (obsolete)                     # needs translation\r
+
+
 # users
 user.htmltitle=usuario
 user.login=login
index 0be383c..9c9fc9c 100755 (executable)
@@ -248,6 +248,9 @@ start.imcs.title=IMCS
 start.messageboard.title=Mensajería Interna
 start.messageboard.no_messages=no hay mensajes
 
+start.superusermenu=Superuser menu (use with care!) # needs translation\r
+
+
 # topic
 topic.htmltitle=tema
 topic.title=Nombre
@@ -258,6 +261,26 @@ topic.archive_url=URL del archivo
 
 topiclist.htmltitle=lista de temas
 
+articletype.htmltitle=Article type  # needs translation
+articletype.id=id  # needs translation
+articletype.name=Name  # needs translation
+
+articletypelist.htmltitle=Article types  # needs translation
+
+commentstatus.htmltitle=Comment status  # needs translation
+commentstatus.id=id  # needs translation
+commentstatus.name=Name  # needs translation
+
+commentstatuslist.htmltitle=Comment status values  # needs translation
+
+superusermenu.htmltitle = Super-user functions                  # needs translation\r
+superusermenu.topics = Manage topics                            # needs translation\r
+superusermenu.articletypes = Manage article types               # needs translation  \r
+superusermenu.comment_statuses = Manage comment status values   # needs translation\r
+superusermenu.users = Manage users                              # needs translation\r
+superusermenu.languages = Manage languages                      # needs translation \r
+superusermenu.imcs = Manage IMCS (obsolete)                     # needs translation\r
+
 # users
 user.htmltitle=usuario
 user.login=login
index 4fdce19..547a68e 100755 (executable)
Binary files a/bundles/admin_tr.properties and b/bundles/admin_tr.properties differ
index d023d44..df4cbd1 100755 (executable)
@@ -330,6 +330,18 @@ ServletModule.Language.ObjektTemplate=templates/admin/language.template
 ServletModule.Language.ListTemplate=templates/admin/languagelist.template
 
 #
+# config for article type
+ServletModule.ArticleType.ConfirmTemplate=templates/admin/confirm.template
+ServletModule.ArticleType.EditTemplate=templates/admin/articletype.template
+ServletModule.ArticleType.ListTemplate=templates/admin/articletypelist.template
+
+#
+# config for comment status
+ServletModule.CommentStatus.ConfirmTemplate=templates/admin/confirm.template
+ServletModule.CommentStatus.EditTemplate=templates/admin/commentstatus.template
+ServletModule.CommentStatus.ListTemplate=templates/admin/commentstatuslist.template
+
+#
 # producer-related configs below
 #
 
index 77cc80e..e2e1d2a 100755 (executable)
@@ -159,13 +159,8 @@ public abstract class ServletModule {
         }
       }
       theList = mainModule.getByWhereClause(null, offset);
-      //theList = mainModule.getByWhereClause((String)null, offset);
-      if (theList == null || theList.getCount() == 0 || theList.getCount() > 1) {
-        HTMLTemplateProcessor.process(res, templateListString, theList, out, getLocale(req));
-      }
-      else {
-        deliver(req, res, theList.elementAt(0), templateObjektString);
-      }
+
+      HTMLTemplateProcessor.process(res, templateListString, theList, out, getLocale(req));
     }
     catch (Exception e) {
       throw new ServletModuleException(e.getMessage());
@@ -292,19 +287,17 @@ public abstract class ServletModule {
     try {
       String idParam = req.getParameter("id");
       HashMap withValues = getIntersectingValues(req, mainModule.getStorageObject());
+
       String id = mainModule.set(withValues);
-      //theLog.printInfo("Showing Entity with id: " + id);
-      //edit(req,res);
       String whereParam = req.getParameter("where");
       String orderParam = req.getParameter("order");
+
       if ((whereParam != null && !whereParam.equals("")) || (orderParam != null && !orderParam.equals(""))) {
-        //theLog.printDebugInfo("update to list");
         list(req, res);
       }
       else {
         edit(req, res);
       }
-      //list(req,res);
     }
     catch (Exception e) {
       throw new ServletModuleException(e.getMessage());
index 979656a..5dfb5b7 100755 (executable)
@@ -55,7 +55,7 @@ import  mir.misc.*;
  * Treiber, Host, User und Passwort, ueber den der Zugriff auf die
  * Datenbank erfolgt.
  *
- * @version $Id: Database.java,v 1.25 2002/12/01 15:05:51 zapata Exp $
+ * @version $Id: Database.java,v 1.26 2002/12/13 17:57:31 zapata Exp $
  * @author rk
  *
  */
@@ -642,13 +642,17 @@ public class Database implements StorageObject {
       } else {
         throwStorageObjectException("Internal Error: theEntityClass not set!");
       }
-    } catch (IllegalAccessException e) {
+    }
+    catch (IllegalAccessException e) {
       throwStorageObjectException("No access! -- " + e.getMessage());
-    } catch (IOException e) {
+    }
+    catch (IOException e) {
       throwStorageObjectException("IOException! -- " + e.getMessage());
-    } catch (InstantiationException e) {
+    }
+    catch (InstantiationException e) {
       throwStorageObjectException("No Instatiation! -- " + e.getMessage());
-    } catch (SQLException sqe) {
+    }
+    catch (SQLException sqe) {
       throwSQLException(sqe, "makeEntityFromResultSet");
       return  null;
     }
diff --git a/source/mircoders/module/ModuleArticleType.java b/source/mircoders/module/ModuleArticleType.java
new file mode 100755 (executable)
index 0000000..9ef8c94
--- /dev/null
@@ -0,0 +1,62 @@
+/*
+ * Copyright (C) 2001, 2002  The Mir-coders group
+ *
+ * This file is part of Mir.
+ *
+ * Mir 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.
+ *
+ * Mir 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 Mir; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ *
+ * In addition, as a special exception, The Mir-coders gives permission to link
+ * the code of this program with the com.oreilly.servlet library, any library
+ * licensed under the Apache Software License, The Sun (tm) Java Advanced
+ * Imaging library (JAI), The Sun JIMI library (or with modified versions of
+ * the above that use the same license as the above), and distribute linked
+ * combinations including the two.  You must obey the GNU General Public
+ * License in all respects for all of the code used other than the above
+ * mentioned libraries.  If you modify this file, you may extend this exception
+ * to your version of the file, but you are not obligated to do so.  If you do
+ * not wish to do so, delete this exception statement from your version.
+ */
+
+package mircoders.module;
+
+import java.io.*;
+import java.lang.*;
+import java.util.*;
+import java.sql.*;
+import javax.servlet.*;
+import javax.servlet.http.*;
+
+import freemarker.template.*;
+
+import mir.servlet.*;
+import mir.module.*;
+import mir.entity.*;
+import mir.misc.*;
+import mir.storage.*;
+import mir.entity.*;
+import mir.storage.*;
+import mir.log.*;
+
+public class ModuleArticleType extends AbstractModule {
+  static LoggerWrapper logger = new LoggerWrapper("Module.ArticleType");
+
+  public ModuleArticleType (StorageObject theStorage)  {
+
+    if (theStorage == null)
+      logger.warn("ModuleArticleType -- StorageObject was null!");
+
+    this.theStorage = theStorage;
+  }
+}
diff --git a/source/mircoders/module/ModuleCommentStatus.java b/source/mircoders/module/ModuleCommentStatus.java
new file mode 100755 (executable)
index 0000000..ff9bf0b
--- /dev/null
@@ -0,0 +1,61 @@
+/*
+ * Copyright (C) 2001, 2002  The Mir-coders group
+ *
+ * This file is part of Mir.
+ *
+ * Mir 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.
+ *
+ * Mir 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 Mir; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ *
+ * In addition, as a special exception, The Mir-coders gives permission to link
+ * the code of this program with the com.oreilly.servlet library, any library
+ * licensed under the Apache Software License, The Sun (tm) Java Advanced
+ * Imaging library (JAI), The Sun JIMI library (or with modified versions of
+ * the above that use the same license as the above), and distribute linked
+ * combinations including the two.  You must obey the GNU General Public
+ * License in all respects for all of the code used other than the above
+ * mentioned libraries.  If you modify this file, you may extend this exception
+ * to your version of the file, but you are not obligated to do so.  If you do
+ * not wish to do so, delete this exception statement from your version.
+ */
+
+package mircoders.module;
+
+import java.io.*;
+import java.lang.*;
+import java.util.*;
+import java.sql.*;
+import javax.servlet.*;
+import javax.servlet.http.*;
+
+import freemarker.template.*;
+
+import mir.servlet.*;
+import mir.module.*;
+import mir.entity.*;
+import mir.misc.*;
+import mir.storage.*;
+import mir.entity.*;
+import mir.storage.*;
+import mir.log.*;
+
+public class ModuleCommentStatus extends AbstractModule {
+  static LoggerWrapper logger = new LoggerWrapper("Module.CommentStatus");
+
+  public ModuleCommentStatus (StorageObject theStorage)        {
+    if (theStorage == null)
+      logger.warn("ModuleCommentStatus -- StorageObject was null!");
+
+    this.theStorage = theStorage;
+  }
+}
diff --git a/source/mircoders/servlet/ServletModuleAdmin.java b/source/mircoders/servlet/ServletModuleAdmin.java
new file mode 100755 (executable)
index 0000000..0cb87c4
--- /dev/null
@@ -0,0 +1,87 @@
+/*
+ * Copyright (C) 2001, 2002  The Mir-coders group
+ *
+ * This file is part of Mir.
+ *
+ * Mir 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.
+ *
+ * Mir 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 Mir; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ *
+ * In addition, as a special exception, The Mir-coders gives permission to link
+ * the code of this program with the com.oreilly.servlet library, any library
+ * licensed under the Apache Software License, The Sun (tm) Java Advanced
+ * Imaging library (JAI), The Sun JIMI library (or with modified versions of
+ * the above that use the same license as the above), and distribute linked
+ * combinations including the two.  You must obey the GNU General Public
+ * License in all respects for all of the code used other than the above
+ * mentioned libraries.  If you modify this file, you may extend this exception
+ * to your version of the file, but you are not obligated to do so.  If you do
+ * not wish to do so, delete this exception statement from your version.
+ */
+
+package mircoders.servlet;
+
+import java.io.*;
+import java.sql.*;
+import java.util.*;
+import javax.servlet.*;
+import javax.servlet.http.*;
+
+import org.apache.struts.util.MessageResources;
+
+import freemarker.template.*;
+
+import mir.servlet.*;
+import mir.misc.*;
+import mir.producer.*;
+import mir.generator.*;
+import mir.producer.*;
+import mir.entity.adapter.*;
+import mir.util.*;
+import mir.log.*;
+
+import mircoders.global.*;
+
+public class ServletModuleAdmin extends ServletModule
+{
+  private static ServletModuleAdmin instance = new ServletModuleAdmin();
+  public static ServletModule getInstance() { return instance; }
+
+  private ServletModuleAdmin() {
+    logger = new LoggerWrapper("ServletModule.Admin");
+    defaultAction = "showSuperUserMenu";
+  }
+
+  public void superusermenu(HttpServletRequest aRequest, HttpServletResponse aResponse) throws ServletModuleException {
+    // ML: experiment in using the producer's generation system instead of the
+    //     old one...
+
+    URLBuilder urlBuilder = new URLBuilder();
+    int count;
+
+    try {
+      Map responseData = ServletHelper.makeGenerationData(getLocale(aRequest));
+      urlBuilder.setValue("module", "Admin");
+      urlBuilder.setValue("do", "superusermenu");
+
+      responseData.put("thisurl" , urlBuilder.getQuery());
+
+      ServletHelper.generateResponse(aResponse.getWriter(), responseData, "superusermenu.template");
+    }
+    catch (Throwable e) {
+      e.printStackTrace(new PrintWriter(new LoggerToWriterAdapter(logger, logger.ERROR_MESSAGE)));
+
+      throw new ServletModuleException(e.getMessage());
+    }
+  }
+}
diff --git a/source/mircoders/servlet/ServletModuleArticleType.java b/source/mircoders/servlet/ServletModuleArticleType.java
new file mode 100755 (executable)
index 0000000..6cfb27b
--- /dev/null
@@ -0,0 +1,70 @@
+/*
+ * Copyright (C) 2001, 2002  The Mir-coders group
+ *
+ * This file is part of Mir.
+ *
+ * Mir 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.
+ *
+ * Mir 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 Mir; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ *
+ * In addition, as a special exception, The Mir-coders gives permission to link
+ * the code of this program with the com.oreilly.servlet library, any library
+ * licensed under the Apache Software License, The Sun (tm) Java Advanced
+ * Imaging library (JAI), The Sun JIMI library (or with modified versions of
+ * the above that use the same license as the above), and distribute linked
+ * combinations including the two.  You must obey the GNU General Public
+ * License in all respects for all of the code used other than the above
+ * mentioned libraries.  If you modify this file, you may extend this exception
+ * to your version of the file, but you are not obligated to do so.  If you do
+ * not wish to do so, delete this exception statement from your version.
+ */
+
+package mircoders.servlet;
+
+import java.io.*;
+import java.sql.*;
+import java.util.*;
+import javax.servlet.*;
+import javax.servlet.http.*;
+
+import mir.servlet.*;
+import mir.module.*;
+import mir.misc.*;
+import mir.entity.*;
+import mir.storage.*;
+import mir.log.*;
+
+import mircoders.entity.*;
+import mircoders.storage.*;
+import mircoders.module.*;
+
+public class ServletModuleArticleType extends ServletModule
+{
+  private static ServletModuleArticleType instance = new ServletModuleArticleType();
+  public static ServletModule getInstance() { return instance; }
+
+  private ServletModuleArticleType() {
+    logger = new LoggerWrapper("ServletModule.ArticleType");
+
+    templateListString = MirConfig.getProp("ServletModule.ArticleType.ListTemplate");
+    templateObjektString = MirConfig.getProp("ServletModule.ArticleType.EditTemplate");
+    templateConfirmString = MirConfig.getProp("ServletModule.ArticleType.ConfirmTemplate");
+
+    try {
+      mainModule = new ModuleArticleType(DatabaseArticleType.getInstance());
+    }
+    catch (StorageObjectException e) {
+      logger.error("Initialization of ServletModuleArticleType failed!: " + e.getMessage());
+    }
+  }
+}
diff --git a/source/mircoders/servlet/ServletModuleCommentStatus.java b/source/mircoders/servlet/ServletModuleCommentStatus.java
new file mode 100755 (executable)
index 0000000..a144618
--- /dev/null
@@ -0,0 +1,70 @@
+/*
+ * Copyright (C) 2001, 2002  The Mir-coders group
+ *
+ * This file is part of Mir.
+ *
+ * Mir 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.
+ *
+ * Mir 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 Mir; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ *
+ * In addition, as a special exception, The Mir-coders gives permission to link
+ * the code of this program with the com.oreilly.servlet library, any library
+ * licensed under the Apache Software License, The Sun (tm) Java Advanced
+ * Imaging library (JAI), The Sun JIMI library (or with modified versions of
+ * the above that use the same license as the above), and distribute linked
+ * combinations including the two.  You must obey the GNU General Public
+ * License in all respects for all of the code used other than the above
+ * mentioned libraries.  If you modify this file, you may extend this exception
+ * to your version of the file, but you are not obligated to do so.  If you do
+ * not wish to do so, delete this exception statement from your version.
+ */
+
+package mircoders.servlet;
+
+import java.io.*;
+import java.sql.*;
+import java.util.*;
+import javax.servlet.*;
+import javax.servlet.http.*;
+
+import mir.servlet.*;
+import mir.module.*;
+import mir.misc.*;
+import mir.entity.*;
+import mir.storage.*;
+import mir.log.*;
+
+import mircoders.entity.*;
+import mircoders.storage.*;
+import mircoders.module.*;
+
+public class ServletModuleCommentStatus extends ServletModule
+{
+  private static ServletModuleCommentStatus instance = new ServletModuleCommentStatus();
+  public static ServletModule getInstance() { return instance; }
+
+  private ServletModuleCommentStatus() {
+    logger = new LoggerWrapper("ServletModule.CommentStatus");
+
+    templateListString = MirConfig.getProp("ServletModule.CommentStatus.ListTemplate");
+    templateObjektString = MirConfig.getProp("ServletModule.CommentStatus.EditTemplate");
+    templateConfirmString = MirConfig.getProp("ServletModule.CommentStatus.ConfirmTemplate");
+
+    try {
+      mainModule = new ModuleCommentStatus(DatabaseCommentStatus.getInstance());
+    }
+    catch (StorageObjectException e) {
+      logger.error("Initialization of ServletModuleCommentStatus failed!: " + e.getMessage());
+    }
+  }
+}
index 3ccd7cc..4843d3c 100755 (executable)
@@ -62,7 +62,7 @@ import mircoders.localizer.*;
  *  ServletModuleContent -
  *  deliver html for the article admin form.
  *
- * @version $Id: ServletModuleContent.java,v 1.26 2002/12/02 12:33:24 zapata Exp $
+ * @version $Id: ServletModuleContent.java,v 1.27 2002/12/13 17:57:31 zapata Exp $
  * @author rk, mir-coders
  *
  */
@@ -328,7 +328,7 @@ public class ServletModuleContent extends ServletModule
       HashMap withValues = getIntersectingValues(req, DatabaseContent.getInstance());
       String[] topic_id = req.getParameterValues("to_topic");
       String content_id = req.getParameter("id");
-// withValues.put("publish_path", StringUtil.webdbDate2path((String)withValues.get("date")));
+
       if(user != null) withValues.put("user_id", user.getId());
       withValues.put("is_produced", "0");
       if (!withValues.containsKey("is_published"))
@@ -341,8 +341,8 @@ public class ServletModuleContent extends ServletModule
 
       String whereParam = req.getParameter("where");
       String orderParam = req.getParameter("order");
+
       if ((whereParam!=null && !whereParam.equals("")) || (orderParam!=null && !orderParam.equals(""))){
-        //theLog.printDebugInfo("update to list");
         list(req,res);
       }
       else
index c8a0d3c..0def750 100755 (executable)
@@ -67,6 +67,7 @@ public class ServletModuleLanguage extends ServletModule
     templateListString = MirConfig.getProp("ServletModule.Language.ListTemplate");
     templateObjektString = MirConfig.getProp("ServletModule.Language.ObjektTemplate");
     templateConfirmString = MirConfig.getProp("ServletModule.Language.ConfirmTemplate");
+
     try {
       mainModule = new ModuleLanguage(DatabaseLanguage.getInstance());
     }
index 1bac541..d9b57f2 100755 (executable)
@@ -80,7 +80,8 @@ public class ServletModuleUsers extends mir.servlet.ServletModule
 
   public void edit(HttpServletRequest req, HttpServletResponse res) throws ServletModuleException
   {
-    String        idParam = req.getParameter("id");
+    String idParam = req.getParameter("id");
+
     if (idParam == null)
       throw new ServletModuleException("ServletModuleUser.edit: invalid call: (id) not specified");
 
diff --git a/source/mircoders/storage/DatabaseCommentStatus.java b/source/mircoders/storage/DatabaseCommentStatus.java
new file mode 100755 (executable)
index 0000000..86588d3
--- /dev/null
@@ -0,0 +1,77 @@
+/*\r
+ * Copyright (C) 2001, 2002  The Mir-coders group\r
+ *\r
+ * This file is part of Mir.\r
+ *\r
+ * Mir is free software; you can redistribute it and/or modify\r
+ * it under the terms of the GNU General Public License as published by\r
+ * the Free Software Foundation; either version 2 of the License, or\r
+ * (at your option) any later version.\r
+ *\r
+ * Mir is distributed in the hope that it will be useful,\r
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of\r
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\r
+ * GNU General Public License for more details.\r
+ *\r
+ * You should have received a copy of the GNU General Public License\r
+ * along with Mir; if not, write to the Free Software\r
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA\r
+ *\r
+ * In addition, as a special exception, The Mir-coders gives permission to link\r
+ * the code of this program with the com.oreilly.servlet library, any library\r
+ * licensed under the Apache Software License, The Sun (tm) Java Advanced\r
+ * Imaging library (JAI), The Sun JIMI library (or with modified versions of\r
+ * the above that use the same license as the above), and distribute linked\r
+ * combinations including the two.  You must obey the GNU General Public\r
+ * License in all respects for all of the code used other than the above\r
+ * mentioned libraries.  If you modify this file, you may extend this exception\r
+ * to your version of the file, but you are not obligated to do so.  If you do\r
+ * not wish to do so, delete this exception statement from your version.\r
+ */\r
+\r
+package mircoders.storage;\r
+\r
+/**\r
+ * Title:\r
+ * Description:\r
+ * Copyright:    Copyright (c) 2001\r
+ * Company:\r
+ * @author:\r
+ * @version 1.0\r
+ */\r
+\r
+import java.lang.*;\r
+import java.sql.*;\r
+import java.io.*;\r
+import java.util.*;\r
+\r
+import freemarker.template.*;\r
+\r
+import mir.storage.*;\r
+import mir.entity.*;\r
+import mir.misc.*;\r
+\r
+\r
+public class DatabaseCommentStatus extends Database implements StorageObject{\r
+\r
+  private static DatabaseCommentStatus instance;\r
+\r
+  public static DatabaseCommentStatus getInstance() throws StorageObjectException {\r
+    if (instance == null) {\r
+      synchronized (DatabaseCommentStatus.class) {\r
+        if (instance == null) {\r
+          instance = new DatabaseCommentStatus();\r
+          instance.myselfDatabase = instance;\r
+        }\r
+      }\r
+    }\r
+\r
+    return instance;\r
+  }\r
+\r
+  private DatabaseCommentStatus() throws StorageObjectException {\r
+    super();\r
+    this.hasTimestamp = false;\r
+    this.theTable = "comment_status";\r
+  }\r
+}
\ No newline at end of file
diff --git a/templates/admin/articletype.template b/templates/admin/articletype.template
new file mode 100755 (executable)
index 0000000..abfe3a4
--- /dev/null
@@ -0,0 +1,51 @@
+<html>
+  <head>
+    <title>${config["Mir.Name"]} | ${lang("articletype.htmltitle")}</title>
+    <link rel="stylesheet" type="text/css" href="${config.docRoot}/style/admin.css">
+  <head>
+  <body marginwidth="0" marginheight="0" topmargin="0" leftmargin="0">
+  
+    <include "templates/admin/head.template">
+    <form action="${config.actionRoot}" method="post">
+
+       <input type="hidden" name="module" value="ArticleType">
+       <input type="hidden" name="id" value="${data.id}">
+       <if data.new>
+         <input type="hidden" name="do" value="insert">
+       <else>
+         <input type="hidden" name="do" value="update">
+       </if>
+    
+      <table border="0">
+        <tr>
+          <td align="right" class="darkgrey"><span class="witesmall">
+               <B>${lang("articletype.id")}:</B></span></td>
+          <td>
+            ${data.id}
+          </td>
+        </tr>
+        <tr>
+          <td align="right" class="darkgrey"><span class="witesmall">
+               <B>${lang("articletype.name")}:</B></span></td>
+          <td>
+            <input type="text" size="40" name="name" value="${data.name}">
+          </td>
+        </tr>
+        <tr>
+          <td colspan="2" align="right">
+            <span class="witetext">
+              <if data.new>
+                <input type="submit" name="save" value="${lang("insert")}">
+              <else>
+                <input type="submit" name="save" value="${lang("save")}">
+              </if> 
+            </span>
+          </td>
+        </tr>
+      </table>
+
+    </form>
+
+    <include "templates/admin/foot.template">
+  </body>
+</html>
diff --git a/templates/admin/articletypelist.template b/templates/admin/articletypelist.template
new file mode 100755 (executable)
index 0000000..55b7d15
--- /dev/null
@@ -0,0 +1,89 @@
+<html>
+  <head>
+    <title>${config["Mir.Name"]} | ${lang("articletypelist.htmltitle")}</title>
+    <link rel="stylesheet" type="text/css" href="${config.docRoot}/style/admin.css">
+  </head>
+  <body marginwidth="0" marginheight="0" topmargin="0" leftmargin="0">
+
+    <include "templates/admin/head.template">
+
+    <p>
+      <a class="majorcommand" href="${config.actionRoot}?module=ArticleType&do=add">${lang("add")}</a> |
+      <a class="majorcommand" href="${config.actionRoot}?module=Admin&do=superusermenu">${lang("back")}</a>
+    </p>
+
+    <if data.contentlist>
+      <table border="0">
+        <tr class="darkgrey">
+          <td>
+            <span class="witesmall">
+              <b>${lang("articletype.id")}</b>
+            </span>
+          </td>
+          <td>
+            <span class="witesmall">
+                   <b>${lang("articletype.name")}</b>
+                 </span>
+               </td>
+          <td>
+            &nbsp;
+          </td>
+        </tr>
+        <list data.contentlist as entry>
+          <if grey=="1">
+            <assign grey="0">
+            <tr class="list1">
+          <else>
+            <assign grey="1"> 
+            <tr class="list2">
+          </if>
+            <td><span class="small">${entry.id}&nbsp;</span></td>
+            <td><span class="small">${entry.name}&nbsp;</span></td>
+            <td>
+              <span class="text">&nbsp;
+                  <a href="${config.actionRoot}?module=ArticleType&do=delete&id=${entry.id}">${lang("delete")}</a>
+                | <a href="${config.actionRoot}?module=ArticleType&do=edit&id=${entry.id}">${lang("edit")}</a>
+              </span>
+            </td>
+          </tr>
+        </list>
+        <tr>
+          <td colspan="2" class="darkgrey">
+            <span class="witesmall">
+              ${data.count} ${lang("records")} / ${lang("show_from_to", data.from, data.to)}
+                 </span>
+               </td>
+          <td>&nbsp;</td>
+        </tr>
+      </table>
+      <p>
+      <if (data.prev || data.next)>
+        <form method="post" action="${config.actionRoot}">
+          <input type="hidden" name="module" value="ArticleType">
+          <input type="hidden" name="where" value="${data.where}">
+          <if data.prev>
+            <input type="hidden" name="do" value="list">
+            <input type="hidden" name="prevoffset" value="${data.prev}">
+            <input type="submit" name="prev" value="${lang("list.previous")}">
+          </if>
+          <if data.next>
+            <input type="hidden" name="do" value="list">
+            <input type="hidden" name="nextoffset" value="${data.next}">
+            <input type="submit" name="next" value="${lang("list.next")}">
+          </if>
+        </form>
+      </if>
+    <else>
+      <P align="center">${lang("no_matches_found")}</p>
+    </if>
+    
+    <p>
+      <a class="majorcommand" href="${config.actionRoot}?module=ArticleType&do=add">${lang("add")}</a> |
+      <a class="majorcommand" href="${config.actionRoot}?module=Admin&do=superusermenu">${lang("back")}</a>
+    </p>
+
+    <include "templates/admin/foot.template">
+  </body>
+</html>
+
+
index 8e66068..f74653d 100755 (executable)
@@ -1,8 +1,8 @@
 <html>
-<head>
-        <title>${config["Mir.Name"]} | ${lang("comment.htmltitle")}</title>
-        <link rel="stylesheet" type="text/css" href="${config.docRoot}/style/admin.css">
-<head>
+  <head>
+    <title>${config["Mir.Name"]} | ${lang("comment.htmltitle")}</title>
+    <link rel="stylesheet" type="text/css" href="${config.docRoot}/style/admin.css">
+  <head>
 
 <body marginwidth="0" marginheight="0" topmargin="0" leftmargin="0">
 
diff --git a/templates/admin/commentstatus.template b/templates/admin/commentstatus.template
new file mode 100755 (executable)
index 0000000..0a6d67d
--- /dev/null
@@ -0,0 +1,51 @@
+<html>
+  <head>
+    <title>${config["Mir.Name"]} | ${lang("commentstatus.htmltitle")}</title>
+    <link rel="stylesheet" type="text/css" href="${config.docRoot}/style/admin.css">
+  <head>
+  <body marginwidth="0" marginheight="0" topmargin="0" leftmargin="0">
+  
+    <include "templates/admin/head.template">
+    <form action="${config.actionRoot}" method="post">
+
+       <input type="hidden" name="module" value="CommentStatus">
+       <input type="hidden" name="id" value="${data.id}">
+       <if data.new>
+         <input type="hidden" name="do" value="insert">
+       <else>
+         <input type="hidden" name="do" value="update">
+       </if>
+    
+      <table border="0">
+        <tr>
+          <td align="right" class="darkgrey"><span class="witesmall">
+               <B>${lang("commentstatus.id")}:</B></span></td>
+          <td>
+            ${data.id}
+          </td>
+        </tr>
+        <tr>
+          <td align="right" class="darkgrey"><span class="witesmall">
+               <B>${lang("commentstatus.name")}:</B></span></td>
+          <td>
+            <input type="text" size="40" name="name" value="${data.name}">
+          </td>
+        </tr>
+        <tr>
+          <td colspan="2" align="right">
+            <span class="witetext">
+              <if data.new>
+                <input type="submit" name="save" value="${lang("insert")}">
+              <else>
+                <input type="submit" name="save" value="${lang("save")}">
+              </if> 
+            </span>
+          </td>
+        </tr>
+      </table>
+
+    </form>
+
+    <include "templates/admin/foot.template">
+  </body>
+</html>
diff --git a/templates/admin/commentstatuslist.template b/templates/admin/commentstatuslist.template
new file mode 100755 (executable)
index 0000000..2ca6b94
--- /dev/null
@@ -0,0 +1,89 @@
+<html>
+  <head>
+    <title>${config["Mir.Name"]} | ${lang("commentstatuslist.htmltitle")}</title>
+    <link rel="stylesheet" type="text/css" href="${config.docRoot}/style/admin.css">
+  </head>
+  <body marginwidth="0" marginheight="0" topmargin="0" leftmargin="0">
+
+    <include "templates/admin/head.template">
+
+    <p>
+      <a class="majorcommand" href="${config.actionRoot}?module=CommentStatus&do=add">${lang("add")}</a> |
+      <a class="majorcommand" href="${config.actionRoot}?module=Admin&do=superusermenu">${lang("back")}</a>
+    </p>
+
+    <if data.contentlist>
+      <table border="0">
+        <tr class="darkgrey">
+          <td>
+            <span class="witesmall">
+              <b>${lang("commentstatus.id")}</b>
+            </span>
+          </td>
+          <td>
+            <span class="witesmall">
+                   <b>${lang("commentstatus.name")}</b>
+                 </span>
+               </td>
+          <td>
+            &nbsp;
+          </td>
+        </tr>
+        <list data.contentlist as entry>
+          <if grey=="1">
+            <assign grey="0">
+            <tr class="list1">
+          <else>
+            <assign grey="1"> 
+            <tr class="list2">
+          </if>
+            <td><span class="small">${entry.id}&nbsp;</span></td>
+            <td><span class="small">${entry.name}&nbsp;</span></td>
+            <td>
+              <span class="text">&nbsp;
+                  <a href="${config.actionRoot}?module=CommentStatus&do=delete&id=${entry.id}">${lang("delete")}</a>
+                | <a href="${config.actionRoot}?module=CommentStatus&do=edit&id=${entry.id}">${lang("edit")}</a>
+              </span>
+            </td>
+          </tr>
+        </list>
+        <tr>
+          <td colspan="2" class="darkgrey">
+            <span class="witesmall">
+              ${data.count} ${lang("records")} / ${lang("show_from_to", data.from, data.to)}
+                 </span>
+               </td>
+          <td>&nbsp;</td>
+        </tr>
+      </table>
+      <p>
+      <if (data.prev || data.next)>
+        <form method="post" action="${config.actionRoot}">
+          <input type="hidden" name="module" value="CommentStatus">
+          <input type="hidden" name="where" value="${data.where}">
+          <if data.prev>
+            <input type="hidden" name="do" value="list">
+            <input type="hidden" name="prevoffset" value="${data.prev}">
+            <input type="submit" name="prev" value="${lang("list.previous")}">
+          </if>
+          <if data.next>
+            <input type="hidden" name="do" value="list">
+            <input type="hidden" name="nextoffset" value="${data.next}">
+            <input type="submit" name="next" value="${lang("list.next")}">
+          </if>
+        </form>
+      </if>
+    <else>
+      <P align="center">${lang("no_matches_found")}</p>
+    </if>
+    
+    <p>
+      <a class="majorcommand" href="${config.actionRoot}?module=CommentStatus&do=add">${lang("add")}</a> |
+      <a class="majorcommand" href="${config.actionRoot}?module=Admin&do=superusermenu">${lang("back")}</a>
+    </p>
+
+    <include "templates/admin/foot.template">
+  </body>
+</html>
+
+
index 633d64d..741f068 100755 (executable)
@@ -20,7 +20,7 @@
   <table border="0" width="80%" align="middle">
     <tr>
       <td colspan="1">&nbsp</td>
-      <td colspan="2"><a href="${config.actionRoot}?module=Comment&do=articlecomments&articleid=${data.id}">${lang("content.comments")}</a></td>
+      <td class="minorcommand" colspan="2"><a href="${config.actionRoot}?module=Comment&do=articlecomments&articleid=${data.id}">${lang("content.comments")}</a></td>
       <td colspan="2" align="right" valign="top">
         ${lang("content.published")} <a href="${config.docRoot}/help/content.html"><img src="${config.docRoot}/img/help.gif" border="0" align="absmiddle"></a>:
         <input type="checkbox" name="is_published" value="1"<if data.is_published!="0" && data.is_published!=""> checked</if>>
@@ -31,6 +31,7 @@
         </if>
       </td>
     </tr>
+
     <tr>
       <td align="right" class="editfieldname">
           ${lang("content.import_date")}:
@@ -65,7 +66,6 @@
       <td align="right" valign="top" class="editfieldname">
         ${lang("content.topic")}&nbsp;
         <a href="${config.docRoot}/help/content.html"><img src=" ${config.docRoot}/img/help.gif" border="0" align="absmiddle"></a>
-        &nbsp;/&nbsp;${lang("content.feature")}:&nbsp;
         <a href="${config.docRoot}/help/content.html">
           <img src="${config.docRoot}/img/help.gif" border="0" align="middle"></a>
       </td>
                   <option value="${a.key}" <if (a.key == data.to_article_type)>selected</if>>${a.value}</option>
                 </list>
               </select>
-              <select name="to_feature">
-                <list extra.schwerpunktPopupData as s>
-                  <option value="${s.key}" <if (s.key == data.to_feature)>selected</if>>${s.value}</option>
-                </list>
-              </select>
             </td>
             <td rowspan="2">
               <select name="to_topic" size="5" multiple>
         </table>
       </td>
     </tr>
+
     <tr>
     <td align="right" valign="top" class="editfieldname">
       ${lang("content.title")}:&nbsp;
     <td colspan="4">
       <input type="text" size="40" name="title" value="${utility.encodeHTML(data.title)}"><br>
     </tr>
-    </tr>
     <tr>
       <td align="right" valign="top" class="editfieldname">
           ${lang("content.subtitle")}:&nbsp;<br> 
index 7c25ded..37fb6c0 100755 (executable)
@@ -1,4 +1,4 @@
-<a name="top">
+<a name="top"></a>
 <table width="100%" cellspacing="0" cellpadding="0">
  <tr class="dark">
   <td>
index 95660c1..9019b5a 100755 (executable)
@@ -1,4 +1,4 @@
-<a name="top">
+<a name="top"></a>
 <table width="100%" cellspacing="0" cellpadding="0">
  <tr class="dark">
   <td>
index 5b034a5..6a0c401 100755 (executable)
@@ -9,7 +9,7 @@
 <include "templates/admin/head.template">
 <form action="${config.actionRoot}" method="post">
        <input type="hidden" name="module" value="Language">
-       <input type="hidden" name="id" value="${id}">
+       <input type="hidden" name="id" value="${data.id}">
        <if data.new><input type="hidden" name="do" value="insert">
        <else><input type="hidden" name="do" value="update"></if>
 <table border="0">
index 5ea92b3..d22c92a 100755 (executable)
@@ -1,49 +1,61 @@
 <html>
-<head>
-       <title>${config["Mir.Name"]} | ${lang("languagelist.htmltitle")}</title>
-        <link rel="stylesheet" type="text/css" href="${config.docRoot}/style/admin.css">
-</head>
+  <head>
+    <title>${config["Mir.Name"]} | ${lang("languagelist.htmltitle")}</title>
+    <link rel="stylesheet" type="text/css" href="${config.docRoot}/style/admin.css">
+  </head>
+  <body marginwidth="0" marginheight="0" topmargin="0" leftmargin="0">
+    <include "templates/admin/head.template">
 
-<body marginwidth="0" marginheight="0" topmargin="0" leftmargin="0">
+    <p>
+      <a class="majorcommand" href="${config.actionRoot}?module=Language&do=add">${lang("add")}</a> |
+      <a class="majorcommand" href="${config.actionRoot}?module=Admin&do=superusermenu">${lang("back")}</a>
+    </p>
 
-<include "templates/admin/head.template">
-<if data.contentlist>
-<table border="0" cellpadding="2" cellspacing="1">
-  <tr class="darkgrey">
-    <td><span class="witesmall"><b>${lang("language.name")}</b></span></td>
-    <td><span class="witesmall"><b>${lang("language.code")}</b></span></td>
-       <td>&nbsp;</td>
-  </tr>
+    <if data.contentlist>
+      <table border="0" cellpadding="2" cellspacing="1">
+        <tr class="darkgrey">
+          <td><span class="witesmall"><b>${lang("language.name")}</b></span></td>
+          <td><span class="witesmall"><b>${lang("language.code")}</b></span></td>
+               <td>&nbsp;</td>
+        </tr>
+      
+        <list data.contentlist as entry>
+          <if grey=="1"><assign grey="0"><tr class="list1"><else><tr class="list2"><assign grey="1"></if>
+            <td>${entry.name}&nbsp;</td>
+            <td>${entry.code}&nbsp;</td>
+            <td>
+              <span class="text">&nbsp;
+                <a href="${config.actionRoot}?module=Language&do=delete&id=${entry.id}">${lang("delete")}</a> | 
+                <a href="${config.actionRoot}?module=Language&do=edit&id=${entry.id}">${lang("edit")}</a>
+              </span>
+            </td>
+          </tr>
+        </list>
+        <tr>
+          <td colspan="3" class="darkgrey"><span class="witetext">${data.count} ${lang("records")}
+            / ${lang("show_from_to", data.from, data.to)}</span></td>
+          <td>&nbsp;</td>
+        </tr>
+      </table>
+      
+      <p>
+      <if data.prev>
+         <a href="${config.actionRoot}?module=Language&do=list&where=${data.where}&prevoffset=${data.prev}&prev=zur&uuml;ck">${lang("list.previous")}</a>&nbsp;
+      </if>
+      <if data.next>
+      <a href="${config.actionRoot}?module=Language&do=list&where=${data.where}&nextoffset=${data.next}&next=weiter">${lang("list.next")}</a>
+      </if>
+    <else>
+      <P align="center">${lang("no_matches_found")}</p>
+    </if>
 
-  <list data.contentlist as entry>
-  <tr>
-       <if grey=="1"><assign grey="0">class="list1"<else>class="list2"<assign grey="1"> </if>>
-  <td>${entry.name}&nbsp;</td>
-  <td>${entry.code}&nbsp;</td>
-  <td><span class="text">&nbsp;<a href="${config.actionRoot}?module=Language&do=delete&id=${entry.id}">${lang("delete")}</a>
-    | <a href="${config.actionRoot}?module=Language&do=edit&id=${entry.id}">${lang("edit")}</a></span></td>
-  </tr>
-  </list>
-  <tr>
-    <td colspan="3" class="darkgrey"><span class="witetext">${data.count} ${lang("records")}
-      / ${lang("show_from_to", data.from, data.to)}</span></td>
-    <td>&nbsp;</td>
-  </tr>
-</table>
+    <p>
+      <a class="majorcommand" href="${config.actionRoot}?module=Language&do=add">${lang("add")}</a> |
+      <a class="majorcommand" href="${config.actionRoot}?module=Admin&do=superusermenu">${lang("back")}</a>
+    </p>
 
-      <P>
-<if data.prev>
-       <a href="${config.actionRoot}?module=Language&do=list&where=${data.where}&prevoffset=${data.prev}&prev=zur&uuml;ck">${lang("list.previous")}</a>&nbsp;
-</if>
-<if data.next>
-<a href="${config.actionRoot}?module=Language&do=list&where=${data.where}&nextoffset=${data.next}&next=weiter">${lang("list.next")}</a>
-</if>
-
-<else>
-  <P align="center">${lang("no_matches_found")}</p>
-</if>
-<include "templates/admin/foot.template">
-</body>
+    <include "templates/admin/foot.template">
+  </body>
 </html>
 
 
index ad39d7c..f9a8637 100755 (executable)
@@ -40,7 +40,7 @@
   </if>
   
 </table>
-<a href="${config.actionRoot}?${thisurl}">${lang("producer.jobqueue.refresh")}</a><br><br>
+<a class="minorcommand" href="${config.actionRoot}?${thisurl}">${lang("producer.jobqueue.refresh")}</a><br><br>
 
 <br><br>
 
index 0f22eb2..1088ace 100755 (executable)
     <p>
       <a href="${config.actionRoot}?module=Producer&do=produceAllNew">${lang("start.producers.produceAllNew")}</a><br>
       <a href="${config.actionRoot}?module=Producer&do=showProducerQueueStatus">${lang("start.producers.advanced")}</a>
-    </td>
+      
+        
+      <table width="100%" border="0"><tr><td bgcolor="white">&nbsp;</td></tr></table>
 
+      <a class="menucommand" href="${config.actionRoot}?module=Admin&do=superusermenu">${lang("start.superusermenu")}</a>
 
+    </td>
                        <td bgcolor="white" width="5%">&nbsp;
                        </td>
-                       <td valign="top" width="30%" class="grey">
-
-<comment> -- not finished yet --
-       <span class="spezialtext">
-               <b>${lang("start.coverage.title")}</b></span>
-
-               <P>
-                       <a href="${config.actionRoot}?module=Schwerpunkt&do=list" >
-      <img src="${config.docRoot}/img/pointgris.gif" border=0>&nbsp; ${lang("edit")}</a><br>
-      <a href="${config.actionRoot}?module=Schwerpunkt&do=add" >
-                 <img src="${config.docRoot}/img/pointgris.gif" border=0>&nbsp; ${lang("add")}</a>
-    <p>
-</comment>
-
-                       <span class="spezialtext">
-                       <b>${lang("start.topics.title")}</b></span>
-
-               <p>
-                       <a href="${config.actionRoot}?module=Topics&do=list">
-      <img src="${config.docRoot}/img/pointgris.gif" border=0>&nbsp; ${lang("edit")}</a><br>
-      <a href="${config.actionRoot}?module=Topics&do=add" >
-                       <img src="${config.docRoot}/img/pointgris.gif" border=0>&nbsp; ${lang("add")}</a>
-
-               <p>
-                       <span class="spezialtext">
-                 <b>${lang("start.images.title")}</b></span>
-
-    <p>
-                       <a href="${config.actionRoot}?module=Images&do=list">
-      <img src="${config.docRoot}/img/pointgris.gif" border=0>&nbsp; ${lang("edit")}</a><br>
-      <a href="${config.actionRoot}?module=Images&do=add" >
-                       <img src="${config.docRoot}/img/pointgris.gif" border=0>&nbsp; ${lang("add")}</a>
-
-               <p>
+                       
+<comment> Middle column </comment>
+                       
+    <td valign="top" width="30%" class="grey">
 
         <span class="spezialtext">
-                 <b>${lang("start.audio.title")}</b></span>
+                   <b>${lang("start.images.title")}</b>
+                 </span>
 
-    <p>
-                       <a href="${config.actionRoot}?module=Audio&do=list">
-      <img src="${config.docRoot}/img/pointgris.gif" border=0>&nbsp; ${lang("edit")}</a><br>
-      <a href="${config.actionRoot}?module=Audio&do=add" >
-                       <img src="${config.docRoot}/img/pointgris.gif" border=0>&nbsp; ${lang("add")}</a>
-
-               <p>
+      <p>
+        <a href="${config.actionRoot}?module=Images&do=list">
+          <img src="${config.docRoot}/img/pointgris.gif" border=0>&nbsp; ${lang("edit")}</a><br>
+        <a href="${config.actionRoot}?module=Images&do=add">
+          <img src="${config.docRoot}/img/pointgris.gif" border=0>&nbsp; ${lang("add")}</a>
 
+      <p>
         <span class="spezialtext">
-                 <b>${lang("start.video.title")}</b></span>
+          <b>${lang("start.audio.title")}</b>
+        </span>
 
-    <p>
-                       <a href="${config.actionRoot}?module=Video&do=list">
-      <img src="${config.docRoot}/img/pointgris.gif" border=0>&nbsp; ${lang("edit")}</a><br>
-      <a href="${config.actionRoot}?module=Video&do=add" >
-                       <img src="${config.docRoot}/img/pointgris.gif" border=0>&nbsp; ${lang("add")}</a>
+      <p>
+        <a href="${config.actionRoot}?module=Audio&do=list">
+            <img src="${config.docRoot}/img/pointgris.gif" border=0>&nbsp; ${lang("edit")}
+        </a><br>
 
-               <p>
+        <a href="${config.actionRoot}?module=Audio&do=add">
+          <img src="${config.docRoot}/img/pointgris.gif" border=0>&nbsp; ${lang("add")}
+        </a>
 
+      <p>
         <span class="spezialtext">
-                 <b>${lang("start.other_media.title")}</b></span>
-
-    <p>
-                       <a href="${config.actionRoot}?module=OtherMedia&do=list">
-      <img src="${config.docRoot}/img/pointgris.gif" border=0>&nbsp; ${lang("edit")}</a><br>
-      <a href="${config.actionRoot}?module=OtherMedia&do=add" >
-                       <img src="${config.docRoot}/img/pointgris.gif" border=0>&nbsp; ${lang("add")}</a>
-
-               <p>
-
-                       <span class="spezialtext">
-                 <b>${lang("start.mediafolder.title")}</b></span>
-
-               <p>
-                       <a href="${config.actionRoot}?module=Mediafolder&do=list">
-      <img src="${config.docRoot}/img/pointgris.gif" border=0>&nbsp; ${lang("edit")}</a><br>
-      <a href="${config.actionRoot}?module=Mediafolder&do=add" >
-                       <img src="${config.docRoot}/img/pointgris.gif" border=0>&nbsp; ${lang("add")}</a>
-
-    <p>
-<comment> -- not finished yet --
-               <span class="spezialtext">
-                 <b>${lang("start.languages.title")}</b></span>
-
-               <p>
-                       <a href="${config.actionRoot}?module=Language&do=list">
-      <img src="${config.docRoot}/img/pointgris.gif" border=0>&nbsp; ${lang("edit")}</a><br>
-      <a href="${config.actionRoot}?module=Language&do=add" >
-                       <img src="${config.docRoot}/img/pointgris.gif" border=0>&nbsp; ${lang("add")}</a>
-
-               <p>
-</comment> 
-                       <span class="spezialtext">
-                 <b>${lang("start.imcs.title")}</b></span>
+          <b>${lang("start.video.title")}</b>
+        </span>
+
+      <p>
+        <a href="${config.actionRoot}?module=Video&do=list">
+          <img src="${config.docRoot}/img/pointgris.gif" border=0>&nbsp; ${lang("edit")}
+        </a><br>
+      
+        <a href="${config.actionRoot}?module=Video&do=add">
+          <img src="${config.docRoot}/img/pointgris.gif" border=0>&nbsp; ${lang("add")}
+        </a>
+
+      <p>
+        <span class="spezialtext">
+          <b>${lang("start.other_media.title")}</b>
+        </span>
+
+      <p>
+        <a href="${config.actionRoot}?module=OtherMedia&do=list">
+          <img src="${config.docRoot}/img/pointgris.gif" border=0>&nbsp; ${lang("edit")}
+        </a><br>
+
+        <a href="${config.actionRoot}?module=OtherMedia&do=add" >
+          <img src="${config.docRoot}/img/pointgris.gif" border=0>&nbsp; ${lang("add")}
+        </a>
+
+      <p>
+                         <span class="spezialtext">
+                     <b>${lang("start.mediafolder.title")}</b>
+                   </span>
+
+      <p>
+        <a href="${config.actionRoot}?module=Mediafolder&do=list">
+          <img src="${config.docRoot}/img/pointgris.gif" border=0>&nbsp; ${lang("edit")}
+        </a><br>
+        
+        <a href="${config.actionRoot}?module=Mediafolder&do=add">
+          <img src="${config.docRoot}/img/pointgris.gif" border=0>&nbsp; ${lang("add")}
+        </a>
+    </td>
 
-               <p>
-                       <a href="${config.actionRoot}?module=LinksImcs&do=list">
-      <img src="${config.docRoot}/img/pointgris.gif" border=0>&nbsp; ${lang("edit")}</a><br>
-      <a href="${config.actionRoot}?module=LinksImcs&do=add" >
-                       <img src="${config.docRoot}/img/pointgris.gif" border=0>&nbsp; ${lang("add")}</a>
-                       </td>
+    <td bgcolor="white" width="5%">&nbsp;
+    </td>
 
+<comment> RIGHT COLUMN </comment>
 
-                       <td bgcolor="white" width="5%">&nbsp;
-                       </td>
                        <td valign="top" width="20%" class="pink">
 
        <comment>internal messageboard</comment>
diff --git a/templates/admin/superusermenu.template b/templates/admin/superusermenu.template
new file mode 100755 (executable)
index 0000000..a9b8583
--- /dev/null
@@ -0,0 +1,33 @@
+<html>
+<head>
+       <title>${config["Mir.Name"]} | ${lang("superusermenu.htmltitle")}</title>
+  <link rel="stylesheet" type="text/css" href="${config.docRoot}/style/admin.css">
+</head>
+
+<body marginwidth="0" marginheight="0" topmargin="0" leftmargin="0">
+<include "head.template">
+
+                       <a class="menucommand" href="${config.actionRoot}?module=Topics&do=list">${lang("superusermenu.topics")}</a>
+
+      <p>
+                       <a class="menucommand" href="${config.actionRoot}?module=ArticleType&do=list">${lang("superusermenu.articletypes")}</a>
+
+      <p>
+                       <a class="menucommand" href="${config.actionRoot}?module=CommentStatus&do=list">${lang("superusermenu.comment_statuses")}</a>
+
+      <p>
+                       <a class="menucommand" href="${config.actionRoot}?module=Users&do=list">${lang("superusermenu.users")}</a>
+
+      <p>
+                       <a class="menucommand" href="${config.actionRoot}?module=Language&do=list">${lang("superusermenu.languages")}</a>
+
+      <p>
+                       <a class="menucommand" href="${config.actionRoot}?module=LinksImcs&do=list">${lang("superusermenu.imcs")}</a>
+
+
+
+<include "foot.template">
+
+</body>
+</html>
+
index d64e236..f70c218 100755 (executable)
@@ -1,58 +1,70 @@
 <html>
-<head>
-        <title>${config["Mir.Name"]} | ${lang("topic.htmltitle")}</title>
-        <link rel="stylesheet" type="text/css" href="${config.docRoot}/style/admin.css">
-<head>
+  <head>
+    <title>${config["Mir.Name"]} | ${lang("topic.htmltitle")}</title>
+    <link rel="stylesheet" type="text/css" href="${config.docRoot}/style/admin.css">
+  <head>
 
-<body marginwidth="0" marginheight="0" topmargin="0" leftmargin="0">
+  <body marginwidth="0" marginheight="0" topmargin="0" leftmargin="0">
+    <include "templates/admin/head.template">
 
-<include "templates/admin/head.template">
-<form action="${config.actionRoot}" method="post">
-       <input type=hidden name=module value=Topics>
-       <input type="hidden" name="id" value="${data.id}">
-       <if data.new><input type="hidden" name="do" value="insert">
-       <else><input type="hidden" name="do" value="update"></if>
-<table border="0">
-  <tr>
-    <td align="right" class="darkgrey"><span class="witesmall">
-               <B>${lang("topic.title")}:</B></span></td>
-    <td>
-      <input type="text" size="40" name="title" value="${data.title}">
-    </td>
-  </tr>
-    <tr>
-      <td align="right" valign="top" class="darkgrey"><span class="witetext"><B>${lang("topic.description")}:</B></span></td>
-      <td>
-        <textarea cols="40" rows="3" name="description">${data.description}</textarea>
-      </td>
-  </tr>
-  <tr>
-    <td align="right" class="darkgrey"><span class="witetext"><B>${lang("topic.filename")}:</B></span></td>
-    <td>
-      <input type="text" size="20" name="filename" value="${data.filename}">
-    </td>
-  </tr>
-  <tr>
-    <td align="right" class="darkgrey"><span class="witetext"><B>${lang("topic.main_url")}
-      </B></span></td>
-    <td>
-      <input type="text" size="40" name="main_url" value="${data.main_url}">
-    </td>
-  </tr>
-  <tr>
-    <td align="right" class="darkgrey"><span class="witetext"><B>${lang("topic.archive_url")}:</B></span></td>
-    <td>
-      <input type="text" size="40" name="archiv_url" value="${data.archiv_url}">
-    </td>
-  </tr>
-  <tr>
-    <td colspan="2" align="right"> <span class="witetext"><if new>
-      <input type="submit" name="save" value="${lang("insert")}">
-    <else>
-    <input type="submit" name="save" value="${lang("save")}">
-    </if> </span></form></span>
-    </td>
-</table>
-<include "templates/admin/foot.template">
-</body>
+    <form action="${config.actionRoot}" method="post">
+      <input type=hidden name=module value=Topics>
+      <input type="hidden" name="id" value="${data.id}">
+      <if data.new>
+        <input type="hidden" name="do" value="insert">
+      <else>
+        <input type="hidden" name="do" value="update">
+      </if>
+
+      <table border="0">
+        <tr>
+          <td align="right" class="darkgrey">
+            <span class="witesmall">
+              <b>${lang("topic.title")}:</b>
+            </span>
+          </td>
+          <td>
+            <input type="text" size="40" name="title" value="${data.title}">
+          </td>
+        </tr>
+        <tr>
+          <td align="right" valign="top" class="darkgrey">
+            <span class="witetext"><b>${lang("topic.description")}:</b></span>
+          </td>
+          <td>
+              <textarea cols="40" rows="3" name="description">${data.description}</textarea>
+            </td>
+        </tr>
+        <tr>
+          <td align="right" class="darkgrey"><span class="witetext"><B>${lang("topic.filename")}:</B></span></td>
+          <td>
+            <input type="text" size="20" name="filename" value="${data.filename}">
+          </td>
+        </tr>
+        <tr>
+          <td align="right" class="darkgrey"><span class="witetext"><B>${lang("topic.main_url")}
+            </B></span></td>
+          <td>
+            <input type="text" size="40" name="main_url" value="${data.main_url}">
+          </td>
+        </tr>
+        <tr>
+          <td align="right" class="darkgrey"><span class="witetext"><B>${lang("topic.archive_url")}:</B></span></td>
+          <td>
+            <input type="text" size="40" name="archiv_url" value="${data.archiv_url}">
+          </td>
+        </tr>
+        <tr>
+          <td colspan="2" align="right"> <span class="witetext">
+          <if data.new>
+            <input type="submit" name="save" value="${lang("insert")}">
+          <else>
+            <input type="submit" name="save" value="${lang("save")}">
+          </if> </span>
+          </td>
+        </tr>
+      </table>
+    </form>
+    <include "templates/admin/foot.template">
+  </body>
 </html>
index a7f5560..3028554 100755 (executable)
@@ -1,63 +1,69 @@
 <html>
-<head>
-       <title>${config["Mir.Name"]} | ${lang("topiclist.htmltitle")}</title>
-        <link rel="stylesheet" type="text/css" href="${config.docRoot}/style/admin.css">
-</head>
+  <head>
+    <title>${config["Mir.Name"]} | ${lang("topiclist.htmltitle")}</title>
+    <link rel="stylesheet" type="text/css" href="${config.docRoot}/style/admin.css">
+  </head>
 
-<body marginwidth="0" marginheight="0" topmargin="0" leftmargin="0">
+  <body marginwidth="0" marginheight="0" topmargin="0" leftmargin="0">
 
-<include "templates/admin/head.template">
-<if data.contentlist>
-<table border="0">
-  <tr class="darkgrey">
-    <td><span class="witesmall">
-               <b>${lang("topic.title")}</b></span></td>
-    <td><span class="witesmall">
-               <b>${lang("topic.description")}</b></span></td>
-    <td><span class="witesmall">
-               <b>${lang("topic.main_url")}<br>${lang("topic.archive_url")}</b></span></td>
-       <td>&nbsp;</td>
-  </tr>
-  <list data.contentlist as entry>
-  <tr <if grey=="1"><assign grey="0">class="list1"<else>class="list2"<assign grey="1"> </if>>
-  <td><span class="small">${entry.title}&nbsp;</span></td>
-  <td><span class="small">${entry.description}&nbsp;</span></td>
-  <td><span class="small">
-       ${entry.main_url}<br>
-       ${entry.archiv_url}</span></td>
-  <td><span class="text">&nbsp;<a href="${config.actionRoot}?module=Topics&do=delete&id=${entry.id}">${lang("delete")}</a>
-    | <a href="${config.actionRoot}?module=Topics&do=edit&id=${entry.id}">${lang("edit")}</a></span></td>
-  </tr>
-  </list>
-  <tr>
-  <td colspan="4" class="darkgrey"><span class="witesmall">
-       ${data.count} ${lang("records")} / ${lang("show_from_to", data.from, data.to)}</span></td>
-  <td>&nbsp;</td>
-  </tr>
-</table>
-<P>
-<if (data.prev || data.next)>
- <form method="post" action="${config.actionRoot}">
- <input type="hidden" name="module" value="Topics">
- <input type="hidden" name="where" value="${data.where}">
-<if data.prev>
- <input type="hidden" name="do" value="list">
- <input type="hidden" name="prevoffset" value="${data.prev}">
- <input type="submit" name="prev" value="${lang("list.previous")}">
-</if>
-<if data.next>
- <input type="hidden" name="do" value="list">
- <input type="hidden" name="nextoffset" value="${data.next}">
- <input type="submit" name="next" value="${lang("list.next")}">
-</if>
- </form>
-</if>
+    <include "templates/admin/head.template">
 
-<else>
-  <P align="center">${lang("no_matches_found")}</p>
-</if>
-<include "templates/admin/foot.template">
-</body>
+      <a class="majorcommand" href="${config.actionRoot}?module=Topics&do=add">${lang("add")}</a> |
+      <a class="majorcommand" href="${config.actionRoot}?module=Admin&do=superusermenu">${lang("back")}</a>
+    
+    <if data.contentlist>
+      <table border="0">
+        <tr class="darkgrey">
+          <td><span class="witesmall"><b>${lang("topic.title")}</b></span></td>
+          <td><span class="witesmall"><b>${lang("topic.description")}</b></span></td>
+          <td><span class="witesmall"><b>${lang("topic.main_url")}<br>${lang("topic.archive_url")}</b></span></td>
+         <td>&nbsp;</td>
+        </tr>
+        <list data.contentlist as entry>
+          <if grey=="1"><assign grey="0"><tr class="list1"><else><tr class="list2"><assign grey="1"></if>
+            <td><span class="small">${entry.title}&nbsp;</span></td>
+            <td><span class="small">${entry.description}&nbsp;</span></td>
+            <td><span class="small">${entry.main_url}<br>${entry.archiv_url}</span></td>
+            <td><span class="text">&nbsp;
+                <a href="${config.actionRoot}?module=Topics&do=delete&id=${entry.id}">${lang("delete")}</a>
+              | <a href="${config.actionRoot}?module=Topics&do=edit&id=${entry.id}">${lang("edit")}</a>
+            </span></td>
+          </tr>
+        </list>
+        <tr>
+          <td colspan="4" class="darkgrey"><span class="witesmall">
+            ${data.count} ${lang("records")} / ${lang("show_from_to", data.from, data.to)}
+          </span></td>
+          <td>&nbsp;</td>
+        </tr>
+      </table>
+      <p>
+        <if (data.prev || data.next)>
+          <form method="post" action="${config.actionRoot}">
+            <input type="hidden" name="module" value="Topics">
+            <input type="hidden" name="where" value="${data.where}">
+            <if data.prev>
+              <input type="hidden" name="do" value="list">
+              <input type="hidden" name="prevoffset" value="${data.prev}">
+              <input type="submit" name="prev" value="${lang("list.previous")}">
+            </if>
+            <if data.next>
+              <input type="hidden" name="do" value="list">
+              <input type="hidden" name="nextoffset" value="${data.next}">
+              <input type="submit" name="next" value="${lang("list.next")}">
+            </if>
+          </form>
+        </if>
+      </p>
+    <else>
+      <p align="center">${lang("no_matches_found")}</p>
+    </if>
+
+      <a class="majorcommand" href="${config.actionRoot}?module=Topics&do=add">${lang("add")}</a> |
+      <a class="majorcommand" href="${config.actionRoot}?module=Admin&do=superusermenu">${lang("back")}</a>
+
+    <include "templates/admin/foot.template">
+  </body>
 </html>
 
 
index cf56219..078413e 100755 (executable)
@@ -1,7 +1,7 @@
 <html>
 <head>
-        <title>${config["Mir.Name"]} | ${lang("user.htmltitle")}</title>
-        <link rel="stylesheet" type="text/css" href="${config.docRoot}/style/admin.css">
+  <title>${config["Mir.Name"]} | ${lang("user.htmltitle")}</title>
+  <link rel="stylesheet" type="text/css" href="${config.docRoot}/style/admin.css">
 <head>
 
 <body marginwidth="0" marginheight="0" topmargin="0" leftmargin="0">
@@ -9,39 +9,51 @@
 <include "templates/admin/head.template">
 <form action="${config.actionRoot}" method="post">
        <input type="hidden" name="module" value="Users">
-       <input type="hidden" name="id" value="${id}">
-       <if new><input type="hidden" name="do" value="insert">
-       <else><input type="hidden" name="do" value="update"></if>
-<table border="0">
-  <tr> 
-    <td align="right" class="darkgrey"><span class="witesmall">
-       <B>${lang("user.login")}:</B></span></td>
-    <td>
-      <input type="text" size="40" name="login" value="${login}">
-    </td>
-  </tr>
-  <tr>
-    <td align="right" class="darkgrey"><span class="witesmall">
-       <B>${lang("user.password")}:</B></span></td>
-    <td>
-      <input type="text" size="20" name="password" value="${password}">
-    </td>
-  </tr>
-  <tr>
-    <td align="right" class="darkgrey"><span class="witesmall">
-       <B>${lang("user.admin")}:</B><span class="spezailtext">(<a href="${docRoot}/help/users.html#admin" target="_help">?</a>)</span></span></td>
-    <td>
-           <input type="checkbox" name="is_admin" value="1"<if is_admin=="1"> checked</if>>
-    </td>
-  </tr>
-  <tr>
-    <td colspan="2" align="right"> <span class="witetext"><if new>
-      <input type="submit" name="save" value="${lang("insert")}">
-    <else>
-    <input type="submit" name="save" value="${lang("save")}">
-    </if> </span></form></span>
-    </td>
-</table>
+       <input type="hidden" name="id" value="${data.id}">
+       <if data.new>
+         <input type="hidden" name="do" value="insert">
+       <else>
+         <input type="hidden" name="do" value="update">
+       </if>
+
+  <table border="0">
+    <tr> 
+      <td align="right" class="darkgrey"><span class="witesmall">
+       <B>${lang("user.login")}:</B></span></td>
+      <td>
+        <input type="text" size="40" name="login" value="${data.login}">
+      </td>
+    </tr>
+    <tr>
+      <td align="right" class="darkgrey"><span class="witesmall">
+       <B>${lang("user.password")}:</B></span></td>
+      <td>
+        <input type="password" size="20" name="password" value="${data.password}">
+      </td>
+    </tr>
+    <tr>
+      <td align="right" class="darkgrey">
+        <span class="witesmall">
+             <b>${lang("user.admin")}:</b>
+           </span>
+         </td>
+      <td>
+           <input type="checkbox" name="is_admin" value="1"<if data.is_admin=="1"> checked</if>>
+      </td>
+    </tr>
+    <tr>
+      <td colspan="2" align="right"> 
+        <span class="witetext">
+          <if data.new>
+            <input type="submit" name="save" value="${lang("insert")}">
+          <else>
+            <input type="submit" name="save" value="${lang("save")}">
+          </if> 
+        </span>
+      </td>
+    </tr>
+  </table>
+</form>
 <include "templates/admin/foot.template">
 </body>
 </html>
index 140bebe..8ee984d 100755 (executable)
@@ -1,48 +1,60 @@
 <html>
-<head>
-       <title>${config["Mir.Name"]} | ${lang("userlist.htmltitle")}</title>
-        <link rel="stylesheet" type="text/css" href="${config.docRoot}/style/admin.css">
-</head>
-
-<body marginwidth="0" marginheight="0" topmargin="0" leftmargin="0">
-
-<include "templates/admin/head.template">
-<if contentlist>
-<table border="0" cellpadding="2" cellspacing="1">
-  <tr class="darkgrey">
-    <td><span class="witesmall"><b>${lang("user.login")}</b></span></td>
-    <td><span class="witesmall"><b>${lang("user.admin")}</b></span></td>
-  </tr>
-
-  <list contentlist as entry>
-  <tr
-       <if grey=="1"><assign grey="0">class="list1"<else>class="list2"<assign grey="1"> </if>>
-  <td>${entry.login}&nbsp;</td>
-  <td>${entry.is_admin}&nbsp;</td>
-  <td><span class="text">&nbsp;<a href="${config.actionRoot}?module=Users&do=delete&id=${entry.id}">${lang("delete")}</a>
-    | <a href="${config.actionRoot}?module=Users&do=edit&id=${entry.id}">${lang("edit")}</a></span></td>
-  </tr>
-  </list>
-  <tr>
-    <td colspan="3" class="darkgrey"><span class="witetext">${data.count} ${lang("records")}
-      /  ${lang("show_from_to", data.from, data.to)}</span></td>
-    <td>&nbsp;</td>
-  </tr>
-</table>
-
-      <P>
-<if data.prev>
-       <a href="${actionRoot}?module=Users&do=list&where=${where}&prevoffset=${prev}&prev=zur&uuml;ck">${lang("list.previous")}</a>&nbsp;
-</if>
-<if data.next>
-<a href="${actionRoot}?module=Users&do=list&where=${where}&nextoffset=${next}&next=weiter">${lang("list.next")}</a>
-</if>
-
-<else>
-  <P align="center">${lang("no_matches_found")}</p>
-</if>
-<include "templates/admin/foot.template">
-</body>
+  <head>
+    <title>${config["Mir.Name"]} | ${lang("userlist.htmltitle")}</title>
+    <link rel="stylesheet" type="text/css" href="${config.docRoot}/style/admin.css">
+  </head>
+
+  <body marginwidth="0" marginheight="0" topmargin="0" leftmargin="0">
+    <include "templates/admin/head.template">
+    <p>
+      <a class="majorcommand" href="${config.actionRoot}?module=Users&do=add">${lang("add")}</a> | 
+      <a class="majorcommand" href="${config.actionRoot}?module=Admin&do=superusermenu">${lang("back")}</a>
+    </p>
+
+    <if data.contentlist>
+      <table border="0" cellpadding="2" cellspacing="1">
+        <tr class="darkgrey">
+          <td><span class="witesmall"><b>${lang("user.login")}</b></span></td>
+          <td><span class="witesmall"><b>${lang("user.admin")}</b></span></td>
+        </tr>
+
+        <list data.contentlist as entry>
+          <if grey=="1"><assign grey="0"><tr class="list1"><else><tr class="list2"><assign grey="1"> </if>
+            <td>${entry.login}&nbsp;</td>
+            <td>${entry.is_admin}&nbsp;</td>
+            <td><span class="text">
+                   <a href="${config.actionRoot}?module=Users&do=delete&id=${entry.id}">${lang("delete")}</a>
+                 | <a href="${config.actionRoot}?module=Users&do=edit&id=${entry.id}">${lang("edit")}</a>
+            </span></td>
+          </tr>
+        </list>
+        <tr>
+          <td colspan="3" class="darkgrey"><span class="witetext">
+            ${data.count} ${lang("records")} /  ${lang("show_from_to", data.from, data.to)}
+          </span></td>
+          <td>&nbsp;</td>
+        </tr>
+      </table>
+      <p>
+
+      <if data.prev>
+        <a href="${actionRoot}?module=Users&do=list&where=${where}&prevoffset=${prev}&prev=zur&uuml;ck">${lang("list.previous")}</a>&nbsp;
+      </if>
+      <if data.next>
+        <a href="${actionRoot}?module=Users&do=list&where=${where}&nextoffset=${next}&next=weiter">${lang("list.next")}</a>
+      </if>
+      </p>
+    <else>
+      <p align="center">${lang("no_matches_found")}</p>
+    </if>
+
+    <p>
+      <a class="majorcommand" href="${config.actionRoot}?module=Users&do=add">${lang("add")}</a> |
+      <a class="majorcommand" href="${config.actionRoot}?module=Admin&do=superusermenu">${lang("back")}</a>
+    </p>
+
+    <include "templates/admin/foot.template">
+  </body>
 </html>
 
 
index cc18dfa..91b7df5 100755 (executable)
@@ -1,45 +1,72 @@
+body  {
+  margin: 6px; 
+  background-color: #ffffff; 
+  url(../img/bgimage.jpg) no-repeat;
+}
 
-       
-       body            {margin: 6px; background-color: #ffffff; url(../img/bgimage.jpg) no-repeat;}
-       h1, h2, h3, h4, h5, h6, p, li, dt, dd, div, td, blockquote
-                               {font-family:arial, helvetica, sans-serif;}
-       h6, p, li, dt, dd, div, td, blockquote
-                               {font-size: small;}
-       
-       a:link                  {color: #cc0033;text-decoration:none;}
-       a:visited               {color: #660033;text-decoration:none;}
-       a:hover                 {color: #ff3333;text-decoration:none;}
-
-       .dark           {background-color: #990000; color: #ffffff; text-decoration:none;}
-       .middle         {background-color: #cc0033; color: #ffffff; text-decoration:none;}
-        .pink           {background-color: #FF9966; color: #ffffff; text-decoration:none;}
-        .darkgrey      {background-color: #999966; color: #000000; text-decoration:none;}
-       .grey           {background-color: #dddddd; color: #000000; text-decoration:none;}
-       .litegrey       {background-color: #eeeeee; color: #990000; text-decoration:none;}
-        .wite           {background-color: #ffffff; color: #990000; text-decoration:none;}
-        .list1          {background-color: #FFFFCC; color: #000000; text-decoration:none;}
-        .list2          {background-color: #FFCC99; color: #000000; text-decoration:none;}
-        .list3          {background-color: #FFFF99; color: #000000; text-decoration:none;}
-        .list4          {background-color: #CCCC99; color: #000000; text-decoration:none;}
-
-       .pagetitle      {font-size: x-large; color: #cc0033; font-weight: bold;}
-        .litetitel      {font-size: large;   color: #ffffff; font-weight: bold;}
-        .darktitel      {font-size: large;   color: #cc0033; font-weight: bold;}
-        .spezialtext    {font-size: small;   color: #CC0000;}
-        .text           {font-size: small;}
-        .small         {font-size: x-small;}
-        .x-small       {font-size: xx-small;}
-
-       .witetext       {font-size: large; color: #ffffff; text-decoration:none;}
-       .witesmall      {font-size: small; color: #ffffff; text-decoration:none;}
-       .witex-small    {font-size: x-small; color: #ffffff; text-decoration:none;}
-
-       .lynx           {display:none;}
+h1, h2, h3, h4, h5, h6, p, li, dt, dd, div, td, blockquote {
+  font-family: arial, helvetica, sans-serif;
+}
+
+h6, p, li, dt, dd, div, td, blockquote {
+  font-size: small;
+}
        
-   .editfieldname {
-      font-size: large; 
-      color: #ffffff; 
-      font-weight: bold;
-      text-decoration:none;
-      background-color: #dddddd;         
-   }
\ No newline at end of file
+a:link                 {color: #cc0033;text-decoration:none;}
+a:visited              {color: #660033;text-decoration:none;}
+a:hover                        {color: #ff3333;text-decoration:none;}
+
+.dark          {background-color: #990000; color: #ffffff; text-decoration:none;}
+.middle         {background-color: #cc0033; color: #ffffff; text-decoration:none;}
+.pink           {background-color: #FF9966; color: #ffffff; text-decoration:none;}
+.darkgrey      {background-color: #999966; color: #000000; text-decoration:none;}
+.grey          {background-color: #dddddd; color: #000000; text-decoration:none;}
+.litegrey      {background-color: #eeeeee; color: #990000; text-decoration:none;}
+.wite           {background-color: #ffffff; color: #990000; text-decoration:none;}
+.list1          {background-color: #FFFFCC; color: #000000; text-decoration:none;}
+.list2          {background-color: #FFCC99; color: #000000; text-decoration:none;}
+.list3          {background-color: #FFFF99; color: #000000; text-decoration:none;}
+.list4          {background-color: #CCCC99; color: #000000; text-decoration:none;}
+
+.pagetitle     {font-size: x-large; color: #cc0033; font-weight: bold;}
+.litetitel      {font-size: large;   color: #ffffff; font-weight: bold;}
+.darktitel      {font-size: large;   color: #cc0033; font-weight: bold;}
+.spezialtext    {font-size: small;   color: #CC0000;}
+.text           {font-size: small;}
+.small         {font-size: x-small;}
+.x-small       {font-size: xx-small;}
+
+.witetext      {font-size: large; color: #ffffff; text-decoration:none;}
+.witesmall     {font-size: small; color: #ffffff; text-decoration:none;}
+.witex-small   {font-size: x-small; color: #ffffff; text-decoration:none;}
+
+.lynx  { display:none; }
+
+.editfieldname {
+  font-size: normal; 
+  color: #000000; 
+  font-weight: bold;
+  text-decoration:none;
+  background-color: #CCCCCC; 
+}
+
+.menucommand {
+  font-family: arial, helvetica, sans-serif;
+  font-size: normal; 
+  font-weight: bold;
+  color: #CC0000;
+}
+   
+.majorcommand {
+  font-family: arial, helvetica, sans-serif;
+  font-size: normal; 
+  font-weight: bold;
+  color: #CC0000;
+}
+  
+.minorcommand {
+  font-family: arial, helvetica, sans-serif;
+  font-size: normal; 
+  font-weight: bold;
+  color: #CC0000;
+}  
\ No newline at end of file