/** * * @param $request_id */ function showRequest($request_id) { global $cssSw, $perm; $reqObj = new RoomRequest($request_id); $semObj = new Seminar($reqObj->getSeminarId()); $sem_link = $perm->have_studip_perm('tutor', $semObj->getId()) ? "seminar_main.php?auswahl=" . $semObj->getId() : "dispatch.php/course/details/?sem_id=" . $semObj->getId() . "&send_from_search=1&send_from_search_page=" . URLHelper::getLink("resources.php?working_on_request=$request_id"); ?> <form method="POST" action="<?echo URLHelper::getLink('?working_on_request=' . $request_id);?>"> <?php echo CSRFProtection::tokenTag(); ?> <input type="hidden" name="view" value="edit_request"> <table border=0 celpadding=2 cellspacing=0 width="99%" align="center"> <tr> <td class="<? $cssSw->switchClass(); echo $cssSw->getClass() ?>" width="4%"> </td> <td class="<? echo $cssSw->getClass() ?>" colspan="2" width="96%" valign="top"> <a href="<?php echo URLHelper::getLink($sem_link); ?> "> <b><?php echo $semObj->seminar_number ? htmlReady($semObj->seminar_number) . ':' : ''; echo htmlReady($semObj->getName()); ?> </b> </a> <font size="-1"> <br> <? $names = $this->selectSemInstituteNames($semObj->getInstitutId()); print " "._("Art der Anfrage").": ".$reqObj->getTypeExplained()."<br>"; print " "._("Erstellt von").": <a href=\"".URLHelper::getLink('dispatch.php/profile?username='******'%x %H:%M', $reqObj->mkdate) . '<br>'; print " "._("Letzte Änderung") . ": ". strftime('%x %H:%M', $reqObj->chdate) . '<br>'; print " "._("Letzte Änderung von") . ": <a href=\"".URLHelper::getLink('dispatch.php/profile?username='******': '; foreach ($semObj->getMembers('dozent') as $doz) { if ($dozent){ echo ", "; } echo '<a href ="'. URLHelper::getLink('dispatch.php/profile?username='******'username']). '">'.HtmlReady($doz['fullname'])."</a>"; $dozent = true; } print "<br>"; print " "._("verantwortliche Einrichtung").": ".htmlReady($names['inst_name'])."<br>"; print " "._("verantwortliche Fakultät").": ".htmlReady($names['fak_name'])."<br>"; print " "._("aktuelle Teilnehmerzahl").": ".$semObj->getNumberOfParticipants('total').'<br>'; ?> </font> </td> </tr> <tr> <td class="<? $cssSw->switchClass(); echo $cssSw->getClass() ?>" width="4%"> </td> <td class="<? echo $cssSw->getClass() ?>" width="35%" valign="top"> <font size="-1"><b><?php echo _("angeforderte Belegungszeiten"); ?> :</b><br><br> <? $dates = $semObj->getGroupedDates($reqObj->getTerminId(),$reqObj->getMetadateId()); if ($dates['first_event']) { $i = 1; if(is_array($dates['info']) && sizeof($dates['info']) > 0 ){ foreach ($dates['info'] as $info) { $name = $info['name']; if ($info['weekend']) $name = '<span style="color:red">'. $info['name'] . '</span>'; printf ("<font color=\"blue\"><i><b>%s</b></i></font>. %s<br>", $i, $name); $i++; } } if ($reqObj->getType() != 'date') { echo _("regelmäßige Buchung ab").": ".strftime("%x", $dates['first_event']); } } else { print _("nicht angegeben"); } ?> </font> </td> <td style="border-left:1px dotted black; background-color: #f3f5f8" width="51%" rowspan="4" valign="top"> <table cellpadding="2" cellspacing="0" border="0" width="90%"> <tr> <td width="70%"> <font size="-1"><b><?php echo _("angeforderter Raum"); ?> :</b></font> </td> <? unset($resObj); $cols=0; if (is_array($_SESSION['resources_data']["requests_working_on"][$_SESSION['resources_data']["requests_working_pos"]]["groups"])) foreach ($_SESSION['resources_data']["requests_working_on"][$_SESSION['resources_data']["requests_working_pos"]]["groups"] as $key => $val) { $cols++; print "<td width=\"1%\" align=\"left\"><font size=\"-1\" color=\"blue\"><i><b>".$cols.".</b></i></font></td>"; } ?> <td width="29%" align="right"> <!--<font style="font-size:10px;color:blue;"><?//=_("Kapazität")?></font>--> </td> </tr> <tr> <td width="70%"> <? if ($request_resource_id = $reqObj->getResourceId()) { $resObj = ResourceObject::Factory($request_resource_id); print $resObj->getFormattedLink($_SESSION['resources_data']["requests_working_on"][$_SESSION['resources_data']["requests_working_pos"]]["first_event"]); print tooltipicon(_('Der ausgewählte Raum bietet folgende der wünschbaren Eigenschaften:') . "\n" . $resObj->getPlainProperties(TRUE), $resObj->getOwnerId() == 'global'); if ($resObj->getOwnerId() == 'global') { print ' [global]'; } } else print _("Es wurde kein Raum angefordert."); ?> </td> <? $i=0; if(is_array($_SESSION['resources_data']["requests_working_on"][$_SESSION['resources_data']["requests_working_pos"]]["groups"]) && sizeof($_SESSION['resources_data']["requests_working_on"][$_SESSION['resources_data']["requests_working_pos"]]["groups"]) > 0 ) foreach ($_SESSION['resources_data']["requests_working_on"][$_SESSION['resources_data']["requests_working_pos"]]["groups"] as $key => $val) { print "<td width=\"1%\" nowrap><font size=\"-1\">"; if ($request_resource_id) { if ($request_resource_id == $val["resource_id"]) { print Icon::create('accept', 'accept', ['title' => _("Dieser Raum ist augenblicklich gebucht"), TRUE])->asImg(); echo '<input type="radio" name="selected_resource_id['. $i .']" value="'. $request_resource_id .'" checked="checked">'; } else { $overlap_status = $this->showGroupOverlapStatus($_SESSION['resources_data']["requests_working_on"][$_SESSION['resources_data']["requests_working_pos"]]["detected_overlaps"][$request_resource_id], $val["events_count"], $val["overlap_events_count"][$request_resource_id], $val["termin_ids"]); print $overlap_status["html"]; printf ("<input type=\"radio\" name=\"selected_resource_id[%s]\" value=\"%s\" %s %s>", $i, $request_resource_id, ($_SESSION['resources_data']["requests_working_on"][$_SESSION['resources_data']["requests_working_pos"]]["selected_resources"][$i] == $request_resource_id) ? "checked" : "", ($overlap_status["status"] == 2 || !ResourcesUserRoomsList::CheckUserResource($request_resource_id)) ? "disabled" : ""); } } else print " "; print "</font></td>"; $i++; } ?> <td width="29%" align="right"> <? if (is_object($resObj)) { $seats = $resObj->getSeats(); $requested_seats = $reqObj->getSeats(); if ((is_numeric($seats)) && (is_numeric($requested_seats))) { $percent_diff = (100 / $requested_seats) * $seats; if ($percent_diff > 0) $percent_diff = "+".$percent_diff; if ($percent_diff < 0) $percent_diff = "-".$percent_diff; print "<font style=\"font-size:10px;\">".round($percent_diff)."%</font>"; } } ?> </td> </tr> <? if (get_config('RESOURCES_ENABLE_GROUPING')) { $room_group = RoomGroups::GetInstance(); $group_id = $_SESSION['resources_data']['actual_room_group']; ?> <tr> <td style="border-top:1px solid;" width="100%" colspan="<?php echo $cols + 2; ?> "> <font size="-1"><b><?php echo _("Raumgruppe berücksichtigen"); ?> :</b></font> </td> </tr> <tr> <td colspan="<?php echo $cols; ?> "><font size="-1"> <select name="request_tool_choose_group"> <option <?php echo is_null($group_id) ? 'selected' : ''; ?> value="-"><?php echo _("Keine Raumgruppe anzeigen"); ?> </option> <? foreach($room_group->getAvailableGroups() as $gid){ echo '<option value="'.$gid.'" ' . (!is_null($group_id) && $group_id == $gid ? 'selected' : '') . '>' .htmlReady(my_substr($room_group->getGroupName($gid),0,45)) .' ('.$room_group->getGroupCount($gid).')</option>'; } ?> </select> </font> </td> <td colspan="2"><font size="-1"> <?php echo Button::create(_('Auswählen'), 'request_tool_group'); ?> <br> </font> </td> </tr> <? if ($room_group->getGroupCount($group_id)){ foreach ($room_group->getGroupContent($group_id) as $key) { ?> <tr> <td width="70%"> <? $resObj = ResourceObject::Factory($key); print $resObj->getFormattedLink($_SESSION['resources_data']["requests_working_on"][$_SESSION['resources_data']["requests_working_pos"]]["first_event"]); print tooltipicon(_('Der ausgewählte Raum bietet folgende der wünschbaren Eigenschaften:') . "\n" . $resObj->getPlainProperties(TRUE), $resObj->getOwnerId() == 'global'); if ($resObj->getOwnerId() == 'global') { print ' [global]'; } ?> </td> <? $i=0; if (is_array($_SESSION['resources_data']["requests_working_on"][$_SESSION['resources_data']["requests_working_pos"]]["groups"])) { foreach ($_SESSION['resources_data']["requests_working_on"][$_SESSION['resources_data']["requests_working_pos"]]["groups"] as $key2 => $val2) { print "<td width=\"1%\" nowrap><font size=\"-1\">"; if ($key == $val2["resource_id"]) { print Icon::create('accept', 'accept', ['title' => _("Dieser Raum ist augenblicklich gebucht"), TRUE])->asImg(); echo '<input type="radio" name="selected_resource_id['. $i .']" value="'. $key .'" checked="checked">'; } else { $overlap_status = $this->showGroupOverlapStatus($_SESSION['resources_data']["requests_working_on"][$_SESSION['resources_data']["requests_working_pos"]]["detected_overlaps"][$key], $val2["events_count"], $val2["overlap_events_count"][$resObj->getId()], $val2["termin_ids"]); print $overlap_status["html"]; printf ("<input type=\"radio\" name=\"selected_resource_id[%s]\" value=\"%s\" %s %s>", $i, $key, ($_SESSION['resources_data']["requests_working_on"][$_SESSION['resources_data']["requests_working_pos"]]["selected_resources"][$i] == $key) ? "checked" : "", ($overlap_status["status"] == 2 || !ResourcesUserRoomsList::CheckUserResource($key)) ? "disabled" : ""); } print "</font></td>"; $i++; } } ?> <td width="29%" align="right"> <? if (is_object($resObj)) { $seats = $resObj->getSeats(); $requested_seats = $reqObj->getSeats(); if ((is_numeric($seats)) && (is_numeric($requested_seats))) { $percent_diff = (100 / $requested_seats) * $seats; if ($percent_diff > 0) $percent_diff = "+".$percent_diff; if ($percent_diff < 0) $percent_diff = "-".$percent_diff; print "<font style=\"font-size:10px;\">".round($percent_diff)."%</font>"; } } ?> </td> </tr> <? } } } ?> <tr> <td style="border-top:1px solid;" width="100%" colspan="<?php echo $cols + 2; ?> "> <font size="-1"><b><?php echo _("weitere passende Räume"); ?> :</b> </font> </td> </tr> <? if (is_array($_SESSION['resources_data']["requests_working_on"][$_SESSION['resources_data']["requests_working_pos"]]["considered_resources"])) foreach ($_SESSION['resources_data']["requests_working_on"][$_SESSION['resources_data']["requests_working_pos"]]["considered_resources"] as $key=>$val) { if ($val["type"] == "matching") $matching_rooms[$key] = TRUE; if ($val["type"] == "clipped") $clipped_rooms[$key] = TRUE; if ($val["type"] == "grouped") $grouped_rooms[$key] = TRUE; } if (sizeof($matching_rooms)) { // filter list to [search_limit_low]...[search_limit_high] $search_limit_low = $_SESSION['resources_data']["requests_working_on"][$_SESSION['resources_data']["requests_working_pos"]]["search_limit_low"]; $search_limit_high = $_SESSION['resources_data']["requests_working_on"][$_SESSION['resources_data']["requests_working_pos"]]["search_limit_high"]; $matching_rooms = array_slice($matching_rooms, $search_limit_low, $search_limit_high - $search_limit_low); foreach ($matching_rooms as $key=>$val) { ?> <tr> <td width="70%"> <? $resObj = ResourceObject::Factory($key); print $resObj->getFormattedLink($_SESSION['resources_data']["requests_working_on"][$_SESSION['resources_data']["requests_working_pos"]]["first_event"]); print tooltipicon(_('Der ausgewählte Raum bietet folgende der wünschbaren Eigenschaften:') . "\n" . $resObj->getPlainProperties(TRUE), $resObj->getOwnerId() == 'global'); if ($resObj->getOwnerId() == 'global') { print ' [global]'; } ?> </td> <? $i=0; if (is_array($_SESSION['resources_data']["requests_working_on"][$_SESSION['resources_data']["requests_working_pos"]]["groups"])) { foreach ($_SESSION['resources_data']["requests_working_on"][$_SESSION['resources_data']["requests_working_pos"]]["groups"] as $key2 => $val2) { print "<td width=\"1%\" nowrap><font size=\"-1\">"; if ($key == $val2["resource_id"]) { print Icon::create('accept', 'accept', ['title' => _("Dieser Raum ist augenblicklich gebucht"), TRUE])->asImg(); echo '<input type="radio" name="selected_resource_id['. $i .']" value="'. $key .'" checked="checked">'; } else { $overlap_status = $this->showGroupOverlapStatus($_SESSION['resources_data']["requests_working_on"][$_SESSION['resources_data']["requests_working_pos"]]["detected_overlaps"][$key], $val2["events_count"], $val2["overlap_events_count"][$resObj->getId()], $val2["termin_ids"]); print $overlap_status["html"]; printf ("<input type=\"radio\" name=\"selected_resource_id[%s]\" value=\"%s\" %s %s>", $i, $key, ($_SESSION['resources_data']["requests_working_on"][$_SESSION['resources_data']["requests_working_pos"]]["selected_resources"][$i] == $key) ? "checked" : "", ($overlap_status["status"] == 2 || !ResourcesUserRoomsList::CheckUserResource($key)) ? "disabled" : ""); } print "</font></td>"; $i++; } } ?> <td width="29%" align="right"> <? if (is_object($resObj)) { $seats = $resObj->getSeats(); $requested_seats = $reqObj->getSeats(); if ((is_numeric($seats)) && (is_numeric($requested_seats))) { $percent_diff = (100 / $requested_seats) * $seats; if ($percent_diff > 0) $percent_diff = "+".$percent_diff; if ($percent_diff < 0) $percent_diff = "-".$percent_diff; print "<font style=\"font-size:10px;\">".round($percent_diff)."%</font>"; } } ?> </td> </tr> <? } ?> <tr> <td colspan="<?php echo $cols + 2; ?> " align="center"> <font size="-1"> <?php echo _("zeige Räume"); ?> <a href="<?php echo URLHelper::getLink('?dec_limit_low=1'); ?> ">-</a> <input type="text" name="search_rooms_limit_low" size="1" value="<?php echo $_SESSION['resources_data']["requests_working_on"][$_SESSION['resources_data']["requests_working_pos"]]["search_limit_low"] + 1; ?> "> <a href="<?php echo URLHelper::getLink('?inc_limit_low=1'); ?> ">+</a> bis <a href="<?php echo URLHelper::getLink('?dec_limit_high=1'); ?> ">-</a> <input type="text" name="search_rooms_limit_high" size="1" value="<?php echo $_SESSION['resources_data']["requests_working_on"][$_SESSION['resources_data']["requests_working_pos"]]["search_limit_high"]; ?> "> <a href="<?php echo URLHelper::getLink('?inc_limit_high=1'); ?> ">+</a> <?php echo Icon::create('arr_2up', 'sort', ['title' => 'ausgewählten Bereich anzeigen'])->asInput(array('name' => 'matching_rooms_limit_submit')); ?> </font> </td> </tr> <? } else print "<tr><td width=\"100%\" colspan=\"".($cols+1)."\"><font size=\"-1\">"._("keine gefunden")."</font></td></tr>"; //Clipped Rooms if (sizeof($clipped_rooms)) { ?> <tr> <td style="border-top:1px solid;" width="100%" colspan="<?php echo $cols + 2; ?> "> <font size="-1"><b><?php echo _("Räume aus der Merkliste"); ?> :</b></font> </td> </tr> <? foreach ($clipped_rooms as $key=>$val) { ?> <tr> <td width="70%"> <? $resObj = ResourceObject::Factory($key); print $resObj->getFormattedLink($_SESSION['resources_data']["requests_working_on"][$_SESSION['resources_data']["requests_working_pos"]]["first_event"]); print tooltipicon(_('Der ausgewählte Raum bietet folgende der wünschbaren Eigenschaften:') . "\n" . $resObj->getPlainProperties(TRUE), $resObj->getOwnerId() == 'global'); if ($resObj->getOwnerId() == 'global') { print ' [global]'; } ?> </td> <? $i=0; if (is_array($_SESSION['resources_data']["requests_working_on"][$_SESSION['resources_data']["requests_working_pos"]]["groups"])) { foreach ($_SESSION['resources_data']["requests_working_on"][$_SESSION['resources_data']["requests_working_pos"]]["groups"] as $key2 => $val2) { print "<td width=\"1%\" nowrap><font size=\"-1\">"; if ($key == $val2["resource_id"]) { print Icon::create('accept', 'clickable', ['title' => _('Dieser Raum ist augenblicklich gebucht'), TRUE])->asImg(); } else { $overlap_status = $this->showGroupOverlapStatus($_SESSION['resources_data']["requests_working_on"][$_SESSION['resources_data']["requests_working_pos"]]["detected_overlaps"][$key], $val2["events_count"], $val2["overlap_events_count"][$resObj->getId()], $val2["termin_ids"]); print $overlap_status["html"]; printf ("<input type=\"radio\" name=\"selected_resource_id[%s]\" value=\"%s\" %s %s>", $i, $key, ($_SESSION['resources_data']["requests_working_on"][$_SESSION['resources_data']["requests_working_pos"]]["selected_resources"][$i] == $key) ? "checked" : "", ($overlap_status["status"] == 2 || !ResourcesUserRoomsList::CheckUserResource($key)) ? "disabled" : ""); } print "</font></td>"; $i++; } } ?> <td width="29%" align="right"> <? if (is_object($resObj)) { $seats = $resObj->getSeats(); $requested_seats = $reqObj->getSeats(); if ((is_numeric($seats)) && (is_numeric($requested_seats))) { $percent_diff = (100 / $requested_seats) * $seats; if ($percent_diff > 0) $percent_diff = "+".$percent_diff; if ($percent_diff < 0) $percent_diff = "-".$percent_diff; print "<font style=\"font-size:10px;\">".round($percent_diff)."%</font>"; } } ?> </td> </font></td> </tr> <? } } ?> </table> </td> </tr> <tr> <td class="<? $cssSw->switchClass(); echo $cssSw->getClass() ?>" width="4%"> </td> <td class="<? echo $cssSw->getClass() ?>" width="35%" valign="top"> <font size="-1"><b><?php echo _("gewünschte Raumeigenschaften"); ?> :</b><br><br> <? $properties = $reqObj->getProperties(); if (sizeof($properties)) { ?> <table width="99%" cellspacing="0" cellpadding="2" border="0"> <? foreach ($properties as $key=>$val) { ?> <tr> <td width="70%"> <li><font size="-1"><?php echo htmlReady($val["name"]); ?> </font></li> </td> <td width="30%"><font size="-1"> <? switch ($val["type"]) { case "bool": /*printf ("%s", ($val["state"]) ? htmlReady($val["options"]) : " - ");*/ break; case "num": case "text": print htmlReady($val["state"]); break; case "select": $options=explode (";",$val["options"]); foreach ($options as $a) { if ($val["state"] == $a) print htmlReady($a); } break; } ?></font> </td> </tr> <? } ?> </table> <? } else print _("Es wurden keine Raumeigenschaften gewünscht."); ?> </font> </td> </tr> <tr> <td class="<? $cssSw->switchClass(); echo $cssSw->getClass() ?>" width="4%"> </td> <td class="<? echo $cssSw->getClass() ?>" width="35%" valign="top"> <font size="-1"><b><?php echo _("Kommentar des Anfragenden"); ?> :</b><br><br> <? if ($comment = $reqObj->getComment()) print $comment; else print _("Es wurde kein Kommentar eingegeben"); ?> </font> </td> </tr> <tr> <td class="<? $cssSw->switchClass(); echo $cssSw->getClass() ?>" width="4%"> </td> <td class="<? echo $cssSw->getClass() ?>" width="35%" valign="top"> <? $user_status_mkdate = $reqObj->getUserStatus($GLOBALS['user']->id); ?> <b><?php echo "Benachrichtigungen"; ?> :</b><br> <input type="radio" onChange="jQuery(this).closest('form').submit()" name="reply_recipients" id="reply_recipients_requester" value="requester" checked> <label for="reply_recipients_requester"> <?php echo _("Ersteller"); ?> </label> <input type="radio" onChange="jQuery(this).closest('form').submit()" name="reply_recipients" id="reply_recipients_lecturer" value="lecturer" <?php echo $reqObj->reply_recipients == 'lecturer' ? 'checked' : ''; ?> > <label for="reply_recipients_lecturer"> <?php echo _("Ersteller und alle Lehrenden"); ?> </label> <br> <b><?php echo "Anfrage markieren"; ?> :</b><br> <input type="radio" onChange="jQuery(this).closest('form').submit()" name="request_user_status" id="request_user_status_0" value="0" checked> <label for="request_user_status_0"> <?php echo _("unbearbeitet"); ?> </label> <input type="radio" onChange="jQuery(this).closest('form').submit()" name="request_user_status" id="request_user_status_1" value="1" <?php echo $user_status_mkdate ? 'checked' : ''; ?> > <label for="request_user_status_1"> <?php echo _("bearbeitet"); ?> </label> <br><br> <b><?php echo _("Kommentar zur Belegung (intern)"); ?> :</b><br><br> <textarea name="comment_internal" style="width: 90%" rows="2"></textarea> </td> </tr> <tr> <td class="<? $cssSw->switchClass(); echo $cssSw->getClass() ?>" width="4%"> </td> <td class="<? echo $cssSw->getClass() ?>" colspan="2" width="96%" valign="top" align="center"> <div class="button-group"> <? // can we dec? if ($_SESSION['resources_data']["requests_working_pos"] > 0) { $d = -1; if ($_SESSION['resources_data']["skip_closed_requests"]) while ((!$_SESSION['resources_data']["requests_open"][$_SESSION['resources_data']["requests_working_on"][$_SESSION['resources_data']["requests_working_pos"] + $d]["request_id"]]) && ($_SESSION['resources_data']["requests_working_pos"] + $d > 0)) $d--; if ((sizeof($_SESSION['resources_data']["requests_open"]) > 1) && (($_SESSION['resources_data']["requests_open"][$_SESSION['resources_data']["requests_working_on"][$_SESSION['resources_data']["requests_working_pos"] + $d]["request_id"]]) || (!$_SESSION['resources_data']["skip_closed_requests"]))) $inc_possible = TRUE; } if ($inc_possible) { echo Button::create('<< ' . _('Zurück'), 'dec_request'); } echo Button::createCancel(_('Abbrechen'), 'cancel_edit_request'); echo Button::create(_('Löschen'), 'delete_request'); if ((($reqObj->getResourceId()) || (sizeof($matching_rooms)) || (sizeof($clipped_rooms)) || (sizeof($grouped_rooms))) && ((is_array($_SESSION['resources_data']["requests_working_on"][$_SESSION['resources_data']["requests_working_pos"]]["groups"])) || ($_SESSION['resources_data']["requests_working_on"][$_SESSION['resources_data']["requests_working_pos"]]["assign_objects"]))) { echo Button::createAccept(_('Speichern'), 'save_state'); echo Button::createCancel(_('Ablehnen'), 'suppose_decline_request'); } // can we inc? if ($_SESSION['resources_data']["requests_working_pos"] < sizeof($_SESSION['resources_data']["requests_working_on"])-1) { $i = 1; if ($_SESSION['resources_data']["skip_closed_requests"]) while ((!$_SESSION['resources_data']["requests_open"][$_SESSION['resources_data']["requests_working_on"][$_SESSION['resources_data']["requests_working_pos"] + $i]["request_id"]]) && ($_SESSION['resources_data']["requests_working_pos"] + $i < sizeof($_SESSION['resources_data']["requests_working_on"])-1)) $i++; if ((sizeof($_SESSION['resources_data']["requests_open"]) > 1) && (($_SESSION['resources_data']["requests_open"][$_SESSION['resources_data']["requests_working_on"][$_SESSION['resources_data']["requests_working_pos"] + $i]["request_id"]]) || (!$_SESSION['resources_data']["skip_closed_requests"]))) $dec_possible = TRUE; } if ($dec_possible) { echo Button::create(_('Weiter') . ' >>', 'inc_request'); } ?> </div> <? if (sizeof($_SESSION['resources_data']["requests_open"]) > 1) printf ("<br><font size=\"-1\">" . _("<b>%s</b> von <b>%s</b> Anfragen in der Bearbeitung wurden noch nicht aufgelöst.") . "</font>", sizeof($_SESSION['resources_data']["requests_open"]), sizeof($_SESSION['resources_data']["requests_working_on"])); printf ("<br><font size=\"-1\">" . _("Aktueller Request: ")."<b>%s</b></font>", $_SESSION['resources_data']["requests_working_pos"]+1); ?> </td> </tr> </table> </form> <br><br> <? }
<label class="file-upload"> Lebenslauf (Datei) <input type="file"> </label> </fieldset> <fieldset> <label> Einrichtung <input type="text" class="size-l"> </label> <label> Lebenslauf <textarea class="size-l"></textarea> </label> </fieldset> <footer> <?php echo \Studip\Button::createAccept(_("Speichern")); ?> <?php echo \Studip\Button::createCancel(_("Abbrechen")); ?> </footer> </form>
/** * check db-integrity * * checks if there are broken links in the database * @access public * @return boolean successful */ function checkIntegrity() { global $ELEARNING_INTERFACE_MODULES, $messages; $db = DBManager::get(); foreach ($ELEARNING_INTERFACE_MODULES as $cms_type => $data) { $cmsystems[$cms_type] = array(); } $config = Config::get(); foreach ($config->getFields('global', null, 'ELEARNING_INTERFACE_') as $key) { $parts = explode("_", $key); $cmsystems[$parts[2]]["config"]++; } $rs = $db->query("SELECT external_user_system_type, COUNT(*) as c FROM auth_extern GROUP BY external_user_system_type"); while ($row = $rs->fetch()) { $cmsystems[$row["external_user_system_type"]]["accounts"] = $row['c']; } $rs = $db->query("SELECT system_type, COUNT(*) FROM object_contentmodules GROUP BY system_type"); while ($row = $rs->fetch()) { $cmsystems[$row["system_type"]]["modules"] = $row['c']; } if (Request::submitted('delete')) { $messages["info"] .= "<form method=\"POST\" action=\"" . URLHelper::getLink() . "\">"; $messages["info"] .= CSRFProtection::tokenTag(); $messages["info"] .= "<table>"; $messages["info"] .= "<tr><td> </td></tr>"; $messages["info"] .= "<tr><td>" . sprintf(_("Durch das Löschen der Daten zum System mit dem Index \"%s\" werden %s Konfigurationseinträge und Verknüpfungen von Stud.IP-Veranstaltungen und -User-Accounts unwiederbringlich aus der Stud.IP-Datenbank entfernt. Wollen Sie diese Daten jetzt löschen?"), Request::quoted('delete_cms'), $cmsystems[Request::quoted('delete_cms')]["accounts"] + $cmsystems[Request::quoted('delete_cms')]["modules"] + $cmsystems[Request::quoted('delete_cms')]["config"]) . "</td></tr>"; $messages["info"] .= "<tr><td align=\"center\"><input type=\"hidden\" name=\"delete_cms\" value=\"" . Request::quoted('delete_cms') . "\">"; $messages["info"] .= '<div class="button-group">' . Button::create(_('Alle löschen'), 'confirm_delete') . Button::createCancel(_('Abbrechen'), 'abbruch') . '<div></td></tr>'; $messages["info"] .= "<tr><td align=\"center\"></td></tr>"; $messages["info"] .= "</table>"; $messages["info"] .= "</form>"; } if (Request::submitted('confirm_delete')) { unset($cmsystems[Request::quoted('delete_cms')]); // deleteCMSData(Request::quoted('delete_cms')); $messages["info"] .= _("Daten wurden gelöscht."); } foreach ($cmsystems as $cms_type => $data) { if ($ELEARNING_INTERFACE_MODULES[$cms_type]) { $output .= ELearningUtils::getCMSHeader($ELEARNING_INTERFACE_MODULES[$cms_type]["name"]); $output .= "<table>"; $output .= "<tr><td colspan=\"2\"> </td></tr>"; if (ELearningUtils::getConfigValue("ACTIVE", $cms_type)) { $output .= "<tr><td>" . Icon::create('checkbox-checked', 'clickable')->asImg(['class' => 'text-top']) . "</td><td><b>" . sprintf(_("Die Schnittstelle zum System %s ist aktiv."), $ELEARNING_INTERFACE_MODULES[$cms_type]["name"]) . "</b></td></tr>"; $output .= "<tr><td colspan=\"2\"> </td></tr>"; } elseif ($data["config"] < 1) { $output .= "<tr><td>" . Icon::create('checkbox-unchecked', 'clickable')->asImg(['class' => 'text-top']) . "</td><td><i>" . sprintf(_("Die Schnittstelle für das System %s wurde noch nicht eingerichtet."), $ELEARNING_INTERFACE_MODULES[$cms_type]["name"]) . "</i></td></tr>"; } elseif ($data["config"] < 1) { $output .= "<tr><td>" . Icon::create('checkbox-unchecked', 'clickable')->asImg(['class' => 'text-top']) . "</td><td><i>" . sprintf(_("Die Schnittstelle wurde noch nicht aktiviert."), $ELEARNING_INTERFACE_MODULES[$cms_type]["name"]) . "</i></td></tr>"; } if ($data["accounts"]) { $output .= "<tr><td colspan=\"2\">" . sprintf(_("%s Stud.IP-User-Accounts sind mit Accounts im System %s verknüpft."), $data["accounts"], $ELEARNING_INTERFACE_MODULES[$cms_type]["name"]) . "</td></tr>"; } if ($data["modules"]) { $output .= "<tr><td colspan=\"2\">" . sprintf(_("%s Objekte sind Stud.IP-Veranstaltungen oder -Einrichtungen zugeordnet."), $data["modules"]) . "</td></tr>"; } if ($data["config"]) { $output .= "<tr><td colspan=\"2\">" . sprintf(_("%s Einträge in der config-Tabelle der Stud.IP-Datenbank."), $data["config"]) . "</td></tr>"; } $output .= "<tr><td colspan=\"2\"> </td></tr>"; $output .= "</table>"; $output .= ELearningUtils::getCMSFooter($ELEARNING_INTERFACE_MODULES[$cms_type]["logo_file"] ? "<img src=\"" . $ELEARNING_INTERFACE_MODULES[$cms_type]["logo_file"] . "\" border=\"0\">" : $cms_type); } else { $output .= ELearningUtils::getCMSHeader("<font color=FF0000> Unbekanntes System: " . $cms_type . "</font>"); $output .= "<form method=\"POST\" action=\"" . URLHelper::getLink() . "\">"; $output .= CSRFProtection::tokenTag(); $output .= "<table>"; $output .= "<tr><td colspan=\"2\"> </td></tr>"; $output .= "<tr><td>" . Icon::create('decline', 'attention')->asImg(['class' => 'text-top']) . "</td><td><i>" . sprintf(_("Für das System mit dem Index \"%s\" existieren keine Voreinstellungen in den Konfigurationsdateien mehr."), $cms_type) . "</i></td></tr>"; $output .= "<tr><td colspan=\"2\"> </td></tr>"; $output .= "<tr><td colspan=\"2\"><b>" . _("In der Stud.IP-Datenbank sind noch folgende Informationen zu diesem System gespeichert:") . "</b></td></tr>"; if ($data["accounts"]) { $output .= "<tr><td colspan=\"2\">" . sprintf(_("%s Stud.IP-User-Accounts sind mit externen Accounts mit dem Index \"%s\" verknüpft."), $data["accounts"], $cms_type) . "</td></tr>"; } if ($data["modules"]) { $output .= "<tr><td colspan=\"2\">" . sprintf(_("%s Objekte sind Stud.IP-Veranstaltungen oder -Einrichtungen zugeordnet."), $data["modules"]) . "</td></tr>"; } if ($data["config"]) { $output .= "<tr><td colspan=\"2\">" . sprintf(_("%s Einträge in der config-Tabelle der Stud.IP-Datenbank."), $data["config"]) . "</td></tr>"; } $output .= "<tr><td colspan=\"2\"> </td></tr>"; $output .= "<tr><td align=\"center\" colspan=\"2\"><input type=\"hidden\" name=\"delete_cms\" value=\"" . $cms_type . "\">" . Button::create(_('Löschen'), 'delete') . "</td></tr>"; $output .= "<tr><td colspan=\"2\"> </td></tr>"; $output .= "</table>"; $output .= "</form>"; $output .= ELearningUtils::getCMSFooter(''); } $output .= "<br>"; } return $output; }
function testCreateCancel() { $this->assertEquals('<button type="submit" class="cancel button" name="cancel">Abbrechen</button>', '' . Button::createCancel()); }
use Studip\Button, Studip\LinkButton; ?> <div id="conditionfields"> <?php echo $this->render_partial('userfilter/field/configure.php', array('is_first' => true)); ?> </div> <br/> <a href="#" onclick="return STUDIP.UserFilter.addConditionField('conditionfields', '<?php echo $controller->url_for('userfilter/field/configure'); ?> ')"> <?php echo Icon::create('add', 'clickable')->asImg(16, ["alt" => _('Auswahlfeld hinzufügen')]); ?> <?php $text = _('Auswahlfeld hinzufügen'); echo $text; ?> </a> <br/><br/> <div class="submit_wrapper" data-dialog-button> <?php echo Button::createAccept(_('Speichern'), 'submit', array('onclick' => "STUDIP.UserFilter.addCondition('" . $containerId . "', '" . $controller->url_for('userfilter/filter/add') . "');")); ?> <?php echo Button::createCancel(_('Abbrechen')); ?> </div>
echo Button::create(_('Tour neu beginnen'), 'tour_reset', array('id' => 'tour_reset', 'style' => 'display:none')); ?> </td> <td width="120" style="text-align: center"> <?php echo Button::create(_('Weiter'), 'tour_next', array('id' => 'tour_next')); ?> <?php echo Button::create(_('Tour fortsetzen'), 'tour_proceed', array('id' => 'tour_proceed', 'style' => 'display:none')); ?> </td> <td width="120" style="text-align: center"> <?php echo Button::createCancel(_('Abbrechen'), 'tour_cancel', array('id' => 'tour_cancel', 'style' => 'display:none')); ?> <?php echo Button::createCancel(_('Beenden'), 'tour_end', array('id' => 'tour_end')); ?> </td> </tr> </table> </div> </div> <div id="tour_tip" class="tour_tip" style="display: none"> <div id="tour_tip_title"></div> <div id="tour_tip_content"></div> </div> <div id="tour_tip_interactive" class="tour_tip" style="display: none"> <div id="tour_tip_title"></div> <div id="tour_tip_content"></div> </div>
/** * Displays the body of a folder including the description, changeform, subfolder and files * */ function display_folder_body($folder_id, $open, $change, $move, $upload, $refresh=FALSE, $filelink="", $anchor_id, $level = 0) { global $_fullname_sql, $SessionSeminar, $SemUserStatus, $SessSemName, $user, $perm, $rechte, $countfolder; $db = DBManager::get(); //Einbinden einer Klasse, die Informationen über den ganzen Baum enthält $folder_tree = TreeAbstract::GetInstance('StudipDocumentTree', array('range_id' => $SessionSeminar)); //Hole alle Informationen, die es über $folder_id gibt $query = "SELECT ". $_fullname_sql['full'] ." AS fullname , username, folder_id, a.range_id, a.user_id, name, a.description, a.mkdate, a.chdate FROM folder a LEFT JOIN auth_user_md5 USING (user_id) LEFT JOIN user_info USING (user_id) WHERE a.folder_id = '$folder_id' ORDER BY a.name, a.chdate"; $result = $db->query($query)->fetch(); $document_count = doc_count($folder_id); $super_folder = $folder_tree->getNextSuperFolder($folder_id); $is_issue_folder = ((count($folder_tree->getParents($folder_id)) > 1) && IssueDB::isIssue($result["range_id"])); if ($is_issue_folder) { $dates_for_issue = IssueDB::getDatesforIssue($result['range_id']); } print "<table cellpadding=0 border=0 cellspacing=0 width=\"100%\">"; //Ausgabe der Optionen zu dem Ordner mit Beschreibung, Knöpfen und PiPaPo print "<tr>"; if ((($document_count > 0) || ($folder_tree->hasKids($folder_id))) && ($folder_tree->isReadable($folder_id))) { print "<td style=\"background-image: url(".Assets::image_path('datatree_grau.gif') . "); background-repeat: repeat-y;\">"; print Assets::img('datatree_grau.gif'); print "</td>"; } else { print "<td class=\"printcontent\"> </td>"; } print "<td width=100% class=\"printcontent\" style=\"font-align: center\">"; $content=''; if ($super_folder){ $content .= Icon::create('lock-locked', 'inactive')->asImg(['class' => 'texttop']) . ' ' . sprintf(_("Dieser Ordner ist nicht zugänglich, da der übergeordnete Ordner \"%s\" nicht lesbar oder nicht sichtbar ist!"), htmlReady($folder_tree->getValue($super_folder,'name'))) . '<hr>'; } if ($folder_tree->isExerciseFolder($folder_id)){ $content .= Icon::create('edit', 'inactive')->asImg(['class' => 'texttop']) . ' ' . _("Dieser Ordner ist ein Hausaufgabenordner. Es können nur Dateien eingestellt werden.") . (!$rechte ? _("Sie selbst haben folgende Dateien in diesen Ordner eingestellt:") . '<br><b>' . htmlReady(join('; ', get_user_documents_in_folder($folder_id, $GLOBALS['user']->id))).'</b>' : '') . '<hr>'; } if ($is_issue_folder) { $dates = array(); foreach ($dates_for_issue as $date) { $dates[] = strftime("%x", $date['date']); } $content .= _("Dieser Ordner ist ein themenbezogener Dateiordner."); if(count($dates)){ $content .= ' ' ._("Folgende Termine sind diesem Thema zugeordnet:") . '<br><b>' . htmlReady(join('; ', $dates)).'</b>'; } $content .= '<hr>'; } $is_group_folder = $folder_tree->isGroupFolder($folder_id); if ($is_group_folder){ $content .= sprintf( _('Dieser Ordner gehört der Gruppe <b>%s</b>. Nur Mitglieder dieser Gruppe können diesen Ordner sehen.' . ' Dieser Ordner kann nicht verschoben oder kopiert werden.'), htmlReady(GetStatusgruppeName($result["range_id"])) ) . '<hr>'; } //Contentbereich erstellen if ($change == $folder_id) { //Aenderungsmodus, zweiter Teil $content .= '<textarea name="change_description"' . ' style="width:98%" class="add_toolbar wysiwyg"' . ' aria-label="Beschreibung des Ordners eingeben"' . ' rows="3">' . formatReady($result["description"]) . '</textarea>'; if($rechte){ $content .= '<div>'; if ($folder_tree->permissions_activated){ $content.= "\n<label><input style=\"vertical-align:middle\" type=\"checkbox\" value=\"1\" ".($folder_tree->isReadable($folder_id) ? "CHECKED" : "" ) . " name=\"perm_read\"> "; $content.= '<b>r</b> - ' . _("Lesen (Dateien können heruntergeladen werden)"); $content.= "</label>\n<br><label><input style=\"vertical-align:middle\" type=\"checkbox\" value=\"1\" ".($folder_tree->isWritable($folder_id) ? "CHECKED" : "" ) . " name=\"perm_write\"> "; $content.= '<b>w</b> - ' . _("Schreiben (Dateien können heraufgeladen werden)"); $content.= "</label>\n<br><label><input style=\"vertical-align:middle\" type=\"checkbox\" value=\"1\" ".($folder_tree->isExecutable($folder_id) ? "CHECKED" : "" ) . " name=\"perm_exec\"> "; $content.= '<b>x</b> - ' . _("Sichtbarkeit (Ordner wird angezeigt)") . '</label>'; } if($level == 0 && $folder_tree->entity_type == 'sem'){ $content .= "\n<br><label><input style=\"vertical-align:middle\" type=\"checkbox\" value=\"1\" ".($folder_tree->checkCreateFolder($folder_id) ? "CHECKED" : "" ) . " name=\"perm_folder\"> "; $content .= '<b>f</b> - ' . _("Ordner erstellen (Alle Nutzer können Ordner erstellen)") . '</label>'; } $content .= '</div>'; } $content .= '<div class="button-group">'; $content .= Button::createAccept(_("Übernehmen")); $content .= Button::createCancel(_("Abbrechen"), "cancel"); $content .= '</div>'; $content.= "\n<input type=\"hidden\" name=\"open\" value=\"".$folder_id."_sc_\">"; $content.="\n<input type=\"hidden\" name=\"type\" value=\"1\">"; } elseif ($result["description"]) $content .= formatReady($result["description"]); else $content .= _("Keine Beschreibung vorhanden"); if ($move == $result["folder_id"]){ $content .= "<br>" . sprintf(_("Dieser Ordner wurde zum Verschieben / Kopieren markiert. Bitte wählen Sie das Einfügen-Symbol %s, um ihn in den gewünschten Ordner zu verschieben."), Icon::create('arr_2right', 'sort', ['title' => _("Klicken Sie auf dieses Symbol, um diesen Ordner in einen anderen Ordner einzufügen.")]))->asImg(); if ($rechte) { $content .= _("Wenn Sie den Ordner in eine andere Veranstaltung verschieben / kopieren möchten, wählen Sie die gewünschte Veranstaltung oben auf der Seite aus."); } } if ($upload == $folder_id) { $content .= form($refresh); } // Abfrage ob Dateilink eingeleitet if ($filelink == $folder_id) { $content .= link_item($folder_id); } $content.= "\n"; $edit=''; //Editbereich erstellen if (($change != $folder_id) && ($upload != $folder_id) && ($filelink != $folder_id)) { if ($perm->have_studip_perm('autor', $SessionSeminar) && $folder_tree->isWritable($folder_id, $user->id)) # Knopf: hochladen $edit .= LinkButton::create(_("Hochladen"), URLHelper::getURL("?open=".$folder_id."_u_&rand=".rand()."#anker")); # Knopf: Datei verlinken if ($rechte) { $edit .= LinkButton::create(_("Datei verlinken"), URLHelper::getURL("?open=".$folder_id."_l_&rand=".rand()."#anker")); } # Knopf: Ordner als ZIP if ($document_count && $folder_tree->isReadable($folder_id, $user->id)) { $edit .= LinkButton::create(_("Ordner als ZIP"), URLHelper::getURL("?folderzip=".$folder_id)); } if ($perm->have_studip_perm('autor', $SessionSeminar) && $folder_tree->checkCreateFolder($folder_id, $user->id)) { if ($folder_tree->isWritable($folder_id, $user->id) && !$folder_tree->isExerciseFolder($folder_id, $user->id)) { # Knopf: neuer Ordner $edit .= LinkButton::create(_("Neuer Ordner"), URLHelper::getURL("?open=".$folder_id."_n_#anker")); # Knopf: ZIP hochladen if ($rechte && get_config('ZIP_UPLOAD_ENABLE')) { $edit .= LinkButton::create(_("ZIP hochladen"), URLHelper::getURL("?open=".$folder_id."_z_&rand=".rand()."#anker")); } } # Knopf: löschen if ($rechte || ( !$document_count && $level !=0 && ( $folder_tree->isWritable($folder_id, $user->id) && $folder_tree->isWritable($folder_tree->getValue($folder_id, 'parent_id'), $user->id) && !$folder_tree->isExerciseFolder($folder_id, $user->id) ) ) ) { $edit .= LinkButton::create(_("Löschen"), URLHelper::getURL("?open=".$folder_id."_d_")); } # Knopf: bearbeiten if ($folder_tree->isWritable($folder_id, $user->id) && !$folder_tree->isExerciseFolder($folder_id, $user->id)) { $edit .= LinkButton::create(_("Bearbeiten"), URLHelper::getURL("?open=".$folder_id."_c_#anker")); } # verschieben if ( ($rechte && $result['range_id'] != $SessSemName[1]) || ( $level !=0 && ( $folder_tree->isWritable($folder_id, $user->id) && $folder_tree->isWritable($folder_tree->getValue($folder_id, 'parent_id'), $user->id) && !$folder_tree->isExerciseFolder($folder_id, $user->id) ) ) ) { if (!$is_issue_folder && !$is_group_folder) { $edit.= LinkButton::create(_("Verschieben"), URLHelper::getURL("?open=".$folder_id."_m_#anker")); } } # Knopf: kopieren if ($rechte || ( $level !=0 && !$folder_tree->isExerciseFolder($folder_id, $user->id) ) ) { if (!$is_issue_folder && !$is_group_folder) { $edit.= LinkButton::create(_("Kopieren"), URLHelper::getURL("?open=".$folder_id."_co_#anker")); } } } # Knopf: sortieren if ($rechte) { $edit .= LinkButton::create(_("Sortieren"), URLHelper::getURL("?open=".$folder_id."_az_#anker")); } } if (!$edit) $edit = ' '; print "<table width=\"100%\" cellpadding=0 cellspacing=0 border=0><tr>"; //Ordner-Content ausgeben printcontent ("99%", TRUE, $content, $edit); print "</tr></table>"; print "</td></tr>"; //Ein paar Überprüfungen, was eigentlich angezeigt werden soll: Dateien und Unterordner $folders_kids = $folder_tree->getKids($folder_id); $folders_kids = $db->query("SELECT folder_id " . "FROM folder " . "WHERE range_id = ".$db->quote($folder_id)." " . "ORDER BY priority ASC, name ASC")->fetchAll(); $hasrealkids = $folder_tree->hasKids($folder_id); if ( ((count($folders_kids)) || ($document_count > 0)) && (($rechte) || ($folder_tree->isExecutable($folder_id, $user->id))) ) { print "<tr>"; //Der Navigationsast nach unten print "<td class=\"tree-elbow-line\">" . Assets::img("datatree_3.gif") . "</td>"; //Mehrere Zeilen, die wiederum Dateien mit eventuellen Optionen sind. print "<td colspan=3>"; print "<div class=\"folder_container".($rechte ? " sortable" : "")."\" id=\"folder_subfolders_".$folder_id."\">"; //Unterordner darstellen: is_array($folders_kids) || $folders_kids = array(); $subfolders = array(); foreach ($folders_kids as $key => $unterordner) { if (($folder_tree->isExecutable($unterordner['folder_id'], $user->id)) || ($rechte)) { //bin ich Dozent oder Tutor? $subfolders[] = $unterordner['folder_id']; } } if ($subfolders) { foreach ($subfolders as $key => $subfolder) { $folder_pos = ((count($subfolders) > 1) ? (($key == 0) ? "top" : (($key == count($subfolders)-1) ? "bottom" : "middle")) : "alone"); display_folder($subfolder, $open, $change, $move, $upload, $refresh, $filelink, $anchor_id, $folder_pos, false); } } print "</div>"; //Dateien darstellen: $countfolder++; print "<div class=\"folder_container".($rechte ? " sortable" : "")."\" id=\"folder_".$folder_id."\">"; if (($rechte) || ($folder_tree->isReadable($folder_id, $user->id))) { $query = "SELECT a.*,". $_fullname_sql['full'] ." AS fullname, " . "username, " . "IF(IFNULL(a.name,'')='', a.filename,a.name) AS t_name " . "FROM dokumente a " . "LEFT JOIN auth_user_md5 USING (user_id) " . "LEFT JOIN user_info USING (user_id) " . "WHERE range_id = '".$result["folder_id"]."' " . "ORDER BY a.priority ASC, t_name ASC, a.chdate DESC "; $result2 = $db->query($query)->fetchAll(); foreach ($result2 as $key => $datei) { $file_pos = ((count($result2) > 1) ? (($key == 0) ? "top" : (($key == count($result2)-1) ? "bottom" : "middle")) : "alone"); display_file_line($datei, $folder_id, $open, $change, $move, $upload, FALSE, $refresh, $filelink, $anchor_id, $file_pos); } } print "</div>"; print "</td></tr>"; } print "</table>"; //Ende der zweiten Tabelle }
<?php echo $this->render_partial('course/enrolment/_priocourses.php'); ?> <div data-dialog-button> <?php echo Studip\Button::createAccept(_("Speichern"), 'claim', array('data-dialog' => '')); ?> </div> <? else : ?> <? if (!$already_claimed) :?> <?php echo \Studip\Button::createAccept(_("Zur Platzverteilung anmelden"), 'claim', array('data-dialog' => '')); ?> <? else : ?> <?php echo \Studip\Button::createCancel(_("Von der Platzverteilung abmelden"), 'claim', array('data-dialog' => '')); ?> <? endif ?> <input type="hidden" name="courseset_claimed" value="<?php echo $already_claimed ? '0' : '1'; ?> " > <div> (<?php echo sprintf(_("max. Teilnehmeranzahl: %s / Anzahl der Anmeldungen: %s"), $priocourses->admission_turnout, $num_claiming); ?> ) </div> <? endif ?> <div data-dialog-button> <?php
echo '</div></td><td class="blank" width="60%" style="white-space: nowrap;">'; echo "\n" . Icon::create('arr_2right', 'sort', ['title' => _('In diese Einrichtung verschieben / kopieren')])->asInput(array('name'=>'move_to_inst','id'=>'move_to_inst_arrow','class'=>'middle')); echo "\n" . '<select id="inst_move_id" name="inst_move_id[]" style="width:60%">'; foreach ($my_inst as $id => $name){ echo "\n" . '<option value="'.$id.'">' . htmlReady(my_substr($name,0,70)) . '</option>'; } echo "\n" . '</select>'; if ($config['FILESYSTEM_MULTICOPY_ENABLE'] && $open_cmd != 'm') { echo "\n<a href=\"\" onClick=\"STUDIP.MultiSelect.create('#inst_move_id', 'Institute'); $(this).hide(); return false\">".Icon::create('add', 'clickable', ['title' => _("Mehrere Einrichtungen auswählen"), "class" => "middle"])->asImg()."</a>"; } echo "\n</td>"; echo "\n" . '<td class="blank">'; echo Button::create($button_name, "move_to_inst"); echo "\n</td></tr><tr>"; echo "\n" . '<td class="blank" align="center" colspan="3" width="100%" >'; echo Button::createCancel(_("Verschieben / Kopieren abbrechen"), 'cancel'); echo "\n" . '</td></tr></form>'; } } elseif($folder_system_data['mode']){ echo "\n" . '<td class="blank" align="center" colspan="3" width="100%" >'; echo "\n" . '<span style="margin:25px;font-weight:bold;">'; echo "\n" . ($folder_system_data["mode"] == 'move' ? _("Verschiebemodus") : _("Kopiermodus")) . "</span>"; echo LinkButton::create(_("Abbrechen"), URLHelper::getURL('?cmd=tree')); echo "\n" . '</td></tr>'; } print "<tr><td class=\"blank\" colspan=\"3\" width=\"100%\">"; //when changing, uploading or show all (for download selector), create a form
/** * Test... * @access public * @param object Evaluation $eval The evaluation * @param string $number * @param string $state * @param string $open * @param boolean $returnRow */ function createEvalRow($eval, $number, $state, $open, $returnRow = false) { /* initialize variables -------- */ $evalID = $eval->getObjectID(); $numberOfVotes = EvaluationDB::getNumberOfVotes($evalID); $no_permissons = EvaluationObjectDB::getEvalUserRangesWithNoPermission($eval); if ($eval->getAuthor() != $user->id && $no_permissons) { $no_buttons = 1; } $style = $number % 2 ? "table_row_odd" : ($number == 0 ? "content_body" : "table_row_even"); $startDate = $eval->getStartdate() == NULL ? " " : date("d.m.Y", $eval->getStartdate()); $stopDate = $eval->getRealStopdate() == NULL ? " " : date("d.m.Y", $eval->getRealStopdate()); $link = "?rangeID=" . $_SESSION["rangeID"]; if ($open == NO) { $link .= '&openID=' . $evalID . '#open'; } $titleLink = new HTML('a'); $titleLink->addAttr('href', URLHelper::getLink($link)); $arrowLink = new HTML('a'); $arrowLink->addAttr('href', URLHelper::getLink($link)); $titleLink->addContent($eval->getTitle() ? $eval->getTitle() : ' '); switch ($state) { case "public_template": $arrowLink = " "; $titleLink = $eval->getTitle() ? $eval->getTitle() : " "; $content[0] = $eval->getFullname() ? $eval->getFullname() : " "; $content[1] = $eval->getChangedate() == NULL ? " " : date("d.m.Y", $eval->getChangedate()); $button = LinkButton::create(_('Vorschau'), URLHelper::getURL('show_evaluation.php?evalID=' . $evalID . '&isPreview=' . YES), array('title' => _('Vorschau dieser öffentlichen Evaluationsvorlage.'), 'onClick' => 'openEval(\'' . $evalID . '\'); return false;')); $div = new HTML("div"); $div->addHTMLContent($button); $content[4] = $div; $content[2] = $eval->isAnonymous() ? EvalCommon::createImage(EVAL_PIC_YES, _("ja")) : EvalCommon::createImage(EVAL_PIC_NO, _("nein")); $copyButton = new HTMLempty("input"); $copyButton->addAttr("style", "vertical-align:middle;"); $copyButton->addAttr("type", "image"); $copyButton->addAttr("name", "copy_public_template_button"); $copyButton->addAttr("src", Icon::create('arr_2down', 'sort')->asImagePath()); $copyButton->addAttr("border", "0"); $copyButton->addAttr("alt", _("Kopieren")); $copyButton->addAttr("title", _("Diese öffentliche Evaluationsvorlagen zu den eigenen Evaluationsvorlagen kopieren")); $content[5] = $copyButton; break; case "user_template": $arrowLink->addContent(EvalCommon::createImage($open ? EVAL_PIC_ARROW_TEMPLATE_OPEN : EVAL_PIC_ARROW_TEMPLATE, _("Aufklappen"))); $isShared = $eval->isShared() ? YES : NO; $shareButton = new HTMLempty("input"); $shareButton->addAttr("style", "vertical-align:middle;"); $shareButton->addAttr("type", "image"); $shareButton->addAttr("name", "share_template_button"); $shareButton->addAttr("src", $isShared ? EVAL_PIC_SHARED : EVAL_PIC_NOTSHARED); $shareButton->addAttr("border", "0"); $shareButton->addAttr("alt", $isShared ? _("als öffentliche Evaluationsvorlage Freigeben") : _("Freigabe entziehen")); $shareButton->addAttr("title", $isShared ? _("Die Freigabe für diese Evaluationsvorlage entziehen") : _("Diese Evaluationsvorlage öffentlich freigeben")); $content[0] = $shareButton; $content[3] = Button::create(_('Kopie erstellen'), 'copy_own_template_button', array('title' => _('Evaluationsvorlage kopieren'))); $content[4] = LinkButton::create(_('Bearbeiten'), URLHelper::getURL("admin_evaluation.php?page=edit&evalID=" . $evalID), array('title' => _('Evaluation bearbeiten'))); $content[5] = Button::create(_('Löschen'), 'delete_request_button', array('title' => _('Evaluation löschen'))); break; case EVAL_STATE_NEW: $arrowLink->addContent(EvalCommon::createImage($open ? EVAL_PIC_ARROW_NEW_OPEN : EVAL_PIC_ARROW_NEW, _("Aufklappen"))); $content[0] = $eval->getFullname() ? $eval->getFullname() : " "; $content[1] = $startDate; if (!$no_buttons) { $content[2] = Button::create(_('Start'), 'start_button', array('title' => _('Evaluation starten'))); $content[4] = LinkButton::create(_('Bearbeiten'), URLHelper::getURL("admin_evaluation.php?page=edit&evalID=" . $evalID), array('title' => _('Evaluation bearbeiten'))); $content[5] = Button::create(_('Löschen'), 'delete_request_button', array('title' => _('Evaluation löschen'))); } break; case EVAL_STATE_ACTIVE: $arrowLink->addContent(EvalCommon::createImage($open ? EVAL_PIC_ARROW_RUNNING_OPEN : EVAL_PIC_ARROW_RUNNING, _("Aufklappen"))); $content[0] = $eval->getFullname() ? $eval->getFullname() : " "; $content[1] = $stopDate; if (!$no_buttons) { $content[2] = Button::createCancel(_('Stop'), 'stop_button', array('title' => _('Evaluation stoppen'))); // Kann hier noch optimiert werden, da hasVoted () immer einen DB-Aufruf startet $content[3] = $eval->hasVoted() ? Button::create(_('Zurücksetzen'), 'restart_request_button', array('title' => _('Evaluation zurücksetzen'))) : Button::create(_('Zurücksetzen'), 'restart_confirmed_button', array('title' => _('Evaluation zurücksetzen'))); $content[4] = Button::create(_('Export'), 'export_request_button', array('title' => _('Evaluation exportieren'))); $content[5] = Button::create(_('Löschen'), 'delete_request_button', array('title' => _('Evaluation löschen'))); //$content[6] = EvalCommon::createSubmitButton ("auswertung", _("Auswertung"), "export_gfx_request_button"); $content[6] = LinkButton::create(_('Auswertung'), URLHelper::getURL("eval_summary.php?eval_id=" . $evalID), array('title' => _('Auswertung'))); } break; case EVAL_STATE_STOPPED: $arrowLink->addContent(EvalCommon::createImage($open ? EVAL_PIC_ARROW_STOPPED_OPEN : EVAL_PIC_ARROW_STOPPED, _("Aufklappen"))); $content[0] = $eval->getFullname() ? $eval->getFullname() : " "; //$content[1] = $eval->isVisible() ? "yes" : "no"; if (!$no_buttons) { $content[2] = Button::create(_('Fortsetzen'), 'continue_button', array('title' => _('Evaluation fortsetzen'))); $content[3] = $eval->hasVoted() ? Button::create(_('Zurücksetzen'), 'restart_request_button', array('title' => _('Evaluation zurücksetzen'))) : Button::create(_('Zurücksetzen'), 'restart_confirmed_button', array('title' => _('Evaluation zurücksetzen'))); $content[4] = Button::create(_('Export'), 'export_request_button', array('title' => _('Evaluation exportieren'))); $content[5] = Button::create(_('Löschen'), 'delete_request_button', array('title' => _('Evaluation löschen'))); //$content[6] = EvalCommon::createSubmitButton ("auswertung", _("Auswertung"), "export_gfx_request_button"); $content[6] = LinkButton::create(_('Auswertung'), URLHelper::getURL("eval_summary.php?eval_id=" . $evalID), array('title' => _('Auswertung'))); } break; } $form = new HTML("form"); $form->addAttr("action", URLHelper::getLink("?rangeID=" . $_SESSION["rangeID"])); $form->addAttr("method", "post"); $form->addAttr("style", "display:inline;"); $form->addHTMLContent(CSRFProtection::tokenTag()); $input = new HTMLEmpty("input"); $input->addAttr("type", "hidden"); $input->addAttr("name", "evalID"); $input->addAttr("value", $evalID); $form->addContent($input); $table = new HTML("table"); $table->addAttr("border", "0"); $table->addAttr("align", "center"); $table->addAttr("cellspacing", "0"); $table->addAttr("cellpadding", "2"); $table->addAttr("width", "100%"); $tr = new HTML("tr"); $tr->addAttr("align", "center"); /* opening arrow */ $td = new HTML("td"); $td->addAttr("class", $style); $td->addAttr("width", "10"); if ($open) { $anchor = new HTML("a"); $anchor->addAttr("name", "open"); $anchor->addContent($arrowLink); $td->addContent($anchor); } else { $td->addHTMLContent($arrowLink); } if ($state != "public_template") { $tr->addContent($td); } else { $td = new HTML("td"); $td->addAttr("class", $style); $td->addAttr("width", "1"); // create a blindgif $blingif = new HTMLempty("img"); $blingif->addAttr("border", "0"); $blingif->addAttr("valign", "middle"); $blingif->addAttr("width", "1"); $blingif->addAttr("height", "24"); $blingif->addAttr("alt", " "); $blingif->addAttr("src", PICTURES . "/forumleer.gif"); $td->addContent($blingif); $tr->addContent($td); } /* preview icon */ $td = new HTML("td"); $td->addAttr("width", $state == "public_template" ? "20" : "1%"); $td->addAttr("class", $style); $td->addAttr("align", "left"); $icon = EvalCommon::createImage(EVAL_PIC_PREVIEW, _("Vorschau")); $td->addContent(EvalCommon::createEvalShowLink($evalID, $icon, YES)); $tr->addContent($td); /* title */ $td = new HTML("td"); $td->addAttr("class", $style); $td->addAttr("align", "left"); if ($returnRow) { $td->addAttr("width", "100%"); } $td->addContent($titleLink); if ($state == EVAL_STATE_ACTIVE || $state == EVAL_STATE_STOPPED) { $td->addContent("|"); $font = new HTML("font"); $font->addAttr("color", "#005500"); $font->addContent($numberOfVotes); $td->addContent($font); $td->addContent("|"); } $tr->addContent($td); /* the content fields */ //for( $i = 0; $i < 6; $i++ ) { for ($i = 0; $i < 7; $i++) { $td = new HTML("td"); $td->addAttr("width", "96"); $td->addAttr("class", $style); $td->addAttr("nowrap", "nowrap"); $td->addAttr("style", "white-space:nowrap"); #if (is_object($content[$i])) $td->addContent($content[$i] ? $content[$i] : " "); #$td->addHTMLContent ( ($content[$i] ? $content[$i] : "-") ); # filter out not needed datacells if ($state == "user_template" && ($i == 1 || $i == 2)) { //nothing } elseif ($state == "public_template" && ($i == 3 || $i == 4)) { //nothing } else { $tr->addContent($td); } } // end: for $table->addContent($tr); if ($returnRow) { $form->addContent($tr); } else { $form->addContent($table); } return $form; }
echo Icon::create('trash', 'clickable')->asImg(); ?> </a> </td> </tr> <? endforeach; ?> </tbody> <tfoot> <tr> <td> <input class="middle" type="checkbox" data-proxyfor=":checkbox[name^=smiley_id]" data-activates="button[name=bulk-delete]" name="check_all" title="<?php echo _('Alle Benutzer auswählen'); ?> "> </td> <td colspan="<?php echo $favorites_enabled ? 7 : 6; ?> "> <?php echo Studip\Button::createCancel(_('Markierte löschen'), 'bulk-delete'); ?> </td> </tr> </tfoot> <? endif; ?> </table> </form>
<form method="post" data-dialog="size=auto;reload-on-close" action="<?php echo $controller->link_for('news/rss_config/' . $range_id); ?> "> <div style="text-align:center"> <? if (!$rss_id) :?> <?php echo \Studip\Button::createAccept(_("RSS Export aktivieren"), 'rss_on'); ?> <? else : ?> <?php echo \Studip\Button::createCancel(_("RSS Export deaktivieren"), 'rss_off'); ?> <? endif ?> </div> </form>
</ul> </div> <? endif ?> <div style="margin-top: 0.5em; text-align: left;"> <input id="documents" name="documents" value="1" checked type="checkbox"> <label style="padding-left:0.5em" for="documents"><?php echo _("Dokumente löschen?"); ?> </label> </div> <div style="margin-top: 0.5em; text-align: left;"> <input id="mail" name="mail" value="1" checked type="checkbox"> <label style="padding-left:0.5em" for="mail"><?php echo _("Emailbenachrichtigung verschicken?"); ?> </label> </div> <div class="buttons"> <?php echo Button::createAccept(_('JA!'), 'delete', array('title' => _('Benutzer löschen'))); ?> <span style="margin-left: 1em;"> <?php echo Button::createCancel(_('NEIN!'), 'back'); ?> </span> </div> </form> </div> </div> </div>
<?php echo CSRFProtection::tokenTag(); ?> <?php echo $this->render_partial('shared/question2-parameters.php', array('parameters' => $approvParams)); ?> <?php echo Button::createAccept(_('JA!'), 'yes', array('style' => 'float: left')); ?> </form> <form action="<?php echo $approvalLink; ?> " method="post"> <?php echo CSRFProtection::tokenTag(); ?> <?php echo $this->render_partial('shared/question2-parameters.php', array('parameters' => $disapproveParams)); ?> <?php echo Button::createCancel(_('NEIN!'), 'no', array('style' => 'float: left')); ?> </form> </div> </div> </div> </div>
/** * Display yes/no dialog to confirm complete WikiPage deletion. * * @param string WikiPage name * **/ function showDeleteAllDialog($keyword) { global $perm, $SessSemName; if (!$perm->have_studip_perm("tutor", $SessSemName[1])) { throw new AccessDeniedException(_('Sie haben keine Berechtigung, Seiten zu löschen.')); } $msg= sprintf(_("Wollen Sie die Seite %s wirklich vollständig - mit allen Versionen - löschen?"), "<b>".htmlReady($keyword)."</b>") . "<br>\n"; if ($keyword=="WikiWikiWeb") { $msg .= "<p>" . _("Sie sind im Begriff die Startseite zu löschen, die dann durch einen leeren Text ersetzt wird. Damit wären auch alle anderen Seiten nicht mehr direkt erreichbar.") . "</p>"; } else { $numbacklinks=count(getBacklinks($keyword)); if ($numbacklinks == 0) { $msg .= _("Auf diese Seite verweist keine andere Seite.").'<br>'; } else if ($numbacklinks == 1) { $msg .= _("Auf diese Seite verweist 1 andere Seite.").'<br>'; } else { $msg .= sprintf(_("Auf diese Seite verweisen %s andere Seiten."), count(getBacklinks($keyword))); } } //TODO: modaler dialog benutzen $msg.="<a href=\"".URLHelper::getLink("?cmd=really_delete_all&keyword=".urlencode($keyword))."\">" .Button::createAccept(_('Ja!')) . "</a> \n"; $lnk = "?keyword=".urlencode($keyword); // what to do when delete is aborted if (!$islatest) $lnk .= "&version=$version"; $msg.="<a href=\"".URLHelper::getLink($lnk)."\">" . Button::createCancel(_('NEIN!')) . "</a>\n"; PageLayout::postMessage(MessageBox::info($msg)); }