diff options
Diffstat (limited to 'protected/views/myAngebot')
| -rw-r--r-- | protected/views/myAngebot/_angebot_form.php | 52 | ||||
| -rw-r--r-- | protected/views/myAngebot/_form.php | 142 | ||||
| -rw-r--r-- | protected/views/myAngebot/index.php | 2 |
3 files changed, 173 insertions, 23 deletions
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', |
