function renderEditVS($vs_id) { global $vs_proto; $vsinfo = spotEntity('ipvs', $vs_id); amplifyCell($vsinfo); $triplets = getTriplets($vsinfo); // first form - common VS settings printOpFormIntro('updVS'); echo '<table border=0 align=center>'; echo '<tr><th class=tdright>Name:</th><td class=tdleft><input type=text name=name value="' . htmlspecialchars($vsinfo['name'], ENT_QUOTES) . '"></td></tr>'; echo "<tr><th class=tdright>Tags:</th><td class=tdleft>"; printTagsPicker(); echo "</td></tr>\n"; echo '<tr><th class=tdright>VS config:</th><td class=tdleft><textarea name=vsconfig rows=3 cols=80>' . stringForTextarea($vsinfo['vsconfig']) . '</textarea></td></tr>'; echo '<tr><th class=tdright>RS config:</th><td class=tdleft><textarea name=rsconfig rows=3 cols=80>' . stringForTextarea($vsinfo['rsconfig']) . '</textarea></td></tr>'; echo '<tr><th></th><th>'; printImageHREF('SAVE', 'Save changes', TRUE); // delete link $triplets = getTriplets($vsinfo); echo '<span style="margin-left: 2em"></span>'; if (count($triplets) > 0) { echo getOpLink(NULL, '', 'NODESTROY', "Could not delete: there are " . count($triplets) . " LB links"); } else { echo getOpLink(array('op' => 'del', 'id' => $vsinfo['id']), '', 'DESTROY', 'Delete', 'need-confirmation'); } echo '</th></tr>'; echo '</table></form>'; addJS('js/jquery.thumbhover.js'); addJS('js/slb_editor.js'); // second form - ports and IPs settings echo '<p>'; // vertical indentation echo '<table width=50% border=0 align=center>'; echo '<tr><th style="white-space:nowrap">'; printOpFormIntro('addPort'); echo 'Add new port:<br>'; echo getSelect($vs_proto, array('name' => 'proto')); echo ' <input name=port size=5> '; echo getImageHREF('add', 'Add port', TRUE); echo '</form></th>'; echo '<td width=99%></td>'; echo '<th style="white-space:nowrap">'; printOpFormIntro('addIP'); echo 'Add new IP:<br>'; echo '<input name=ip size=14> '; echo getImageHREF('add', 'Add IP', TRUE); echo '</form></th></tr>'; echo '<tr><td valign=top class=tdleft><ul class="slb-checks editable">'; foreach ($vsinfo['ports'] as $port) { $used = 0; foreach ($triplets as $triplet) { if (isPortEnabled($port, $triplet['ports'])) { $used++; } } echo '<li class="enabled">'; echo formatVSPort($port) . getPopupSLBConfig($port); renderPopupVSPortForm($port, $used); echo '</li>'; } echo '</ul></td>'; echo '<td width=99%></td>'; echo '<td valign=top class=tdleft><ul class="slb-checks editable">'; foreach ($vsinfo['vips'] as $vip) { $used = 0; foreach ($triplets as $triplet) { if (isVIPEnabled($vip, $triplet['vips'])) { $used++; } } echo '<li class="enabled">'; echo formatVSIP($vip) . getPopupSLBConfig($vip); renderPopupVSVIPForm($vip, $used); echo '</li>'; } echo '</ul></td>'; echo '</tr></table>'; }
function renderSLBTripletsEdit($cell) { list($realm1, $realm2) = array_values(array_diff(array('object', 'ipv4vs', 'ipv4rspool'), array($cell['realm']))); if (getConfigVar('ADDNEW_AT_TOP') == 'yes') { callHook('renderNewSLBItemForm', $realm1, $realm2); } $triplets = SLBTriplet::getTriplets($cell); if (count($triplets)) { $cells = array(); foreach ($triplets[0]->display_cells as $field) { $cells[] = $triplets[0]->{$field}; } startPortlet('Manage existing (' . count($triplets) . ')'); echo "<table cellspacing=0 cellpadding=5 align=center class=cooltable>\n"; global $nextorder; $order = 'odd'; foreach ($triplets as $slb) { $cells = array(); foreach ($slb->display_cells as $field) { $cells[] = $slb->{$field}; } $ids = array('object_id' => $slb->lb['id'], 'vs_id' => $slb->vs['id'], 'pool_id' => $slb->rs['id']); $del_params = $ids; $del_params['op'] = 'delLB'; printOpFormIntro('updLB', $ids); echo "<tr valign=top class=row_{$order}><td rowspan=2 class=tdright valign=middle>"; echo getOpLink($del_params, '', 'DELETE', 'Unconfigure'); echo "</td><td class=tdleft valign=bottom>"; renderSLBEntityCell($cells[0]); echo "</td><td>VS config ↓<br><textarea name=vsconfig rows=5 cols=70>" . stringForTextarea($slb->slb['vsconfig']) . "</textarea></td>"; echo '<td class=tdleft rowspan=2 valign=middle>'; printImageHREF('SAVE', 'Save changes', TRUE); echo "</td>"; echo "</tr><tr class=row_{$order}><td class=tdleft valign=top>"; renderSLBEntityCell($cells[1]); echo '</td><td>'; echo "<textarea name=rsconfig rows=5 cols=70>" . stringForTextarea($slb->slb['rsconfig']) . "</textarea><br>RS config ↑"; echo "<div style='float:left; margin-top:10px'><label><input name=prio type=text size=10 value=\"" . htmlspecialchars($slb->slb['prio']) . "\"> ← Priority</label></div>"; echo '</td></tr></form>'; $order = $nextorder[$order]; } echo "</table>\n"; finishPortlet(); } if (getConfigVar('ADDNEW_AT_TOP') != 'yes') { callHook('renderNewSLBItemForm', $realm1, $realm2); } }
function renderTextEditor($file_id) { global $CodePressMap; $fullInfo = getFile($file_id); printOpFormIntro('updateFileText', array('mtime_copy' => $fullInfo['mtime'])); preg_match('/.+\\.([^.]*)$/', $fullInfo['name'], $matches); # get file extension if (isset($matches[1]) && isset($CodePressMap[$matches[1]])) { $syntax = $CodePressMap[$matches[1]]; } else { $syntax = "text"; } echo '<table border=0 align=center>'; addJS('js/codepress/codepress.js'); echo "<tr><td><textarea rows=45 cols=180 id=file_text name=file_text class='codepress " . $syntax . "'>\n"; echo stringForTextarea($fullInfo['contents']) . '</textarea></td></tr>'; echo "<tr><td class=submit><input type=submit value='Save' onclick='\$(file_text).toggleEditor();'>"; echo "</td></tr>\n</table></form>\n"; }