Project:
stringle
Code Location:
http://stringle.googlecode.com/svn/trunk/trunk
stringleProfileSelect.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
<html> <head><title>Stringle Profile Selector</title> <link rel="stylesheet" type="text/css" href="http://yui.yahooapis.com/2.2.0/build/reset-fonts-grids/reset-fonts-grids.css"> <style type="text/css"> h2 {font-size:150%; margin-bottom:10px;} hr {margin-top:10px;margin-bottom:20px;} #about li {margin-left:15px;} a {text-decoration:none;} em {font-style: italic;} blockquote {margin:40px; font-style: italic;} p {margin-top:10px;} #ft {margin-top:40px;} #hd h1 {font-size: 200%; margin-top:10px;} #bd {margin-top:40px;} #container li {margin-top:10px; margin-bottom:20px; } #toolTypes input {margin-right:10px;margin-left:20px;} .cb {margin-right:10px} .courseFeed h2 {font-size:140%} .courseFeed {margin-top:10px;border-style:solid;border-width:1px;padding:5px;} #delmark{margin-top:20px;} </style> <script type="text/javascript"> function handleToolUrls(){ var t=getToolUrls(); alert(t); } function cleanNode(nodeId){ var output = document.getElementById(nodeId); for (;output.childNodes.length>0;) output.removeChild(output.firstChild); } function gIDval(id){return document.getElementById(id).value;} function getToolUrls(){ var tft=document.toolsForm.stringleTool; var toolUrls="The aim is to bookmark these with a particular StringLE profile tag ("+gIDval('profileName')+"):\n"; for (var k=0;k<tft.length;k++) { if (tft[k].checked==true) { toolUrls+=tft[k].value+"\n"; } } return toolUrls; } </script> <script type="text/javascript" src="http://del.icio.us/feeds/json/psychemedia/stringle:profile?count=100"></script> </head> <body onload="getTools()"> <div id="doc" class="yui-t7"> <div id="hd"><h1>StringLE Profile Selector</h1></div> <div id="bd"> <div class="yui-g"> <div id='about'><h2>About</h2> <p><em>StringLE Profiles</em> are predefined profiles - or configurations - of the StringLE environment. A StringLE profile defines one or more of:</p> <ul> <li>the StringLE navigation links that appear in the Grazr widget in the left hand StringLE column;</li> <li>the StringLE tool set that appears in the toolbar at the top of the central StringLE panel;</li> <li>the web page that is initially loaded into Web tab of the StringLE browser panel;</li> </ul> <p>Stringle profiles should be saved to delicious with the tag <em>stringle:profile</em>. Although the intention is to feed <em>all</em> bookmarked StringLE profiles into this page, only a limited set of profiles are listed here at the current time. If you would like any of your profiles to be considered for inclusion here, please bookmark them on delicious with an additional <em>for:psychemedia</em> tag.</p> </div><hr /> <form name="toolsForm"> <div id="deliName">Your delicious Username: <input id="deliNameInput" type="text" size="20" value='ouseful' /> <label for="profileTag">Profile/tag name: <input id='profileName' type='textbox' size='20' /> <!-- <input type="button" value="Save Profile" onclick="handleToolUrls()" /> --> <p>This information is used to generate the 'save this' links.</p></div> <hr /><div id='toolTypes'> <input type='radio' name='tooltype' value="all" checked='checked' onchange="updateTools(this.value)" />All <input type='radio' name='tooltype' value="video" onchange="updateTools(this.value)"/>Video based activity <input type='radio' name='tooltype' value="office" onchange="updateTools(this.value)"/>Office based activity <input type='radio' name='tooltype' value="collaboration" onchange="updateTools(this.value)"/>Collaborative activity <input type='radio' name='tooltype' value="multimedia" onchange="updateTools(this.value)"/>Multimedia Activity <input type='radio' name='tooltype' value="image" onchange="updateTools(this.value)"/>Image Based Activity <!-- <br /> <input type="button" value="View Recommended Profiles" onclick="getTools()" /> --></div> <div id="container"></div> </form> <script type="text/javascript"> // http://www.scriptygoddess.com/archives/2007/01/24/javascript-get-or-set-checked-radio-value/ // return the value of the radio button that is checked // return an empty string if none are checked, or // there are no radio buttons function getCheckedValue(radioObj) { if(!radioObj) return ""; var radioLength = radioObj.length; if(radioLength == undefined) if(radioObj.checked) return radioObj.value; else return ""; for(var i = 0; i < radioLength; i++) { if(radioObj[i].checked) { return radioObj[i].value; } } return ""; } function showImage(img){ return (function(){ img.style.display='inline'; }) } function getBookmarkURL(u,d){ var deliUser=document.getElementById('deliNameInput').value; var tags=document.getElementById('profileName').value; window.open('http://del.icio.us/'+deliUser+'?url='+u+'&description='+d+'&tags=stringle:profile%20'+encodeURI(tags)); } function getTools(){ var deliUser=document.getElementById('deliNameInput').value; var ul = document.createElement('ul'); ul.setAttribute('id','itemList'); for (var i=0, post; post = Delicious.posts[i]; i++) { var li = document.createElement('li') li.setAttribute('class', post.t.join(' ')); var cb = document.createElement('input'); cb.setAttribute('type','checkbox'); cb.setAttribute('name','stringleTool'); cb.setAttribute('value',post.u); cb.setAttribute('class','cb'); var a = document.createElement('a') a.style.marginLeft = '20px' var img = document.createElement('img') img.style.position = 'absolute' img.style.display = 'none' img.height = img.width = 16 img.src = post.u.split('/').splice(0,3).join('/')+'/favicon.ico' img.onload = showImage(img); a.setAttribute('href', post.u) a.appendChild(document.createTextNode(post.d)) var s=document.createElement('a'); s.setAttribute('href','javascript:getBookmarkURL("'+encodeURI(post.u)+'","'+escape(post.d)+'")'); s.appendChild(document.createTextNode('save this...')); //li.appendChild(cb) var u=document.createElement('a'); u.setAttribute('href',post.u); u.appendChild(document.createTextNode('Show me')); li.appendChild(img) li.appendChild(a) if (post.n){ var t = document.createTextNode(': '+post.n); li.appendChild(t) } li.appendChild(document.createTextNode(' ')); li.appendChild(u); li.appendChild(document.createTextNode(', ')); li.appendChild(s); ul.appendChild(li) } var c=document.getElementById('container'); cleanNode('container'); c.appendChild(ul); } function updateTools(toolType){ //alert(toolType+'\n'); var i=document.getElementById('itemList').getElementsByTagName('li'); for (j=0;j<i.length;j++) if ((toolType=='all')||(i[j].getAttribute('class').indexOf(toolType) != -1)) i[j].style.display='block'; else i[j].style.display='none'; //getSelector class //if all, display all //if particular selection, hide all not selected } //getTools(); </script> </div> </div> <div id="ft">Want to know more? <a href="http://ouseful.open.ac.uk/stringle"><em>StringLE Info</em></a></div> </div> </body> </html>
