Autor Thema: Schreibenden Zugriff einschränken auf bestimmte Felder ...  (Gelesen 10037 mal)

Offline Thomas Schulte

  • @Notes Preisträger
  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 4.388
  • Geschlecht: Männlich
  • Ich glaub mich tritt ein Pferd
Re: Schreibenden Zugriff einschränken auf bestimmte Felder ...
« Antwort #20 am: 10.11.05 - 11:32:27 »
Ja könnte man nur dann muss man wieder zwei gleisig in der Entwicklung fahren. Will ich aber nicht.

zu den Fehlern. Also einen hab ich jetzt noch eingegrenzt. Wenn man das erste Feld einer Maske auf nicht ansprechbar setzt und das zweite Feld auf ansprechbar dann kann man mit einem doppelten Backtab das erste Feld trotzdem zum bearbeiten öffnen. sind die erste nbeiden Felder geblockt funktioniert das richtig, genauso wenn man das erste Feld offen hat und das zweite blockt. Irgendwo hat Notes da ein Problem. Wobei das System grundsätzlich auf das springen mit der Tab nicht so richtig zu reagieren scheint.
Thomas Schulte

Collaborative Project Portfolio and Project Management Software

"Aber wo wir jetzt einmal soweit gekommen sind, möchte ich noch nicht aufgeben. Versteh mich recht, aufgeben liegt mir irgendwie nicht."

J.R.R.Tolkien Herr der Ringe, Der Schicksalsberg

OpenNTF Project: !!HELP!! !!SYSTEM!!  !!DRIVER!!

Skype: thomasschulte-kulmbach

Offline Thomas Schulte

  • @Notes Preisträger
  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 4.388
  • Geschlecht: Männlich
  • Ich glaub mich tritt ein Pferd
Re: Schreibenden Zugriff einschränken auf bestimmte Felder ...
« Antwort #21 am: 11.11.05 - 12:56:47 »
Also es funktioniert jetzt schon mal grundsätzlich.
Ich kann tatsächlich den Zugriff auf Feldebene einschränken, indem ich nur eintrage welche Felder der Benutzer denn bearbeiten darf. Und das Ganze sowohl im Web als auch in Notes mit ein und demselben Code.

Jetzt kommt nur noch ein klitzkleines Problem. Ich will das der Benutzer die möglichen Felder angezeigt bekommt und das er dann das Feld in das er springen will auswählen kann. Das Ganze nach Möglichkeit so, das er nicht die echten Feldnamen angezeigt bekommt sondern Klartext und dann über ein Wertepaar das entsprechende Feld gefunden und benutzt wird.

Java Script anyone?
Thomas Schulte

Collaborative Project Portfolio and Project Management Software

"Aber wo wir jetzt einmal soweit gekommen sind, möchte ich noch nicht aufgeben. Versteh mich recht, aufgeben liegt mir irgendwie nicht."

J.R.R.Tolkien Herr der Ringe, Der Schicksalsberg

OpenNTF Project: !!HELP!! !!SYSTEM!!  !!DRIVER!!

Skype: thomasschulte-kulmbach

Offline flaite

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 2.966
    • mein del.icio.us
Re: Schreibenden Zugriff einschränken auf bestimmte Felder ...
« Antwort #22 am: 11.11.05 - 17:06:39 »
Ja könnte man nur dann muss man wieder zwei gleisig in der Entwicklung fahren. Will ich aber nicht.

wäre aber wesentlich responsiver.
Kein zusätzlicher Roundtrip über den Agenten-Manager.
Der user hat direkt einen visuellen Überblick darüber, welche Felder er gar nicht bearbeiten soll.


Mit deinem Klartext ist mir nicht klar, Thomas.
Im onLoad Event machst du ein feldname.focus() auf das erste Feld, das er editieren kann.
Ausserdem finde ich wie gesagt meinen Vorschlag mit dem Ausblenden der Felder, die er nicht editieren soll, so gut, dass ich es vermutlich mal am we mit n7 ausprobieren werde. Hab aber lange nichts mehr mit Notes im Web gemacht.
Ich stimm nicht mit allen überein, aber mit vielen und sowieso unterhaltsam -> https://www.youtube.com/channel/UCr9qCdqXLm2SU0BIs6d_68Q

