5
function make_unified(chunk) {
6
var pending_added = [];
7
function flush_adds(before) {
8
for (var i = 0; i < pending_added.length; i++) {
9
before.ancestor().insertBefore(pending_added[i], before);
11
pending_added.length = 0;
13
chunk.get('children').filter(".pseudorow").each(
15
if (line.hasClass("context")) {
17
line.removeChild(line.query('.code'));
19
else if (line.hasClass("both")) {
20
var added_line = line.create('<div class="pseudorow insert"><div class="lineNumber first"> </div><div class="clear"> </div></div>');
21
var clear = added_line.query('.clear');
22
added_line.insertBefore(line.query('.lineNumber.second'), clear);
23
added_line.insertBefore(line.query('.code.insert'), clear);
24
pending_added[pending_added.length] = added_line;
25
line.insertBefore(line.create('<div class="lineNumber second"> </div>'), line.query('.code.delete'));
26
line.replaceClass("both", "delete");
28
else if (line.hasClass("insert")) {
30
line.removeChild(line.query('.blank'));
32
else if (line.hasClass("delete")) {
33
line.removeChild(line.query('.blank'));
34
line.insertBefore(line.query('.lineNumber.second'), line.query('.code.delete'));
38
chunk.replaceClass('sbs', 'unified');
41
function make_sbs(chunk) {
44
function clear_bufs(before) {
45
if (!added.length && !removed.length) return;
47
var common = Math.min(added.length, removed.length);
48
for (var i = 0; i < common; i++) {
51
a.ancestor().removeChild(a);
52
r.removeChild(r.query('.lineNumber.second'));
53
r.insertBefore(a.query('.lineNumber.second'), r.query('.clear'));
54
r.insertBefore(a.query('.code.insert'), r.query('.clear'));
55
r.replaceClass('removed', 'both');
58
if (added.length > removed.length) {
59
for (var j = common; j < added.length; j++) {
61
a.insertBefore(a.create('<div class="blank"> </div>'), a.query('.lineNumber.second'));
64
else if (added.length < removed.length) {
65
for (var j = common; j < removed.length; j++) {
67
r.insertBefore(r.query('.code.delete'), r.query('.lineNumber.second'));
68
r.insertBefore(r.create('<div class="blank"> </div>'), r.query('.clear'));
74
chunk.get('children').filter(".pseudorow").each(
76
if (line.hasClass("context")) {
78
line.insertBefore(line.query('.code').cloneNode(true), line.query(".second"));
80
else if (line.hasClass("insert")) {
81
added[added.length] = line;
83
else if (line.hasClass("delete")) {
84
removed[removed.length] = line;
88
chunk.replaceClass('unified', 'sbs');
92
function toggle_unified_sbs(event) {
93
event.preventDefault();
95
Y.all(".pseudotable").each(make_sbs);
97
Y.get("#toggle_unified_sbs").set('textContent', "Show unified diffs");
100
Y.all(".pseudotable").each(make_unified);
102
Y.get("#toggle_unified_sbs").set('textContent', "Show diffs side-by-side");
106
Y.on("click", toggle_unified_sbs, '#toggle_unified_sbs');
108
"domready", function () {
109
Y.all(".show_if_js").removeClass("show_if_js");
3
function make_unified(chunk) {
4
var pending_added = [];
5
function flush_adds(before) {
6
for (var i = 0; i < pending_added.length; i++) {
7
before.ancestor().insertBefore(pending_added[i], before);
9
pending_added.length = 0;
11
chunk.get('children').filter(".pseudorow").each(
13
if (line.hasClass("context")) {
15
line.removeChild(line.query('.code'));
17
else if (line.hasClass("both")) {
18
var added_line = line.create('<div class="pseudorow insert"><div class="lineNumber first"> </div><div class="clear"> </div></div>');
19
var clear = added_line.query('.clear');
20
added_line.insertBefore(line.query('.lineNumber.second'), clear);
21
added_line.insertBefore(line.query('.code.insert'), clear);
22
pending_added[pending_added.length] = added_line;
23
line.insertBefore(line.create('<div class="lineNumber second"> </div>'), line.query('.code.delete'));
24
line.replaceClass("both", "delete");
26
else if (line.hasClass("insert")) {
28
line.removeChild(line.query('.blank'));
30
else if (line.hasClass("delete")) {
31
line.removeChild(line.query('.blank'));
32
line.insertBefore(line.query('.lineNumber.second'), line.query('.code.delete'));
36
chunk.replaceClass('sbs', 'unified');
39
function make_sbs(chunk) {
42
function clear_bufs(before) {
43
if (!added.length && !removed.length) return;
45
var common = Math.min(added.length, removed.length);
46
for (var i = 0; i < common; i++) {
49
a.ancestor().removeChild(a);
50
r.removeChild(r.query('.lineNumber.second'));
51
r.insertBefore(a.query('.lineNumber.second'), r.query('.clear'));
52
r.insertBefore(a.query('.code.insert'), r.query('.clear'));
53
r.replaceClass('removed', 'both');
56
if (added.length > removed.length) {
57
for (var j = common; j < added.length; j++) {
59
a.insertBefore(a.create('<div class="blank"> </div>'), a.query('.lineNumber.second'));
62
else if (added.length < removed.length) {
63
for (var j = common; j < removed.length; j++) {
65
r.insertBefore(r.query('.code.delete'), r.query('.lineNumber.second'));
66
r.insertBefore(r.create('<div class="blank"> </div>'), r.query('.clear'));
72
chunk.get('children').filter(".pseudorow").each(
74
if (line.hasClass("context")) {
76
line.insertBefore(line.query('.code').cloneNode(true), line.query(".second"));
78
else if (line.hasClass("insert")) {
79
added[added.length] = line;
81
else if (line.hasClass("delete")) {
82
removed[removed.length] = line;
86
chunk.replaceClass('unified', 'sbs');
90
function toggle_unified_sbs(event) {
91
event.preventDefault();
93
Y.all(".pseudotable").each(make_sbs);
95
Y.get("#toggle_unified_sbs").set('textContent', "Show unified diffs");
98
Y.all(".pseudotable").each(make_unified);
100
Y.get("#toggle_unified_sbs").set('textContent', "Show diffs side-by-side");
104
Y.on("click", toggle_unified_sbs, '#toggle_unified_sbs');
106
function toggle_expand_all_revisionview(action)
108
var diffs = Y.all('.diffBox');
109
if (diffs == null) return;
113
var collapsable = item.collapsable;
114
if(action == 'close')
116
Y.get('#expand_all').setStyle('display','block');
117
Y.get('#collapse_all').setStyle('display','none');
120
else if(action == 'open')
122
Y.get('#expand_all').setStyle('display','none');
123
Y.get('#collapse_all').setStyle('display','block');
132
event.preventDefault();
133
toggle_expand_all_revisionview('open');
141
event.preventDefault();
142
toggle_expand_all_revisionview('close');
148
"domready", function () {
149
Y.all(".show_if_js").removeClass("show_if_js");
150
var diffs = Y.all('.diffBox');
151
if (diffs == null) return;
155
var item_slide = item.next('.diffinfo');
156
var expand_icon = item.query( '.expand_diff' );
157
var collapsable = new Collapsable(item_slide, expand_icon, [], [], true);
158
item.query('.expand_diff').on('click', function(){collapsable.toggle();});
159
item.collapsable=collapsable;
b'\\ No newline at end of file'