Das Notes Forum

Domino 9 und frühere Versionen => Entwicklung => Thema gestartet von: bandit am 29.09.03 - 13:20:35

Titel: Ansicht im Web, verbergen von "No documents found"
Beitrag von: bandit am 29.09.03 - 13:20:35
Ich möchte bei einer Ansicht, die ich im Web anzeigen will, die Ausgabe "No documents found" verbergen, wenn die Auswahl der Ansicht keine Dokumente enthält. Wenn möglich möchte ich eine eigenen Text ausgeben.
Titel: Re:Ansicht im Web, verbergen von "No documents found"
Beitrag von: Axel Janssen temp am 29.09.03 - 13:54:10
http://www.codestore.net/A55692/store.nsf/srch?SearchView&Query=%22no%20documents%20found%22&start=1&count=10&SearchFuzzy=True
Titel: Re:Ansicht im Web, verbergen von "No documents found"
Beitrag von: bandit am 29.09.03 - 14:24:35
Aus den ganzen Vorschlägen von dort habe ich den für mich einfachsten Weg herausgesucht und versucht mit folgender Hide When die eingebettete Ansicht zu verbergen wenn keine Dokumente da sind:

@Elements(@DbColumn("":"NoCache";@DbName;test;1)) = 0

Test ist dabei der Name der Ansicht. Leider klappt das ganze nicht, es kommt immer noch No Documents found.
Titel: Re:Ansicht im Web, verbergen von "No documents found"
Beitrag von: Driri am 29.09.03 - 14:52:46
Hi,

der Name der Ansicht muß in Anführungszeichen gesetzt werden.

@Elements(@DbColumn("":"NoCache";@DbName;"test";1)) = 0
Titel: Re:Ansicht im Web, verbergen von "No documents found"
Beitrag von: robertpp am 29.09.03 - 16:34:10
Kann mir jemand sagen wie ich das jetzt zb:


Here is a method to replace the 'No documents found' message with any HTML you want.

Put the following function in your JS header and run it OnLoad

function CheckNoDocuments() { // function to replace the 'No documents found' message
if (document.getElementById("view").innerHTML.indexOf("No documents found") > 0) {
document.getElementById("view").innerHTML = "--Put your own HTML here--"
} // end if
} // end function

Then all you need is a div or span tag enclosing the view:
<div ID="view">
--insert your embeded view here--
</div>

realisieren kann?
Ich hab eine eingebettet Ansicht "Neuzugänge" in einer Seite inkludiert.
Was gehört von dem Code jetzt genau wo hin? Was meinen die mit "--insert your embeded view here--
" und muss ich statt "view" meinen Ansichtsnamen verwenden?

danke robert

Mein Problem hat sich gelöst!! Ich weiß bereits wie es geht!!
Hier noch ein guter Link den ich im Forum dazu gefunden habe:
http://www.notestips.com/80256B3A007F2692/1/NAMO5D4VL3

danke  :D
Titel: Re:Ansicht im Web, verbergen von "No documents found"
Beitrag von: bandit am 30.09.03 - 07:54:55
Leider gehts auch mit Anführungszeichen nicht:

@Elements(@DbColumn("":"NoCache";@DbName;"test";1)) = 0

Hat jemand noch eine Idee?
Evtl. ein Klammerfehler (die letzte Klammer fehlte nämlich in dem Beispiel).
Titel: Re:Ansicht im Web, verbergen von "No documents found"
Beitrag von: DaSteph am 30.09.03 - 08:44:22
Hi

Ich hab für den @dbcolumn noch den server vor der DB, also:

@Elements(@DbColumn("":"NoCache"; "" : @DbName;"test";1)) = 0

vielleicht liegt es daran.

Nicht böse sein, ist mir aber auch schon passiert: Hast du die Hide When Klausel aktiviert ?


mfg


Stephan
Titel: Re:Ansicht im Web, verbergen von "No documents found"
Beitrag von: bandit am 30.09.03 - 09:18:17
Hab die Formel so bei mir drinn:

@Elements(@DbColumn("":"NoCache"; "" : @DbName;"test";1)) = 0

Formel ist auch aktiviert, leider wird immer noch "No Documents founds" angezeigt.
Titel: Re:Ansicht im Web, verbergen von "No documents found"
Beitrag von: robertpp am 30.09.03 - 09:37:15
Probier es mit dem so funktioniert es:
@If(@Elements(@DbColumn("":"NoCache";@DbName;"View";1)))

und bei dem Text zb: leider keine Dokumente vorhanden nimmst du das:
!@If(@Elements(@DbColumn("":"NoCache";@DbName;"View";1)))
Titel: Re:Ansicht im Web, verbergen von "No documents found"
Beitrag von: bandit am 30.09.03 - 10:06:54
@roberttpp