---

Aquí no se respeta ni la ley de la selva.
(Hier respektiert man nicht einmal das Gesetz des Dschungels)

Nicanor Parra, San Fabian, Región del Bio Bio, República de Chile

Offline Thomas Schulte

  • @Notes Preisträger
  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 4.388
  • Geschlecht: Männlich
  • Ich glaub mich tritt ein Pferd
Re: Schreibenden Zugriff einschränken auf bestimmte Felder ...
« Antwort #23 am: 11.11.05 - 22:32:35 »
Ja könnte man nur dann muss man wieder zwei gleisig in der Entwicklung fahren. Will ich aber nicht.

wäre aber wesentlich responsiver.
Kein zusätzlicher Roundtrip über den Agenten-Manager.
Der user hat direkt einen visuellen Überblick darüber, welche Felder er gar nicht bearbeiten soll.


Mit deinem Klartext ist mir nicht klar, Thomas.
Im onLoad Event machst du ein feldname.focus() auf das erste Feld, das er editieren kann.
Ausserdem finde ich wie gesagt meinen Vorschlag mit dem Ausblenden der Felder, die er nicht editieren soll, so gut, dass ich es vermutlich mal am we mit n7 ausprobieren werde. Hab aber lange nichts mehr mit Notes im Web gemacht.
Ähh wieso responsiver Axel? Bei der Lösung die ich jetzt habe ist nix mit Roundtrip. Das passiert alles direkt. Entweder im Client oder im Brauser.
Und mit Klartext meine ich, das die Feldnamen ja in der Regel etwas kryptischer sind. Dem Benutzer will ich das aber nicht zumuten. Außerdem woher will er wissen auf welches Feld er denn klicken kann um da hinzuspringen. So geb ich ihm eine Auswahlliste er wählt das Feld aus und Zack ist er da. Rudimentär kann man das mit Prompt(....) ja lösen aber es muss da doch noch ein Möglichkeit geben so eine Art Dialogbox in Form einer Liste anzuzeigen.
Thomas Schulte

Collaborative Project Portfolio and Project Management Software

"Aber wo wir jetzt einmal soweit gekommen sind, möchte ich noch nicht aufgeben. Versteh mich recht, aufgeben liegt mir irgendwie nicht."

J.R.R.Tolkien Herr der Ringe, Der Schicksalsberg

OpenNTF Project: !!HELP!! !!SYSTEM!!  !!DRIVER!!

Skype: thomasschulte-kulmbach

Offline flaite

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 2.966
    • mein del.icio.us
Re: Schreibenden Zugriff einschränken auf bestimmte Felder ...
« Antwort #24 am: 12.11.05 - 00:31:39 »
mit responsiver meine ich, dass ein WebQueryOpen Zeit kostet (auf dem Server).
Vielleicht habe ich auch andere Vorstellungen als du was du vor hast, was bei natursprachlichen Beschreibungen naturgemäss vorkommt.
Mit traditionellen PopUps muss man im Web imho heute ein bischen vorsichtig sein, wg. den ganzen Popup-Blockern.
Der User kann doch mit der Maus zu einem Feld springen?
Deshalb verstehe ich das nicht ganz.
Ich werde jedenfalls - unabhängig von diesem Thread - einmal versuchen, eine diese_Felder_sind_disabled Liste in JavaScript in Notes zu implementieren.
Ich glaub, das ist relativ einfach.


« Letzte Änderung: 12.11.05 - 00:34:48 von kennwort »
Ich stimm nicht mit allen überein, aber mit vielen und sowieso unterhaltsam -> https://www.youtube.com/channel/UCr9qCdqXLm2SU0BIs6d_68Q

---

Aquí no se respeta ni la ley de la selva.
(Hier respektiert man nicht einmal das Gesetz des Dschungels)

Nicanor Parra, San Fabian, Región del Bio Bio, República de Chile

