~ubuntu-branches/ubuntu/feisty/gnupod-tools/feisty

« back to all changes in this revision

Viewing changes to doc/mkspl.html

  • Committer: Bazaar Package Importer
  • Author(s): Brian Nelson
  • Date: 2005-04-05 09:10:01 UTC
  • mto: (2.1.1 sarge)
  • mto: This revision was merged to the branch mainline in revision 3.
  • Revision ID: james.westby@ubuntu.com-20050405091001-vjtr9oktjemr6mn6
Tags: upstream-0.98
ImportĀ upstreamĀ versionĀ 0.98

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
<html>
 
2
 <head>
 
3
  <title>SmartPlaylist generator</title>
 
4
  
 
5
  <script language="JavaScript">
 
6
  
 
7
  /* Define FORMs */
 
8
   var counter = 0;
 
9
 
 
10
   
 
11
   function mkspl() {
 
12
    var liveupdate = 1;
 
13
    
 
14
    var limitval = document.spling.limitval.value;
 
15
    var limititem =document.spling.limititem.value;
 
16
    var limitsort =document.spling.limitsort.value;
 
17
    var name = document.spling.name.value;
 
18
    
 
19
    var anymatch = 0;
 
20
    var checkrule = 'both';
 
21
    
 
22
    if(document.spling.anymatch.checked) {
 
23
     anymatch=1;
 
24
    }   
 
25
    
 
26
    if(document.spling.spl_match.checked == false) {
 
27
     document.spling.do_limit.checked = true; /*Force user */
 
28
     checkrule = 'limit';
 
29
    }
 
30
    else if(document.spling.do_limit.checked == false) {
 
31
     checkrule = 'spl';
 
32
    }
 
33
    
 
34
    
 
35
    var splLine = "<smartplaylist name=\""+name+"\" checkrule=\""+checkrule+"\" liveupdate=\""+liveupdate+"\" limititem=\""+
 
36
                  limititem+"\" limitval=\""+limitval+"\" limitsort=\""+limitsort+"\" matchany=\""+anymatch+"\" >\n";
 
37
   
 
38
    var spl_field;
 
39
    var spl_action;
 
40
    var spl_value;
 
41
    var evalme;
 
42
    for(var i=1;i<=counter;i++) {
 
43
     var action_field = getField(getChangedTo(i));
 
44
     var value_field  = getvalueField(getChangedTo(i));
 
45
     evalme =  "spl_field = document.spling.field_"+i+".value;";
 
46
     evalme += "spl_action = document.spling."+action_field+"_"+i+".value;";
 
47
     evalme += "spl_value  = document.spling."+value_field+"_"+i+".value;";           
 
48
     eval(evalme);
 
49
     spl_field = spl_field.substr(1);
 
50
     splLine += "  <spl action=\""+spl_action+"\" field=\""+spl_field+"\" string=\""+spl_value+"\" />\n";
 
51
    }
 
52
     splLine += "</smartplaylist>";
 
53
     document.spling.FINISH.value = splLine;
 
54
   }
 
55
  
 
56
 
 
57
  /* Handle a change of the FIELD item 
 
58
    - Set the current ACTION
 
59
    - Set the current value vield */
 
60
  function xChange(init_fID, xn) {
 
61
  
 
62
   var fID 
 
63
   
 
64
   if(xn) { /* We got a this. */
 
65
    fID = xn.name.substr((xn.name.length)-1,1);
 
66
   }
 
67
   else { /* No this.. primitive forced */
 
68
    fID = init_fID;
 
69
   }
 
70
 
 
71
   /* Hide forms */
 
72
   eval("document.spling.INTaction_"+fID+".style.display = 'none'");
 
73
   eval("document.spling.STRaction_"+fID+".style.display = 'none'");
 
74
   eval("document.spling.BOOLaction_"+fID+".style.display = 'none'");
 
75
   eval("document.spling.RATINGaction_"+fID+".style.display = 'none'");
 
76
 
 
77
   eval("document.spling.RATINGvalue_"+fID+".style.display = 'none'");
 
78
   eval("document.spling.value_"+fID+".style.display = 'none'");
 
79
 
 
80
   var changedto = getChangedTo(fID);
 
81
   var a_field   = getField(changedto);
 
82
   var v_field   = getvalueField(changedto);
 
83
 
 
84
   if (a_field) {
 
85
     eval("document.spling."+a_field+"_"+fID+".style.display = 'inline'");
 
86
   }
 
87
   
 
88
     eval("document.spling."+v_field+"_"+fID+".style.display = 'inline'");
 
89
   
 
90
   if(changedto == 'B') {
 
91
    eval("document.spling.value_"+fID+".style.display = 'none'");   
 
92
   }
 
93
 
 
94
 
 
95
 
 
96
  }
 
97
  
 
98
  function getChangedTo(ID) {
 
99
   var returnme = -1;
 
100
   eval("returnme = document.spling.field_"+ID+".value.substr(0,1)");
 
101
   return returnme;
 
102
  }
 
103
  
 
104
  
 
105
  function getField(ChangedTo) {
 
106
   if(ChangedTo == "S") {
 
107
    return "STRaction";
 
108
   }
 
109
   else if(ChangedTo == "I") {
 
110
    return "INTaction";
 
111
   }
 
112
   else if(ChangedTo == "B") {
 
113
    return "BOOLaction";
 
114
   }   
 
115
   else if(ChangedTo == "R") {
 
116
    return "RATINGaction";
 
117
   }
 
118
   else {
 
119
    alert("Sorry, i can't handle this type ATM.. somebody would have to write code ;)\nkey: "+ChangedTo);
 
120
    return 0;
 
121
   }
 
122
  }
 
123
  
 
124
  function getvalueField(ChangedTo) {
 
125
   if(ChangedTo == "R") {
 
126
    return "RATINGvalue";
 
127
   }
 
128
   return "value";
 
129
  }  
 
130
 
 
131
  
 
132
  
 
133
  
 
134
 
 
135
/* Add a new mode.. 'Stolen' from www.quirksmode.org */
 
136
 
 
137
function moreFields()
 
