• Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 398
  • Last Modified:

Dialog List from a view with Link

I am creating a web page with a dialog list. The dialog list pulls the items from a view that I have created. On the computed dialog list formula I used
@DbColumn("";"";"WebView";1).
for the column I used
"[<a href="+URLName+">"+Title+"</a>
What I want is when I choose the dialog list it will open a particular URL. This can be easily done if you hardcode it using JavaScript on page, but what I want is that it pulls the data from a view which is easily maintainable.I am hoping for your help. Thanks.

from,
Barkley
0
Barkley
Asked:
Barkley
1 Solution
 
HemanthaKumarCommented:
Hi

From ur statement I understand that u wan't to open a dialog window where user chooses the option and that value should reflect in the field, right !

If so then u can't use dialog list used in notes as it is in the web, for that u should go for window opener javascript function. You can do it, for that there are few steps to be followed, if this is what u r looking for , let me know .


~Hemanth



0
 
BarkleyAuthor Commented:
Hemanth,
  Yes that is what I wanted, what I want is whenever the user clicks on one of the items in the dialog list, it will open the window of that link.But the items on that link, comes from a view not hardcoded.

Thanks,
Dennis
0
 
ghassan99Commented:
Create a form with 2 fields, 'Title' & 'URL'.  Create a view say 'Webs' with 2 columns 'Title' & 'URL' too which corresponds to the 2 fields in the form created above.  Make sure the first column is sorted.  Create your addresses from that form, eg. Title: Lotus, URL: http://www.lotus.com.
In your main form that will be displayed on the web, create a keyword field with this fomula: @DbColumn("";"";"webs";1), call the field say 'urls'.  Add a button next to it, call it 'Go To' with this formula:
@Command([FileCloseWindow]);
@Command([ToolsRunMacro];"redir")

'redir' is an agent that you must create with this code in the initialize event:

Dim s As New notessession
Dim doc,doc1 As notesdocument
Dim db As notesdatabase
Dim v As notesview
Set doc = s.documentcontext
Set db = s.currentdatabase
Set v = db.getview("Webs")
test = doc.urls
Set doc1 = v.getdocumentbykey(test(0))
test1 = doc1.url
Print "[" + test1(0) + "]"

The agent must be shared and 'Run Once...' and 'Manually from the Actions Menu'

I created this on R5, and tested it locally on R4 successfuly.  I believe it might create problems on R4 while not on local, but probably there is a workaround.

-Gus
0
Technology Partners: We Want Your Opinion!

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

 
BarkleyAuthor Commented:
ghassan99,
   Thanks for the reply.This will work if there is a button but what I wanted was the user will just click on the item and will trigger the URL. I am looking at the OnClick event which is JavaScript.
This is what I have also done:
Create a form with 2 fields, 'Title' & 'URL'.  Create a view say 'Webs' with 2 columns 'Title' & 'URL' too which corresponds to the 2 fields in the form created above.  Make sure the first column is sorted.  Create your addresses from that form, eg. Title: Lotus, URL: http://www.lotus.com.
In your main form that will be displayed on the web, create a keyword field with this fomula: @DbColumn("";"";"webs";1), call the field say 'urls'.  
On the event OnClick I call  a
javascript.

"<script language=\"JavaScript\">
function ref()
{location=document.forms[0].urls.options[0].text}</script>
This works if the URL is shown on the dialog list but if the Title is shown it does not work. I have to link the title and the URL whenever I click.
Thanks.

from,
Barkley







0
 
BarkleyAuthor Commented:
My problem now is how do I pass the  data from Notes R5 to JavaScript. I can get the URL link using DBLookup but I can only trigger it though the OnClick of JavaScript.If Notes and JavaScript can't pass the data, is there a Notes command similar to OnClick? Or a JavaScript that can do a DBLookup?

Need help,
Barkley
0
 
ghassan99Commented:
Then try and start the agent in JS, something like:
window.location="http://www.abc.com/redir?openagent"
in the onclick JS event.

-Gus
0
 
LRMCommented:
Hi Barkley,

Create a  form with 2 fields,"JavaScriptArray", “Choice”  and "$$HTMLHead".

The formula for the field JavaScriptArray is as follows:

"if(document.forms[0].KeywordfieldName.options[document.forms[0].KeywordfieldName.selectedIndex].text==\""
+@DbColumn("":"nocache";"";"webs";1)+"\"{"
+@NewLine
var url=\""+@DbColumn("":"nocache";"";"webs";2)+"\";"
+@NewLine
+"parent.location=url;"
+"}"

The formula for the field $$HTMLHead is as follows:

"<SCRIPT language=JavaScript>"+@NewLine
+<!--"+@NewLine
"function go(){"+@NewLine
+"     "+@Implode(JavaScriptArray;@NewLine)+@NewLine
+@NewLine
+"}"+@NewLine
+@NewLine
+"//-->"+@NewLine
+"</SCRIPT>"

The formula for the field Choice is as follows:

@DbColumn("":"nocache";"";"webs";1)

You can call the above JavaScript function in onChange event of Choice Field so that it will trigger when the user selects a value from the Keyword field.


~LRM
0
 
bennyliawCommented:
I believe LRM resolution should work, and I also have another simpler alternative.

Use the form with 2 fields that you already have.
In your "WebView", first column will be the title field and the second  is the url field.

Use following formula for the dialog list:
@DbColumn("";"";"WebView";1) + "|" + @DbColumn("";"";"WebView";2)

In th onchange event use following javascript:
location = document.forms[0].KeywordfieldName.options[document.forms[0].KeywordfieldName.selectedIndex].value

Let me know whether it works
benny@ematic.com
0
 
BarkleyAuthor Commented:
bennyliaw,
  your answer worked. So I will give you the points.
  I would also like to thank ghassan99 and LRM, their proposals all worked.But I have to choose the simplest answer.

Thanks to you guys for helping me.

from,
Barkley
0
 
ghassan99Commented:
Anytime...

-Gus
0

Featured Post

Keep up with what's happening at Experts Exchange!

Sign up to receive Decoded, a new monthly digest with product updates, feature release info, continuing education opportunities, and more.

Tackle projects and never again get stuck behind a technical roadblock.
Join Now