Offline Thomas Schulte

  • @Notes Preisträger
  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 4.388
  • Geschlecht: Männlich
  • Ich glaub mich tritt ein Pferd
Re: Schreibenden Zugriff einschränken auf bestimmte Felder ...
« Antwort #25 am: 12.11.05 - 10:56:22 »
Noch mal damit das klar wird, es geht nicht darum das in einer reinen Web Anwendung zu realisieren, sondern darum das es im Notes Client und im Web gleichermaßen läuft. Und wenn du den Thread richtig gelsen hättest dann würdest du feststellen das bei mir weder ein WQO noch ein WQS Agent verwendet wird.
 
Und mir ist das bei meiner Lösung, die jetzt funktioniert vollkommen wurscht ob du auf das Feld mit dem Cursor oder mit der Maus klickt. Das was du als Popups bezeichnest sind zumindest im Moment auch keine solchen sondern der Prompt Befehl von Java Script und den blockieren zumindest die in die Browser eingebauten Blocker nicht.
Und da es keine externe sondern eine Interne Lösung ist kann ich durchaus auch mit bestimmten Verhaltensweisen leben.

Was ich jetzt höchstens noch gerne hätte wäre eine Möglichkeit mit reinrassigem Java Script eine Auswahlbox aus den Schirm zu zaubern, die das ausgewählte Teil dann als Text zurückgibt.
Thomas Schulte

Collaborative Project Portfolio and Project Management Software

"Aber wo wir jetzt einmal soweit gekommen sind, möchte ich noch nicht aufgeben. Versteh mich recht, aufgeben liegt mir irgendwie nicht."

J.R.R.Tolkien Herr der Ringe, Der Schicksalsberg

OpenNTF Project: !!HELP!! !!SYSTEM!!  !!DRIVER!!

Skype: thomasschulte-kulmbach

Offline flaite

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 2.966
    • mein del.icio.us
Re: Schreibenden Zugriff einschränken auf bestimmte Felder ...
« Antwort #26 am: 12.11.05 - 11:22:31 »
Ich glaub der klassische Weg ist darüber:
http://de.selfhtml.org/javascript/objekte/window.htm#open
Du kannst irgendwie aus dem PopUpFenster in das aufrufende html Dokument zurückschreiben. Weiss momentan nicht wie. Hab sehr lange nicht mehr mit JavaScript gearbeitet. Mach das jetzt wieder ein bischen, weil ich mit Ajax herumspiele.
Es geht vielleicht auch über dhtml-webDom. Damit kannst du Elemente (z.B. eine Auswahlbox) in einer Seite ein- und ausblenden.
Ich versuch das mal.

Gruß Axel
Ich stimm nicht mit allen überein, aber mit vielen und sowieso unterhaltsam -> https://www.youtube.com/channel/UCr9qCdqXLm2SU0BIs6d_68Q

---

Aquí no se respeta ni la ley de la selva.
(Hier respektiert man nicht einmal das Gesetz des Dschungels)

Nicanor Parra, San Fabian, Región del Bio Bio, República de Chile

Offline flaite

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 2.966
    • mein del.icio.us
Re: Schreibenden Zugriff einschränken auf bestimmte Felder ...
« Antwort #27 am: 12.11.05 - 13:00:17 »
Wie wärs damit? (getestet mit IE6 und Mozilla).
In Domino müsste man im html Tab von den jeweiligen Elementen die jeweilige ID eintragen.

Alles was in <script language="javaScript"> steht muss in den html-header.
Die tags div öffnend und div-schliessend als passThru html und vom Notes-Client verbergen.
Ein bischen problematischer wirds, wenn die Radio-Buttons dynamisch generiert werden sollen. Geht aber auch. Mit computedText.

Code
<html>
<head>
<script language="javaScript">


	function loadDocument() {
		document.getElementById('auswahl').style.visibility = "hidden";
	}

	function showMySelection() {
		document.getElementById('auswahl').style.visibility = "visible";
	}

	function commitMySelection() {
		theForm = document.forms[0];

		theForm.ergebnis.value=getSelectedRadioValue(theForm.auswahl);
		this.value=getSelectedRadioValue(theForm.auswahl);
		document.getElementById('auswahl').style.visibility = "hidden";

	}