geht bei Dir die Formel? Ich hab die Formel kopiert und meine Ansicht eingetragen aber es funktioniert irgendwie immer noch nicht.  :(
Titel: Re:Ansicht im Web, verbergen von "No documents found"
Beitrag von: robertpp am 30.09.03 - 10:10:52
Ja bei mir funktioniert die einwandfrei!
Hast du statt "View" eh deinen Ansichtnamen hineingeschrieben!!  Aber ich habe gerade gesehen du musst es umgekehrt machen!! Bei der Ansicht muss du das schreiben:

!@If(@Elements(@DbColumn("":"NoCache";@DbName;"View";1)))
und beim text ohne "!" am anfang.
Titel: Re:Ansicht im Web, verbergen von "No documents found"
Beitrag von: bandit am 30.09.03 - 10:16:36
Mit dem "!" gehts leider auch nicht. Ich hab statt "View" den Namen meiner eingebetteten Ansicht angegeben. Sehr merkwürdig.
Titel: Re:Ansicht im Web, verbergen von "No documents found"
Beitrag von: Driri am 30.09.03 - 10:21:00
Hi,

vielleicht ne blöde Frage, aber schließt Du den Browser nach solchen Änderungen ?
Da hab ich schon öfters Probleme mit gehabt, weil ja alles mögliche gecached wird.
Titel: Re:Ansicht im Web, verbergen von "No documents found"
Beitrag von: bandit am 30.09.03 - 11:06:53
Daran habe ich auch schon gedacht. Notes geschlossen Browser geschlossen und Cache gelöscht im Browser.
Titel: Re:Ansicht im Web, verbergen von "No documents found"
Beitrag von: Axel Janssen temp am 30.09.03 - 11:24:57
Hi,

"alles mögliche gechached" finde ich ein bischen hm sagen wir unbefriedigend.

thema cache:

Mein Stand ist momentan.
1. Man kann es über html-Meta-Tags setzen: <meta http-equiv="Pragma" content="no-cache">
<meta http-equiv="Cache-Control" content="no-cache">
Das ist aber nicht besonders zuverlässig. V.a. wenn man hinter einem Unternehmensproxy sitzt. Dem sind nämlich die meta-tags egal.

2. und effektiver: Http-Header Felder setzen.
Http Header Felder stehen nicht im <head></head> der html Seite.
Typischster Fall ist wohl der content-type der gesendeten Ressource.
http-header Felder werden vor der html message geschickt und sind nur mit Zusatzgerätschaften sichtbar .
Apache-Axis hat dafür ein Tool.
Der sympathische Engländer von www.codestore.net beschäftigt sich auch damit und sprach vor ca 2 Wochen auf seinem Blog von einem kommerziellen Zusatztools.
Es gibt auch ein plug-in von Mozilla.

Ich wüsste aber gar nicht, wie ich http-Header Felder in Notes setze.
In Servlets mache ich es so:
Code
response.setHeader("Cache-Control","max-age=0");
response.setHeader("Pragma","no-cache");
response.setDateHeader("Expires", 0); //prevents caching at the proxy server
Geht das irgendwie in Domino?

Gruß Axel
Titel: Re:Ansicht im Web, verbergen von "No documents found"
Beitrag von: bandit am 01.10.03 - 09:18:59
Ich habe mir jetzt 2 Textzeilen gemacht, die eine mit der Formel:
@If(@Elements(@DbColumn("":"NoCache";@DbName;"View";1)))

und die andere mit der Formel:
!@If(@Elements(@DbColumn("":"NoCache";@DbName;"View";1)))

Es werden aber immer beide Textzeilen angezeigt egal ob "View" leer ist oder nicht.
Titel: Re:Ansicht im Web, verbergen von "No documents found"
Beitrag von: RvM am 01.10.03 - 10:22:39
Ich habe es wie folgt gelöst:
Die Ansicht ohne Inhalt wird per folgender Hide-When-Formel versteckt:
!(@DbColumn("";"";"Ansichtname";1) != "")
und dem entsprechend den Alternativ-Text mit der Formel:
(@DbColumn("";"";"Ansichtname";1) != "")
Titel: Re:Ansicht im Web, verbergen von "No documents found"
Beitrag von: Glombi am 01.10.03 - 10:47:09
@Axel: Den HTTP-Header kann man unter Notes 6 mit @SetHTTPHeader(...) setzen.

In R5 geht das wohl nicht. Ich habe das letztens mal gepostet, da das Verhalten des HTTP Notes Servers unter R5 und R6 extrem unterschiedlich ist. Wenn man im Browser Zurück - sprich history.back() - macht, werden alle Eingaben in Notes-Formularen gelöscht. Daher musste ich unter R6 die o.g. Funktion nutzen, um das Caching zu aktivieren.

Andreas

Nachtrag:
Es geht nur mit dem Zur Anzeige berechneten Feld mit der Formel
@sethttpheader("Expires" ; "0");
Titel: Re:Ansicht im Web, verbergen von "No documents found"
Beitrag von: Axel Janssen temp am 01.10.03 - 12:08:52
@Axel: Den HTTP-Header kann man unter Notes 6 mit @SetHTTPHeader(...) setzen.

Nachtrag:
Es geht nur mit dem Zur Anzeige berechneten Feld mit der Formel
@sethttpheader("Expires" ; "0");

Interessante Info.

In R5 geht das wohl nicht. Ich habe das letztens mal gepostet, da das Verhalten des HTTP Notes Servers unter R5 und R6 extrem unterschiedlich ist. Wenn man im Browser Zurück - sprich history.back() - macht, werden alle Eingaben in Notes-Formularen gelöscht. Daher musste ich unter R6 die o.g. Funktion nutzen, um das Caching zu aktivieren.

Dieses "manchmal-ist-back-button-echt-mies-für-den-Fluss-der-App"-Phänomen und sein Bruder das "Aktualisieren-button-is-even-more-evil"-Phänomen wird auch oft im JSP/Servlet Bereich oft diskutiert. Dies ist dort hoch in meiner Prio-Liste: http://www.livinglogic.de/Struts/index.html

Man müßte da auch für Domino generische Lösungen entwickeln. Denke mal drüber nach, wenn ich mehr Zeit habe. Es geht irgendwie mit cookies und  eindeutig generierten Nummern. Vielleicht kann man aus obigen framework Ideen übernehmen. Wirklich trivial ist das alles nicht.

Gruß Axel
 

Gruß Axel