From e657fe8d8c848ad5f24ff46ee4f2438e116468fd Mon Sep 17 00:00:00 2001 From: Tristan Zur Date: Fri, 18 May 2012 14:41:59 +0200 Subject: =?UTF-8?q?-=20Speis=20&=20Trank=20(Vereine):=20Verbesserung=20der?= =?UTF-8?q?=20Bedienbarkeit=20-=20Speis=20&=20Trank=20(Vereine):=20Neu-Anl?= =?UTF-8?q?age=20von=20Angebot-Stammdaten=20=C3=BCber=20Dialog?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- protected/controllers/MyAngebotController.php | 124 ++++++++++++-------- protected/models/AngebotVerein.php | 4 +- protected/runtime/application.log | 127 +++++++++++++++++++++ protected/views/myAngebot/_angebot_form.php | 52 +++++++++ protected/views/myAngebot/_form.php | 156 +++++++++++++++++++++----- protected/views/myAngebot/index.php | 2 +- 6 files changed, 385 insertions(+), 80 deletions(-) create mode 100644 protected/views/myAngebot/_angebot_form.php 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 @@ -6,13 +6,12 @@ class MyAngebotController extends Controller * @var string the default layout for the views. Defaults to '//layouts/column2', meaning * using two-column layout. See 'protected/views/layouts/column2.php'. */ - public $layout='//layouts/column2'; + public $layout = '//layouts/column2'; /** * @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,40 +38,34 @@ 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'])) - { - $model->attributes=$_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')); - } - - $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); + } else { + if (0 < $model->angebot_id) { + $model->angebot = Angebot::model()->findByPk($model->angebot_id); + } + } } $this->render('create',array( 'model'=>$model, - 'angebote'=>$angebote, - 'einheiten'=>'' + 'angebote'=>$this->loadAllAngeboteForAutoComplete(), + 'einheiten'=>(null != $model->angebot) ? $model->angebot->kategorie->einheiten : '' )); } - public function actionIndex() - { - $model=new AngebotVerein('search'); + + public function actionIndex() { + $model = new AngebotVerein('search'); $model->unsetAttributes(); // clear any default values if (isset($_GET['AngebotVerein'])) { $model->attributes = $_GET['AngebotVerein']; @@ -86,45 +78,81 @@ class MyAngebotController extends Controller } public function actionUpdate($id) { - $model=$this->loadModel($id); + $model = $this->loadModel($id); // Uncomment the following line if AJAX validation is needed // $this->performAjaxValidation($model); - if(isset($_POST['AngebotVerein'])) - { - $model->attributes=$_POST['AngebotVerein']; - if($model->save()) + if (isset($_POST['AngebotVerein'])){ + $model->attributes = $_POST['AngebotVerein']; + 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) - { - $model=AngebotVerein::model()->findByPk($id); - if($model===null) - throw new CHttpException(404,'The requested page does not exist.'); + protected function loadModel($id) { + $model = AngebotVerein::model()->findByPk($id); + 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 /* 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 @@ +
+ +beginWidget('CActiveForm', array( + 'id'=>'angebot-form', + 'enableAjaxValidation'=>false, +)); ?> + + renderPartial('/common/_required_fields_text'); ?> + + errorSummary($model); ?> + +
+ labelEx($model,'kategorie_id'); ?> + dropDownList($model, "kategorie_id", CHtml::listData($kategorien, "id", "name"), array('empty' => '-- Bitte Kategorie wählen --')); ?> + error($model,'kategorie_id'); ?> +
+ +
+ labelEx($model,'name'); ?> + textField($model,'name',array('size'=>60,'maxlength'=>80)); ?> + error($model,'name'); ?> +
+ +
+ labelEx($model,'beschreibung'); ?> + widget('application.extensions.tinymce.ETinyMce', + array( + 'name'=>'beschreibung', + "value"=>$model->beschreibung, + 'useSwitch' => false, + 'editorTemplate'=>'simple', + "language"=>"de", + "height"=>"200px", + ) + ); + ?> + error($model,'beschreibung'); ?> +
+ +
+ labelEx($model,'published'); ?> + checkbox($model,'published'); ?> + error($model,'published'); ?> +
+ +
+ isNewRecord ? 'Erstellen' : 'Speichern'); ?> +
+ +endWidget(); ?> + +
\ 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 @@ -18,36 +18,53 @@ // additional javascript options for the autocomplete plugin 'options'=>array( 'minLength'=>'2', - 'select'=>'js:function(event,ui) { - $("#AngebotVerein_angebot_id").val(ui.item.value); - $("#angebot_name").val(ui.item.label); - var selectObj = $("#AngebotVerein_einheit")[0]; - 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); - } - return false; - }' + 'select'=>'js:function(event, ui) { + 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); + + $("#AngebotVerein_angebot_id").val(""); + } + }', ), 'htmlOptions'=>array( - 'style'=>'height:20px;' + 'style'=>'height:20px;', + 'size'=>'60' ), )); ?> hiddenField($model, 'angebot_id'); ?> error($model, 'angebot_id'); ?> + +
labelEx($model,'menge'); ?> textField($model,'menge',array('size'=>60,'maxlength'=>80)); ?> @@ -55,15 +72,22 @@
- labelEx($model,'preis'); ?> - textField($model,'preis',array('size'=>60,'maxlength'=>80)); ?> - error($model,'preis'); ?> + labelEx($model,'einheit'); ?> + + ">Bitte zuerst das Angebot eingeben. + error($model,'einheit'); ?>
- labelEx($model,'einheit'); ?> - - error($model,'einheit'); ?> + labelEx($model,'preis'); ?> + textField($model,'preis',array('size'=>60,'maxlength'=>80)); ?> + error($model,'preis'); ?>
@@ -77,4 +101,78 @@
endWidget(); ?> - \ No newline at end of file + + + + +'cursor: pointer; text-decoration: underline;', + 'onclick'=>"{addAngebot(); $('#angebotDialog').dialog('open');}"));?> + +beginWidget('zii.widgets.jui.CJuiDialog', array( // the dialog + 'id'=>'angebotDialog', + 'options'=>array( + 'title'=>'Neues Angebot erstellen', + 'autoOpen'=>false, + 'modal'=>true, + 'width'=>550, + 'height'=>470, + ), +));?> +
+ +endWidget();?> + + \ 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', -- cgit v1.0-28-g1787