// von http://www.breakingpar.com/bkp/home.nsf/0/CA99375CC06FB52687256AFB0013E5E9
	function getSelectedRadioValue(buttonGroup) {
	   // returns the value of the selected radio button or "" if no button is selected
	   var i = getSelectedRadio(buttonGroup);
	   if (i == -1) {
	      return "";
	   } else {
	      if (buttonGroup[i]) { // Make sure the button group is an array (not just one button)
	         return buttonGroup[i].value;
	      } else { // The button group is just the one button, and it is checked
	         return buttonGroup.value;
	      }
	   }
} // Ends the "getSelectedRadioValue" function


// http://www.breakingpar.com/bkp/home.nsf/0/CA99375CC06FB52687256AFB0013E5E9
function getSelectedRadio(buttonGroup) {
   // returns the array number of the selected radio button or -1 if no button is selected
   if (buttonGroup[0]) { // if the button group is an array (one button is not an array)
      for (var i=0; i<buttonGroup.length; i++) {
         if (buttonGroup[i].checked) {
            return i
         }
      }
   } else {
      if (buttonGroup.checked) { return 0; } // if the one button is checked, return zero
   }
   // if we get to this point, no radio button is selected
   return -1;
} // Ends the "getSelectedRadio" function

</script>
</head>

<body onLoad="loadDocument()">
<form>
	<input id="ergebnis" name="ergebnis" type="text" value="" onFocus="alert('no foolin'); blur();">
	<input name="showSelection" value="showSelection" type="button" onClick="showMySelection()">
	<div id="auswahl">
	<input name="auswahl" type="radio" value="grün" onClick="commitMySelection();">rot</input>
	<input name="auswahl" type="radio" value="gelb" onClick="commitMySelection();">gelb</input>
	<input name="auswahl" type="radio" value="blau" onClick="commitMySelection();">blau</input>
	</div>


</form>
</body>
</html>
« Letzte Änderung: 12.11.05 - 13:08:27 von kennwort »
Ich stimm nicht mit allen überein, aber mit vielen und sowieso unterhaltsam -> https://www.youtube.com/channel/UCr9qCdqXLm2SU0BIs6d_68Q

---

Aquí no se respeta ni la ley de la selva.
(Hier respektiert man nicht einmal das Gesetz des Dschungels)

Nicanor Parra, San Fabian, Región del Bio Bio, República de Chile

Offline flaite

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 2.966
    • mein del.icio.us
Re: Schreibenden Zugriff einschränken auf bestimmte Felder ...
« Antwort #28 am: 12.11.05 - 15:28:41 »
hier noch klassischere Lösung mit popup:
2 Dateien:
opener:
Code
<html>
<head>
<script language="javaScript">


function closeChild() {
	if (window.childPopUp && window.childPopUp.open && !window.childPopUp.closed){
    	window.childPopUp.opener = null;
    	window.childPopUp.close();
    }
    }

function openPopUp() {

	childPopUp = window.open("popUp.html", "Fenster1", "width=310,height=400,left=200,top=100");
}

</script>
</head>

<body onUnload="closeChild()">
<form>
	<input id="ergebnis" name="ergebnis" type="text" value="" onFocus="alert('no foolin'); blur()">
	<input name="showSelection" value="showSelection" type="button" onClick="openPopUp()">

</form>

Text dadrunter.
</body>
</html>

popUp:
Code
<html>
<head>
<script language="javaScript">
	function commitMySelection() {

		if (window.opener && !window.opener.closed) {
			parentForm = window.opener.document.forms[0]
			window.opener.document.bgColor = "beige";


			thisForm = document.forms[0];

			parentForm.ergebnis.value=getSelectedRadioValue(thisForm.auswahl);
			window.close();
		} else {
			alert("window opener ist geschlossen!!!");
		}

	}



