Autor Thema: xpage mit bootbox  (Gelesen 1517 mal)

Offline HH

  • Senior Mitglied
  • ****
  • Beiträge: 339
  • Geschlecht: Männlich
xpage mit bootbox
« am: 20.10.16 - 14:43:26 »
Hallo,

vor dem löschen eines Dokuments in einer xpage, möchte ich per js die Zustimmung des Anwenders einholen. Weil's hübsch aussieht, möchte ich statt JavaScript confirm() bootbox.confirm verwenden.

Leider rauscht das Script einfach so durch und wartet nicht auf die Eingabe des Anwenders. Hat jemand eine Idee, wie man das verhindern kann?

Meine Funktion zum öffnen des bootbox dialogs:

Code
function bootboxConfirm( dlgTitle, prompt ) {
	var resultVal ;
    bootbox.confirm(
    	{
        title: dlgTitle,
        message: prompt ,
        buttons: {
            cancel: {
				label: "abbrechen",
				className: "btn-default",
		        callback: function (result) {
		            console.log('This was logged in the callback: ' + result);
		            resultVal = result ;
		        }
            },
            confirm: {
				label: "ok",
				className: "btn-default",
		        callback: function (result) {
		            console.log('This was logged in the callback: ' + result);
		            resultVal = result ;
		        }
            }
        },
        callback: function() {
        	resultVal = resultVal ;
        }
    });
    
    console.log( "resultVal = " + resultVal ) ;
    return resultVal ;
}

Meine Schaltfläche zum löschen:

Code
				<xp:button value="remove" id="button3">
					<xp:eventHandler event="onclick" submit="true"
						refreshMode="partial" refreshId="dataTablePeople">
						<xp:this.action><![CDATA[#{javascript:PeopleBean.setPerson( person ) ;
PeopleBean.removePerson() ;}]]></xp:this.action>
						<xp:this.script><![CDATA[return bootboxConfirm( "Dokument löschen", "Soll die Person und alle zugehörigen Dokumente gelöscht werden?" ) ;]]></xp:this.script>
					</xp:eventHandler>
				</xp:button>


Danke,
Hubert

Offline umi

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 2.062
  • Geschlecht: Männlich
  • one notes to rule'em all, one notes to find'em....
    • Belsoft AG
Re: xpage mit bootbox
« Antwort #1 am: 24.10.16 - 14:07:47 »
Moin
Das Problem dürfte das submit="true" sein.
Eine Lösungsmöglichkeit wären 2 Buttons. Button1 Sichtbar nur mit dem Client Code (Confirm) und Button 2 versteckt welcher dann bei erfolg vom 1. Button "geklickt" wird...
Gruss

Urs

<:~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Jegliche Schreibfehler sind unpeabischigt
http://www.belsoft.ch
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:>

Offline HH

  • Senior Mitglied
  • ****
  • Beiträge: 339
  • Geschlecht: Männlich
Re: xpage mit bootbox
« Antwort #2 am: 24.10.16 - 15:20:16 »
Hallo Urs,

das war es zwar nicht so ganz, hat mich aber auf die folgende, funktionierende Lösung gebracht:

Code
	<xp:scriptBlock id="scriptBlock1">
		<xp:this.value><![CDATA[
function bootboxConfirm( dlgTitle, prompt ) {
	var resultVal = null ;
    bootbox.confirm(
    	{
        title: dlgTitle,
        message: prompt ,
        buttons: {
            cancel: {
				label: "abbrechen",
				className: "btn-default"
            },
            confirm: {
				label: "ok",
				className: "btn-default"
            }
        },
        callback: function(result) {
        	if( result == true ) {
        		document.getElementById("#{id:hiddenRemoveBtn}").click() ;
        	}
        }
    });
}
		]]></xp:this.value>
	</xp:scriptBlock>


	<xp:div id="dataTablePeople">

		<xp:button value="remove" id="removeBtn">
			<xp:eventHandler event="onclick" submit="false">
				<xp:this.script><![CDATA[
bootboxConfirm( "Dokument löschen", "Soll ... gelöscht werden?" ) ;
				]]></xp:this.script>
			</xp:eventHandler>
		</xp:button>


		<xp:button value="hidden remove" id="hiddenRemoveBtn" style="display:none;">
			<xp:eventHandler event="onclick" submit="true"
				refreshMode="complete">
				<xp:this.action>
					<xp:openPage name="/gridPeople.xsp"></xp:openPage>
				</xp:this.action>
			</xp:eventHandler>
		</xp:button>

	</xp:div>

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz