svn_wc_tree 0.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (58) hide show
  1. data/ChangeLog +4 -0
  2. data/LICENSE +165 -0
  3. data/Manifest +57 -0
  4. data/README.rdoc +333 -0
  5. data/bin/svn_wc_tree +190 -0
  6. data/cgi/svn_wc_broker.cgi +38 -0
  7. data/lib/svn_wc_broker.rb +161 -0
  8. data/lib/svn_wc_client.rb +266 -0
  9. data/svn_conf.yaml +9 -0
  10. data/svn_wc_tree/css/swt.css +4 -0
  11. data/svn_wc_tree/img/swt_spinner.gif +0 -0
  12. data/svn_wc_tree/index.html +137 -0
  13. data/svn_wc_tree/index.php +29 -0
  14. data/svn_wc_tree/js/jquery-1.3.2.js +4376 -0
  15. data/svn_wc_tree/js/jquery.blockUI-2.31.js +477 -0
  16. data/svn_wc_tree/js/jquery.cookie.js +96 -0
  17. data/svn_wc_tree/js/jquery.tree.checkbox.js +75 -0
  18. data/svn_wc_tree/js/jquery.tree.js +2058 -0
  19. data/svn_wc_tree/js/source/jquery.tree.js +2058 -0
  20. data/svn_wc_tree/js/source/jquery.tree.min.js +1 -0
  21. data/svn_wc_tree/js/source/lib/jquery.cookie.js +96 -0
  22. data/svn_wc_tree/js/source/lib/jquery.hotkeys.js +244 -0
  23. data/svn_wc_tree/js/source/lib/jquery.js +19 -0
  24. data/svn_wc_tree/js/source/lib/jquery.metadata.js +122 -0
  25. data/svn_wc_tree/js/source/lib/sarissa.js +110 -0
  26. data/svn_wc_tree/js/source/plugins/_jquery.tree.rtl.js +32 -0
  27. data/svn_wc_tree/js/source/plugins/jquery.tree.checkbox.js +75 -0
  28. data/svn_wc_tree/js/source/plugins/jquery.tree.contextmenu.js +129 -0
  29. data/svn_wc_tree/js/source/plugins/jquery.tree.cookie.js +70 -0
  30. data/svn_wc_tree/js/source/plugins/jquery.tree.hotkeys.js +78 -0
  31. data/svn_wc_tree/js/source/plugins/jquery.tree.metadata.js +17 -0
  32. data/svn_wc_tree/js/source/plugins/jquery.tree.themeroller.js +33 -0
  33. data/svn_wc_tree/js/source/plugins/jquery.tree.xml_flat.js +123 -0
  34. data/svn_wc_tree/js/source/plugins/jquery.tree.xml_nested.js +124 -0
  35. data/svn_wc_tree/js/source/themes/apple/bg.jpg +0 -0
  36. data/svn_wc_tree/js/source/themes/apple/dot_for_ie.gif +0 -0
  37. data/svn_wc_tree/js/source/themes/apple/icons.png +0 -0
  38. data/svn_wc_tree/js/source/themes/apple/style.css +34 -0
  39. data/svn_wc_tree/js/source/themes/apple/throbber.gif +0 -0
  40. data/svn_wc_tree/js/source/themes/checkbox/dot_for_ie.gif +0 -0
  41. data/svn_wc_tree/js/source/themes/checkbox/icons.png +0 -0
  42. data/svn_wc_tree/js/source/themes/checkbox/style.css +38 -0
  43. data/svn_wc_tree/js/source/themes/checkbox/throbber.gif +0 -0
  44. data/svn_wc_tree/js/source/themes/classic/dot_for_ie.gif +0 -0
  45. data/svn_wc_tree/js/source/themes/classic/icons.png +0 -0
  46. data/svn_wc_tree/js/source/themes/classic/style.css +31 -0
  47. data/svn_wc_tree/js/source/themes/classic/throbber.gif +0 -0
  48. data/svn_wc_tree/js/source/themes/default/dot_for_ie.gif +0 -0
  49. data/svn_wc_tree/js/source/themes/default/icons.png +0 -0
  50. data/svn_wc_tree/js/source/themes/default/style.css +30 -0
  51. data/svn_wc_tree/js/source/themes/default/throbber.gif +0 -0
  52. data/svn_wc_tree/js/source/themes/themeroller/dot_for_ie.gif +0 -0
  53. data/svn_wc_tree/js/source/themes/themeroller/icons.png +0 -0
  54. data/svn_wc_tree/js/source/themes/themeroller/style.css +39 -0
  55. data/svn_wc_tree/js/source/themes/themeroller/throbber.gif +0 -0
  56. data/svn_wc_tree/js/swt.js +534 -0
  57. data/svn_wc_tree.conf +9 -0
  58. metadata +122 -0