// von http://www.breakingpar.com/bkp/home.nsf/0/CA99375CC06FB52687256AFB0013E5E9
	function getSelectedRadioValue(buttonGroup) {
	   // returns the value of the selected radio button or "" if no button is selected
	   var i = getSelectedRadio(buttonGroup);
	   if (i == -1) {
	      return "";
	   } else {
	      if (buttonGroup[i]) { // Make sure the button group is an array (not just one button)
	         return buttonGroup[i].value;
	      } else { // The button group is just the one button, and it is checked
	         return buttonGroup.value;
	      }
	   }
} // Ends the "getSelectedRadioValue" function


// http://www.breakingpar.com/bkp/home.nsf/0/CA99375CC06FB52687256AFB0013E5E9
function getSelectedRadio(buttonGroup) {
   // returns the array number of the selected radio button or -1 if no button is selected
   if (buttonGroup[0]) { // if the button group is an array (one button is not an array)
      for (var i=0; i<buttonGroup.length; i++) {
         if (buttonGroup[i].checked) {
            return i
         }
      }
   } else {
      if (buttonGroup.checked) { return 0; } // if the one button is checked, return zero
   }
   // if we get to this point, no radio button is selected
   return -1;
} // Ends the "getSelectedRadio" function

</script>
</head>
<body>

	<form>
	<div id="auswahl">
	<input name="auswahl" type="radio" value="grün" onClick="commitMySelection();">rot</input>
	<input name="auswahl" type="radio" value="gelb" onClick="commitMySelection();">gelb</input>
	<input name="auswahl" type="radio" value="blau" onClick="commitMySelection();">blau</input>
	</div>
	</form>

</body>
</html>

Das komplexeste ist eigentlich die Verbindung zwischen beiden zu halten.
Checke onUnload Event im opener sowie if Abfrage in commit-Funktion von popUp.
Ich glaub das ist so sauber.

In notes würde ich popUp.html als treat content as html page implementieren und einfach den html code da rein pasten. Bei dynamischen Checkboxen mit computedText arbeiten.

Gruß Axel

« Letzte Änderung: 12.11.05 - 15:45:51 von kennwort »
Ich stimm nicht mit allen überein, aber mit vielen und sowieso unterhaltsam -> https://www.youtube.com/channel/UCr9qCdqXLm2SU0BIs6d_68Q

---

Aquí no se respeta ni la ley de la selva.
(Hier respektiert man nicht einmal das Gesetz des Dschungels)

Nicanor Parra, San Fabian, Región del Bio Bio, República de Chile

Offline flaite

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 2.966
    • mein del.icio.us
Re: Schreibenden Zugriff einschränken auf bestimmte Felder ...
« Antwort #29 am: 15.11.05 - 05:42:34 »
als attachment:
visibleStuff für Bsp. 1
classicPopupSelection für Bsp. 2
Ich stimm nicht mit allen überein, aber mit vielen und sowieso unterhaltsam -> https://www.youtube.com/channel/UCr9qCdqXLm2SU0BIs6d_68Q

---

Aquí no se respeta ni la ley de la selva.
(Hier respektiert man nicht einmal das Gesetz des Dschungels)

Nicanor Parra, San Fabian, Región del Bio Bio, República de Chile

Offline Thomas Schulte

  • @Notes Preisträger
  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 4.388
  • Geschlecht: Männlich
  • Ich glaub mich tritt ein Pferd
Re: Schreibenden Zugriff einschränken auf bestimmte Felder ...
« Antwort #30 am: 15.11.05 - 07:24:57 »
Danke, ich probier das aus und melde mich wiederwenn es, an was ich nicht zweifle, funktioniet hat.
Thomas Schulte

Collaborative Project Portfolio and Project Management Software

"Aber wo wir jetzt einmal soweit gekommen sind, möchte ich noch nicht aufgeben. Versteh mich recht, aufgeben liegt mir irgendwie nicht."

J.R.R.Tolkien Herr der Ringe, Der Schicksalsberg

OpenNTF Project: !!HELP!! !!SYSTEM!!  !!DRIVER!!

Skype: thomasschulte-kulmbach

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz