summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTristan Zur <tzur@ccwn.org>2012-05-18 14:41:59 +0200
committerTristan Zur <tzur@ccwn.org>2012-05-18 14:41:59 +0200
commite657fe8d8c848ad5f24ff46ee4f2438e116468fd (patch)
tree7cc314b0607cdf56e21b91e1fadd30d3550a8d07
parentfdca87325b4f7708a1868419f391fc6a84da1661 (diff)
- Speis & Trank (Vereine): Verbesserung der Bedienbarkeit
- Speis & Trank (Vereine): Neu-Anlage von Angebot-Stammdaten über Dialog
-rw-r--r--protected/controllers/MyAngebotController.php106
-rw-r--r--protected/models/AngebotVerein.php4
-rw-r--r--protected/runtime/application.log127
-rw-r--r--protected/views/myAngebot/_angebot_form.php52
-rw-r--r--protected/views/myAngebot/_form.php142
-rw-r--r--protected/views/myAngebot/index.php2
6 files changed, 369 insertions, 64 deletions
diff --git a/protected/controllers/MyAngebotController.php b/protected/controllers/MyAngebotController.php
index 02d9929..0072e61 100644
--- a/protected/controllers/MyAngebotController.php
+++ b/protected/controllers/MyAngebotController.php
@@ -11,8 +11,7 @@ class MyAngebotController extends Controller
/**
* @return array action filters
*/
- public function filters()
- {
+ public function filters() {
return array(
'accessControl', // perform access control for CRUD operations
);
@@ -23,11 +22,10 @@ class MyAngebotController extends Controller
* This method is used by the 'accessControl' filter.
* @return array access control rules
*/
- public function accessRules()
- {
+ public function accessRules() {
return array(
array('allow', // // allow authenticated user
- 'actions'=>array('create', 'index', 'delete', 'update', 'view'),
+ 'actions'=>array('create', 'createAngebot', 'index', 'delete', 'update', 'view'),
'users'=>array('@'),
),
array('deny', // deny all users
@@ -40,39 +38,33 @@ class MyAngebotController extends Controller
* Creates a new model.
* If creation is successful, the browser will be redirected to the 'view' page.
*/
- public function actionCreate()
- {
- $model=new AngebotVerein;
+ public function actionCreate() {
+ $model = new AngebotVerein();
+ $model->published = true;
// Uncomment the following line if AJAX validation is needed
// $this->performAjaxValidation($model);
- if(isset($_POST['AngebotVerein']))
- {
+ if (isset($_POST['AngebotVerein'])) {
$model->attributes = $_POST['AngebotVerein'];
$model->verein_id = Yii::app()->user->vereinId;
- if($model->save())
+ if($model->save()) {
$this->redirect(array('index'));
+ } else {
+ if (0 < $model->angebot_id) {
+ $model->angebot = Angebot::model()->findByPk($model->angebot_id);
+ }
}
-
- $angebot = Angebot::model()->findAll();
- $angebote = array();
- foreach ($angebot as $a) {
- $an = array();
- $an["label"] = $a->name;
- $an["value"] = $a->id;
- $an["einheiten"] = $a->kategorie->einheiten;
- array_push($angebote, $an);
}
$this->render('create',array(
'model'=>$model,
- 'angebote'=>$angebote,
- 'einheiten'=>''
+ 'angebote'=>$this->loadAllAngeboteForAutoComplete(),
+ 'einheiten'=>(null != $model->angebot) ? $model->angebot->kategorie->einheiten : ''
));
}
- public function actionIndex()
- {
+
+ public function actionIndex() {
$model = new AngebotVerein('search');
$model->unsetAttributes(); // clear any default values
if (isset($_GET['AngebotVerein'])) {
@@ -91,41 +83,77 @@ class MyAngebotController extends Controller
// Uncomment the following line if AJAX validation is needed
// $this->performAjaxValidation($model);
- if(isset($_POST['AngebotVerein']))
- {
+ if (isset($_POST['AngebotVerein'])){
$model->attributes = $_POST['AngebotVerein'];
- if($model->save())
+ if ($model->verein_id != Yii::app()->user->vereinId) {
+ $model->verein_id = Yii::app()->user->vereinId;
+ }
+ if ($model->save()) {
$this->redirect(array('index'));
}
- $angebot = Angebot::model()->findAll();
- $angebote = array();
- foreach ($angebot as $a) {
- $an = array();
- $an["label"] = $a->name;
- $an["value"] = $a->id;
- $an["einheiten"] = $a->kategorie->einheiten;
- array_push($angebote, $an);
}
+
$this->render('update',array(
'model'=>$model,
- 'angebote'=>$angebote,
+ 'angebote'=>$this->loadAllAngeboteForAutoComplete(),
'einheiten'=>$model->angebot->kategorie->einheiten
));
}
+ public function actionCreateAngebot() {
+ $model = new Angebot();
+ $model->published = true;
+
+ if (Yii::app()->request->isAjaxRequest) {
+ if(isset($_POST['Angebot'])) {
+ $model->attributes = $_POST['Angebot'];
+ if ($model->save()) {
+ echo CJSON::encode(array(
+ 'status'=>'success',
+ 'div'=>"Angebot erfolgreich erstellt",
+ 'label'=>$model->name,
+ 'value'=>$model->id,
+ 'einheiten'=>$model->kategorie->einheiten
+ ));
+ exit;
+ }
+ }
+
+ $kategorien = Kategorie::model()->findAll(array("condition"=>"published=1"));
+ echo CJSON::encode(array(
+ 'status'=>'failure',
+ 'div'=>$this->renderPartial('_angebot_form', array('model'=>$model, 'kategorien'=>$kategorien), true)));
+ } else {
+ throw new CHttpException(400);
+ }
+ }
+
/**
* Returns the data model based on the primary key given in the GET variable.
* If the data model is not found, an HTTP exception will be raised.
* @param integer the ID of the model to be loaded
*/
- public function loadModel($id)
- {
+ protected function loadModel($id) {
$model = AngebotVerein::model()->findByPk($id);
- if($model===null)
+ if ($model === null) {
throw new CHttpException(404, 'The requested page does not exist.');
+ }
return $model;
}
+ private function loadAllAngeboteForAutoComplete() {
+ $angebot = Angebot::model()->findAll();
+ $angebote = array();
+ foreach ($angebot as $a) {
+ $an = array();
+ $an["label"] = $a->name;
+ $an["value"] = $a->id;
+ $an["einheiten"] = $a->kategorie->einheiten;
+ array_push($angebote, $an);
+ }
+ return $angebote;
+ }
+
// Uncomment the following methods and override them if needed
/*
public function filters()
diff --git a/protected/models/AngebotVerein.php b/protected/models/AngebotVerein.php
index 5bb2d77..183baef 100644
--- a/protected/models/AngebotVerein.php
+++ b/protected/models/AngebotVerein.php
@@ -91,8 +91,8 @@ class AngebotVerein extends CActiveRecord
'verein_id' => 'Verein',
'menge' => 'Menge',
'einheit' => 'Einheit',
- 'preis' => 'Preis',
- 'published' => 'Published',
+ 'preis' => 'Preis (in €)',
+ 'published' => 'Öffentlich',
);
}
diff --git a/protected/runtime/application.log b/protected/runtime/application.log
index cd1f33f..7e750aa 100644
--- a/protected/runtime/application.log
+++ b/protected/runtime/application.log
@@ -6485,3 +6485,130 @@ Stack trace:
REQUEST_URI=/admin.astaf.de/index.php?r=myAngebot/view&id=9
HTTP_REFERER=http://dev.astaf.de:90/admin.astaf.de/index.php?r=myAngebot/update&id=9
---
+2012/05/18 14:24:28 [error] [exception.CHttpException.404] exception 'CHttpException' with message 'Konnte den Request "classroom/create" nicht auflösen.' in D:\Projects\Astaf\workspace\yii\framework\web\CWebApplication.php:280
+Stack trace:
+#0 D:\Projects\Astaf\workspace\yii\framework\web\CWebApplication.php(135): CWebApplication->runController('classroom/creat...')
+#1 D:\Projects\Astaf\workspace\yii\framework\base\CApplication.php(162): CWebApplication->processRequest()
+#2 D:\Projects\Astaf\workspace\admin.astaf.de\index.php(13): CApplication->run()
+#3 {main}
+REQUEST_URI=/admin.astaf.de/index.php?r=classroom/create
+HTTP_REFERER=http://dev.astaf.de:90/admin.astaf.de/index.php?r=myAngebot/create
+---
+2012/05/18 14:26:03 [error] [exception.CHttpException.403] exception 'CHttpException' with message 'Sie sind nicht berechtigt, diese Aktion auszuführen.' in D:\Projects\Astaf\workspace\yii\framework\web\auth\CAccessControlFilter.php:157
+Stack trace:
+#0 D:\Projects\Astaf\workspace\yii\framework\web\auth\CAccessControlFilter.php(120): CAccessControlFilter->accessDenied(Object(CWebUser), 'Sie sind nicht ...')
+#1 D:\Projects\Astaf\workspace\yii\framework\web\filters\CFilter.php(39): CAccessControlFilter->preFilter(Object(CFilterChain))
+#2 D:\Projects\Astaf\workspace\yii\framework\web\CController.php(1146): CFilter->filter(Object(CFilterChain))
+#3 D:\Projects\Astaf\workspace\yii\framework\web\filters\CInlineFilter.php(59): CController->filterAccessControl(Object(CFilterChain))
+#4 D:\Projects\Astaf\workspace\yii\framework\web\filters\CFilterChain.php(131): CInlineFilter->filter(Object(CFilterChain))
+#5 D:\Projects\Astaf\workspace\yii\framework\web\CController.php(292): CFilterChain->run()
+#6 D:\Projects\Astaf\workspace\yii\framework\web\CController.php(266): CController->runActionWithFilters(Object(CInlineAction), Array)
+#7 D:\Projects\Astaf\workspace\yii\framework\web\CWebApplication.php(276): CController->run('createAngebot')
+#8 D:\Projects\Astaf\workspace\yii\framework\web\CWebApplication.php(135): CWebApplication->runController('myAngebot/creat...')
+#9 D:\Projects\Astaf\workspace\yii\framework\base\CApplication.php(162): CWebApplication->processRequest()
+#10 D:\Projects\Astaf\workspace\admin.astaf.de\index.php(13): CApplication->run()
+#11 {main}
+REQUEST_URI=/admin.astaf.de/index.php?r=myAngebot/createAngebot
+HTTP_REFERER=http://dev.astaf.de:90/admin.astaf.de/index.php?r=myAngebot/create
+---
+2012/05/18 14:26:09 [error] [exception.CHttpException.403] exception 'CHttpException' with message 'Sie sind nicht berechtigt, diese Aktion auszuführen.' in D:\Projects\Astaf\workspace\yii\framework\web\auth\CAccessControlFilter.php:157
+Stack trace:
+#0 D:\Projects\Astaf\workspace\yii\framework\web\auth\CAccessControlFilter.php(120): CAccessControlFilter->accessDenied(Object(CWebUser), 'Sie sind nicht ...')
+#1 D:\Projects\Astaf\workspace\yii\framework\web\filters\CFilter.php(39): CAccessControlFilter->preFilter(Object(CFilterChain))
+#2 D:\Projects\Astaf\workspace\yii\framework\web\CController.php(1146): CFilter->filter(Object(CFilterChain))
+#3 D:\Projects\Astaf\workspace\yii\framework\web\filters\CInlineFilter.php(59): CController->filterAccessControl(Object(CFilterChain))
+#4 D:\Projects\Astaf\workspace\yii\framework\web\filters\CFilterChain.php(131): CInlineFilter->filter(Object(CFilterChain))
+#5 D:\Projects\Astaf\workspace\yii\framework\web\CController.php(292): CFilterChain->run()
+#6 D:\Projects\Astaf\workspace\yii\framework\web\CController.php(266): CController->runActionWithFilters(Object(CInlineAction), Array)
+#7 D:\Projects\Astaf\workspace\yii\framework\web\CWebApplication.php(276): CController->run('createAngebot')
+#8 D:\Projects\Astaf\workspace\yii\framework\web\CWebApplication.php(135): CWebApplication->runController('myAngebot/creat...')
+#9 D:\Projects\Astaf\workspace\yii\framework\base\CApplication.php(162): CWebApplication->processRequest()
+#10 D:\Projects\Astaf\workspace\admin.astaf.de\index.php(13): CApplication->run()
+#11 {main}
+REQUEST_URI=/admin.astaf.de/index.php?r=myAngebot/createAngebot
+HTTP_REFERER=http://dev.astaf.de:90/admin.astaf.de/index.php?r=myAngebot/create
+---
+2012/05/18 14:26:33 [error] [php] Undefined variable: angebote (D:\Projects\Astaf\workspace\admin.astaf.de\protected\views\myAngebot\_form.php:16)
+Stack trace:
+#0 D:\Projects\Astaf\workspace\yii\framework\web\CController.php(870): MyAngebotController->renderFile()
+#1 D:\Projects\Astaf\workspace\admin.astaf.de\protected\controllers\MyAngebotController.php(120): MyAngebotController->renderPartial()
+#2 D:\Projects\Astaf\workspace\yii\framework\web\actions\CInlineAction.php(50): MyAngebotController->actionCreateAngebot()
+#3 D:\Projects\Astaf\workspace\yii\framework\web\CController.php(309): CInlineAction->runWithParams()
+#4 D:\Projects\Astaf\workspace\yii\framework\web\filters\CFilterChain.php(134): MyAngebotController->runAction()
+#5 D:\Projects\Astaf\workspace\yii\framework\web\filters\CFilter.php(41): CFilterChain->run()
+#6 D:\Projects\Astaf\workspace\yii\framework\web\CController.php(1146): CAccessControlFilter->filter()
+#7 D:\Projects\Astaf\workspace\yii\framework\web\filters\CInlineFilter.php(59): MyAngebotController->filterAccessControl()
+#8 D:\Projects\Astaf\workspace\yii\framework\web\filters\CFilterChain.php(131): CInlineFilter->filter()
+#9 D:\Projects\Astaf\workspace\yii\framework\web\CController.php(292): CFilterChain->run()
+#10 D:\Projects\Astaf\workspace\yii\framework\web\CController.php(266): MyAngebotController->runActionWithFilters()
+#11 D:\Projects\Astaf\workspace\yii\framework\web\CWebApplication.php(276): MyAngebotController->run()
+#12 D:\Projects\Astaf\workspace\yii\framework\web\CWebApplication.php(135): CWebApplication->runController()
+#13 D:\Projects\Astaf\workspace\yii\framework\base\CApplication.php(162): CWebApplication->processRequest()
+#14 D:\Projects\Astaf\workspace\admin.astaf.de\index.php(13): CWebApplication->run()
+REQUEST_URI=/admin.astaf.de/index.php?r=myAngebot/createAngebot
+in D:\Projects\Astaf\workspace\admin.astaf.de\protected\views\myAngebot\_form.php (16)
+in D:\Projects\Astaf\workspace\admin.astaf.de\protected\controllers\MyAngebotController.php (120)
+in D:\Projects\Astaf\workspace\admin.astaf.de\index.php (13)
+2012/05/18 14:28:14 [error] [php] Undefined variable: angebote (D:\Projects\Astaf\workspace\admin.astaf.de\protected\views\myAngebot\_form.php:16)
+Stack trace:
+#0 D:\Projects\Astaf\workspace\yii\framework\web\CController.php(870): MyAngebotController->renderFile()
+#1 D:\Projects\Astaf\workspace\admin.astaf.de\protected\controllers\MyAngebotController.php(120): MyAngebotController->renderPartial()
+#2 D:\Projects\Astaf\workspace\yii\framework\web\actions\CInlineAction.php(50): MyAngebotController->actionCreateAngebot()
+#3 D:\Projects\Astaf\workspace\yii\framework\web\CController.php(309): CInlineAction->runWithParams()
+#4 D:\Projects\Astaf\workspace\yii\framework\web\filters\CFilterChain.php(134): MyAngebotController->runAction()
+#5 D:\Projects\Astaf\workspace\yii\framework\web\filters\CFilter.php(41): CFilterChain->run()
+#6 D:\Projects\Astaf\workspace\yii\framework\web\CController.php(1146): CAccessControlFilter->filter()
+#7 D:\Projects\Astaf\workspace\yii\framework\web\filters\CInlineFilter.php(59): MyAngebotController->filterAccessControl()
+#8 D:\Projects\Astaf\workspace\yii\framework\web\filters\CFilterChain.php(131): CInlineFilter->filter()
+#9 D:\Projects\Astaf\workspace\yii\framework\web\CController.php(292): CFilterChain->run()
+#10 D:\Projects\Astaf\workspace\yii\framework\web\CController.php(266): MyAngebotController->runActionWithFilters()
+#11 D:\Projects\Astaf\workspace\yii\framework\web\CWebApplication.php(276): MyAngebotController->run()
+#12 D:\Projects\Astaf\workspace\yii\framework\web\CWebApplication.php(135): CWebApplication->runController()
+#13 D:\Projects\Astaf\workspace\yii\framework\base\CApplication.php(162): CWebApplication->processRequest()
+#14 D:\Projects\Astaf\workspace\admin.astaf.de\index.php(13): CWebApplication->run()
+REQUEST_URI=/admin.astaf.de/index.php?r=myAngebot/createAngebot
+in D:\Projects\Astaf\workspace\admin.astaf.de\protected\views\myAngebot\_form.php (16)
+in D:\Projects\Astaf\workspace\admin.astaf.de\protected\controllers\MyAngebotController.php (120)
+in D:\Projects\Astaf\workspace\admin.astaf.de\index.php (13)
+2012/05/18 14:28:25 [error] [php] Undefined variable: kategorien (D:\Projects\Astaf\workspace\admin.astaf.de\protected\views\myAngebot\_angebot_form.php:14)
+Stack trace:
+#0 D:\Projects\Astaf\workspace\yii\framework\web\CController.php(870): MyAngebotController->renderFile()
+#1 D:\Projects\Astaf\workspace\admin.astaf.de\protected\controllers\MyAngebotController.php(120): MyAngebotController->renderPartial()
+#2 D:\Projects\Astaf\workspace\yii\framework\web\actions\CInlineAction.php(50): MyAngebotController->actionCreateAngebot()
+#3 D:\Projects\Astaf\workspace\yii\framework\web\CController.php(309): CInlineAction->runWithParams()
+#4 D:\Projects\Astaf\workspace\yii\framework\web\filters\CFilterChain.php(134): MyAngebotController->runAction()
+#5 D:\Projects\Astaf\workspace\yii\framework\web\filters\CFilter.php(41): CFilterChain->run()
+#6 D:\Projects\Astaf\workspace\yii\framework\web\CController.php(1146): CAccessControlFilter->filter()
+#7 D:\Projects\Astaf\workspace\yii\framework\web\filters\CInlineFilter.php(59): MyAngebotController->filterAccessControl()
+#8 D:\Projects\Astaf\workspace\yii\framework\web\filters\CFilterChain.php(131): CInlineFilter->filter()
+#9 D:\Projects\Astaf\workspace\yii\framework\web\CController.php(292): CFilterChain->run()
+#10 D:\Projects\Astaf\workspace\yii\framework\web\CController.php(266): MyAngebotController->runActionWithFilters()
+#11 D:\Projects\Astaf\workspace\yii\framework\web\CWebApplication.php(276): MyAngebotController->run()
+#12 D:\Projects\Astaf\workspace\yii\framework\web\CWebApplication.php(135): CWebApplication->runController()
+#13 D:\Projects\Astaf\workspace\yii\framework\base\CApplication.php(162): CWebApplication->processRequest()
+#14 D:\Projects\Astaf\workspace\admin.astaf.de\index.php(13): CWebApplication->run()
+REQUEST_URI=/admin.astaf.de/index.php?r=myAngebot/createAngebot
+in D:\Projects\Astaf\workspace\admin.astaf.de\protected\views\myAngebot\_angebot_form.php (14)
+in D:\Projects\Astaf\workspace\admin.astaf.de\protected\controllers\MyAngebotController.php (120)
+in D:\Projects\Astaf\workspace\admin.astaf.de\index.php (13)
+2012/05/18 14:28:28 [error] [php] Undefined variable: kategorien (D:\Projects\Astaf\workspace\admin.astaf.de\protected\views\myAngebot\_angebot_form.php:14)
+Stack trace:
+#0 D:\Projects\Astaf\workspace\yii\framework\web\CController.php(870): MyAngebotController->renderFile()
+#1 D:\Projects\Astaf\workspace\admin.astaf.de\protected\controllers\MyAngebotController.php(120): MyAngebotController->renderPartial()
+#2 D:\Projects\Astaf\workspace\yii\framework\web\actions\CInlineAction.php(50): MyAngebotController->actionCreateAngebot()
+#3 D:\Projects\Astaf\workspace\yii\framework\web\CController.php(309): CInlineAction->runWithParams()
+#4 D:\Projects\Astaf\workspace\yii\framework\web\filters\CFilterChain.php(134): MyAngebotController->runAction()
+#5 D:\Projects\Astaf\workspace\yii\framework\web\filters\CFilter.php(41): CFilterChain->run()
+#6 D:\Projects\Astaf\workspace\yii\framework\web\CController.php(1146): CAccessControlFilter->filter()
+#7 D:\Projects\Astaf\workspace\yii\framework\web\filters\CInlineFilter.php(59): MyAngebotController->filterAccessControl()
+#8 D:\Projects\Astaf\workspace\yii\framework\web\filters\CFilterChain.php(131): CInlineFilter->filter()
+#9 D:\Projects\Astaf\workspace\yii\framework\web\CController.php(292): CFilterChain->run()
+#10 D:\Projects\Astaf\workspace\yii\framework\web\CController.php(266): MyAngebotController->runActionWithFilters()
+#11 D:\Projects\Astaf\workspace\yii\framework\web\CWebApplication.php(276): MyAngebotController->run()
+#12 D:\Projects\Astaf\workspace\yii\framework\web\CWebApplication.php(135): CWebApplication->runController()
+#13 D:\Projects\Astaf\workspace\yii\framework\base\CApplication.php(162): CWebApplication->processRequest()
+#14 D:\Projects\Astaf\workspace\admin.astaf.de\index.php(13): CWebApplication->run()
+REQUEST_URI=/admin.astaf.de/index.php?r=myAngebot/createAngebot
+in D:\Projects\Astaf\workspace\admin.astaf.de\protected\views\myAngebot\_angebot_form.php (14)
+in D:\Projects\Astaf\workspace\admin.astaf.de\protected\controllers\MyAngebotController.php (120)
+in D:\Projects\Astaf\workspace\admin.astaf.de\index.php (13)
diff --git a/protected/views/myAngebot/_angebot_form.php b/protected/views/myAngebot/_angebot_form.php
new file mode 100644
index 0000000..ca1ba6f
--- /dev/null
+++ b/protected/views/myAngebot/_angebot_form.php
@@ -0,0 +1,52 @@
+<div class="form">
+
+<?php $form=$this->beginWidget('CActiveForm', array(
+ 'id'=>'angebot-form',
+ 'enableAjaxValidation'=>false,
+)); ?>
+
+ <?php $this->renderPartial('/common/_required_fields_text'); ?>
+
+ <?php echo $form->errorSummary($model); ?>
+
+ <div class="row">
+ <?php echo $form->labelEx($model,'kategorie_id'); ?>
+ <?php echo $form->dropDownList($model, "kategorie_id", CHtml::listData($kategorien, "id", "name"), array('empty' => '-- Bitte Kategorie wählen --')); ?>
+ <?php echo $form->error($model,'kategorie_id'); ?>
+ </div>
+
+ <div class="row">
+ <?php echo $form->labelEx($model,'name'); ?>
+ <?php echo $form->textField($model,'name',array('size'=>60,'maxlength'=>80)); ?>
+ <?php echo $form->error($model,'name'); ?>
+ </div>
+
+ <div class="row">
+ <?php echo $form->labelEx($model,'beschreibung'); ?>
+ <?php $this->widget('application.extensions.tinymce.ETinyMce',
+ array(
+ 'name'=>'beschreibung',
+ "value"=>$model->beschreibung,
+ 'useSwitch' => false,
+ 'editorTemplate'=>'simple',
+ "language"=>"de",
+ "height"=>"200px",
+ )
+ );
+ ?>
+ <?php echo $form->error($model,'beschreibung'); ?>
+ </div>
+
+ <div class="row">
+ <?php echo $form->labelEx($model,'published'); ?>
+ <?php echo $form->checkbox($model,'published'); ?>
+ <?php echo $form->error($model,'published'); ?>
+ </div>
+
+ <div class="row buttons">
+ <?php echo CHtml::submitButton($model->isNewRecord ? 'Erstellen' : 'Speichern'); ?>
+ </div>
+
+<?php $this->endWidget(); ?>
+
+</div><!-- form --> \ No newline at end of file
diff --git a/protected/views/myAngebot/_form.php b/protected/views/myAngebot/_form.php
index 409862b..2abd64d 100644
--- a/protected/views/myAngebot/_form.php
+++ b/protected/views/myAngebot/_form.php
@@ -19,35 +19,52 @@
'options'=>array(
'minLength'=>'2',
'select'=>'js:function(event, ui) {
- $("#AngebotVerein_angebot_id").val(ui.item.value);
- $("#angebot_name").val(ui.item.label);
+ return selectAngebot(ui.item);
+ }',
+ 'change'=>'js:function( event ) {
+ var autocomplete = $( this ).data( "autocomplete" );
+ if (autocomplete.selectedItem ) { return; }
+ var fullMatcher = new RegExp( "^" + $.ui.autocomplete.escapeRegex( $(this).val() ) + "$", "i" );
+ var partMatcher = new RegExp( "^" + $.ui.autocomplete.escapeRegex( $(this).val() ), "i" );
+ autocomplete.widget().children( ".ui-menu-item" ).each(function() {
+ var item = $(this).data("item.autocomplete");
+ if (fullMatcher.test( item.label)) {
+ autocomplete.selectedItem = item;
+ return false;
+ } else if (partMatcher.test(item.label)) {
+ var conf = confirm("Meinten Sie \""+item.label+"\"?");
+ if (conf) {
+ autocomplete.selectedItem = item;
+ return false;
+ }
+ }
+ });
+ if (autocomplete.selectedItem) {
+ autocomplete._trigger("select", event, { item: autocomplete.selectedItem } );
+ } else {
var selectObj = $("#AngebotVerein_einheit")[0];
+ selectObj.style.display = "none";
+ $("#emptyEinheitenTxt")[0].style.display = "inline";
+ $("#createNewMasterAngebot")[0].style.display = "inline";
var selectParentNode = selectObj.parentNode;
var newSelectObj = selectObj.cloneNode(false); // Make a shallow copy
selectParentNode.replaceChild(newSelectObj, selectObj);
- var count = 0;
- var einheiten = ui.item.einheiten.split(",");
- for (i in einheiten) {
- var str = einheiten[i].replace(/^\s+/, "");
- for (var i = str.length - 1; i >= 0; i--) {
- if (/\S/.test(str.charAt(i))) {
- str = str.substring(0, i + 1);
- break;
- }
- }
- newSelectObj.options[count++] = new Option(str, str);
+
+ $("#AngebotVerein_angebot_id").val("");
}
- return false;
- }'
+ }',
),
'htmlOptions'=>array(
- 'style'=>'height:20px;'
+ 'style'=>'height:20px;',
+ 'size'=>'60'
),
)); ?>
<?php echo $form->hiddenField($model, 'angebot_id'); ?>
<?php echo $form->error($model, 'angebot_id'); ?>
</div>
+ <span id="createNewMasterAngebot" style="display:none">CREATE</span>
+
<div class="row">
<?php echo $form->labelEx($model,'menge'); ?>
<?php echo $form->textField($model,'menge',array('size'=>60,'maxlength'=>80)); ?>
@@ -55,15 +72,22 @@
</div>
<div class="row">
- <?php echo $form->labelEx($model,'preis'); ?>
- <?php echo $form->textField($model,'preis',array('size'=>60,'maxlength'=>80)); ?>
- <?php echo $form->error($model,'preis'); ?>
+ <?php echo $form->labelEx($model,'einheit'); ?>
+ <?php
+ if ($einheiten !== null && '' != $einheiten) {
+ echo Html::einheitenDropDownList($model, 'einheit', $einheiten);
+ } else {
+ ?><select id="AngebotVerein_einheit" style="display:none;"></select><?php
+ }
+ ?>
+ <span id="emptyEinheitenTxt" style="display: <?php echo ($einheiten !== null && '' != $einheiten) ? "none" : "inline"?>">Bitte zuerst das Angebot eingeben.</span>
+ <?php echo $form->error($model,'einheit'); ?>
</div>
<div class="row">
- <?php echo $form->labelEx($model,'einheit'); ?>
- <?php echo Html::einheitenDropDownList($model, 'einheit', $einheiten)?>
- <?php echo $form->error($model,'einheit'); ?>
+ <?php echo $form->labelEx($model,'preis'); ?>
+ <?php echo $form->textField($model,'preis',array('size'=>60,'maxlength'=>80)); ?>
+ <?php echo $form->error($model,'preis'); ?>
</div>
<div class="row">
@@ -78,3 +102,77 @@
<?php $this->endWidget(); ?>
</div>
+
+<?php
+/*
+ * The create angebot form
+ */
+?>
+
+<?php echo CHtml::link('Neues Angebot erstellen', "", // the link for open the dialog
+ array(
+ 'style'=>'cursor: pointer; text-decoration: underline;',
+ 'onclick'=>"{addAngebot(); $('#angebotDialog').dialog('open');}"));?>
+
+<?php
+$this->beginWidget('zii.widgets.jui.CJuiDialog', array( // the dialog
+ 'id'=>'angebotDialog',
+ 'options'=>array(
+ 'title'=>'Neues Angebot erstellen',
+ 'autoOpen'=>false,
+ 'modal'=>true,
+ 'width'=>550,
+ 'height'=>470,
+ ),
+));?>
+<div class="divForForm"></div>
+
+<?php $this->endWidget();?>
+
+<script type="text/javascript">
+function addAngebot() {
+ <?php echo CHtml::ajax(array(
+ 'url'=>array('myAngebot/createAngebot'),
+ 'data'=> "js:$(this).serialize()",
+ 'type'=>'post',
+ 'dataType'=>'json',
+ 'success'=>"function(data) {
+ if (data.status == 'failure') {
+ $('#angebotDialog div.divForForm').html(data.div);
+ // Here is the trick: on submit-> once again this function!
+ $('#angebotDialog div.divForForm form').submit(addAngebot);
+ } else {
+ $('#angebotDialog div.divForForm').html(data.div);
+ setTimeout(\"$('#angebotDialog').dialog('close') \",3000);
+ selectAngebot(data);
+ }
+ }",
+ ))?>;
+ return false;
+}
+
+function selectAngebot(angebot) {
+ $("#AngebotVerein_angebot_id").val(angebot.value);
+ $("#angebot_name").val(angebot.label);
+ var selectObj = $("#AngebotVerein_einheit")[0];
+ selectObj.style.display = "inline";
+ $("#emptyEinheitenTxt")[0].style.display = "none";
+ $("#createNewMasterAngebot")[0].style.display = "none";
+ var selectParentNode = selectObj.parentNode;
+ var newSelectObj = selectObj.cloneNode(false); // Make a shallow copy
+ selectParentNode.replaceChild(newSelectObj, selectObj);
+ var count = 0;
+ var einheiten = angebot.einheiten.split(",");
+ for (i in einheiten) {
+ var str = einheiten[i].replace(/^\s+/, "");
+ for (var i = str.length - 1; i >= 0; i--) {
+ if (/\S/.test(str.charAt(i))) {
+ str = str.substring(0, i + 1);
+ break;
+ }
+ }
+ newSelectObj.options[count++] = new Option(str, str);
+ }
+ return false;
+}
+</script> \ No newline at end of file
diff --git a/protected/views/myAngebot/index.php b/protected/views/myAngebot/index.php
index 1210040..50daeb7 100644
--- a/protected/views/myAngebot/index.php
+++ b/protected/views/myAngebot/index.php
@@ -22,7 +22,7 @@ $this->menu=array(
'filter'=>$model,
'columns'=>array(
array('header'=>'Angebot', 'value'=>'$data->angebot->name', 'name'=>'angebot_id', 'filter'=>CHtml::listData(Angebot::model()->findAll(), 'id', 'name')),
- array('header'=>'Verein', 'value'=>'$data->verein->name'),
+ //array('header'=>'Verein', 'value'=>'$data->verein->name'),
array('header'=>'Menge', 'value'=>'Format::number($data->menge, $data->einheit)'),
array('header'=>'Preis', 'value'=>'Format::currency($data->preis)'),
array('header'=>'Öffentlich',