/** * @param int $id */ public function actionPersonBearbeiten($id) { $this->top_menu = "personen"; $ich = $this->aktuelleBenutzerIn(); if (!$ich) { $this->errorMessageAndDie(403, "Du musst eingeloggt sein, um deinen Eintrag zu bearbeiten."); } /** @var StadtraetIn $person */ $person = StadtraetIn::model()->findByPk($id); if ($person->benutzerIn_id != $ich->id) { $this->errorMessageAndDie(403, "Du kannst nur deinen eigenen Eintrag bearbeiten."); } if (AntiXSS::isTokenSet("save")) { $person->web = $_REQUEST["web"]; $person->twitter = trim($_REQUEST["twitter"], "\t\n\r@"); $person->facebook = preg_replace("/^https?:\\/\\/(www\\.)?facebook\\.com\\//siu", "", $_REQUEST["facebook"]); $person->email = $_REQUEST["email"]; $person->beschreibung = trim($_REQUEST["beschreibung"]); $person->quellen = "Selbstauskunft"; $x = explode(".", $_REQUEST["geburtstag"]); if (count($x) == 3) { $person->geburtstag = $x[2] . "-" . $x[1] . "-" . $x[0]; } else { if ($x[0] > 1900) { $person->geburtstag = $x[0] . "-00:00"; } else { $person->geburtstag = null; } } $person->save(); $this->msg_ok = "Gespeichert"; } $this->render("person-bearbeiten", ["person" => $person]); }
/** * @param string $veranstaltungsreihe_id * @param string $veranstaltung_id * @param int $id * @throws CException * @throws Exception */ public function actionUpdate($veranstaltungsreihe_id = "", $veranstaltung_id, $id) { $this->loadVeranstaltung($veranstaltungsreihe_id, $veranstaltung_id); if (!$this->veranstaltung->isAdminCurUser()) { $this->redirect($this->createUrl("/veranstaltung/login", array("back" => yii::app()->getRequest()->requestUri))); } /** @var $model Antrag */ $model = Antrag::model()->with("antragUnterstuetzerInnen", "antragUnterstuetzerInnen.person")->findByPk($id, '', array("order" => "`person`.`name")); if (is_null($model)) { Yii::app()->user->setFlash("error", "Der angegebene Antrag wurde nicht gefunden."); $this->redirect($this->createUrl("admin/antraege")); } if ($model->veranstaltung_id != $this->veranstaltung->id) { return; } $this->performAjaxValidation($model, 'antrag-form'); $messages = array(); if (AntiXSS::isTokenSet("antrag_freischalten")) { $newvar = AntiXSS::getTokenVal("antrag_freischalten"); $model->adminFreischalten($newvar); Yii::app()->user->setFlash("success", "Der Antrag wurde freigeschaltet."); } if (isset($_POST['Antrag'])) { $fixed_fields = $fixed_fields_pre = array(); if (!$model->kannTextUeberarbeitenAdmin()) { $fixed_fields = array("text_unveraenderlich", "text", "begruendung"); } foreach ($fixed_fields as $field) { $fixed_fields_pre[$field] = $model->{$field}; } if (!in_array($_POST['Antrag']['status'], $model->getMoeglicheStati())) { throw new Exception("Status-Übergang ungültig"); } $revision_name = $model->revision_name; $model->setAttributes($_POST['Antrag'], false); if ($model->revision_name != $revision_name && $revision_name != "") { foreach ($this->veranstaltung->antraege as $ant) { if ($ant->id != $model->id && $ant->revision_name == $model->revision_name && $ant->status != Antrag::$STATUS_GELOESCHT) { // Zurücksetzen + Warnung $messages[] = "Das vergebene Antragskürzel \"" . $model->revision_name . "\" wird bereits von einem anderen Antrag verwendet."; $model->revision_name = $revision_name; } } } foreach ($fixed_fields_pre as $field => $val) { $model->{$field} = $val; } Yii::import('ext.datetimepicker.EDateTimePicker'); $model->datum_einreichung = EDateTimePicker::parseInput($_POST["Antrag"], "datum_einreichung"); $model->datum_beschluss = EDateTimePicker::parseInput($_POST["Antrag"], "datum_beschluss"); $relatedData = array(); if ($model->saveWithRelated($relatedData)) { $model->veranstaltung->resetLineCache(); UnterstuetzerInnenAdminWidget::saveUnterstuetzerInnenWidget($model, $messages, "AntragUnterstuetzerInnen", "antrag_id", $id); $model = Antrag::model()->with("antragUnterstuetzerInnen", "antragUnterstuetzerInnen.person")->findByPk($id, '', array("order" => "`person`.`name")); } } $this->render('update', array('model' => $model, 'messages' => $messages)); }
/** * @param int $id */ public function actionAnzeigen($id) { $this->performLoginActions(); /** @var Antrag $antrag */ $antrag = Antrag::model()->findByPk($id); if (!$antrag) { $this->render('/index/error', ["code" => 404, "message" => "Der Antrag wurde nicht gefunden"]); return; } if (AntiXSS::isTokenSet("abonnieren")) { $this->requireLogin($this->createUrl("antraege/anzeigen", ["id" => $id])); $antrag->getVorgang()->abonnieren($this->aktuelleBenutzerIn()); } if (AntiXSS::isTokenSet("deabonnieren")) { $this->requireLogin($this->createUrl("antraege/anzeigen", ["id" => $id])); $antrag->getVorgang()->deabonnieren($this->aktuelleBenutzerIn()); } if (AntiXSS::isTokenSet("tag_add") && $this->aktuelleBenutzerIn()) { $tags = explode(",", $_REQUEST["tags_neu"]); foreach ($tags as $tag_name) { if (mb_strlen(trim($tag_name)) > 0) { try { $tag_name = trim($tag_name); $tag = Tag::model()->findByAttributes(["name" => $tag_name]); if (!$tag) { $tag = new Tag(); $tag->name = $tag_name; $tag->angelegt_benutzerIn_id = $this->aktuelleBenutzerIn()->id; $tag->angelegt_datum = new CDbExpression('NOW()'); $tag->reviewed = $this->binContentAdmin() ? 1 : 0; $tag->save(); if (count($tag->getErrors()) > 0) { $this->render('/index/error', ["code" => 500, "message" => "Ein Fehler beim Anlegen des Schlagworts trat auf"]); } } Yii::app()->db->createCommand()->insert("antraege_tags", ["antrag_id" => $antrag->id, "tag_id" => $tag->id, "zugeordnet_datum" => date("Y-m-d H:i:s"), "zugeordnet_benutzerIn_id" => $this->aktuelleBenutzerIn()->id]); } catch (Exception $e) { // Sind hauptsächlich doppelte Einträge -> ignorieren } } } } $this->render("anzeige", ["antrag" => $antrag, "tag_mode" => isset($_REQUEST["tag_mode"]) && $_REQUEST["tag_mode"] == "1"]); }
public function actionReferat($referat_url) { /** @var Referat $ref */ $ref = Referat::model()->findByAttributes(["urlpart" => $referat_url]); if (!$ref) { die("Nicht gefunden"); } $this->top_menu = "themen"; $von = date("Y-m-d H:i:s", time() - 3600 * 24 * 30); $bis = date("Y-m-d H:i:s", time()); $antraege_referat = Antrag::model()->neueste_stadtratsantragsdokumente_referat($ref->id, $von, $bis)->findAll(); $text = Text::model()->findByAttributes(["typ" => 2, "titel" => $ref->name]); $my_url = Yii::app()->createUrl("/themen/referat/" . $referat_url); if ($this->binContentAdmin() && AntiXSS::isTokenSet("save")) { if (strlen($_REQUEST["text"]) == 0) { die("Kein Text angegeben"); } $text->text = $_REQUEST["text"]; $text->save(); $this->msg_ok = "Gespeichert."; } $this->render("referat", ["referat" => $ref, "antraege_referat" => $antraege_referat, "text" => $text, "my_url" => $my_url]); }
public function actionPasswort() { $this->layout = '//layouts/column2'; $this->performLogin($this->createUrl("veranstaltung/passwort")); $user = Yii::app()->getUser(); if ($user->isGuest) { $this->redirect($this->createUrl("infos/login", array("back" => yii::app()->getRequest()->requestUri))); } /** @var PErson $ich */ $ich = Person::model()->findByAttributes(array("auth" => $user->id)); $msg_ok = $msg_err = ""; $correct_person = null; $aktuelle_einstellungen = null; if (AntiXSS::isTokenSet("speichern")) { if ($_REQUEST["pw_neu"] != $_REQUEST["pw_neu2"]) { $msg_err = "Die beiden Passwörter stimmen nicht überein."; } elseif (strlen(trim($_REQUEST["pw_neu"])) < 5) { $msg_err = "Das Passwort muss mindestens 5 Zeichen lang sein."; } elseif (!$ich->validate_password($_REQUEST["pw_alt"])) { $msg_err = "Das bisherige Passwort stimmt nicht."; } else { $ich->pwd_enc = Person::create_hash($_REQUEST["pw_neu"]); $ich->save(); $msg_ok = "Das neue Passwort wurde gespeichert."; } } $this->render('passwort', array("ich" => $ich, "msg_err" => $msg_err, "msg_ok" => $msg_ok)); }
<td><input name="facebook[<?php echo $str->id; ?> ]" title="Facebook" value="<?php echo CHtml::encode($str->facebook); ?> " width="60" maxlength="200"></td> <td><input name="abgeordnetenwatch[<?php echo $str->id; ?> ]" title="Twitter" value="<?php echo CHtml::encode($str->abgeordnetenwatch); ?> " width="60" maxlength="200"></td> </tr> <?php } } ?> </tbody> </table> <div style="position: fixed; bottom: 0; left: 45%;"> <button type="submit" class="btn btn-primary" name="<?php echo AntiXSS::createToken("save"); ?> ">Speichern</button> </div> </form> </section>
<textarea id="glossary_new_text" name="text" cols="80" rows="10"><?php echo CHtml::encode($eintrag->text); ?> </textarea> </div> <a href="<?php echo CHtml::encode($this->createUrl("infos/glossarBearbeiten", ["id" => $eintrag->id, AntiXSS::createToken("del") => "1"])); ?> " id="eintrag_del_caller" style="color: red; float: right;"> <span class="glyphicon glyphicon-minus"></span> Eintrag löschen </a> <div style="text-align: center;"> <button type="submit" class="btn btn-primary" name="<?php echo AntiXSS::createToken("speichern"); ?> ">Speichern</button> </div> </form> <script src="/js/ckeditor/ckeditor.js"></script> <script> $(function () { $("#eintrag_del_caller").click(function(ev) { if (!confirm("Diesen Eintrag wirklich löschen?")) ev.preventDefault(); }); ckeditor_init($("#glossary_new_text")); }); </script>
<?php /* @var $this AntraegeController */ /* @var $model Antrag */ /* @var $messages array */ $this->breadcrumbs = array(Yii::t('app', 'Administration') => $this->createUrl('/admin/index'), $model->label(2) => array('index'), Yii::t('app', 'Update')); $this->menu = array(array('label' => $model->label() . ' ' . Yii::t('app', 'View'), 'url' => $this->createUrl("antrag/anzeige", array("veranstaltung_id" => $model->veranstaltung->url_verzeichnis, "antrag_id" => $model->id)), "icon" => "eye-open"), array('label' => $model->label() . ' ' . Yii::t('app', 'Delete'), 'url' => '#', 'linkOptions' => array('submit' => array('delete', 'id' => $model->id), 'confirm' => 'Diesen Antrag wirklich löschen?'), "icon" => "remove")); ?> <h1><?php echo Yii::t('app', 'Update') . ': ' . GxHtml::encode($model->label()) . ' ' . GxHtml::encode(GxHtml::valueEx($model)); ?> </h1> <br> <?php if ($model->status == Antrag::$STATUS_EINGEREICHT_UNGEPRUEFT) { $form = $this->beginWidget('GxActiveForm'); $new_rev = $model->revision_name == "" ? $model->veranstaltung->naechsteAntragRevNr($model->typ) : $model->revision_name; echo '<input type="hidden" name="' . AntiXSS::createToken("antrag_freischalten") . '" value="' . CHtml::encode($new_rev) . '">'; echo "<div style='text-align: center;'>"; $this->widget('bootstrap.widgets.TbButton', array('buttonType' => 'submit', 'type' => 'primary', 'icon' => 'ok white', 'label' => 'Freischalten als ' . $new_rev)); echo "</div>"; $this->endWidget(); echo "<br>"; } if (count($messages) > 0) { echo "<strong>" . GxHtml::encode(implode("<br>", $messages)) . "</strong><br><br>"; } $this->renderPartial('_form', array('model' => $model));
?> </div> <div> <label style="padding-top: 10px;">Mögliche Schlagworte:</label> <div style="display: inline-block;"> <?php $tags = $model->getSortedTags(); if (count($tags) > 0) { echo '<ul class="taglist">'; foreach ($tags as $tag) { echo '<li><input type="hidden" name="TagSort[]" value="' . $tag->id . '">'; echo '<span class="sortable" style="cursor: move;">' . CHtml::encode($tag->name) . '</span> (' . count($tag->antraege) . ')'; if (count($tag->antraege) == 0) { echo ' <a href="' . CHtml::encode($this->createUrl("admin/veranstaltungen/update_extended", array(AntiXSS::createToken("del_tag") => $tag->id))) . '" onClick="return confirm(\'Wirklich löschen?\');" style="color: red; font-size: 0.8em;">löschen</a>'; } echo '</li>'; } echo '</ul>'; } else { echo '<em>Keine</em> '; } ?> <a href="#" class="tag_neu_opener">+ Neues hinzufügen</a> <input class="tag_neu_input" name="tag_neu" placeholder="Neues Schlagwort" value="" style="display: none;"> <br><br> <label style="width: auto;"> <input type="hidden" name="VeranstaltungsEinstellungen[einstellungsfelder][]" value="antrag_hat_mehrere_tags"> <input type="checkbox" name="VeranstaltungsEinstellungen[antrag_hat_mehrere_tags]"
case IUnterstuetzerInnen::$ROLLE_MAG: $this->widget('bootstrap.widgets.TbButton', array('buttonType' => 'submit', 'label' => 'Zurückziehen', 'icon' => 'icon-remove', 'htmlOptions' => array('name' => AntiXSS::createToken('dochnicht')))); break; case IUnterstuetzerInnen::$ROLLE_MAG_NICHT: $this->widget('bootstrap.widgets.TbButton', array('buttonType' => 'submit', 'label' => 'Zurückziehen', 'icon' => 'icon-remove', 'htmlOptions' => array('name' => AntiXSS::createToken('dochnicht')))); break; default: ?> <div style="display: inline-block; width: 49%; text-align: center;"> <?php $this->widget('bootstrap.widgets.TbButton', array('buttonType' => 'submit', 'type' => 'success', 'label' => 'Zustimmen', 'icon' => 'icon-thumbs-up', 'htmlOptions' => array('name' => AntiXSS::createToken('mag')))); ?> </div> <div style="display: inline-block; width: 49%; text-align: center;"> <?php $this->widget('bootstrap.widgets.TbButton', array('buttonType' => 'submit', 'type' => 'danger', 'label' => 'Ablehnen', 'icon' => 'icon-thumbs-down', 'htmlOptions' => array('name' => AntiXSS::createToken('magnicht')))); ?> </div> <?php } echo "</div>"; $this->endWidget(); } else { /* Yii::app()->user->setFlash('warning', 'Um diesen Änderungsantrag unterstützen oder ablehnen zu können, musst du ' . CHtml::link("dich einzuloggen", $this->createUrl("veranstaltung/login")) . '.'); $this->widget('bootstrap.widgets.TbAlert', array( 'block'=> true, 'fade' => true, )); */ if ($kann_nicht_unterstuetzen_msg != "") {
alert("Im E-Mail-Text muss der Code %EMAIL% vorkommen."); ev.preventDefault(); } if (text.indexOf("%PASSWORT%") == -1) { alert("Im E-Mail-Text muss der Code %PASSWORT% vorkommen."); ev.preventDefault(); } if (text.indexOf("%LINK%") == -1) { alert("Im E-Mail-Text muss der Code %LINK% vorkommen."); ev.preventDefault(); } var emails = $("#email_adressen").val().split("\n"), namen = $("#namen").val().split("\n"); if (emails.length == 1 && emails[0] == "") { alert("Es wurden keine E-Mail-Adressen angegeben."); ev.preventDefault(); } if (emails.length != namen.length) { alert("Es wurden nicht genauso viele Namen wie E-Mail-Adressen angegeben. Bitte achte darauf, dass für jede Zeile bei den E-Mail-Adressen exakt ein Name angegeben wird!"); ev.preventDefault(); } }); }) </script> <?php $this->widget('bootstrap.widgets.TbButton', array('buttonType' => 'submit', 'type' => 'primary', 'icon' => 'ok white', 'label' => 'Anlegen', 'htmlOptions' => array('name' => AntiXSS::createToken('eintragen')))); ?> </form>
} if (count($bens) > 0) { echo implode(", ", $bens); } else { echo "<em>keine</em>"; } echo "</li>\n"; } ?> </ul> <?php } ?> <div style="margin-top: 50px; text-align: center;"> <?php /** @var CActiveForm $form */ $form = $this->beginWidget('CActiveForm'); ?> <button class="btn btn-primary" type="submit" name="<?php echo AntiXSS::createToken("abmelden"); ?> ">Alle Benachrichtigungen deaktivieren </button> <?php $this->endWidget(); ?> </div> </div>
/** * @param string $id * @param string $code */ public function actionNeuesPasswortSetzen($id = "", $code = "") { $my_url = $this->createUrl("benachrichtigungen/NeuesPasswortSetzen", ["id" => $id, "code" => $code]); if (AntiXSS::isTokenSet("reset_password")) { /** @var null|BenutzerIn $benutzerIn */ $benutzerIn = BenutzerIn::model()->findByPk($id); if (!$benutzerIn) { $this->msg_err = "BenutzerIn nicht gefunden"; $this->render('reset_password_form', ["current_url" => $this->createUrl("benachrichtigungen/PasswortZuruecksetzen")]); return; } if ($_REQUEST["password"] != $_REQUEST["password2"]) { $this->msg_err = "Die beiden Passwörter stimmen nicht überein"; $this->render('reset_password_set_form', ["current_url" => $my_url]); return; } $ret = $benutzerIn->resetPasswordDo($code, $_REQUEST["password"]); if ($ret === true) { $this->render('reset_password_done'); } else { $this->msg_err = $ret; $this->render('reset_password_set_form', ["current_url" => $my_url]); } } else { $this->render('reset_password_set_form', ["current_url" => $my_url]); } }
/** * @param string $veranstaltungsreihe_id * @param string $veranstaltung_id * @param int $adoptInitiators */ public function actionNeu($veranstaltungsreihe_id = "", $veranstaltung_id, $adoptInitiators = 0) { $this->layout = '//layouts/column2'; /** @var Veranstaltung $veranstaltung */ $this->veranstaltung = $veranstaltung = $this->loadVeranstaltung($veranstaltungsreihe_id, $veranstaltung_id); $this->testeWartungsmodus(); $model = new Antrag(); $model->status = Antrag::$STATUS_EINGEREICHT_UNGEPRUEFT; $model->typ = isset($_REQUEST["typ"]) ? IntVal($_REQUEST["typ"]) : Antrag::$TYP_ANTRAG; $model->veranstaltung_id = $veranstaltung->id; $model->veranstaltung = $veranstaltung; $model->text_unveraenderlich = $this->veranstaltung->getEinstellungen()->admins_duerfen_aendern ? 0 : 1; if (!$veranstaltung->getPolicyAntraege()->checkCurUserHeuristically()) { Yii::app()->user->setFlash("error", "Es kann kein Antrag angelegt werden."); $this->redirect($this->createUrl("veranstaltung/index")); } $unterstuetzerInnen = array(); $tags_pre = array(); if (AntiXSS::isTokenSet("antragneu")) { $model->attributes = $_REQUEST["Antrag"]; if ($veranstaltung->getEinstellungen()->antrag_begruendungen) { if ($this->veranstaltung->getEinstellungen()->begruendung_in_html && isset($_REQUEST["Antrag"]["begruendung_html"])) { $model->begruendung_html = 1; $model->begruendung = HtmlBBcodeUtils::html_normalize($_REQUEST["Antrag"]["begruendung"]); } else { $model->begruendung_html = 0; $model->begruendung = HtmlBBcodeUtils::bbcode_normalize($_REQUEST["Antrag"]["begruendung"]); } } $model->text = HtmlBBcodeUtils::bbcode_normalize($model->text); $model->datum_einreichung = new CDbExpression('NOW()'); $model->status = Antrag::$STATUS_UNBESTAETIGT; $model->revision_name = ""; if ($model->text2) { $model->text2 = HtmlBBcodeUtils::bbcode_normalize($model->text2); } $goon = true; if (!$this->veranstaltung->getPolicyAntraege()->checkAntragSubmit()) { Yii::app()->user->setFlash("error", "Keine Berechtigung zum Anlegen von Anträgen."); $goon = false; } if ($goon) { if ($model->save()) { $this->veranstaltung->getPolicyAntraege()->submitAntragsstellerInView_Antrag($model); /* $next_status = $_REQUEST["Antrag"]["status"] */ if ($this->veranstaltung->getEinstellungen()->antrag_hat_mehrere_tags) { if (isset($_REQUEST["tags"])) { foreach ($_REQUEST["tags"] as $tag_id) { foreach ($this->veranstaltung->tags as $tag) { if ($tag->id == $tag_id) { Yii::app()->db->createCommand()->insert("antrag_tags", array("antrag_id" => $model->id, "tag_id" => $tag_id)); } } } } } else { if (isset($_REQUEST["tag"])) { foreach ($this->veranstaltung->tags as $tag) { if ($tag->id == $_REQUEST["tag"]) { Yii::app()->db->createCommand()->insert("antrag_tags", array("antrag_id" => $model->id, "tag_id" => IntVal($_REQUEST["tag"]))); } } } } $next_status = Antrag::$STATUS_EINGEREICHT_UNGEPRUEFT; $this->redirect($this->createUrl("antrag/neuConfirm", array("antrag_id" => $model->id, "next_status" => $next_status, "from_mode" => "neu"))); } else { foreach ($model->getErrors() as $key => $val) { foreach ($val as $val2) { Yii::app()->user->setFlash("error", "Antrag konnte nicht angelegt werden: {$key}: " . $val2); } } } } } $hiddens = array(); $js_protection = Yii::app()->user->isGuest; if ($js_protection) { $hiddens["form_token"] = AntiXSS::createToken("antragneu"); } else { $hiddens[AntiXSS::createToken("antragneu")] = "1"; } if (Yii::app()->user->isGuest || $this->veranstaltung->isAdminCurUser()) { $antragstellerIn = new Person(); $antragstellerIn->typ = Person::$TYP_PERSON; } else { $antragstellerIn = Person::model()->findByAttributes(array("auth" => Yii::app()->user->id)); } if ($adoptInitiators > 0 && $this->veranstaltung->isAdminCurUser()) { $templateMotion = $this->veranstaltung->getMotion($adoptInitiators); if ($templateMotion) { $model->typ = $templateMotion->typ; foreach ($templateMotion->antragUnterstuetzerInnen as $unt) { if ($unt->rolle == AntragUnterstuetzerInnen::$ROLLE_INITIATORIN) { $antragstellerIn = $unt->person; } if ($unt->rolle == AntragUnterstuetzerInnen::$ROLLE_UNTERSTUETZERIN) { $unterstuetzerInnen[] = $unt->person; } } } } $force_type = null; if (isset($_REQUEST["typ"])) { if (isset(Antrag::$TYPEN[$_REQUEST["typ"]]) && !in_array($_REQUEST["typ"], $this->veranstaltung->getEinstellungen()->antrags_typen_deaktiviert)) { $force_type = IntVal($_REQUEST["typ"]); } } $this->render('bearbeiten_form', array("mode" => "neu", "model" => $model, "force_type" => $force_type, "antragstellerIn" => $antragstellerIn, "unterstuetzerInnen" => $unterstuetzerInnen, "veranstaltung" => $veranstaltung, "hiddens" => $hiddens, "tags_pre" => $tags_pre, "js_protection" => $js_protection, "login_warnung" => false, "sprache" => $model->veranstaltung->getSprache())); }
<h3>Neuen Eintrag anlegen</h3> <div class="form-group"> <label for="glossary_new_title">Begriff</label> <input type="text" name="titel" class="form-control" id="glossary_new_title" placeholder="Zu erklärender Begriff" required> </div> <div class="form-group"> <label for="glossary_new_text">Erkärung</label> <textarea id="glossary_new_text" name="text" cols="80" rows="10"></textarea> </div> <div style="text-align: center;"> <button type="submit" class="btn btn-primary" name="<?php echo AntiXSS::createToken("anlegen"); ?> ">Anlegen</button> </div> </form> <script src="/js/ckeditor/ckeditor.js"></script> <script> $(function () { $("#glossar_anlegen_caller").click(function (ev) { ev.preventDefault(); $(this).hide(); $("#glossar_anlegen_form").show(); ckeditor_init($("#glossary_new_text")); $("#glossary_new_title").focus();
?> <section class="col-md-4 col-md-offset-4"> <div class="well"> <form class="form-horizontal form-signin" method="POST" action="<?php echo CHtml::encode($current_url); ?> "> <fieldset> <legend class="form_row">Neues Passwort setzen</legend> <div class="form_row"> <label for="password" class="control-label sr-only">Passwort</label> <input id="password" name="password" type="password" class="form-control" placeholder="Passwort" required autofocus> </div> <div class="form_row"> <label for="password2" class="control-label sr-only">Passwort bestätigen</label> <input id="password2" name="password2" type="password" class="form-control" placeholder="Passwort bestätigen" required> </div> <button class="btn btn-lg btn-primary btn-block" type="submit" name="<?php echo AntiXSS::createToken("reset_password"); ?> ">Setzen</button> </fieldset> </form> </div> </section>
/** * @param int $id * @throws Exception */ public function actionGlossarBearbeiten($id) { if (!$this->binContentAdmin()) { throw new Exception("Kein Zugriff"); } $this->top_menu = "so_funktioniert"; /** @var Text $eintrag */ $eintrag = Text::model()->findByAttributes(["id" => $id, "typ" => Text::$TYP_GLOSSAR]); if (!$eintrag) { throw new Exception("Nicht gefunden"); } if (AntiXSS::isTokenSet("speichern")) { $eintrag->titel = $_REQUEST["titel"]; $eintrag->text = $_REQUEST["text"]; $eintrag->edit_datum = new CDbExpression("NOW()"); $eintrag->edit_benutzerIn_id = $this->aktuelleBenutzerIn()->id; $eintrag->save(); $this->redirect($this->createUrl("infos/glossar")); } if (AntiXSS::isTokenSet("del")) { $eintrag->delete(); $this->redirect($this->createUrl("infos/glossar")); } $this->render('glossar_bearbeiten', ["eintrag" => $eintrag]); }
public function actionSuche($code = "") { if (AntiXSS::isTokenSet("search_form")) { $krits = new RISSucheKrits(); if (trim($_REQUEST["volltext"]) != "") { $krits->addVolltextsucheKrit($_REQUEST["volltext"]); } if (trim($_REQUEST["antrag_nr"]) != "") { $krits->addAntragNrKrit($_REQUEST["antrag_nr"]); } if ($_REQUEST["typ"] != "") { $krits->addAntragTypKrit($_REQUEST["typ"]); } if ($_REQUEST["referat"] > 0) { $krits->addReferatKrit($_REQUEST["referat"]); } /* * @TODO: Setzt voraus: offizielles Datum eines Dokuments ermitteln $datum_von = $datum_bis = null; if ($_REQUEST["datum_von"] != "") { $x = explode(".", $_REQUEST["datum_von"]); if (count($x) == 3) $datum_von = $x[2] . "-" . $x[1] . "-" . $x[0] . " 00:00:00"; } if ($_REQUEST["datum_bis"] != "") { $x = explode(".", $_REQUEST["datum_bis"]); if (count($x) == 3) $datum_bis = $x[2] . "-" . $x[1] . "-" . $x[0] . " 23:59:59"; } if ($datum_von || $datum_bis) $krits->addDatumKrit($datum_von, $datum_bis); */ } elseif (isset($_REQUEST["suchbegriff"]) && $_REQUEST["suchbegriff"] != "") { $suchbegriff = $_REQUEST["suchbegriff"]; if ($_SERVER["REQUEST_METHOD"] == 'POST') { $this->redirect($this->createUrl("index/suche", ["suchbegriff" => $suchbegriff])); } $this->suche_pre = $suchbegriff; $krits = new RISSucheKrits(); $krits->addVolltextsucheKrit($suchbegriff); } else { $krits = RISSucheKrits::createFromUrl($_REQUEST); } $this->load_leaflet_css = true; if ($krits->getKritsCount() > 0) { $benachrichtigungen_optionen = $this->sucheBenachrichtigungenAnmelden($krits, $code); $solr = RISSolrHelper::getSolrClient("ris"); $select = $solr->createSelect(); $krits->addKritsToSolr($select); $select->setRows(50); $select->addSort('sort_datum', $select::SORT_DESC); /** @var Solarium\QueryType\Select\Query\Component\Highlighting\Highlighting $hl */ $hl = $select->getHighlighting(); $hl->setFields('text, text_ocr, antrag_betreff'); $hl->setSimplePrefix('<b>'); $hl->setSimplePostfix('</b>'); $facetSet = $select->getFacetSet(); $facetSet->createFacetField('antrag_typ')->setField('antrag_typ'); $facetSet->createFacetField('antrag_wahlperiode')->setField('antrag_wahlperiode'); try { $ergebnisse = $solr->select($select); if ($krits->isGeoKrit()) { $geodata = $this->getJSGeodata($krits, $ergebnisse); } else { $geodata = null; } $this->render("suchergebnisse", array_merge(["krits" => $krits, "ergebnisse" => $ergebnisse, "geodata" => $geodata], $benachrichtigungen_optionen)); } catch (Exception $e) { $this->render('error', ["code" => 500, "message" => "Ein Fehler bei der Suche ist aufgetreten"]); Yii::app()->end(500); } } else { $this->render("suche"); } }
public function actionUpdate_extended($veranstaltungsreihe_id = "", $veranstaltung_id) { $this->loadVeranstaltung($veranstaltungsreihe_id, $veranstaltung_id); $model = $this->veranstaltung; if (!$model->isAdminCurUser()) { $this->redirect($this->createUrl("/veranstaltung/login", array("back" => yii::app()->getRequest()->requestUri))); } if (is_null($model)) { Yii::app()->user->setFlash("error", "Die angegebene Veranstaltungen wurde nicht gefunden."); $this->redirect($this->createUrl("admin/veranstaltungen")); } if (AntiXSS::isTokenSet("del_tag")) { foreach ($model->tags as $tag) { if ($tag->id == AntiXSS::getTokenVal("del_tag")) { $tag->delete(); $model->refresh(); } } } if (isset($_POST['Veranstaltung'])) { $model->setAttributes($_POST['Veranstaltung']); $einstellungen = $model->getEinstellungen(); $einstellungen->saveForm($_REQUEST["VeranstaltungsEinstellungen"]); $model->setEinstellungen($einstellungen); $relatedData = array(); if ($model->saveWithRelated($relatedData)) { $reihen_einstellungen = $model->veranstaltungsreihe->getEinstellungen(); $reihen_einstellungen->antrag_neu_nur_namespaced_accounts = isset($_REQUEST["antrag_neu_nur_namespaced_accounts"]); $reihen_einstellungen->antrag_neu_nur_wurzelwerk = isset($_REQUEST["antrag_neu_nur_wurzelwerk"]); $model->veranstaltungsreihe->setEinstellungen($reihen_einstellungen); $model->veranstaltungsreihe->save(); if (!$model->getEinstellungen()->admins_duerfen_aendern) { foreach ($model->antraege as $ant) { $ant->text_unveraenderlich = 1; $ant->save(false); foreach ($ant->aenderungsantraege as $ae) { $ae->text_unveraenderlich = 1; $ae->save(false); } } } if (isset($_REQUEST["tag_neu"]) && trim($_REQUEST["tag_neu"]) != "") { $max_id = 0; $duplicate = false; foreach ($model->tags as $tag) { if ($tag->position > $max_id) { $max_id = $tag->position; } if (mb_strtolower($tag->name) == mb_strtolower($_REQUEST["tag_neu"])) { $duplicate = true; } } if (!$duplicate) { Yii::app()->db->createCommand()->insert("tags", array("veranstaltung_id" => $model->id, "name" => $_REQUEST["tag_neu"], "position" => $max_id + 1)); } } if (isset($_REQUEST["TagSort"]) && is_array($_REQUEST["TagSort"])) { foreach ($_REQUEST["TagSort"] as $i => $tagId) { $tag = Tag::model()->findByPk($tagId); if ($tag->veranstaltung_id == $this->veranstaltung->id) { $tag->position = $i; $tag->save(); } } } $model->resetLineCache(); $this->redirect(array('update_extended')); } } $this->render('update_extended', array('model' => $model)); }
<div id="benachrichtigung_hinweis_text"> <div class="nichts"> <strong>Hinweis:</strong><br> Du kannst dich bei neuen Dokumenten mit Bezug zu einem bestimmten Ort per E-Mail benachrichtigen lassen.<br> Klicke dazu auf einen Ort und stelle dann den relevanten Radius ein.<br> <br> </div> <div class="infos" style="display: none;"> <strong>Ausgewählt:</strong> <span class="radius_m"></span> Meter um "<span class="zentrum_ort"></span>" (ungefähr)<br> <br>Willst du per E-Mail benachrichtigt werden, wenn neue Dokumente mit diesem Ortsbezug erscheinen? </div> <form method="POST" action="<?php echo CHtml::encode($this->createUrl("benachrichtigungen/index")); ?> "> <input type="hidden" name="geo_lng" value=""> <input type="hidden" name="geo_lat" value=""> <input type="hidden" name="geo_radius" id="geo_radius" value=""> <input type="hidden" name="krit_str" value=""> <div> <button class="btn btn-primary ben_add_geo" disabled name="<?php echo AntiXSS::createToken("ben_add_geo"); ?> " type="submit">Benachrichtigen!</button> </div> </form> </div> </div> </div>
<div class="form_row"> <label for="password2" class="control-label sr-only">Passwort bestätigen</label> <input id="password2" name="password2" type="password" class="form-control" placeholder="Passwort bestätigen"> </div> <div id="bestaetigungscode_holder" style="display: none;"> Es wurde bereits eine E-Mail mit dem Bestätigungscode an diese Adresse geschickt.<br> <label for="bestaetigungscode"><strong>Bitte gib den Bestätigungscode an:</strong></label> <div> <input type="text" name="bestaetigungscode" id="bestaetigungscode" value="" style="width: 280px;"> </div> <br><br><br> </div> <div style="text-align: right; font-style: italic; margin-top: -5px; font-size: 11px; margin-bottom: 7px;"> <?php echo CHtml::link("Passwort vergessen?", $this->createUrl("benachrichtigungen/PasswortZuruecksetzen")); ?> </div> <button class="btn btn-lg btn-primary btn-block" id="login" type="submit" name="<?php echo AntiXSS::createToken("login_anlegen"); ?> "><span class="login">Login</span><span class="anlegen">Anlegen</span></button> </fieldset> </form> </div> </section>
<th><label for="neu_vorlage">Einstellungen übernehmen von:</label></th> <td><select size="1" name="vorlage" id="neu_vorlage"> <?php foreach ($this->veranstaltungsreihe->veranstaltungen as $veranstaltung) { ?> <option value="<?php echo $veranstaltung->id; ?> "><?php echo CHtml::encode($veranstaltung->name); ?> </option> <?php } ?> </select></td> </tr> <tr> <td colspan="2"><label><input type="checkbox" name="neuer_standard" value="1" checked> Die neue Veranstaltung sofort als Standardveranstaltung festlegen</label></td> </tr> <tr> <td colspan="2"><button type="submit" class="btn btn-primary" name="<?php echo AntiXSS::createToken("add"); ?> ">Anlegen</button></td> </tr> </tbody> </table> </form> </div>
if (in_array($eintrag->status, array(Aenderungsantrag::$STATUS_UNBESTAETIGT, Aenderungsantrag::$STATUS_EINGEREICHT_UNGEPRUEFT))) { $dropdowns["Freischalten"] = $suche->getCurrentUrl('/admin/index/antragsliste', $this, [AntiXSS::createToken('amendment_screen') => $eintrag->id]); } else { $dropdowns["Freischalten zurücknehmen"] = $suche->getCurrentUrl('/admin/index/antragsliste', $this, [AntiXSS::createToken('amendment_withdraw') => $eintrag->id]); } $dropdowns["Neuer Änderungsantrag auf dieser Basis"] = $this->createUrl('/aenderungsantrag/neu', array('antrag_id' => $eintrag->antrag_id, 'adoptInitiators' => $eintrag->id)); echo '<td><div class="btn-group"> <a class="btn dropdown-toggle" data-toggle="dropdown" href="#"> Aktion <span class="caret"></span> </a> <ul class="dropdown-menu">'; foreach ($dropdowns as $name => $link) { echo '<li><a tabindex="-1" href="' . CHtml::encode($link) . '">' . CHtml::encode($name) . '</a>'; } $delLink = CHtml::encode($suche->getCurrentUrl('/admin/index/antragsliste', $this, [AntiXSS::createToken('amendment_delete') => $eintrag->id])); echo '<li><a tabindex="-1" href="' . $delLink . '" onClick="return confirm(\'Diesen Änderungsantrag wirklich löschen?\');">Löschen</a></li>'; echo '</ul></div></td>'; echo '</tr>'; } } echo '</table>'; echo '<section style="overflow: auto;">'; echo '<div style="float: left; line-height: 40px; vertical-align: middle;">'; echo '<a href="#" class="markAll">Alle</a> '; echo '<a href="#" class="markNone">Keines</a> '; echo '</div>'; echo '<div style="float: right;">Markierte: '; echo '<button type="submit" class="btn btn-danger" name="delete">Löschen</button> '; echo '<button type="submit" class="btn btn-info" name="withdraw">Ent-Freischalten</button> '; echo '<button type="submit" class="btn btn-success" name="screen">Freischalten</button>';
public function actionBuergerInnenversammlungen() { if (!$this->binContentAdmin()) { $this->errorMessageAndDie(403, ""); } $this->top_menu = "admin"; if (AntiXSS::isTokenSet("delete")) { /** @var Termin $termin */ $termin = Termin::model()->findByPk(AntiXSS::getTokenVal("delete")); $termin->delete(); $this->msg_ok = "Gelöscht."; } if (AntiXSS::isTokenSet("save")) { if (isset($_REQUEST["neu"]) && $_REQUEST["neu"]["datum"] != "" && $_REQUEST["neu"]["ba_nr"] > 0) { $result = Yii::app()->db->createCommand("SELECT MIN(id) minid FROM termine")->queryAll(); $id = $result[0]["minid"]; if ($id >= 0) { $id = 0; } $id--; $termin = new Termin(); $termin->id = $id; $termin->ba_nr = IntVal($_REQUEST["neu"]["ba_nr"]); $termin->typ = Termin::$TYP_BUERGERVERSAMMLUNG; $termin->sitzungsort = $_REQUEST["neu"]["ort"]; $termin->termin = $_REQUEST["neu"]["datum"]; $termin->datum_letzte_aenderung = new CDbExpression('NOW()'); if (!$termin->save()) { $this->msg_err = print_r($termin->getErrors(), true); } } if (isset($_REQUEST["termin"])) { foreach ($_REQUEST["termin"] as $id => $save) { /** @var Termin $termin */ $termin = Termin::model()->findByPk($id); $termin->sitzungsort = $save["ort"]; $termin->termin = $save["datum"]; $termin->save(); } } $this->msg_ok = "Gespeichert"; } $termine = Termin::model()->findAllByAttributes(["typ" => Termin::$TYP_BUERGERVERSAMMLUNG], ["order" => "termin DESC"]); $this->render("buergerInnenversammlungen", ["termine" => $termine]); }
/** * @param string $veranstaltungsreihe_id * @param string $veranstaltung_id * @param int $id * @throws CException * @throws Exception */ public function actionUpdate($veranstaltungsreihe_id = "", $veranstaltung_id, $id) { $this->loadVeranstaltung($veranstaltungsreihe_id, $veranstaltung_id); if (!$this->veranstaltung->isAdminCurUser()) { $this->redirect($this->createUrl("/veranstaltung/login", array("back" => yii::app()->getRequest()->requestUri))); } /** @var $model Aenderungsantrag */ $model = Aenderungsantrag::model()->with("aenderungsantragUnterstuetzerInnen", "aenderungsantragUnterstuetzerInnen.person")->findByPk($id, '', array("order" => "`person`.`name")); if (is_null($model) || $model->status == IAntrag::$STATUS_GELOESCHT) { Yii::app()->user->setFlash("error", "Der angegebene Änderungsantrag wurde nicht gefunden."); $this->redirect($this->createUrl("/admin/aenderungsantraege")); } if ($model->antrag->veranstaltung_id != $this->veranstaltung->id) { Yii::app()->user->setFlash("error", "Der angegebene Änderungsantrag gehört nicht zu dieser Veranstaltung."); $this->redirect($this->createUrl("/admin/aenderungsantraege")); } $this->performAjaxValidation($model, 'aenderungsantrag-form'); $messages = array(); if (AntiXSS::isTokenSet("antrag_freischalten")) { $newvar = AntiXSS::getTokenVal("antrag_freischalten"); $model->revision_name = $newvar; if ($model->status == IAntrag::$STATUS_EINGEREICHT_UNGEPRUEFT) { $model->status = IAntrag::$STATUS_EINGEREICHT_GEPRUEFT; } $model->save(); Yii::app()->user->setFlash("success", "Der Änderungsantrag wurde freigeschaltet."); if ($model->status == Antrag::$STATUS_EINGEREICHT_GEPRUEFT) { $benachrichtigt = array(); foreach ($model->antrag->veranstaltung->veranstaltungsreihe->veranstaltungsreihenAbos as $abo) { if ($abo->aenderungsantraege && !in_array($abo->person_id, $benachrichtigt)) { $abo->person->benachrichtigenAenderungsantrag($model); $benachrichtigt[] = $abo->person_id; } } } } if (isset($_POST['Aenderungsantrag'])) { if (!in_array($_POST['Aenderungsantrag']['status'], $model->getMoeglicheStati())) { throw new Exception("Status-Übergang ungültig"); } $revision_name = $model->revision_name; $model->setAttributes($_POST['Aenderungsantrag'], false); Yii::import('ext.datetimepicker.EDateTimePicker'); $model->datum_einreichung = EDateTimePicker::parseInput($_POST["Aenderungsantrag"], "datum_einreichung"); $model->datum_beschluss = EDateTimePicker::parseInput($_POST["Aenderungsantrag"], "datum_beschluss"); if ($model->revision_name != $revision_name && $revision_name != "") { foreach ($this->veranstaltung->antraege as $ant) { foreach ($ant->aenderungsantraege as $aend) { if ($aend->id != $model->id && $aend->revision_name == $model->revision_name && $aend->status != Aenderungsantrag::$STATUS_GELOESCHT) { // Zurücksetzen + Warnung $messages[] = "Das vergebene Kürzel \"" . $model->revision_name . "\" wird bereits von einem anderen Änderungsantrag verwendet."; $model->revision_name = $revision_name; } } } } if ($model->save()) { UnterstuetzerInnenAdminWidget::saveUnterstuetzerInnenWidget($model, $messages, "AenderungsantragUnterstuetzerInnen", "aenderungsantrag_id", $id); $model = Aenderungsantrag::model()->with("aenderungsantragUnterstuetzerInnen", "aenderungsantragUnterstuetzerInnen.person")->findByPk($id, '', array("order" => "`person`.`name")); } } $this->render('update', array('model' => $model, 'messages' => $messages)); }
class="abo_button row_head" style="min-height: 80px; text-align: center;"> <?php if ($antrag->vorgang && $antrag->vorgang->istAbonniert($this->aktuelleBenutzerIn())) { ?> <button type="submit" name="<?php echo AntiXSS::createToken("deabonnieren"); ?> " class="btn btn-success btn-raised btn-lg"> <span class="glyphicon">@</span> Abonniert </button> <?php } else { ?> <button type="submit" name="<?php echo AntiXSS::createToken("abonnieren"); ?> " class="btn btn-info btn-raised btn-lg"> <span class="glyphicon">@</span> Nicht abonniert </button> <?php } ?> </form> <div class="shariff" data-backend-url="<?php echo CHtml::encode($this->createUrl("/index/shariffData")); ?> " data-url="<?php
?> <h2>Eingetragen</h2> <ul style="margin-top: 10px;"> <?php foreach ($admins as $admin) { echo "<li>" . CHtml::encode($admin->name) . " (" . CHtml::encode($admin->getWurzelwerkName()) . ")"; if ($admin->id != $ich->id) { echo " [<a href='" . CHtml::encode(str_replace("REMOVEID", $admin->id, $del_url)) . "'>entfernen</a>]"; } echo "</li>"; } ?> </ul> <br><br> <h2>Neu eintragen</h2> <form method="POST" action="<?php echo CHtml::encode($add_url); ?> " style="margin-top: 10px;"> <label>Wurzelwerk-BenutzerInnenname: <input type="text" name="username" value=""></label> <button type="submit" name="<?php echo AntiXSS::createToken("adduser"); ?> " class="btn btn-primary">Hinzufügen </button> </form> </div>
?> " class="btn btn-primary btn-hover ben_del_button" style="width: 250px;"> Nicht mehr benachrichtigen! </button> </div> <?php } else { ?> <button type="submit" name="<?php echo AntiXSS::createToken("benachrichtigung_add"); ?> " class="btn btn-info btn-raised ben_std_button"> <span class="glyphicon">@</span> Über neue Treffer benachrichtigen </button> <?php } } else { ?> <button type="button" class="btn btn-info btn-raised ben_std_button" data-toggle="modal" data-target="#benachrichtigung_login"> <span class="glyphicon">@</span> Über neue Treffer benachrichtigen </button> <input type="hidden" name="<?php echo AntiXSS::createToken("benachrichtigung_add"); ?> " value="1"> <?php $this->renderPartial("login_modal"); } ?> </form>
echo IAntrag::$STATUS_MODIFIZIERT_ANGENOMMEN; ?> ">Modifiziert Angenommen </option> <option value="<?php echo IAntrag::$STATUS_EINGEREICHT_GEPRUEFT; ?> ">Aufrecht erhalten</option> <?php if ($kann_aes_ablehnen) { ?> <option value="<?php echo IAntrag::$STATUS_ABGELEHNT; ?> ">Abgelehnt</option> <?php } ?> </select></label> <?php } } ?> </div> <div class="submitrow content"> <?php $this->widget('bootstrap.widgets.TbButton', array('buttonType' => 'submit', 'type' => 'primary', 'icon' => 'ok white', 'label' => 'Speichern', 'htmlOptions' => array('name' => AntiXSS::createToken('ueberarbeiten')))); ?> </div> </form>
/** * @param string $success_redirect * @throws Exception * @return OAuthLoginForm */ protected function performLogin($success_redirect) { $model = new OAuthLoginForm(); if (isset($_REQUEST["password"]) && $_REQUEST["password"] != "" && isset($_REQUEST["username"])) { if (isset($_REQUEST["neuer_account"])) { $this->performCreateUser_username_password($success_redirect, $_REQUEST["username"], $_REQUEST["password"], $_REQUEST["password_confirm"], $_REQUEST["name"]); } else { $this->performLogin_username_password($success_redirect, $_REQUEST["username"], $_REQUEST["password"]); } } elseif (isset($_REQUEST["openid_mode"])) { $this->performLogin_OAuth_callback($success_redirect, $_REQUEST['openid_mode']); } elseif (isset($_REQUEST["OAuthLoginForm"])) { $this->performLogin_OAuth_init($model, $_REQUEST["OAuthLoginForm"]); } elseif (isset($_REQUEST["login"]) && $_REQUEST["login_sec"] == AntiXSS::createToken($_REQUEST["login"])) { $this->performLogin_from_email_params($success_redirect, $_REQUEST["login"]); } return $model; }