summaryrefslogtreecommitdiff
path: root/protected/views/myAngebot/_form.php
diff options
context:
space:
mode:
Diffstat (limited to 'protected/views/myAngebot/_form.php')
-rw-r--r--protected/views/myAngebot/_form.php142
1 files changed, 120 insertions, 22 deletions
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