From 4c11c9c030635bee4795c61525fb500ca42f1900 Mon Sep 17 00:00:00 2001
From: hahn <hahn@AAE49.campus.unibe.ch>
Date: Mon, 24 Mar 2014 13:46:52 +0100
Subject: [PATCH] - added english texts - highlight in main navigation

---
 .../deployment/classes/project.class.php      |  22 +-
 public_html/deployment/config/lang/de.json    |  19 +-
 public_html/deployment/config/lang/en.json    | 235 ++++++++++++++++++
 public_html/deployment/inc_functions.php      |   8 +-
 public_html/deployment/main.css               |   6 +-
 5 files changed, 262 insertions(+), 28 deletions(-)
 create mode 100644 public_html/deployment/config/lang/en.json

diff --git a/public_html/deployment/classes/project.class.php b/public_html/deployment/classes/project.class.php
index 4b377544..fbf9a393 100644
--- a/public_html/deployment/classes/project.class.php
+++ b/public_html/deployment/classes/project.class.php
@@ -333,17 +333,17 @@ class project {
         if (!file_exists($sInfoFile)) {
             $aReturn['error'] = sprintf(t("class-project-error-metafile-does-not-exist"), $sInfoFile);
             return $aReturn;
-        }        
+        }
         $aJson = json_decode(file_get_contents($sInfoFile), true);
         if (is_array($aJson) && array_key_exists("version", $aJson)) {
             $aReturn = array_merge($aReturn, $aJson);
             $aReturn['ok'] = 1;
             /*
-            if (!file_exists($sPackageFile)) {
-                $aReturn['error'] = sprintf(t("class-project-error-datafile-does-not-exist"), $sInfoFile);
-            } else {
-                $aReturn['filesizes']['packagefile']=filesize($sPackageFile);
-            }
+              if (!file_exists($sPackageFile)) {
+              $aReturn['error'] = sprintf(t("class-project-error-datafile-does-not-exist"), $sInfoFile);
+              } else {
+              $aReturn['filesizes']['packagefile']=filesize($sPackageFile);
+              }
              * 
              */
             return $aReturn;
@@ -844,7 +844,6 @@ class project {
         return $this->_sProcessTempOut;
     }
 
-
     /**
      * apply a config
      * @param array $aConfig
@@ -1399,7 +1398,7 @@ class project {
         $aActionList['iActive'] ++;
         $this->_TempFill($sReturn, $aActionList);
 
-        
+
         // --------------------------------------------------
         // synch packages
         // --------------------------------------------------
@@ -1436,11 +1435,10 @@ class project {
         $aActionList['iActive'] ++;
         $this->_TempFill($sReturn, $aActionList);
 
-        
+
         // --------------------------------------------------
         // move the queue link to the repo name
         // --------------------------------------------------
-        
         // TODO: run puppet agent on target server(s) - for preview only
         if (array_key_exists("puppethost", $this->_aPrjConfig["phases"][$sPhase]) && $this->_aPrjConfig["phases"][$sPhase]["puppethost"]
         ) {
@@ -1720,7 +1718,7 @@ class project {
             if (array_key_exists("ssh", $this->_aPrjConfig["build"])) {
                 $sReturn.=t('repository-access-ssh') . '<br><em>' . $this->_aPrjConfig["build"]["ssh"] . '</em><br>';
             }
-            $sReturn.=t('repository-access-ssh') . ':<br>';
+            $sReturn.=t('repository-urlwebgui') . ':<br>';
             if (array_key_exists("webaccess", $this->_aPrjConfig["build"])) {
                 $sReturn.='<a href="' . $this->_aPrjConfig["build"]["webaccess"] . '">' . $this->_aPrjConfig["build"]["webaccess"] . '</a><br>';
             } else {
@@ -1728,7 +1726,7 @@ class project {
             }
             $sReturn.='</td></tr>';
         }
-        $sReturn.='</tbody></table>';
+        $sReturn.='</tbody></table><br>' . $this->renderLink("setup");
 
         return $sReturn;
     }
diff --git a/public_html/deployment/config/lang/de.json b/public_html/deployment/config/lang/de.json
index 61f1109c..ebe5fb10 100644
--- a/public_html/deployment/config/lang/de.json
+++ b/public_html/deployment/config/lang/de.json
@@ -29,11 +29,6 @@
     
     "class-pl-error-no-project": "<strong>Hinweis</strong><br>Es wurde noch kein Projekt eingerichtet.",
     
-    
-    "ENclass-project-error-no-config": "ERROR::CONFIG: no config was for found the project.",
-    "ENclass-project-error-packagedir-does-not-exist": "ERROR::CONFIG: key &quot;packageDir&quot; does not exist: &quot;%s&quot;.",
-    "ENclass-project-error-archivedir-does-not-exist": "ERROR::CONFIG: key &quot;archiveDir&quot; was not found in config.",
-
     "class-project-build-label-cleanup": "Cleanup der Builds",
     "class-project-build-label-create-workdir": "Arbeitsverzeichnis erstellen",
     "class-project-build-label-get-sources-from-version-control": "Sourcen von der Versionskontrolle holen",
@@ -77,7 +72,7 @@
     "class-project-error-no-repoaccess": "Auf das Projekt Repo konnte nicht zugegriffen werden (%s).",
     "class-project-error-packagedir-does-not-exist": "FEHLER::KONFIGURATION: Das gesetzte Paketverzeichnis existiert nicht: $aConfig[&quot;packageDir&quot;]=&quot;%s&quot;.",
     "class-project-error-packagedir-empty": "FEHLER::KONFIGURATION: Das Paketverzeichnis ($aConfig[&quot;packageDir&quot;]) ist leer; es muss auf ein Verzeichnis zeigen.",
-    "class-project-error-project-id-does-not-exist": "ERROR: a project with ID %s does not exist.",    
+    "class-project-error-project-id-does-not-exist": "FEHLER: Ein Projekt mit der ID %s exisitiert nicht.",    
     "class-project-error-queue-sLinkName-is-empty": "FEHLER: Queueing wurde nicht ausgef&uuml;hrt - Variable sLinkName ist leer.",
     "class-project-error-queue-sLinkTarget-is-empty": "FEHLER: Queueing wurde nicht ausgef&uuml;hrt - Variable sLinkTarget ist leer.",
     "class-project-error-queue-wrong-version": "FEHLER: Queueing wurde nicht ausgef&uuml;hrt - version %s ist ung&uuml;ltig. Das Verzeichnis %s existiert nicht.",
@@ -116,8 +111,8 @@
     "class-project-info-deploy-successful": "Das Deployment wurde erfolgreich abgeschlossen.",
     "class-project-info-accept-overview": "Info: in der Phase &quot;%s&quot; ist installiert:",
     "class-project-info-accept-version-and-next-phase": "Die aktuelle Version [%s] wird nun in die Queue der Phase [%s] gestellt.",
-    "class-project-info-setup-phaseinfos": "Gib die URLs der jeweiligen Phasen an. Wird keine URL eingetragen, ist die jeweilige Phase nicht aktiv.<br>Der Puppet-Host ist optional nur für die erste Phase %s anzugeben.Der Sysadmin muss zudem diesen Host in Puppet konfigurieren.",
-    "class-project-info-setup-ssh-and-puppet-ok": "OK - SSH-Verbindung zu %s und Aufruf des Puppet Agent erfolgreich",
+    "class-project-info-setup-phaseinfos": "Gib die URLs der jeweiligen Phasen an. Wird keine URL eingetragen, ist die jeweilige Phase nicht aktiv.<br>Der Puppet-Host ist optional anzugeben und für die erste Phase %s wichtig. Der Sysadmin muss zudem diesen Host in Puppet konfigurieren.",
+    "class-project-info-setup-ssh-and-puppet-ok": "OK - SSH-Verbindung zu %s und Aufruf des Puppet Agent erfolgreich.",
     "class-project-info-setup-projectId": "ID des neuen Projekts",
     "class-project-info-setup-projectId-placeholder": "Projekt: Kleinbuchstaben a-z, Ziffern, Minus, Unterstrich",
     
@@ -130,7 +125,7 @@
     "class-project-warning-phase-not-active": "Die Phase %s ist nicht aktiv.",
 
     "page-accept-error-cannot-accept-phase": "Die Phase [%s] kann nicht akzeptiert werden.",
-    "page-accept-info": "Die Software wurde erfolgreich <span class=\"%s\">%s</span> getestet und soll auf die n&auml;chstePhase <span class=\"%s\">%s</span> ausgerollt werden?",
+    "page-accept-info": "Die Software wurde erfolgreich in der Phase <span class=\"%s\">%s</span> getestet und soll auf die n&auml;chstePhase <span class=\"%s\">%s</span> ausgerollt werden?",
     "page-accept-warning-version-exists-in-next-queue": "In der Queue von Phase [%s] ist die Version von [%s] bereits vorhanden!",
     "page-accept-warning-version-exists-in-next-repo": "In der Phase [%s] ist die Version von [%s] bereits im Puppet-Repository vorhanden!",
     "page-accept-buttonlabel": "Die Phase [%s] akzeptieren und für Phase [%s] freigeben",
@@ -154,14 +149,14 @@
 
     "page-deploy-info-emergeny-only": "Nur f&uuml;r Notf&auml;lle",
     "page-deploy-info-ignore-deploytime": "Deploy-Zeitfenster ignorieren.<br>Nicht jedes Update muss sauber durchlaufen. Nur aktivieren, wenn einer der Entwickler und/ oder ein Sysadmin zur Hand ist.",
-    "page-deploy-buttonlabel": "Paket f&uuml;r [%s] erstellen",
+    "page-deploy-buttonlabel": "Auf [%s] ausrollen",
     
     "page-overview-characteristics": "Steckbrief",
     "page-overview-no-phase": "Es wurde noch keine URL in keiner der Phasen definiert",
     "page-overview-phase-infos": "F&uuml;r das Projekt sind folgende Phasen konfiguriert:",
     
     "page-setup-info-new-project": "Neues Projekt anlegen",
-    "page-setup-info-new-project-introtext": "<strong>Tipp: </strong> Lass ein neues Projekt durch den Sysadmin anlegen!<br>Das Anlegen eines Projektes hier ist nur ein Teilschritt für das Deployment. Server m&uuml;ssen durch einen Sysadminmit Puppet aufgesetzt sein.<br>Weiterhin werden Zugriffsdaten auf das Repository ben&uoml;tigt.",
+    "page-setup-info-new-project-introtext": "<strong>Tipp: </strong> Kontaktiere den Sysadmin zum Anlegen eines neuen Projekts!<br>Das Anlegen eines Projektes hier ist nur ein Teilschritt für das Deployment. Server m&uuml;ssen durch einen Sysadmin mit Puppet aufgesetzt sein.<br>Weiterhin werden Zugriffsdaten auf das Repository ben&uoml;tigt.",
     "page-setup-info-settings-were-saved": "OK, Projekteinstellungen wurden gespeichert",
     "page-setup-error-settings-were-not-saved": "Projekteinstellungen konnten nicht gespeichert werden :-/",
 
@@ -219,7 +214,7 @@
     "rollback-hint": "Rollback der Phase [%s] auf Version [%s]",
     "save": "Speichern",
     "setup-metadata": "Allgemeine Metadaten",
-    "setup-hint-build": "Einstellungen zum Erstellen eines neuen Builds. Es werden Zugriffsdaten auf das Repository benötigt.<br>Der Fileprefix bestimmt einen Teil des Dateinamensund wird auch in Puppet konfiguriert. Er darf nach eingerichtetem Deployment nicht mehr geändert werden.",
+    "setup-hint-build": "Einstellungen zum Erstellen eines neuen Builds. Es werden Zugriffsdaten auf das Repository benötigt.<br>Der Fileprefix bestimmt einen Teil des Dateinamens und wird auch in Puppet konfiguriert. Er darf nach eingerichtetem Deployment nicht mehr geändert werden.",
     "skip": "SKIP",
     "success": "OK",
     "unknown": "unbekannt",
diff --git a/public_html/deployment/config/lang/en.json b/public_html/deployment/config/lang/en.json
new file mode 100644
index 00000000..6b7d4c75
--- /dev/null
+++ b/public_html/deployment/config/lang/en.json
@@ -0,0 +1,235 @@
+{
+    "menu-overview": "back to overview",
+    "menu-projects": "Projects",
+    "menu-new-project": "Create new project",
+    "menu-project-home": "Project home",
+    "menu-project-actions": "Actions",
+    "menu-project-build": "Build",
+    "menu-project-cleanup": "Cleanup",
+    "menu-project-settings": "Project settings",
+    "menu-project-phases": "Phases",
+    "menu-help": "Help",
+    "menu-help-classes": "Used classes",
+    
+    
+    "overview-label": "Overview",
+    "overview-hint":"all projects and versions in all phases",
+    "overview-filter":"Filter",
+    "overview-filter-hint":"Show only this project in the extended view",
+    "overview-simpleview":"Show simple view",
+    "overview-extview":"Show extended view",
+    "overview-textsearch":"Text filter (regex)",
+    "overview-textsearch-hint":"searches in project names, descripions, commit messages",
+    "overview-filterprj":"Project filter",
+    "overview-filterrole":"Role",
+    "overview-filterreset":"Reset filter",
+    "overview-filterreset-hint":"Remove all filter settings",
+    
+    
+    "class-pl-error-no-project": "<strong>Remark</strong><br>No data. No project was created yet.",
+    
+    "class-project-build-label-cleanup": "Cleanup builds",
+    "class-project-build-label-create-workdir": "Create working directory",
+    "class-project-build-label-get-sources-from-version-control": "Get sources from version control",
+    "class-project-build-label-execute-hook-postclone": "execute hook: postclone",
+    "class-project-build-label-copy-default-structure": "Copy Default files into working directory",
+    "class-project-build-label-execute-hook-precompress": "execute hook: precompress",
+    "class-project-build-label-cleanup-project": "Cleanup in the working directory",
+    "class-project-build-label-create-package": "Create Package",
+    "class-project-build-label-remove-workdir": "Remove working directory",
+    "class-project-build-label-queue-to-first-active-phase": "Call queue method: send package to the first active phase",
+    
+    "class-project-queue-label-checks": "Checks",
+    "class-project-queue-label-remove-existing-version": "Remove existing version",
+    "class-project-queue-label-link-new-version": "Set Link to the new version",
+    "class-project-queue-label-deploy": "Call Deploy method",
+    
+    "class-project-deploy-label-checks": "Checks",
+    "class-project-deploy-label-activate-queued-version": "Activate the queued version",
+    "class-project-deploy-label-synch-packages": "Synchronize package to the puppet master",
+    "class-project-deploy-label-install-on-target": "Installation on the target system",
+
+    "class-project-error-_getArchiveDir-requires-id": "invalid call: The method _getArchiveDir requires a version number.",
+    "class-project-error-_getArchiveInfos-requires-id": "invalid call: The method _getArchiveInfos requires a version number.",
+    "class-project-error-_getConfigFile-requires-id": "invalid call: The method _getConfigFile requires an ID",
+    "class-project-error-archivedir-does-not-exist": "ERROR::CONFIG: The configured archive directory does not exist: $aConfig[&quot;archiveDir&quot;]=&quot;%s&quot;.",
+    "class-project-error-archivedir-empty": "ERROR::CONFIG: The archive directory ($aConfig[&quot;archiveDir&quot;]) is empty; it must point to a directory.",
+    "class-project-error-build-dir-was-not-created": "The directory %s was not created.",
+    "class-project-error-build-type-not-supported": "Repository type %s is not supported.",
+    "class-project-error-build-docroot-not-found": "There is no subdirectory &quot;public_html&quot; or &quot;public&quot; in the working directory.",
+    "class-project-error-command-failed": "The execution of a command failed (see above).<br>Ask your admin. The working directory &quot; %s &quot; was NOT deleted that you can analyze the problem.",
+    "class-project-error-getPhaseInfos-package-not-found": "The package file (.tgz) was not found: %s",
+    "class-project-error-getPhaseInfos-requires-phase": "The method getPhaseInfos requires the name of a pfase.",
+    "class-project-error-datafile-does-not-exist": "The package file &quot;%s&quot; does not exist.",
+    "class-project-error-metafile-does-not-exist": "The file with metadata &quot;%s&quot; does not exist.",
+    "class-project-error-metafile-has-no-version": "The file with metadata &quot;%s&quot; exists, but does not contain a version. <pre>%s</pre>",
+    "class-project-error-metafile-wrong-format": "The file with metadata &quot;%s&quot; exists, but is not a JSON file.",
+    "class-project-error-missing-prjkey": "ERROR::CONFIG: The key &quot;%s&quot; was not found in the project configuration.<br><pre>%s</pre>",
+    "class-project-error-no-archivedir": "ERROR::CONFIG: The archive directory ($aConfig[&quot;archiveDir&quot;]) was not defined.",
+    "class-project-error-no-config": "ERROR::CONFIG: There is no configuration for this project.",
+    "class-project-error-no-packagedir": "ERROR::CONFIG: The package diectory ($aConfig[&quot;packageDir&quot;]) was not defined.",
+    "class-project-error-no-repoaccess": "Unable to access the project repository (%s).",
+    "class-project-error-packagedir-does-not-exist": "ERROR::CONFIG: The package directory does not exist: $aConfig[&quot;packageDir&quot;]=&quot;%s&quot;.",
+    "class-project-error-packagedir-empty": "ERROR::CONFIG: The package directory ($aConfig[&quot;packageDir&quot;]) is empty; it must point to a directory.",
+    "class-project-error-project-id-does-not-exist": "ERROR: a project with ID %s does not exist.",    
+    "class-project-error-queue-sLinkName-is-empty": "ERROR: Queueing was not executed - the variable sLinkName is empty.",
+    "class-project-error-queue-sLinkTarget-is-empty": "ERROR: Queueing was not executed - the variable sLinkTarget is empty.",
+    "class-project-error-queue-wrong-version": "ERROR: Queueing was not executed - version %s is invalid. The directory %s does not exist.",
+    "class-project-error-accept-impossible": "The phase &quot;%s&quot; cannot be accepted.",
+    "class-project-error-create-missing-id": "An ID is required to create the project.",
+    "class-project-error-create-wrcng-chars-in-id": "The ID [%s] contains invalid characters. Allowed characters are lowercase letters, digits, minus, underscore.",
+    "class-project-error-create-id-has-reserved-name": "ID [%s] is invalid - this word is reserved.",
+    "class-project-error-create-id-exists": "ID [%s] is already in use. Chose another name.",
+    "class-project-error-create-save-failed": "The new project could not be saved.",
+    "class-project-error-setup-sudo-pupet-agent-failed": "Starting the puppet agent of phase [%s] failed.<br><strong>%s</strong><br>%s",
+    
+    "class-project-error-repo-type-not-set": "The type of the repository was not set.",
+    "class-project-error-repo-type-not-supported": "The type of the repository is not supported: %quot;%s&quot;.",
+    "class-project-error-wrong-buildtype": "Build type is not supported (yet): [%s].",
+    "class-project-error-wrong-phase": "The phase &quot;%s&quot; does not exist.",
+    "class-project-error-wrong-place": "Place &quot;%s&quot; does not exist.",
+    "class-project-info-build-checkout-ok": "Checkout of sources was successful.",
+    "class-project-info-build-write-meta-to-webroot": "Writing metadata into webroot...",
+    "class-project-info-build-write-templatefiles-to-archive": "Writing template files into archive ...",
+    "class-project-info-build-write-templatefiles-to-archive-skipped": "SKIP: the directory /hooks/templates/ was not found.",
+    "class-project-info-build-remove-oldest-archives": "removing the oldest unused archives.",
+    "class-project-info-build-successful": "Build was finished successful.",
+    "class-project-info-queue-successful": "Qeueing was finished successful.",
+    "class-project-info-deploy-check-deployment-times": "Test if a deploy time was reached: testing <strong>%s</strong> ...",
+    "class-project-info-deploy-test-regex": "... test &quot;%s&quot; ... ",
+    "class-project-info-deploy-time-not-reached": "SKIP: Deploy will not be executed. At the moment is no allowed time window for deployment.",
+    "class-project-info-deploy-time-not-reached-and-ignored": "At the moment is no allowed time window for deployment - but I ignoriere it.",
+    "class-project-info-deploy-time-ok": "OK, at the moment is an allowed time window for deployment.",
+    "class-project-info-deploy-nothing-in-queue": "SKIP: The Queue is empty at the momenr (%s does not exist).",    
+    "class-project-info-deploy-removing-existing-version": "Deleting existing version ...",
+    "class-project-info-deploy-moving-queue-to-repo": "Moving queue to Puppet repository...",
+    "class-project-info-deploy-synching-package": "Synchronizing package - %s",
+    
+    "blabla": "--- bis hier wurde uebersetzt -------------------------------------------------------------------------------------------------",
+    
+    "class-project-info-deploy-skip-sync": "SKIP: Synchronisation type &quot;%s&quot; is not supported (yet).",
+    "class-project-info-deploy-start-puppet": "Starting Puppet Agent...",
+    "class-project-info-deploy-start-puppet-skip": "SKIP: no puppet host was defined. The installation will be done at the next run of the puppet agent (every 30 min).",
+    "class-project-info-deploy-successful": "The deployment was finished successfully.",
+    "class-project-info-accept-overview": "Info: in the phase &quot;%s&quot; is installed:",
+    "class-project-info-accept-version-and-next-phase": "The current version [%s] will be put to the queue of phase [%s].",
+    "class-project-info-setup-phaseinfos": "Enter the urls of each phase. Where you don't enter a url the phase is not active.<br>The puppet host is optional and important for the first phase %s. Additionally the system administrator must configure this host to run the puppet agent on demand.",
+    "class-project-info-setup-ssh-and-puppet-ok": "OK - SSH connection to %s and the start of Puppet Agent was successful.",
+    "class-project-info-setup-projectId": "ID of the new project",
+    "class-project-info-setup-projectId-placeholder": "Project: lowercase letters a-z, digits, minus, underscore",
+    
+    "class-project-info-no-package": "No build was created yet for this project.",
+    "class-project-info-no-package-in-queue": "There is no package in the queue.",
+    "class-project-info-repoaccess": "OK, access to the repository was successful.",
+    "class-project-info-table-packages": "The table below shows the existing packages and where they are in use.",
+    "class-project-warning-cannot-delete-archive-dir": "WARNING: The archive directory %s could not be deleted.",
+    "class-project-warning-cannot-delete-build-dir": "WARNING: The Build directory %s could not be deleted.",
+    "class-project-warning-phase-not-active": "The phase %s is not aktive.",
+
+    "page-accept-error-cannot-accept-phase": "The phase [%s] cannot be accepted.",
+    "page-accept-info": "The software was tested successfully in phase <span class=\"%s\">%s</span> and shall be rolled out in the next phase <span class=\"%s\">%s</span>?",
+    "page-accept-warning-version-exists-in-next-queue": "In the queue of phase [%s] the version [%s] already exists!",
+    "page-accept-warning-version-exists-in-next-repo": "In the phase [%s] the version [%s] is in the puppet repository already!",
+    "page-accept-buttonlabel": "Accept phase [%s] and rollout to phase[%s]",
+
+    "page-build-info": "Build a new package and rollout to first active phase <em class=\"%s\">%s</em>.",
+    "page-build-buttonlabel": "Build package for [%s]",
+    "page-build-info-processing": "processing ... please wait ...",
+    "page-build-info-load": "Load",
+    "page-build-info-processes": "active prozesses",
+    
+    "page-cleanup-info-archives-deleted": "The following directories have been deleted",
+    "page-cleanup-info-archives-left": "This version will be kept - with information of their usage",
+    "page-cleanup-info-builds-left": "The following build directories still exist:",
+    
+    "page-doc-error-class-not-configured": "The documentation cannot be displayed. A class [%s] was not configured in [%s].",
+    "page-doc-info-project": "Project class. All functions to read/ build/ deploy ... of a project and rendering functions for the web gui as well.",
+    "page-doc-info-projectlist": "Generete overview page of all projects",
+    "page-doc-info-page": "Abstraction of http response of the web gui",
+    "page-doc-info-formgen": "helper to render form elements",
+    "page-doc-info-select-class": "Select a class",
+
+    "page-deploy-info-emergeny-only": "For emergency cases only",
+    "page-deploy-info-ignore-deploytime": "Ignore deploy time window.<br>Not each update mus run successfully. Do not activate this option if no developer and/ or a sysadmin is available.",
+    "page-deploy-buttonlabel": "install to [%s]",
+
+    "page-overview-characteristics": "Characteristics",
+    "page-overview-no-phase": "This project has no active phase. No url was entered to any phase.",
+    "page-overview-phase-infos": "This project has these phases:",
+    
+    "page-setup-info-new-project": "Create new project",
+    "page-setup-info-new-project-introtext": "<strong>Hint: </strong> Contact the system administrator to create a new project!<br>Creating a project here is just one of the required steps for the deployment. The target servers must exist and must run puppet.<br>Additionally credentials to access sourcecode repository will be needed.",
+    "page-setup-info-settings-were-saved": "OK, Project setings have been saved",
+    "page-setup-error-settings-were-not-saved": "Project settings could not be saved :-/",
+
+
+    "accept": "Accept",
+    "accept-hint": "Accept phase [%s] and put package to the queue of phase [%s].",
+    "all": "all",
+    "archive": "Archive",
+    "build": "Build",
+    "build-hint": "Create new package and rollout to first active phase [%s].",
+    "build-from": "Build date",
+    "build-type": "Build type",
+    "commitmessage": "Commit message",
+    "contact": "contact",
+    "creating-directory": "Creating directory %s",
+    "creating-file": "Creating file %s",
+    "deploy": "Deploy",
+    "deploy-hint": "Deploy queue of phase [%s]",
+    "deploytimes": "Deploy time window",
+    "deploytimes-immediately": "A package in the queue will be deployed immediately.",
+    "description": "Description",
+    "developer": "Developer",
+    "dir-archive": "Archive directory",
+    "dir-builds": "Build directory",
+    "empty": "[empty]",
+    "error": "ERROR",
+    "error-no-phase": "There no phase was given as parameter.",
+    "exitcode": "exitcode",
+    "fileprefix": "File prefix",
+    "fileprefix-label": "File prefix <span class=\"error\"><br>It cannot be changed after the first build!</span>",
+    "hostname4puppet": "Hostname to start puppet agent",
+    "inactive": "inactive",
+    "info": "Info",
+    "infos": "Infos",
+    "ok": "OK",
+    "no": "no",
+    "packages": "packages",
+    "phase": "Phase",
+    "phase-details": "Details",
+    "phase-details-hint": "Details of phase [%s]",
+    "phases": "Phases",
+    "project": "Project",
+    "projectdescription": "Short description",
+    "projectname": "Project name",
+    "projectmanager": "Projekt manager",
+    "queue": "Queue",
+    "repositoryinfos": "Sourcecode Repository",
+    "repository-access-browser": "Browser access to sources",
+    "repository-access-ssh": "Access with SSH to sources",
+    "repository-url": "URL to repository",
+    "repository-urlwebgui": "URL zur Web GUI des Repositorys",
+    "repository-privkey": "Dateiname zum SSH-Private-Key",
+    "revision": "Revision",
+    "rollback": "Rollback",
+    "rollback-hint": "Rollback of phase [%s] to version [%s]",
+    "save": "Save",
+    "setup-metadata": "General metadata",
+    "setup-hint-build": "Settings to create a new build. You will need credentials to access the repository.<br>The file prefix defines a part of the package name and must be configured in the puppet manifest. After the setup of the deployment or first build it cannot be changed anymore.",
+    "skip": "SKIP",
+    "success": "OK",
+    "unknown": "unknown",
+    "url": "Url",
+    "url-project-website": "Url of the project",
+    "versioncontrol": "Version control",
+    "versions": "Versions",
+    "warning": "WARNING",
+    
+    "onhold": "Queue",
+    "ready2install" : "Puppet",
+    "deployed" : "deployed",
+
+    
+    "lastentry": "This is just a Dummy entry without comma at the end of line"
+}
\ No newline at end of file
diff --git a/public_html/deployment/inc_functions.php b/public_html/deployment/inc_functions.php
index 3ed7969e..42edc7a2 100644
--- a/public_html/deployment/inc_functions.php
+++ b/public_html/deployment/inc_functions.php
@@ -128,8 +128,10 @@ function getTopArea() {
             <span class="brand">IML Deployment GUI</span>
             <ul class="nav">
             
-                <li>' . aHome("") . '</li>
-                    
+                <li';
+                if (!array_key_exists("prj", $aParams))$sReturn.=' class="active"';
+                $sReturn.='>' . aHome("") . '</li>
+
                 <!-- list of projects -->
                 <li class="dropdown">
                     <a href="#" class="dropdown-toggle" data-toggle="dropdown">' . t("menu-projects") . '<b class="caret"></b></a>
@@ -148,7 +150,7 @@ function getTopArea() {
     if (array_key_exists("prj", $aParams) && $aParams["prj"] <> "all") {
         $oPrj = new project($aParams["prj"]);
         $sReturn.='
-                    <li style="border-left: 1px solid #ccc;">' . aPrjHome(" ") . '</li>
+                    <li style="border-left: 1px solid #ccc;" class="active">' . aPrjHome(" ") . '</li>
                     ';
         if (array_key_exists("action", $aParams) and FALSE) {
             $sReturn.='<li><a href="#">Aktion: ' . $aParams["action"] . '</a></li>';
diff --git a/public_html/deployment/main.css b/public_html/deployment/main.css
index c9f262ed..40b4bd60 100644
--- a/public_html/deployment/main.css
+++ b/public_html/deployment/main.css
@@ -30,12 +30,16 @@ body, label, input, button, select, textarea, p, .btn {
 .navbar .brand {color:#a33;}
 .navbar .version {float: right; position: fixed; top: 0px; right: 0;padding: 0 0.5em; 
                   transform: rotate(0deg);
-                  -webkit-transform: rotate(0deg);
                   border-bottom: 1px solid #fff; 
                   border-left: 1px solid #fff; 
                   box-shadow: 0 0 5px #888;
                   border-bottom-left-radius: 10px;
 }
+
+.navbar .nav > .active > a, .navbar .nav > .active > a:hover, .navbar .nav > .active > a:focus {
+    background: #ddd;
+}
+
 #content{
     margin-top: 2em;
     border-left: 0px solid #ccc;
-- 
GitLab