bernd commited on 2007-12-08 16:24:53
Zeige 3 geänderte Dateien mit 41 Einfügungen und 13 Löschungen.
git-svn-id: https://svn.schokokeks.org/repos/tools/webinterface/trunk@843 87cf0b9e-d624-0410-a070-f6ee81989793
| ... | ... |
@@ -97,6 +97,12 @@ elseif ($vhost['is_svn']) |
| 97 | 97 |
elseif ($vhost['is_webapp']) |
| 98 | 98 |
$vhost_type = 'webapp'; |
| 99 | 99 |
|
| 100 |
+$applist = list_available_webapps(); |
|
| 101 |
+$webapp_options = ''; |
|
| 102 |
+foreach ($applist as $app) |
|
| 103 |
+ $webapp_options .= "<option value=\"{$app['id']}\">{$app['displayname']}</option>\n";
|
|
| 104 |
+ |
|
| 105 |
+ |
|
| 100 | 106 |
$form = " |
| 101 | 107 |
<h4 style=\"margin-top: 2em;\">Name des VHost</h4> |
| 102 | 108 |
<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()"');
|
| ... | ... |
@@ -125,7 +131,7 @@ $form .= "<br /><input type=\"checkbox\" name=\"options[]\" id=\"aliaswww\" valu |
| 125 | 131 |
<h4>Optionen</h4> |
| 126 | 132 |
<h5>Anwendung</h5> |
| 127 | 133 |
<select name=\"webapp\" id=\"webapp\" size=\"1\"> |
| 128 |
- <option value=\"1\">Drupal 5.x</option> |
|
| 134 |
+ {$webapp_options}
|
|
| 129 | 135 |
</select> |
| 130 | 136 |
</div> |
| 131 | 137 |
|
| ... | ... |
@@ -134,10 +140,8 @@ $form .= "<br /><input type=\"checkbox\" name=\"options[]\" id=\"aliaswww\" valu |
| 134 | 140 |
<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\"> Normal (selbst Dateien hinterlegen)</label><br /> |
| 135 | 141 |
<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\"> WebDAV</label><br /> |
| 136 | 142 |
<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\"> Subversion-Server</label><br /> |
| 137 |
- <div style=\"display: none\"> |
|
| 138 | 143 |
<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\"> Eine vorgefertigte Applikation nutzen</label> |
| 139 | 144 |
</div> |
| 140 |
- </div> |
|
| 141 | 145 |
<br /> |
| 142 | 146 |
</div> |
| 143 | 147 |
|
| ... | ... |
@@ -33,6 +33,7 @@ function empty_vhost() |
| 33 | 33 |
$vhost['is_dav'] = 0; |
| 34 | 34 |
$vhost['is_svn'] = 0; |
| 35 | 35 |
$vhost['is_webapp'] = 0; |
| 36 |
+ $vhsot['webapp_id'] = NULL; |
|
| 36 | 37 |
|
| 37 | 38 |
$vhost['options'] = ''; |
| 38 | 39 |
return $vhost; |
| ... | ... |
@@ -115,6 +116,16 @@ function get_all_aliases($vhost) |
| 115 | 116 |
} |
| 116 | 117 |
|
| 117 | 118 |
|
| 119 |
+function list_available_webapps() |
|
| 120 |
+{
|
|
| 121 |
+ $result = db_query("SELECT id,displayname FROM vhosts.global_webapps");
|
|
| 122 |
+ $ret = array(); |
|
| 123 |
+ while ($item = mysql_fetch_assoc($result)) |
|
| 124 |
+ array_push($ret, $item); |
|
| 125 |
+ return $ret; |
|
| 126 |
+} |
|
| 127 |
+ |
|
| 128 |
+ |
|
| 118 | 129 |
function delete_vhost($id) |
| 119 | 130 |
{
|
| 120 | 131 |
$id = (int) $id; |
| ... | ... |
@@ -134,6 +145,7 @@ function make_svn_vhost($id) |
| 134 | 145 |
system_failure("id == 0");
|
| 135 | 146 |
logger('modules/vhosts/include/vhosts.php', 'vhosts', 'Converting vhost #'.$id.' to SVN');
|
| 136 | 147 |
db_query("REPLACE INTO vhosts.dav (vhost, type) VALUES ({$id}, 'svn')");
|
| 148 |
+ db_query("DELETE FROM vhosts.webapps WHERE vhost={$id}");
|
|
| 137 | 149 |
} |
| 138 | 150 |
|
| 139 | 151 |
function make_dav_vhost($id) |
| ... | ... |
@@ -143,30 +155,34 @@ function make_dav_vhost($id) |
| 143 | 155 |
system_failure("id == 0");
|
| 144 | 156 |
logger('modules/vhosts/include/vhosts.php', 'vhosts', 'Converting vhost #'.$id.' to WebDAV');
|
| 145 | 157 |
db_query("REPLACE INTO vhosts.dav (vhost, type) VALUES ({$id}, 'dav')");
|
| 158 |
+ db_query("DELETE FROM vhosts.webapps WHERE vhost={$id}");
|
|
| 146 | 159 |
} |
| 147 | 160 |
|
| 148 |
-function no_dav_or_svn($id) |
|
| 161 |
+function make_regular_vhost($id) |
|
| 149 | 162 |
{
|
| 150 | 163 |
$id = (int) $id; |
| 151 | 164 |
if ($id == 0) |
| 152 | 165 |
system_failure("id == 0");
|
| 153 | 166 |
logger('modules/vhosts/include/vhosts.php', 'vhosts', 'Converting vhost #'.$id.' to regular');
|
| 154 | 167 |
db_query("DELETE FROM vhosts.dav WHERE vhost={$id}");
|
| 168 |
+ db_query("DELETE FROM vhosts.webapps WHERE vhost={$id}");
|
|
| 155 | 169 |
} |
| 156 | 170 |
|
| 157 | 171 |
|
| 158 |
-/* |
|
| 159 | 172 |
function make_webapp_vhost($id, $webapp) |
| 160 | 173 |
{
|
| 161 | 174 |
$id = (int) $id; |
| 162 | 175 |
$webapp = (int) $webapp; |
| 163 | 176 |
if ($id == 0) |
| 164 | 177 |
system_failure("id == 0");
|
| 165 |
- logger('modules/vhosts/include/vhosts.php', 'vhosts', 'Setting up webapp # '.$webapp.' on vhost #'.$id);
|
|
| 166 |
- db_query("INSERT INTO vhosts.webapps (vhost, webapp) VALUES ({$id}, {$webapp})");
|
|
| 167 |
- |
|
| 178 |
+ $result = db_query("SELECT displayname FROM vhosts.global_webapps WHERE id={$webapp};");
|
|
| 179 |
+ if (mysql_num_rows($result) == 0) |
|
| 180 |
+ system_failure("webapp-id invalid");
|
|
| 181 |
+ $webapp_name = mysql_fetch_object($result)->displayname; |
|
| 182 |
+ logger('modules/vhosts/include/vhosts.php', 'vhosts', 'Setting up webapp '.$webapp_name.' on vhost #'.$id);
|
|
| 183 |
+ db_query("REPLACE INTO vhosts.webapps (vhost, webapp) VALUES ({$id}, {$webapp})");
|
|
| 184 |
+ mail('webapps-setup@schokokeks.org', 'setup', 'setup');
|
|
| 168 | 185 |
} |
| 169 |
-*/ |
|
| 170 | 186 |
|
| 171 | 187 |
|
| 172 | 188 |
function save_vhost($vhost) |
| ... | ... |
@@ -196,12 +212,19 @@ function save_vhost($vhost) |
| 196 | 212 |
$result = db_query("INSERT INTO vhosts.vhost (user, hostname, domain, docroot, php, `ssl`, logtype, errorlog, options) VALUES ({$_SESSION['userinfo']['uid']}, {$hostname}, {$domain}, {$docroot}, {$php}, {$ssl}, {$logtype}, {$errorlog}, '{$options}')");
|
| 197 | 213 |
$id = mysql_insert_id(); |
| 198 | 214 |
} |
| 199 |
- if ($vhost['is_dav'] == 1) |
|
| 215 |
+ $oldvhost = get_vhost_details($id); |
|
| 216 |
+ /* |
|
| 217 |
+ these vars may be 0 or 1. |
|
| 218 |
+ So newval > oldval means that it has been switched on yet. |
|
| 219 |
+ */ |
|
| 220 |
+ if ($vhost['is_dav'] > $oldvhost['is_dav']) |
|
| 200 | 221 |
make_dav_vhost($id); |
| 201 |
- elseif ($vhost['is_svn'] == 1) |
|
| 222 |
+ elseif ($vhost['is_svn'] > $oldvhost['is_svn']) |
|
| 202 | 223 |
make_svn_vhost($id); |
| 203 |
- else |
|
| 204 |
- no_dav_or_svn($id); |
|
| 224 |
+ elseif ($vhost['is_webapp'] > $oldvhost['is_webapp']) |
|
| 225 |
+ make_webapp_vhost($id, $vhost['webapp_id']); |
|
| 226 |
+ elseif ($vhost['is_dav'] == 0 && $vhost['is_svn'] == 0 && $vhost['is_webapp'] == 0) |
|
| 227 |
+ make_regular_vhost($id); |
|
| 205 | 228 |
} |
| 206 | 229 |
|
| 207 | 230 |
|