@@ -0,0 +1,534 @@
1
+ // Copyright (c) 2009 David Wright
2
+ //
3
+ // You are free to modify and use this file under the terms of the GNU LGPL.
4
+ // You should have received a copy of the LGPL along with this file.
5
+ //
6
+ // Alternatively, you can find the latest version of the LGPL here:
7
+ //
8
+ // http://www.gnu.org/licenses/lgpl.txt
9
+ //
10
+ // This library is distributed in the hope that it will be useful,
11
+ // but WITHOUT ANY WARRANTY; without even the implied warranty of
12
+ // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13
+ // Lesser General Public License for more details.
14
+
15
+ // change for your host if necessary
16
+ var POST_URL = '';
17
+
18
+ ///////////////////////////////////////////////////////////////////////////////
19
+ // dont change anything below here //
20
+ ///////////////////////////////////////////////////////////////////////////////
21
+
22
+ //XXX/TODO this file needs to be refactored
23
+
24
+ var STATUS_SPACER = "\t"; // " "
25
+ var SVN_ACTION = '';
26
+
27
+ // jQuery BlockUI Plugin (v2)
28
+ $.blockUI.defaults.message = '<img src="img/swt_spinner.gif" /> Processing... ';
29
+ $.blockUI.defaults.css =
30
+ {
31
+ padding: 0,
32
+ margin: 0,
33
+ width: '40%',
34
+ top: '40%',
35
+ left: '35%',
36
+ textAlign: 'center',
37
+ color: '#000',
38
+ //border: '3px solid #aaa',
39
+ backgroundColor:'#fff',
40
+ cursor: 'wait'
41
+ };
42
+
43
+ // use yellow overlay
44
+ //$.blockUI.defaults.overlayCSS.backgroundColor = '#ccc';
45
+ // make overlay more transparent
46
+ //$.blockUI.defaults.overlayCSS.opacity = 12;
47
+ //$.blockUI.defaults.applyPlatformOpacityRules = false;
48
+ $(document).ajaxStart($.blockUI).ajaxStop($.unblockUI);
49
+
50
+
51
+ $(document).ready(function(){
52
+ var CHECKED_FILE_NAMES = []
53
+ var SVN_ENTRIES = []
54
+
55
+ // the repo tree
56
+ $(function () {
57
+ $("#svn_repo_entries_tree").tree({
58
+ plugins : {
59
+ contextmenu : {
60
+ items : {
61
+ // get rid of the default js_tree actions
62
+ remove : false,
63
+ rename : false,
64
+ create : false,
65
+ //my_act : {
66
+ // label : "My own action",
67
+ // icon : "", // you can set this to a classname or a path to an icon like ./myimage.gif
68
+ // visible : function (NODE, TREE_OBJ) {
69
+ // // this action will be disabled if more than one node is selected
70
+ // if(NODE.length != 1) return 0;
71
+ // // this action will not be in the list if condition is met
72
+ // if(TREE_OBJ.get_text(NODE) == "Child node 1") return -1;
73
+ // // otherwise - OK
74
+ // return 1;
75
+ // },
76
+ // action : function (NODE, TREE_OBJ) {
77
+ // alert(TREE_OBJ.get(NODE, "xml_nested", false));
78
+ // },
79
+ // separator_before : true
80
+ //},
81
+ // status occurs every time anyway
82
+ // svn status menu option
83
+ svn_status : {
84
+ label : 'svn status',
85
+ icon : '',
86
+ action : function (NODE, TREE_OBJ) {
87
+ SVN_ACTION = 'status';
88
+ TREE_OBJ.callback('beforedata', [NODE, TREE_OBJ]);
89
+ $.tree.focused().refresh();//refresh does a http POST
90
+ },
91
+ separator_before : true
92
+ },
93
+ // svn update menu option
94
+ svn_update : {
95
+ label : "svn update",
96
+ action : function (NODE, TREE_OBJ) {
97
+ post_req_svn_resp('update');
98
+ },
99
+ separator_before : true
100
+ },
101
+ // svn diff menu option
102
+ svn_diff : {
103
+ label : 'svn diff',
104
+ icon : '',
105
+ action : function (NODE, TREE_OBJ) {post_req_svn_resp('diff');},
106
+ separator_before : true
107
+ },
108
+ // svn commit menu option
109
+ svn_commit : {
110
+ label : 'svn commit',
111
+ icon : '',
112
+ action : function (NODE, TREE_OBJ) {
113
+ var enode = TREE_OBJ.get_text(NODE);
114
+ //console.log('['+enode+']');
115
+ //if (enode.match(/\S+\s+.*?/))
116
+ post_req_svn_resp('commit');
117
+ //else alert(enode + ' is upto date');
118
+ },
119
+ separator_before : true
120
+ },
121
+ // svn info menu option
122
+ svn_info : {
123
+ label : 'svn info',
124
+ icon : '',
125
+ action : function (NODE, TREE_OBJ) {
126
+ post_req_svn_resp('info');
127
+ },
128
+ separator_before : true
129
+ },
130
+ // svn add menu option
131
+ svn_add : {
132
+ label : 'svn add',
133
+ icon : '',
134
+ action : function (NODE, TREE_OBJ) {
135
+ post_req_svn_resp('add');
136
+ },
137
+ separator_before : true
138
+ },
139
+ // svn delete menu option
140
+ svn_delete : {
141
+ label : 'svn delete',
142
+ icon : '',
143
+ action : function (NODE, TREE_OBJ) { post_req_svn_resp('delete'); },
144
+ separator_before : true
145
+ },
146
+ // svn list all repo entries
147
+ svn_list : {
148
+ label : 'svn list',
149
+ icon : '',
150
+ //action : function (NODE, TREE_OBJ) { post_req_svn_resp('list'); },
151
+ action : function (NODE, TREE_OBJ) {
152
+ SVN_ACTION = 'list';
153
+ TREE_OBJ.callback('beforedata', [NODE, TREE_OBJ]);
154
+ //XXX THIS IS IT, refresh does a POST!
155
+ $.tree.focused().refresh();
156
+ },
157
+ separator_before : true
158
+ },
159
+ // svn delete menu option
160
+ svn_revert : {
161
+ label : 'svn revert',
162
+ icon : '',
163
+ action : function (NODE, TREE_OBJ) { post_req_svn_resp('revert'); },
164
+ separator_before : true
165
+ },
166
+ // svn ignore files
167
+ // XXX todo - for now make a igrnoe list
168
+ // and run svn propset svn:ignore -F ignore.txt . in repo root
169
+ //svn_ignore : {
170
+ // label : 'svn ignore',
171
+ // icon : '',
172
+ // action : function (NODE, TREE_OBJ) {
173
+ // post_req_svn_resp('ignore');
174
+ // },
175
+ // separator_before : true
176
+ //},
177
+ refresh : {
178
+ label : "refresh tree",
179
+ action : function (NODE, TREE_OBJ) {
180
+ window.location.reload();
181
+ //history.go();
182
+ },
183
+ separator_before : true
184
+ },
185
+ //remove : {
186
+ // label : "Filesystem Delete",
187
+ // icon : "remove",
188
+ // visible : function (NODE, TREE_OBJ) {
189
+ // var ok = true;
190
+ // $.each(NODE, function () {
191
+ // if(TREE_OBJ.check("deletable", this) == false) {
192
+ // ok = false;
193
+ // return false;
194
+ // }
195
+ // });
196
+ // return ok;
197
+ // },
198
+ // action : function (NODE, TREE_OBJ) {
199
+ // $.each(NODE, function () {
200
+ // var enode = TREE_OBJ.get_text(NODE);
201
+ // if(confirm('Delete ' + enode + '?')) {
202
+ // post_req_non_svn('delete');
203
+ // TREE_OBJ.remove(this);
204
+ // }
205
+ // });
206
+ // }
207
+ //}
208
+ }
209
+ },
210
+ checkbox : { //three_state: false
211
+ }
212
+ },
213
+ //ui : { theme_name : "classic" },
214
+ ui : { theme_name : "checkbox",
215
+ //theme_path : "/js/svn_wc_tree/source/themes/checkbox/style.css"
216
+ },
217
+ data : {
218
+ title : "Svn Repository Tree",
219
+ type : "json",
220
+ //async : true,
221
+ opts : {
222
+ method : "POST",
223
+ url : POST_URL
224
+ }
225
+ },
226
+ callback : {
227
+ onselect : function (NODE, TREE_OBJ) {
228
+ //console.log($(NODE).attr('id'));
229
+ CHECKED_FILE_NAMES[$(NODE).attr('id')] = TREE_OBJ.get_text(NODE);
230
+ },
231
+ //Triggered when a node is rightclicked
232
+ onrgtclk : function(NODE, TREE_OBJ, EV) {
233
+ // disable browser action on right click
234
+ EV.preventDefault();
235
+ EV.stopPropagation();
236
+ return false;
237
+ },
238
+ ondata : function(DATA, TREE_OBJ) {
239
+ return on_data(DATA, TREE_OBJ);
240
+ },
241
+ beforedata : function(NODE, TREE_OBJ) {
242
+ //console.log('beforedata' + $(NODE).attr('id'));
243
+ return {
244
+ 'do_svn_action': 'Do Svn Action',
245
+ 'svn_action' : SVN_ACTION,
246
+ 'svn_files' : [gather_selected_files()]
247
+ }
248
+ }
249
+ }
250
+ });
251
+ });
252
+
253
+ function on_data(DATA, TREE_OBJ) {
254
+ //console.log('on DATA'); console.log(DATA);
255
+ if (!DATA) document.write('No Data received, possibly your session expired');
256
+
257
+ var entries_list = new Array
258
+ if (DATA && DATA.length) {
259
+ var f_nodes = {
260
+ 'state' : 'open',
261
+ 'data' : DATA[0].repo_root_local_path,
262
+ 'children' : new Array
263
+ };
264
+ $("#svn_local_repo_root").val(DATA[0].repo_root_local_path);
265
+
266
+ // display high level repo info
267
+ display_repo_info(DATA[0]);
268
+
269
+ if (DATA[0].run_error) return display_error_message(DATA[0].run_error);
270
+ if (DATA[0].error) return display_error_message(DATA[0].error);
271
+
272
+
273
+ var f_node_children = new Array;
274
+ var has_status = ' ';
275
+ var repo_initial_state = 'open'; // open|closed
276
+ var amount_of_entries = DATA[0].entries.length;
277
+ if (amount_of_entries == 1) repo_up_to_date();
278
+ //if (amount_of_entries < 10) repo_initial_state = 'open';
279
+ // set hidden text field to repo root fs local path
280
+ for (i = 0; i<amount_of_entries; i++) {
281
+ ent = DATA[0].entries[i];
282
+ if (ent === undefined) continue;
283
+ if (ent.kind == 2){ // dir
284
+ f_nodes = {
285
+ 'state' : repo_initial_state,
286
+ 'data' : ent.dir_name,
287
+ 'children' : f_node_children
288
+ };
289
+ entries_list.push(f_nodes)
290
+ f_node_children = new Array;
291
+ } // regular file
292
+ else if (ent.kind == 1){ // file
293
+ if (ent.status) has_status = ent.status
294
+ var f_node_child = {
295
+ 'attributes' : {'id' : i},
296
+ data : has_status + STATUS_SPACER + ent.entry_name
297
+ };
298
+ f_node_children.push(f_node_child)
299
+ }
300
+ }
301
+ }
302
+ //console.log(entries_list);
303
+ return entries_list;
304
+ }
305
+
306
+ function repo_up_to_date(f_nodes){
307
+ var entries_list = new Array
308
+ $("#svn_action_results").prepend('<p style="color:blue">'
309
+ + 'Repository is up to date.</p>');
310
+ //if (DATA[0].entries === undefined){
311
+ // entries_list.push(f_nodes)
312
+ //}
313
+ //return entries_list;
314
+ }
315
+
316
+ function post_req_non_svn(action) {
317
+ //console.log('non svn request' + action);
318
+ $(function() {
319
+ $.post(
320
+ POST_URL, // post to url
321
+ {
322
+ 'do_action' : action,
323
+ 'files' : [gather_selected_files()]
324
+ },
325
+ // server response
326
+ function(resp){
327
+ //console.log(resp);
328
+ // is a runtime error
329
+ if (resp && resp[0] && resp[0].run_error) {
330
+ display_error_message(resp[0].run_error);
331
+ }
332
+ },
333
+ 'json'
334
+ );
335
+ });
336
+ };
337
+
338
+ function post_req_svn_resp(svn_action) {
339
+ //console.log('post_req_svn_resp');
340
+ $(function() {
341
+ $.post(// post to url
342
+ POST_URL, {
343
+ 'do_svn_action': 'Do Svn Action',
344
+ 'svn_action' : svn_action,
345
+ 'svn_files' : [gather_selected_files()]
346
+ },
347
+ // server response for svn action
348
+ function(resp){
349
+ process_server_response(svn_action,resp);
350
+ },
351
+ 'json'
352
+ );
353
+ });
354
+ return SVN_ENTRIES; // is global, not really necessary to return
355
+ };
356
+
357
+ function gather_selected_files(){
358
+ var svn_files = new Array;
359
+ ($.tree.plugins.checkbox.get_checked(
360
+ $.tree.reference("#svn_repo_entries_tree"))).each(
361
+ function () {
362
+ if(CHECKED_FILE_NAMES[this.id] !== undefined){
363
+ // absolute filesystem path location
364
+ entry = CHECKED_FILE_NAMES[this.id];
365
+ //#&nbsp; becomes odd 2 byte char
366
+ //entry.replace(/((\302\240)+|\t+|\s+)/, " ");
367
+ entry = entry.replace(/\s+/, ' ');
368
+ var info = entry.split(' ', 2);
369
+ //var abs_pn = info[0] + ' ' + $("#svn_local_repo_root").val() + info[1]
370
+ //console.log('in checked files');
371
+ //console.log(info);
372
+
373
+ var abs_pn = info[0] + ' ' + info[1]
374
+
375
+ // XXX this is a hck fix, figure it out
376
+ // odd bug, svn_files /home/httpd undefined
377
+ // just repo root sent, other files not seen!?
378
+ if (info[1] === undefined) abs_pn = info[1] + ' ' + info[0]
379
+
380
+ svn_files.push(abs_pn);
381
+ }
382
+ //console.log(svn_files);
383
+ }
384
+ )
385
+ return svn_files;
386
+ }
387
+
388
+ function process_server_response(svn_action, resp){
389
+ //console.log(resp + svn_action);
390
+
391
+ // is a runtime error
392
+ // XXX clean up server response - make consistent
393
+ var run_err = undefined;
394
+ if (resp && resp[0] && resp[0].run_error) run_err = resp[0].run_error;
395
+ else if (resp && resp.run_error) run_err = resp.run_error;
396
+ if (run_err) return display_error_message(resp.run_error);
397
+
398
+ // update tree display post success action
399
+ if (svn_action == 'commit') change_display_selected_files(STATUS_SPACER);
400
+ if (svn_action == 'revert') change_display_selected_files(STATUS_SPACER);
401
+ //if (svn_action == 'add') change_display_selected_files('A');
402
+
403
+ var show_response_area = false;
404
+ var display_svn_results = '';
405
+
406
+ for(i=0;i<resp.length;i++) {
407
+ if (resp[i].error || resp[i].content) show_response_area = true;
408
+
409
+ display_svn_results = process_content_and_entries(resp[i], svn_action,
410
+ display_svn_results);
411
+ }
412
+
413
+ if (show_response_area) $('#show_hide_container').show();
414
+ // populate our div
415
+ $("#svn_action_results").html(display_svn_results);
416
+ }
417
+
418
+
419
+ function process_content_and_entries(jdata, svn_action, display_svn_results){
420
+ var error = '';
421
+ var contents = '';
422
+
423
+ if (jdata.error) error = '<p style="color:red">'+jdata.error+'</p>';
424
+
425
+ // used for 'diff'
426
+ if (jdata.content) // expand newline to line break, '<' to html entity
427
+ contents += jdata.content.replace(/</g, '&lt;').replace(/\n/g, '<br/>');
428
+
429
+ if (jdata.entries) process_entries(jdata.entries, svn_action);
430
+
431
+ if (jdata.repo_root_local_path)
432
+ $("#svn_local_repo_root").val(jdata.repo_root_local_path);
433
+
434
+ if (contents)
435
+ display_svn_results += error + '<p style="color:grey">'+contents+'</p>';
436
+ else
437
+ display_svn_results += error;
438
+
439
+ return display_svn_results;
440
+ }
441
+
442
+ function process_entries(entries, svn_action){
443
+ SVN_ENTRIES = entries;
444
+ if (svn_action == 'status'){
445
+ //console.log('in status');
446
+ //for(j=0;j<SVN_ENTRIES.length;j++){
447
+ // //$.tree.focused().remove('#' + j);
448
+ // // XXX would need list of all entries as '#id'
449
+ // console.log(SVN_ENTRIES[j]);
450
+ // if(SVN_ENTRIES[j] !== undefined){
451
+ // $.tree.focused().create('#' + j);
452
+ // //remove the status, was committed (i.e 'M', or '?', '!', etc)
453
+ // //$.tree.focused().remove('#' + j);
454
+ // //console.log(CHECKED_FILE_NAMES[j]);
455
+ // //var ent = CHECKED_FILE_NAMES[j].replace(/.*?\s+/, STATUS_SPACER);
456
+ // //$.tree.focused().rename('#' + j, ent);
457
+
458
+ // // TREE_OBJ.create(false, TREE_OBJ.get_node(NODE[0]));
459
+ // }
460
+ // else {
461
+ // $.tree.focused().remove('#' + j, ent);
462
+ // }
463
+ //}
464
+ }
465
+ }
466
+
467
+ function change_display_selected_files(to_show){
468
+ //console.log(CHECKED_FILE_NAMES);
469
+
470
+ for(j=0;j<CHECKED_FILE_NAMES.length;j++){
471
+ if(CHECKED_FILE_NAMES[j] !== undefined){
472
+ //remove the status, was committed (i.e 'M', or '?', '!', etc)
473
+ //$.tree.focused().remove('#' + j);
474
+ //console.log(CHECKED_FILE_NAMES[j]);
475
+ //var ent = CHECKED_FILE_NAMES[j].replace(/.*?\s+/, STATUS_SPACER);
476
+ var ent = CHECKED_FILE_NAMES[j].replace(/.*?\s+/, to_show);
477
+ //$.tree.focused().rename('#' + j, ent);
478
+ $.tree.focused().remove('#' + j, ent);
479
+ }
480
+ }
481
+
482
+ }
483
+
484
+
485
+ //$("#show_repo").click(function () {
486
+ // if ($("#show_repo").attr('checked') == false){
487
+ // // dont show dir tree and no more work done
488
+ // $('#display_svn_repo_entries_tree').hide();
489
+ // return;
490
+ // }
491
+ //});
492
+ // the hide svn results gif
493
+ $('a#hide_n_show').click(function(){
494
+ if ( $("a#hide_n_show").html() == '[+]' ) {
495
+ // our content
496
+ $('#svn_action_results').show();
497
+ // switch the +/- buttons
498
+ $("#hide_n_show").html('[-]');
499
+ }
500
+ else if ($("a#hide_n_show").html() == '[-]') {
501
+ // our content
502
+ $('#svn_action_results').hide();
503
+ // switch the +/- buttons
504
+ $("a#hide_n_show").html('[+]');
505
+ }
506
+ });
507
+
508
+ //$("#refresh_list").click(function () {
509
+ // window.location.reload();
510
+ // //history.go();
511
+ //});
512
+
513
+ function display_error_message(error){
514
+ $("#svn_action_results").html('<p style="color:red">Error: '
515
+ + error + '</p>');
516
+ }
517
+
518
+ // high level repo details
519
+ function display_repo_info(r_info){
520
+ var display = 'Repository: ' + r_info.svn_repo_master + '<br/>';
521
+ display += 'User:&nbsp; ' + r_info.svn_user + '<br/>';
522
+ display += 'Config File: ' + r_info.svn_repo_config_file + '<br/>';
523
+ //r_info.repo_root_local_path
524
+ $("#display_repo_info").html('<span style="color:blue">' + display
525
+ + '</span><br/>');
526
+ }
527
+ //$('#display_repo_info').toggle(
528
+ // function () { $(this).css({"list-style-type":"disc", "color":"blue"}); }
529
+ //);
530
+ $("a#disp_repo_info").click(function() { $('#display_repo_info').toggle(); });
531
+
532
+
533
+ }); // end document.ready
534
+
data/svn_wc_tree.conf ADDED
@@ -0,0 +1,9 @@
1
+
2
+ mkdir PUBLIC_HTML/svn_wc_tree/
3
+ rsync -avz js PUBLIC_HTML/svn_wc_tree/
4
+ rsync -avz css PUBLIC_HTML/svn_wc_tree/
5
+ rsync -avz img PUBLIC_HTML/svn_wc_tree/
6
+ cp svn_wc_tree.html PUBLIC_HTML/svn_wc_tree/
7
+
8
+
9
+
metadata ADDED
@@ -0,0 +1,122 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: svn_wc_tree
3
+ version: !ruby/object:Gem::Version
4
+ prerelease: false
5
+ segments:
6
+ - 0
7
+ - 0
8
+ - 2
9
+ version: 0.0.2
10
+ platform: ruby
11
+ authors:
12
+ - David Wright
13
+ autorequire:
14
+ bindir: bin
15
+ cert_chain: []
16
+
17
+ date: 2010-03-10 00:00:00 -08:00
18
+ default_executable:
19
+ dependencies: []
20
+
21
+ description: |-
22
+ svn_wc_tree aims to provide an Web Application Front End GUI
23
+ to a working copy of an remote SVN Repository,
24
+ It does not do any sort of repository administration type
25
+ operations, just working directory repository management.
26
+ email: david_v_wright@yahoo.com
27
+ executables:
28
+ - svn_wc_tree
29
+ extensions: []
30
+
31
+ extra_rdoc_files: []
32
+
33
+ files:
34
+ - bin/svn_wc_tree
35
+ - cgi/svn_wc_broker.cgi
36
+ - ChangeLog
37
+ - lib/svn_wc_broker.rb
38
+ - lib/svn_wc_client.rb
39
+ - LICENSE
40
+ - Manifest
41
+ - README.rdoc
42
+ - svn_conf.yaml
43
+ - svn_wc_tree/css/swt.css
44
+ - svn_wc_tree/img/swt_spinner.gif
45
+ - svn_wc_tree/index.html
46
+ - svn_wc_tree/index.php
47
+ - svn_wc_tree.conf
48
+ - svn_wc_tree/js/swt.js
49
+ - svn_wc_tree/js/jquery-1.3.2.js
50
+ - svn_wc_tree/js/jquery.blockUI-2.31.js
51
+ - svn_wc_tree/js/jquery.cookie.js
52
+ - svn_wc_tree/js/jquery.tree.checkbox.js
53
+ - svn_wc_tree/js/jquery.tree.js
54
+ - svn_wc_tree/js/source/jquery.tree.js
55
+ - svn_wc_tree/js/source/jquery.tree.min.js
56
+ - svn_wc_tree/js/source/lib/jquery.cookie.js
57
+ - svn_wc_tree/js/source/lib/jquery.hotkeys.js
58
+ - svn_wc_tree/js/source/lib/jquery.js
59
+ - svn_wc_tree/js/source/lib/jquery.metadata.js
60
+ - svn_wc_tree/js/source/lib/sarissa.js
61
+ - svn_wc_tree/js/source/plugins/_jquery.tree.rtl.js
62
+ - svn_wc_tree/js/source/plugins/jquery.tree.checkbox.js
63
+ - svn_wc_tree/js/source/plugins/jquery.tree.contextmenu.js
64
+ - svn_wc_tree/js/source/plugins/jquery.tree.cookie.js
65
+ - svn_wc_tree/js/source/plugins/jquery.tree.hotkeys.js
66
+ - svn_wc_tree/js/source/plugins/jquery.tree.metadata.js
67
+ - svn_wc_tree/js/source/plugins/jquery.tree.themeroller.js
68
+ - svn_wc_tree/js/source/plugins/jquery.tree.xml_flat.js
69
+ - svn_wc_tree/js/source/plugins/jquery.tree.xml_nested.js
70
+ - svn_wc_tree/js/source/themes/apple/bg.jpg
71
+ - svn_wc_tree/js/source/themes/apple/dot_for_ie.gif
72
+ - svn_wc_tree/js/source/themes/apple/icons.png
73
+ - svn_wc_tree/js/source/themes/apple/style.css
74
+ - svn_wc_tree/js/source/themes/apple/throbber.gif
75
+ - svn_wc_tree/js/source/themes/checkbox/dot_for_ie.gif
76
+ - svn_wc_tree/js/source/themes/checkbox/icons.png
77
+ - svn_wc_tree/js/source/themes/checkbox/style.css
78
+ - svn_wc_tree/js/source/themes/checkbox/throbber.gif
79
+ - svn_wc_tree/js/source/themes/classic/dot_for_ie.gif
80
+ - svn_wc_tree/js/source/themes/classic/icons.png
81
+ - svn_wc_tree/js/source/themes/classic/style.css
82
+ - svn_wc_tree/js/source/themes/classic/throbber.gif
83
+ - svn_wc_tree/js/source/themes/default/dot_for_ie.gif
84
+ - svn_wc_tree/js/source/themes/default/icons.png
85
+ - svn_wc_tree/js/source/themes/default/style.css
86
+ - svn_wc_tree/js/source/themes/default/throbber.gif
87
+ - svn_wc_tree/js/source/themes/themeroller/dot_for_ie.gif
88
+ - svn_wc_tree/js/source/themes/themeroller/icons.png
89
+ - svn_wc_tree/js/source/themes/themeroller/style.css
90
+ - svn_wc_tree/js/source/themes/themeroller/throbber.gif
91
+ has_rdoc: true
92
+ homepage: http://www.dwright.us/misc/svn_wc_tree
93
+ licenses: []
94
+
95
+ post_install_message:
96
+ rdoc_options: []
97
+
98
+ require_paths:
99
+ - lib
100
+ required_ruby_version: !ruby/object:Gem::Requirement
101
+ requirements:
102
+ - - ">="
103
+ - !ruby/object:Gem::Version
104
+ segments:
105
+ - 0
106
+ version: "0"
107
+ required_rubygems_version: !ruby/object:Gem::Requirement
108
+ requirements:
109
+ - - ">="
110
+ - !ruby/object:Gem::Version
111
+ segments:
112
+ - 0
113
+ version: "0"
114
+ requirements: []
115
+
116
+ rubyforge_project:
117
+ rubygems_version: 1.3.6
118
+ signing_key:
119
+ specification_version: 3
120
+ summary: svn_wc_tree is a web application (GUI) that enables basic operations on a working copy of a Subversion repository.
121
+ test_files: []
122
+