Browse code

VHosts-Modul mit neuem Layout (Funktionalität broken)

git-svn-id: https://svn.schokokeks.org/repos/tools/webinterface/trunk@836 87cf0b9e-d624-0410-a070-f6ee81989793

bernd authored on05/12/2007 14:59:33
Showing4 changed files
... ...
@@ -61,6 +61,9 @@ p.userinfo {
61 61
   min-height: 36px;
62 62
 }
63 63
 
64
+input.usageoption {
65
+	margin-top: 1em;
66
+}
64 67
 
65 68
 div.confirmation {
66 69
 }
... ...
@@ -54,20 +54,17 @@ output("<script type=\"text/javascript\">
54 54
   
55 55
   function showAppropriateLines() {
56 56
     if (document.getElementById('vhost_type_regular').checked == true) {
57
-      document.getElementById('block_webapp').style.display = 'none';
58
-      document.getElementById('block_localpath').style.display = '';
59
-      document.getElementById('block_php').style.display = '';
57
+      document.getElementById('options_regular').style.display = 'block';
58
+      document.getElementById('options_webapp').style.display = 'none';
60 59
     }
61 60
     else if ((document.getElementById('vhost_type_dav').checked == true) || 
62 61
          (document.getElementById('vhost_type_svn').checked == true)) {
63
-      document.getElementById('block_webapp').style.display = 'none';
64
-      document.getElementById('block_localpath').style.display = 'none';
65
-      document.getElementById('block_php').style.display = 'none';
62
+      document.getElementById('options_regular').style.display = 'none';
63
+      document.getElementById('options_webapp').style.display = 'none';
66 64
     }
67 65
     else if (document.getElementById('vhost_type_webapp').checked == true) {
68
-      document.getElementById('block_webapp').style.display = '';
69
-      document.getElementById('block_localpath').style.display = 'none';
70
-      document.getElementById('block_php').style.display = 'none';
66
+      document.getElementById('options_regular').style.display = 'none';
67
+      document.getElementById('options_webapp').style.display = 'block';
71 68
     }
72 69
   }
73 70
   </script>");
... ...
@@ -90,62 +87,76 @@ else
90 87
 
91 88
 $s = (strstr($vhost['options'], 'aliaswww') ? ' checked="checked" ' : '');
92 89
 $errorlog = (strstr($vhost['errorlog'], 'on') ? ' checked="checked" ' : '');
90
+
91
+$vhost_type = 'regular';
92
+if ($vhost['is_dav'])
93
+  $vhost_type = 'dav';
94
+elseif ($vhost['is_svn'])
95
+  $vhost_type = 'svn';
96
+elseif ($vhost['is_webapp'])
97
+  $vhost_type = 'webapp';
98
+
93 99
 $form = "
94
-  <table>
95
-    <tr><th>Einstellung</th><th>aktueller Wert</th><th>System-Standard</th></tr>
96
-    <tr><td>Name</td>
97
-    <td><input type=\"text\" name=\"hostname\" id=\"hostname\" size=\"10\" value=\"{$vhost['hostname']}\" onchange=\"defaultDocumentRoot()\" /><strong>.</strong>".domainselect($vhost['domain_id'], 'onchange="defaultDocumentRoot()"');
98
-$form .= "<br /><input type=\"checkbox\" name=\"options[]\" id=\"aliaswww\" value=\"aliaswww\" {$s}/> <label for=\"aliaswww\">Auch mit <strong>www</strong> davor.</label></td><td><em>keiner</em></td></tr>
99
-    <tr><td>Verwendung</td>
100
-        <td>
101
-	  <input onclick=\"showAppropriateLines()\" type=\"radio\" name=\"vhost_type\" id=\"vhost_type_regular\" value=\"regular\" /><label for=\"vhost_type_regular\">&#160;Normal (selbst Dateien hinterlegen)</label><br />
102
-	  <input onclick=\"showAppropriateLines()\" type=\"radio\" name=\"vhost_type\" id=\"vhost_type_dav\" value=\"dav\" /><label for=\"vhost_type_dav\">&#160;WebDAV</label><br />
103
-	  <input onclick=\"showAppropriateLines()\" type=\"radio\" name=\"vhost_type\" id=\"vhost_type_svn\" value=\"svn\" /><label for=\"vhost_type_svn\">&#160;Subversion-Server</label><br />
104
-	  <input onclick=\"showAppropriateLines()\" type=\"radio\" name=\"vhost_type\" id=\"vhost_type_webapp\" value=\"webapp\" /><label for=\"vhost_type_webapp\">&#160;Eine vorgefertigte Applikation nutzen</label>
105
-	</td>
106
-	<td>&#160;</td>
107
-    </tr>
108
-    <tr id=\"block_webapp\">
109
-      <td>Vorgefertigte Applikation</td>
110
-      <td><select name=\"webapp\" size=\"1\"><option value=\"drupal-5\">Drupal 5.x</option></select>
111
-      </td>
112
-	<td>&#160;</td>
113
-    </tr>
114
-    <tr id=\"block_localpath\"><td>Lokaler Pfad</td>
115
-    <td><input type=\"checkbox\" id=\"use_default_docroot\" name=\"use_default_docroot\" value=\"1\" onclick=\"useDefaultDocroot()\" ".($is_default_docroot ? 'checked="checked" ' : '')."/>&#160;<label for=\"use_default_docroot\">Standardeinstellung benutzen</label><br />
100
+<h4 style=\"margin-top: 2em;\">Name des VHost</h4>
101
+    <div style=\"margin-left: 2em;\"><input type=\"text\" name=\"hostname\" id=\"hostname\" size=\"10\" value=\"{$vhost['hostname']}\" onchange=\"defaultDocumentRoot()\" /><strong>.</strong>".domainselect($vhost['domain_id'], 'onchange="defaultDocumentRoot()"');
102
+$form .= "<br /><input type=\"checkbox\" name=\"options[]\" id=\"aliaswww\" value=\"aliaswww\" {$s}/> <label for=\"aliaswww\">Auch mit <strong>www</strong> davor.</label></div>
103
+
104
+<div id=\"options_regular\" style=\"margin-left: 2em; position: absolute; left: 45em; ".($vhost_type=='regular' ? '' : 'display: none;')."\">
105
+  <h4>Optionen</h4>
106
+  <h5>Speicherort für Dateien (»Document Root«)</h5>
107
+  <div style=\"margin-left: 2em;\">
108
+    <input type=\"checkbox\" id=\"use_default_docroot\" name=\"use_default_docroot\" value=\"1\" onclick=\"useDefaultDocroot()\" ".($is_default_docroot ? 'checked="checked" ' : '')."/>&#160;<label for=\"use_default_docroot\">Standardeinstellung benutzen</label><br />
116 109
     <strong>".$vhost['homedir']."/</strong>&#160;<input type=\"text\" id=\"docroot\" name=\"docroot\" size=\"30\" value=\"".$docroot."\" ".($is_default_docroot ? 'disabled="disabled" ' : '')."/>
117
-    </td>
118
-    <td id=\"defaultdocroot\">{$defaultdocroot}</td></tr>
119
-    <tr id=\"block_php\"><td>PHP</td>
120
-    <td><select name=\"php\" id=\"php\">
121
-      <option value=\"none\" ".($vhost['php'] == NULL ? 'selected="selected"' : '')." >kein PHP</option>
122
-      <option value=\"mod_php\" ".($vhost['php'] == 'mod_php' ? 'selected="selected"' : '')." >als Apache-Modul</option>
123
-      <option value=\"fastcgi\" ".($vhost['php'] == 'fastcgi' ? 'selected="selected"' : '')." >FastCGI</option>
110
+  </div>
111
+  <h5>Script-Sprache</h5>
112
+  <div style=\"margin-left: 2em;\">
113
+    <select name=\"php\" id=\"php\">
114
+      <option value=\"none\" ".($vhost['php'] == NULL ? 'selected="selected"' : '')." >keine Scriptsprache</option>
115
+      <option value=\"mod_php\" ".($vhost['php'] == 'mod_php' ? 'selected="selected"' : '')." >PHP als Apache-Modul</option>
116
+      <option value=\"fastcgi\" ".($vhost['php'] == 'fastcgi' ? 'selected="selected"' : '')." >PHP als FastCGI</option>
117
+      <option value=\"rubyonrails\" ".($vhost['php'] == 'rubyonrails' ? 'selected="selected"' : '')." >Ruby-on-Rails</option>
124 118
     </select>
125
-    </td>
126
-    <td id=\"defaultphp\">als Apache-Modul</td></tr>
127
-    <tr><td>SSL-Verschlüsselung</td>
128
-    <td><select name=\"ssl\" id=\"ssl\">
119
+  </div>
120
+</div>
121
+
122
+<div id=\"options_webapp\" style=\"margin-left: 2em; position: absolute; left: 45em; ".($vhost_type=='webapp' ? '' : 'display: none;')."\">
123
+  <h4>Optionen</h4>
124
+  <h5>Anwendung</h5>
125
+  <select name=\"webapp\" id=\"webapp\" size=\"1\"><option value=\"drupal-5\">Drupal 5.x</option></select>
126
+</div>
127
+
128
+<h4>Verwendung</h4>
129
+        <div style=\"margin-left: 2em;\">
130
+	  <input class=\"usageoption\" onclick=\"showAppropriateLines()\" type=\"radio\" name=\"vhost_type\" id=\"vhost_type_regular\" value=\"regular\" ".(($vhost_type=='regular') ? 'checked="checked" ' : '')."/><label for=\"vhost_type_regular\">&#160;Normal (selbst Dateien hinterlegen)</label><br />
131
+	  <input class=\"usageoption\" onclick=\"showAppropriateLines()\" type=\"radio\" name=\"vhost_type\" id=\"vhost_type_dav\" value=\"dav\" ".(($vhost_type=='dav') ? 'checked="checked" ' : '')."/><label for=\"vhost_type_dav\">&#160;WebDAV</label><br />
132
+	  <input class=\"usageoption\" onclick=\"showAppropriateLines()\" type=\"radio\" name=\"vhost_type\" id=\"vhost_type_svn\" value=\"svn\" ".(($vhost_type=='svn') ? 'checked="checked" ' : '')."/><label for=\"vhost_type_svn\">&#160;Subversion-Server</label><br />
133
+	  <input class=\"usageoption\" onclick=\"showAppropriateLines()\" type=\"radio\" name=\"vhost_type\" id=\"vhost_type_webapp\" value=\"webapp\" ".(($vhost_type=='webapp') ? 'checked="checked" ' : '')."/><label for=\"vhost_type_webapp\">&#160;Eine vorgefertigte Applikation nutzen</label>
134
+	</div>
135
+
136
+<h4 style=\"margin-top: 3em;\">Allgemeine Optionen</h4>
137
+<div style=\"margin-left: 2em;\">
138
+    <h5>SSL-Verschlüsselung</h5>
139
+    <div style=\"margin-left: 2em;\">
140
+    <select name=\"ssl\" id=\"ssl\">
129 141
       <option value=\"none\" ".($vhost['ssl'] == NULL ? 'selected="selected"' : '')." >SSL optional anbieten</option>
130 142
       <option value=\"http\" ".($vhost['ssl'] == 'http' ? 'selected="selected"' : '')." >kein SSL</option>
131 143
       <option value=\"https\" ".($vhost['ssl'] == 'https' ? 'selected="selected"' : '')." >nur SSL</option>
132 144
       <option value=\"forward\" ".($vhost['ssl'] == 'forward' ? 'selected="selected"' : '')." >Immer auf SSL umleiten</option>
133 145
     </select>
134
-    </td>
135
-    <td id=\"defaultssl\">SSL optional anbieten</td></tr>
136
-    <tr>
137
-      <td>Logfiles <span class=\"warning\">*</span></td>
138
-      <td><select name=\"logtype\" id=\"logtype\">
139
-      <option value=\"none\" ".($vhost['logtype'] == NULL ? 'selected="selected"' : '')." >keine Logfiles</option>
140
-      <option value=\"anonymous\" ".($vhost['logtype'] == 'anonymous' ? 'selected="selected"' : '')." >anonymisiert</option>
141
-      <option value=\"default\" ".($vhost['logtype'] == 'default' ? 'selected="selected"' : '')." >vollständige Logfile</option>
142
-    </select><br />
143
-    <input type=\"checkbox\" id=\"errorlog\" name=\"errorlog\" value=\"1\" ".($vhost['errorlog'] == 1 ? ' checked="checked" ' : '')." />&#160;<label for=\"errorlog\">Fehlerprotokoll (error_log) einschalten</label>
144
-    </td>
145
-    <td id=\"defaultlogtype\">keine Logfiles</td></tr>
146
+    </div>
147
+    <h5>Logfiles <span class=\"warning\">*</span></h5>
148
+    <div style=\"margin-left: 2em;\">
149
+      <select name=\"logtype\" id=\"logtype\">
150
+        <option value=\"none\" ".($vhost['logtype'] == NULL ? 'selected="selected"' : '')." >keine Logfiles</option>
151
+        <option value=\"anonymous\" ".($vhost['logtype'] == 'anonymous' ? 'selected="selected"' : '')." >anonymisiert</option>
152
+        <option value=\"default\" ".($vhost['logtype'] == 'default' ? 'selected="selected"' : '')." >vollständige Logfile</option>
153
+      </select><br />
154
+      <input type=\"checkbox\" id=\"errorlog\" name=\"errorlog\" value=\"1\" ".($vhost['errorlog'] == 1 ? ' checked="checked" ' : '')." />&#160;<label for=\"errorlog\">Fehlerprotokoll (error_log) einschalten</label>
155
+    </div>
156
+</div>
146 157
     ";
147 158
 
148
-$form .= '</table>
159
+$form .= '
149 160
   <p><input type="submit" value="Speichern" />&#160;&#160;&#160;&#160;'.internal_link('vhosts.php', 'Abbrechen').'</p>
150 161
   <p class="warning"><span class="warning">*</span>Es ist im Moment Gegenstand gerichtlicher Außeinandersetzungen, ob die Speicherung von Logfiles auf Webservern
151 162
   zulässig ist. Wir weisen alle Nutzer darauf hin, dass sie selbst dafür verantwortlich sind, bei geloggten Nutzerdaten die
... ...
@@ -10,7 +10,7 @@ require_once('class/domain.php');
10 10
 function list_vhosts()
11 11
 {
12 12
   $uid = (int) $_SESSION['userinfo']['uid'];
13
-  $result = db_query("SELECT id,fqdn,docroot,docroot_is_default,php,options,logtype,errorlog FROM vhosts.v_vhost WHERE uid={$uid} ORDER BY domain,hostname");
13
+  $result = db_query("SELECT vh.id,fqdn,docroot,docroot_is_default,php,vh.options,logtype,errorlog,IF(dav.id IS NULL OR dav.type='svn', 0, 1) AS is_dav,IF(dav.id IS NULL OR dav.type='dav', 0, 1) AS is_svn, IF(webapps.id IS NULL, 0, 1) AS is_webapp FROM vhosts.v_vhost AS vh LEFT JOIN vhosts.dav ON (dav.vhost=vh.id) LEFT JOIN vhosts.webapps ON (webapps.vhost = vh.id) WHERE uid={$uid} ORDER BY domain,hostname");
14 14
   $ret = array();
15 15
   while ($item = mysql_fetch_assoc($result))
16 16
     array_push($ret, $item);
... ...
@@ -74,7 +74,7 @@ function get_vhost_details($id)
74 74
 {
75 75
   $id = (int) $id;
76 76
   $uid = (int) $_SESSION['userinfo']['uid'];
77
-  $result = db_query("SELECT * FROM vhosts.v_vhost WHERE uid={$uid} AND id={$id}");
77
+  $result = db_query("SELECT vh.*,IF(dav.id IS NULL OR dav.type='svn', 0, 1) AS is_dav,IF(dav.id IS NULL OR dav.type='dav', 0, 1) AS is_svn, IF(webapps.id IS NULL, 0, 1) AS is_webapp FROM vhosts.v_vhost AS vh LEFT JOIN vhosts.dav ON (dav.vhost=vh.id) LEFT JOIN vhosts.webapps ON (webapps.vhost = vh.id) WHERE uid={$uid} AND vh.id={$id}");
78 78
   if (mysql_num_rows($result) != 1)
79 79
     system_failure('Interner Fehler beim Auslesen der Daten');
80 80
 
... ...
@@ -21,7 +21,7 @@ $vhosts = list_vhosts();
21 21
 
22 22
 if (count($vhosts) > 0)
23 23
 {
24
-  output("<table><tr><th>(Sub-)Domain</th><th></th><th>Zusätzliche Alias-Namen</th><th>PHP</th><th>Logfiles</th><th>Lokaler Pfad<sup>*</sup></th></tr>");
24
+  output("<table><tr><th>(Sub-)Domain</th><th></th><th>Zusätzliche Alias-Namen</th><th>Logfiles</th><th>PHP</th><th>Lokaler Pfad<sup>*</sup></th></tr>");
25 25
 
26 26
   foreach ($vhosts as $vhost)
27 27
   {
... ...
@@ -34,20 +34,6 @@ if (count($vhosts) > 0)
34 34
     }
35 35
     output(internal_link('aliases.php', 'Aliase verwalten', 'vhost='.$vhost['id']));
36 36
     output('</td>');
37
-    $php = $vhost['php'];
38
-    switch ($php)
39
-    {
40
-      case NULL:
41
-        $php = 'kein PHP';
42
-        break;
43
-      case 'mod_php':
44
-        $php = 'Apache-Modul';
45
-        break;
46
-      case 'fastcgi':
47
-        $php = 'FastCGI';
48
-        break;
49
-    }
50
-    output("<td>{$php}</td>");
51 37
     $logfiles = 'keine';
52 38
     if ($vhost['logtype'] == 'default')
53 39
       $logfiles = 'normal';
... ...
@@ -61,10 +47,35 @@ if (count($vhosts) > 0)
61 47
         $logfiles .= ', Fehler';
62 48
     }
63 49
     output("<td>{$logfiles}</td>");
64
-    if ($vhost['docroot_is_default'] == 1)
65
-      output("<td><span style=\"color:#777;\">{$vhost['docroot']}</span></td>");
66
-    else
67
-      output("<td><strong>{$vhost['docroot']}</strong></td>");
50
+    if ($vhost['is_webapp'] == 1) {
51
+      output('<td colspan="2"><em>globale Webanwendung</em></td>');
52
+    }
53
+    elseif ($vhost['is_dav'] == 1) {
54
+      output('<td colspan="2"><em>WebDAV</em></td>');
55
+    }
56
+    elseif ($vhost['is_svn'] == 1) {
57
+      output('<td colspan="2"><em>Subversion-Server</em></td>');
58
+    }
59
+    else {
60
+      $php = $vhost['php'];
61
+      switch ($php)
62
+      {
63
+        case NULL:
64
+          $php = 'kein PHP';
65
+          break;
66
+        case 'mod_php':
67
+          $php = 'Apache-Modul';
68
+          break;
69
+        case 'fastcgi':
70
+          $php = 'FastCGI';
71
+          break;
72
+      }
73
+      output("<td>{$php}</td>");
74
+      if ($vhost['docroot_is_default'] == 1)
75
+        output("<td><span style=\"color:#777;\">{$vhost['docroot']}</span></td>");
76
+      else
77
+        output("<td><strong>{$vhost['docroot']}</strong></td>");
78
+    }
68 79
     output("</tr>");
69 80
   }
70 81
   output('</table>');