138
{
 
139
  counter++; /* Inc counter */
 
140
  var newFields = document.getElementById('splmatcher').cloneNode(true);
 
141
  newFields.id = '';
 
142
  newFields.style.display = 'block';
 
143
  var newField = newFields.childNodes;
 
144
    /* Change the name */
 
145
  for (var i=0;i<newField.length;i++) {
 
146
    var theName = newField[i].name
 
147
    if (theName) {
 
148
      newField[i].name = theName + counter;
 
149
    }
 
150
  }
 
151
    var insertHere = document.getElementById('writeroot');
 
152
    insertHere.parentNode.insertBefore(newFields,insertHere);
 
153
    xChange(counter); /* Force Change Event */
 
154
 
155
  
 
156
  </script>
 
157
  
 
158
 </head>
 
159
 
 
160
 <body onLoad="javascript:moreFields()" bgcolor="#DEDBD6">
 
161
 
 
162
 <form name="spling">
 
163
 <table border=1>
 
164
 <tr><td>
 
165
  <input type="text" name="name" value="SmartPlaylist Name"><br>
 
166
 </td></tr>
 
167
 
 
168
 <tr><td>
 
169
 
 
170
  <input type="checkbox" name="spl_match" value=1> Match &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
 
171
  <input type="checkbox" name="anymatch" value=1> any
 
172
 
 
173
  <div id="splmatcher" style="display: none">
 
174
<select name="field_" onChange="javascript:xChange(0,this)">
 
175
   <option value="Stitle">Title</option>
 
176
   <option value="Salbum">Album</option>
 
177
   <option value="Sartist">Artist</option>
 
178
   <option value="Sgenre">Genre</option>
 
179
   <option value="Sfdesc">Description</option>
 
180
   <option value="Scomment">Comment</option>
 
181
   <option value="Scomposer">Composer</option>
 
182
   <option value="Sgroup">Group</option>
 
183
   <option value="Ibitrate">Bitrate</option>
 
184
   <option value="Israte">Sampling Rate</option>
 
185
   <option value="Iyear">Year</option>
 
186
   <option value="Dchangetime">Changetime</option>
 
187
   <option value="Itracknum">Tracknumber</option>
 
188
   <option value="Isize">Size</option>
 
189
   <option value="Itime">Playtime</option>
 
190
   <option value="Daddtime">Addtime</option>
 
191
   <option value="Iplaycount">Playcount</option>
 
192
   <option value="Dlastplay">Last played</option>
 
193
   <option value="Icdnum">CD Number</option>
 
194
   <option value="Rrating">Rating</option>
 
195
   <option value="Bcompilation">Compilation</option>
 
196
   <option value="Ibpm">BPM</option>
 
197
  </select>  
 
198
   
 
199
  <select name="INTaction_">
 
200
   <option value="eq">==</option>
 
201
   <option value="!eq">!=</option>
 
202
   <option value="gt">&gt;</option>
 
203
   <option value="lt">&lt;</option>
 
204
   <option value="range">Range (use from:to)</option>
 
205
   <option value="!range">not Range (use from:to)</option>
 
206
  </select> 
 
207
  
 
208
  <select name="STRaction_">
 
209
   <option value="IS">is</option>
 
210
   <option value="NOT_IS">is not</option>
 
211
   <option value="CONTAINS">contains</option>
 
212
   <option value="NOT_CONTAINS">doesn't contain</option>
 
213
   <option value="STARTWITH">starts with</option>
 
214
   <option value="NOT_STARTWITH">doesn't start with</option>
 
215
   <option value="ENDWITH">ends with</option>
 
216
   <option value="NOT_ENDWITH">doesn't end with</option>
 
217
  </select>
 
218
 
 
219
  <select name="BOOLaction_">
 
220
   <option value="eq">set</option>
 
221
   <option value="!eq">not set</option>
 
222
  </select>
 
223
 
 
224
  <select name="RATINGaction_">
 
225
   <option value="eq">is</option>
 
226
   <option value="!eq">is not</option>
 
227
   <option value="gt">more than</option>
 
228
   <option value="lt">less than</option>
 
229
   <option value="range">Range (use from:to) FIXME</option>
 
230
   <option value="!range">not Range (use from:to) FIXME</option>
 
231
  </select> 
 
232
 
 
233
  <select name="RATINGvalue_">
 
234
   <option value="0">no rating</option>
 
235
   <option value="20">* star</option>
 
236
   <option value="40">** stars</option>
 
237
   <option value="60">*** stars</option>
 
238
   <option value="80">**** stars</option>
 
239
   <option value="100">***** stars</option>
 
240
  </select>
 
241
 
 
242
  <input name="value_">
 
243
 
 
244
  
 
245
  </div>
 
246
  
 
247
 
 
248
<span id="writeroot"></span>
 
249
 
 
250
  <a href="#" onClick="javascript:moreFields()">ADD</a>
 
251
  
 
252
  
 
253
 </td></tr>
 
254
 
 
255
 <tr><td>
 
256
 <input type="checkbox" name="do_limit"> Limit to <input type=text name=limitval> 
 
257
 
 
258
 <select name="limititem">
 
259
  <option value="minute">Minutes</option>
 
260
  <option value="hour">Hours</option>
 
261
  <option value="song">Songs</option>
 
262
  <option value="megabyte">Mb.</option>
 
263
  <option value="gigabyte">Gb.</option>
 
264
 </select>
 
265
 
 
266
 sort by 
 
267
 <select name="limitsort">
 
268
  <option value="random">Random</option>
 
269
  <option value="title">Title</option>
 
270
  <option value="album">Album</option>
 
271
  <option value="artist">Artist</option>
 
272
  <option value="genre">Genre</option>
 
273
  <option value="addtime_high">Added recent</option>
 
274
  <option value="addtime_low">Added long ago</option>
 
275
  <option value="playcount_high">Played often</option>
 
276
  <option value="playcount_low">Seldom played</option>
 
277
  <option value="lastplay_high">Played recent</option>
 
278
  <option value="lastplay_low">Played long ago</option>
 
279
  <option value="rating_high">Highest rating</option>
 
280
  <option value="rating_low">Lowest rating</option>
 
281
 </select>
 
282
 </td></tr>
 
283
 </table>
 
284
 
 
285
 <a href="#" onClick="mkspl()">Create SPL</a>
 
286
 <br>
 
287
 
 
288
 
 
289
 <textarea rows=12 cols=120 name=FINISH></textarea>
 
290
  </form> 
 
291
 </body>
 
292
</html>