1
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
4
<title>JWChat - Edit Bookmarks</title>
5
<meta http-equiv="content-type" content="text/html; charset=utf-8">
6
<script src="shared.js"></script>
7
<script src="switchStyle.js"></script>
8
<script src="jsjac.js"></script>
12
var srcW; // the source window with necessary data
15
* send bookmarks to server for storage
18
var iq = new JSJaCIQ();
20
var query = iq.setQuery('jabber:iq:private');
21
var storage = query.appendChild(
22
iq.buildNode('storage', {'xmlns': 'storage:bookmarks'}));
24
for (var i=0; i<srcW.bookmarks.length; i++) {
25
var item = storage.appendChild(iq.getDoc().createElement('conference'));
26
item.setAttribute('name',srcW.bookmarks[i].name);
27
item.setAttribute('jid',srcW.bookmarks[i].jid);
28
if (srcW.bookmarks[i].autojoin && srcW.bookmarks[i].autojoin == '1')
29
item.setAttribute('autojoin',srcW.bookmarks[i].autojoin);
30
item.appendChild(iq.getDoc().createElement('nick')).appendChild(iq.getDoc().createTextNode(srcW.bookmarks[i].nick));
31
if (typeof(srcW.bookmarks[i].pass) != 'undefined' && srcW.bookmarks[i].pass != '')
32
item.appendChild(iq.getDoc().createElement('pass')).appendChild(iq.getDoc().createTextNode(srcW.bookmarks[i].pass));
35
srcW.Debug.log(iq.getDoc().xml,2);
42
* updates or saves bookmark to global bookmark array
44
function saveBookmark() {
45
var bookmark = new Object();
47
if (document.forms[0].save_bookmark_as.value == '') {
48
alert("Please enter a name for this bookmark!");
51
bookmark.name = document.forms[0].save_bookmark_as.value;
53
bookmark.nick = (document.forms[0].nick.value == '') ? srcW.jid.substring(0,srcW.jid.indexOf('@')) : document.forms[0].nick.value;
55
if (document.forms[0].group.value == '') {
56
alert("Please enter a room to join");
60
if (document.forms[0].server.value == '') {
61
alert("Please enter a server name");
64
bookmark.jid = document.forms[0].group.value+"@"+document.forms[0].server.value;
66
bookmark.autojoin = (document.forms[0].autojoin.checked) ? '1' : '0';
68
bookmark.pass = document.forms[0].pass.value;
70
if (document.forms[0].bookmark_selector.selectedIndex == 0) { // add new bookmark
71
srcW.bookmarks[srcW.bookmarks.length] = bookmark;
72
} else { // update bookmark
73
srcW.bookmarks[document.forms[0].bookmark_selector.options[document.forms[0].bookmark_selector.selectedIndex].value] = bookmark;
80
function deleteBookmark() {
81
var bOpts = document.forms[0].bookmark_selector.options;
82
var bIdx = document.forms[0].bookmark_selector.selectedIndex;
86
srcW.bookmarks = srcW.bookmarks.slice(0,bOpts[bIdx].value).concat(srcW.bookmarks.slice(bOpts[bIdx].value+1,bOpts.length));
94
function bookmark_selected(el) {
95
if (el.selectedIndex == 0) { // clear form
96
document.forms[0].reset();
100
var bookmark= srcW.bookmarks[el.options[el.selectedIndex].value];
102
document.forms[0].save_bookmark_as.value = bookmark.name;
104
document.forms[0].nick.value = bookmark.nick;
106
document.forms[0].group.value = bookmark.jid.substring(0,bookmark.jid.indexOf('@'));
108
document.forms[0].server.value = bookmark.jid.substring(bookmark.jid.indexOf('@')+1);
110
if (typeof(bookmark.pass) != 'undefined')
111
document.forms[0].pass.value = bookmark.pass;
113
document.forms[0].pass.value = '';
115
document.forms[0].autojoin.checked = (bookmark.autojoin == '1');
120
/* get global bookmarks */
121
function updateBookmarks() {
122
var bookmark_selector = document.getElementById('bookmark_selector');
124
// clear list - don't remove first
125
for (var i=1; i<bookmark_selector.options.length; i++)
126
bookmark_selector.options[i] = null;
128
// fill from global arr
129
for (var i=0; i<srcW.bookmarks.length; i++)
130
bookmark_selector.options[optidx++] = new Option(srcW.bookmarks[i].name,i);
132
document.forms[0].reset();
134
// update bookmarks in joingroupchat too
135
if (srcW.frames['jwc_main'].groupw && srcW.frames['jwc_main'].groupw.updateBookmarks)
136
srcW.frames['jwc_main'].groupw.updateBookmarks();
141
// determine source window
142
if (opener.top.roster)
148
function keyPressed(e) {
156
onkeydown = keyPressed;
160
<script for="document" event="onkeydown()" language="JScript">
162
return keyPressed(window.event);
166
<body style="margin:8px;">
167
<form name="sub" onsubmit="return doSub();">
168
<table border="0" width="100%">
169
<tr><td>Bookmark</td><td><select id="bookmark_selector" onChange="return bookmark_selected(this);"><option value=''> - Choose Bookmark - </option></select></td></tr>
170
<tr><td colspan="2"><hr noshade size="1"></td></tr>
171
<tr><td>Name</td><td><input type="text" name="save_bookmark_as" size="32" style="width: 100%;"></td></tr>
172
<tr><td colspan="2"><hr noshade size="1"></td></tr>
173
<tr><td nowrap>Nickname</td><td width="100%"><input type="text" name="nick" size="32" style="width:100%;"></td></tr>
174
<tr><td nowrap>Room</td><td width="100%"><input type="text" name="group" size="32" style="width:100%;"></td></tr>
175
<tr><td nowrap>Server</td><td width="100%"><input type="text" name="server" size="32" style="width:100%;"></td></tr>
176
<tr><td nowrap>Password</td><td width="100%"><input type="text" name="pass" size="32" style="width:100%;"></td></tr>
177
<tr><td nowrap>Autojoin</td><td><input type="checkbox" name="autojoin"></td></tr>
179
<div align="right" id="buttonbox">
180
<button onClick="return saveBookmark();">Add/Update</button> <button onClick="return deleteBookmark();">Delete</button>
182
<hr noshade size="1" size="100%">
183
<div align="right" id="buttonbox">
184
<button type="button" onClick="window.close();">Cancel</button> <button type="submit">Save</button>