Skip to content

Commit 985ab04

Browse files
REFACTORING: for ... of loops on the client side
1 parent 292fdfe commit 985ab04

File tree

9 files changed

+75
-82
lines changed

9 files changed

+75
-82
lines changed

app/templates/activity.html

Lines changed: 19 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -84,28 +84,27 @@ <h1>{{i18n.i_activity}}</h1>
8484
type: "GET",
8585
dataType: "json"
8686
}).done(function(data) {
87-
for (u in data.fullnames) {
88-
if (fullnames[data.fullnames[u].user] == null) fullnames[data.fullnames[u].user] = data.fullnames[u].fullname;
87+
for (u of data.fullnames) {
88+
if (fullnames[u.user] == null) fullnames[u.user] = u.fullname;
8989
}
9090
end = new Date(data.end);
9191
start = new Date(end.setFullYear(end.getFullYear() - 1));
9292
for (activity in {created,commented,modified}) {
9393
if (data['n'+activity].length > 0)
94-
for (i in data['n'+activity]) {
95-
var e = data['n'+activity][i],
96-
fullname = e.user;
94+
for (e of data['n'+activity]) {
95+
var fullname = e.user;
9796
if (fullnames[e.user] == null) getFullname(e.user);
9897
if (fullnames[e.user] != null) fullname = fullnames[e.user];
9998
$('#contributors .'+activity).append(fullname+'&nbsp;('+e.n+') ');
10099
}
101100
}
102-
for (var i in data.activity) {
103-
var date = data.activity[i].date;
101+
for (var a of data.activity) {
102+
var date = a.date;
104103
if(date > start.toJSON()) {
105104
all[moment(date).format('X')] = 1;
106-
if (data.activity[i].commented) commented[moment(date).format('X')] = 1;
107-
if (data.activity[i].created) created[moment(date).format('X')] = 1;
108-
if (data.activity[i].modified) modified[moment(date).format('X')] = 1;
105+
if (a.commented) commented[moment(date).format('X')] = 1;
106+
if (a.created) created[moment(date).format('X')] = 1;
107+
if (a.modified) modified[moment(date).format('X')] = 1;
109108
}
110109
}
111110
}).done(function() {
@@ -187,9 +186,9 @@ <h1>{{i18n.i_activity}}</h1>
187186
type: "GET",
188187
dataType: "json",
189188
success: function(data) {
190-
for (var i in data) {
191-
var [date, user, user_fullname, type] = [data[i].date, data[i].user, data[i].user_fullname, data[i].modified_type];
192-
if (typeof data[i].commented !== 'undefined') {
189+
for (var a of data) {
190+
var [date, user, user_fullname, type] = [a.date, a.user, a.user_fullname, a.modified_type];
191+
if (typeof a.commented !== 'undefined') {
193192
action = '{{i18n.i_commented}}&nbsp;: ';
194193
}
195194
path = type2path(type);
@@ -198,14 +197,14 @@ <h1>{{i18n.i_activity}}</h1>
198197
if (typeof user_fullname === 'undefined' && fullnames[user] !== null) user_fullname = fullnames[user];
199198
if (typeof user_fullname === 'undefined' && fullnames[user] == null) user_fullname = user;
200199

201-
if (typeof data[i].diary_label !== 'undefined') {
202-
if (typeof data[i].created !== 'undefined') action = '{{i18n.i_created}} {{i18n.i_the-diary}}';
203-
if (typeof data[i].modified !== 'undefined') action = '{{i18n.i_modified}} {{i18n.i_the-diary}}';
200+
if (typeof a.diary_label !== 'undefined') {
201+
if (typeof a.created !== 'undefined') action = '{{i18n.i_created}} {{i18n.i_the-diary}}';
202+
if (typeof a.modified !== 'undefined') action = '{{i18n.i_modified}} {{i18n.i_the-diary}}';
204203
} else {
205-
if (typeof data[i].commented !== 'undefined') action = '{{i18n.i_commented}}&nbsp;: ';
206-
if (typeof data[i].created !== 'undefined') action = '{{i18n.i_created}} ';
207-
if (typeof data[i].modified !== 'undefined') action = '{{i18n.i_modified}} ';
208-
action += '<a href="../../'+path+'/'+diary_id+'/'+data[i].modified_id+'">'+data[i].modified_name+'</a>';
204+
if (typeof a.commented !== 'undefined') action = '{{i18n.i_commented}}&nbsp;: ';
205+
if (typeof a.created !== 'undefined') action = '{{i18n.i_created}} ';
206+
if (typeof a.modified !== 'undefined') action = '{{i18n.i_modified}} ';
207+
action += '<a href="../../'+path+'/'+diary_id+'/'+a.modified_id+'">'+a.modified_name+'</a>';
209208
}
210209
var li = '<li>'
211210
+'<span id="'+date+'" class="'+date+' moment"></span>, '

app/templates/diagram.html

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -172,9 +172,8 @@ <h5 class="modal-title">{{i18n.i_link}}</h5>
172172
type: "GET",
173173
dataType: "json",
174174
success: function(grounds) {
175-
for (var i in grounds.rows) {
176-
var r = grounds.rows[i],
177-
id = r.value['id'],
175+
for (var r of grounds.rows) {
176+
var id = r.value['id'],
178177
ground_href = r.value['id'];
179178
ground_label = r.value['name'];
180179
if ($('#groundings>li').length < 2 && document.getElementById(id) == null && ground_href != "{{_id}}") {

app/templates/diaries.html

Lines changed: 20 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -80,10 +80,10 @@ <h5 class="card-title">{{i18n.i_create.diary}}</h5>
8080
}).done(function(data) {
8181
if(data.fullname.length == 0) $('#storing_fullname_dialog').modal('show');
8282
if(data.fullname) $('#username').text(data.fullname);
83-
for (var o in data.order) {
84-
if (typeof data.order[o].collection !== 'undefined') {
85-
let collection = data.order[o].collection,
86-
diary = data.order[o].diary;
83+
for (var o of data.order) {
84+
if (typeof o.collection !== 'undefined') {
85+
let collection = o.collection,
86+
diary = o.diary;
8787
if (document.getElementById(collection) == null) $("#content").append("<h3 class='collection d-none'>"+collection+"</h3><div id='"+collection+"' class='card-columns'></div>");
8888
if (document.getElementById(diary) !== null) {
8989
$('#'+collection).append($('#'+diary).parent().parent());
@@ -100,12 +100,12 @@ <h5 class="card-title">{{i18n.i_create.diary}}</h5>
100100
type: "GET",
101101
dataType: "json",
102102
success: function(data) {
103-
for (var i in data) {
104-
let id = data[i].id;
103+
for (var d of data) {
104+
let id = d.id;
105105
if (!$('#'+id).length) {
106106
var card = '<div class="card text-center bg-light mb-3">'
107107
+'<div title="{{i18n.i_integrate}} {{i18n.i_in}} {{i18n.i_collection}}" class="in-collection d-none"><img src="../style/chevron-down.svg" alt="v" /></div>'
108-
+'<h5><a href="../memo/'+id+'/">'+data[i].name+'</a></h5>'
108+
+'<h5><a href="../memo/'+id+'/">'+d.name+'</a></h5>'
109109
+'<div title="{{i18n.i_restricted-access}}" class="card-icons"><img src="../style/lock.svg" alt="" /></div>'
110110
+'<p><span id="'+id+'" title="{{i18n.i_memos}}" class="badge badge-pill badge-secondary progress-bar-striped progress-bar-animated d-none">{{i18n.i_loading}}</span></p>'
111111
+'</div>';
@@ -114,7 +114,7 @@ <h5 class="card-title">{{i18n.i_create.diary}}</h5>
114114
} else {
115115
$('#loading').after(card);
116116
}
117-
added.push(data[i].id);
117+
added.push(d.id);
118118
}
119119
}
120120
}
@@ -147,18 +147,18 @@ <h5 class="card-title">{{i18n.i_create.diary}}</h5>
147147
type: "GET",
148148
dataType: "json",
149149
success: function(data) {
150-
for (var i in data) {
151-
$('#'+data[i].id).text(data[i].size);
152-
if (data[i].news) {
153-
$('#'+data[i].id).prepend(data[i].news+' / ');
154-
$('#'+data[i].id).parent().parent().removeClass('bg-light');
155-
$('#'+data[i].id).parent().parent().addClass('alert-success');
156-
$('#'+data[i].id).parent().parent().attr("title", "{{i18n.i_updated-diary}}");
157-
$('#'+data[i].id).removeClass('badge-secondary');
158-
$('#'+data[i].id).addClass('badge-success');
159-
$('#'+data[i].id).attr("title", "{{i18n.i_memos-number}}");
160-
if (typeof data[i].lastvisit !== 'undefined')
161-
$("<br/><span class='moment'>{{i18n.i_last-visit}} "+moment(data[i].lastvisit).fromNow()+'</span>').insertAfter('#'+data[i].id);
150+
for (var n of data) {
151+
$('#'+n.id).text(n.size);
152+
if (n.news) {
153+
$('#'+n.id).prepend(n.news+' / ');
154+
$('#'+n.id).parent().parent().removeClass('bg-light');
155+
$('#'+n.id).parent().parent().addClass('alert-success');
156+
$('#'+n.id).parent().parent().attr("title", "{{i18n.i_updated-diary}}");
157+
$('#'+n.id).removeClass('badge-secondary');
158+
$('#'+n.id).addClass('badge-success');
159+
$('#'+n.id).attr("title", "{{i18n.i_memos-number}}");
160+
if (typeof n.lastvisit !== 'undefined')
161+
$("<br/><span class='moment'>{{i18n.i_last-visit}} "+moment(n.lastvisit).fromNow()+'</span>').insertAfter('#'+n.id);
162162
}
163163
}
164164
}

app/templates/diary.html

Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -296,22 +296,22 @@ <h1> <span id="size" class="badge badge-pill" title="{{i18n.i_memos}}"></span></
296296
};
297297

298298
function showList(data) {
299-
for (var i in data) {
300-
if(document.getElementById(data[i].id) == null) {
299+
for (var m of data) {
300+
if(document.getElementById(m.id) == null) {
301301
var unread = 'unread';
302-
var date = data[i].date;
303-
if('{{by}}' == 'update') date = data[i].update;
304-
var sort_key = data[i].sortkey;
305-
var j = activity.findIndex(e => e.doc === data[i].id);
306-
if (j > -1 && activity[j].date > data[i].update) unread = '';
307-
var checkbox = '<input type="checkbox" id="'+data[i].id+'" name="'+data[i].rev+'" class="hidden deletable" />';
308-
if (data[i].rev == 'statement') checkbox = '<input type="checkbox" class="hidden" disabled />';
309-
var li = '<li class="'+data[i].type+'" name="'+sort_key+'">' + checkbox
310-
+' <span id="'+data[i].id+'" name="'+data[i].update+'" class="'+date+' moment '+unread+'"></span>&nbsp;– '
302+
var date = m.date;
303+
if('{{by}}' == 'update') date = m.update;
304+
var sort_key = m.sortkey;
305+
var j = activity.findIndex(e => e.doc === m.id);
306+
if (j > -1 && activity[j].date > m.update) unread = '';
307+
var checkbox = '<input type="checkbox" id="'+m.id+'" name="'+m.rev+'" class="hidden deletable" />';
308+
if (m.rev == 'statement') checkbox = '<input type="checkbox" class="hidden" disabled />';
309+
var li = '<li class="'+m.type+'" name="'+sort_key+'">' + checkbox
310+
+' <span id="'+m.id+'" name="'+m.update+'" class="'+date+' moment '+unread+'"></span>&nbsp;– '
311311
+'<span class="mytooltip">'
312-
+'<a href="../../'+data[i].path+'/'+data[i].diary+'/'+data[i].id+'" class="'+unread+'">'+data[i].name+'</a>';
313-
if (typeof data[i].preview !== 'undefined' && data[i].preview.trim().length > 0)
314-
li += '<span class="preview text-{{>contrastcolor}} bg-{{>menucolor}}">'+data[i].preview+'</span>';
312+
+'<a href="../../'+m.path+'/'+m.diary+'/'+m.id+'" class="'+unread+'">'+m.name+'</a>';
313+
if (typeof m.preview !== 'undefined' && m.preview.trim().length > 0)
314+
li += '<span class="preview text-{{>contrastcolor}} bg-{{>menucolor}}">'+m.preview+'</span>';
315315
li += '</span></li>';
316316
$("#memos").append(li);
317317
}

app/templates/graph.html

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -281,15 +281,15 @@ <h1> <img title="{{i18n.i_memo.graph}}" src="../../style/{{type}}.svg"/> {{name}
281281
destroyGraphViz();
282282
var viz = new Viz(),
283283
graphviz = 'graph "{{name}}" {overlap=false; graph [fontname = "helvetica"]; node [fontname = "helvetica" style="filled" fillcolor="white"]; edge [fontname = "helvetica"];';
284-
for (var i in nodes) {
285-
graphviz += 'node'+nodes[i].id + '[label="' + nodes[i].label.replace(/['"]/g, '\'').replace(/\n/g, '\\n') + '", shape='+nodes[i].shape+']; ';
284+
for (var n of nodes) {
285+
graphviz += 'node'+n.id + '[label="' + n.label.replace(/['"]/g, '\'').replace(/\n/g, '\\n') + '", shape='+n.shape+']; ';
286286
}
287-
for (var i in edges) {
288-
if (nodes.findIndex(x => x.id === edges[i].to) > -1 && nodes.findIndex(x => x.id === edges[i].from) > -1) {
289-
if (edges[i].dashes == null) {
290-
graphviz += 'node'+edges[i].from + ' -- ' + 'node'+edges[i].to + '[color=' +edges[i].color+ ']; ';
287+
for (var e of edges) {
288+
if (nodes.findIndex(x => x.id === e.to) > -1 && nodes.findIndex(x => x.id === e.from) > -1) {
289+
if (e.dashes == null) {
290+
graphviz += 'node'+e.from + ' -- ' + 'node'+e.to + '[color=' +e.color+ ']; ';
291291
} else {
292-
graphviz += 'node'+edges[i].from + ' -- ' + 'node'+edges[i].to + '[style=dashed,color='+edges[i].color+',label="' +edges[i].label.replace(/['"]/g, '\'').replace(/\n/g, '\\n')+ '"]; ';
292+
graphviz += 'node'+e.from + ' -- ' + 'node'+e.to + '[style=dashed,color='+e.color+',label="' +e.label.replace(/['"]/g, '\'').replace(/\n/g, '\\n')+ '"]; ';
293293
}
294294
}
295295
}

app/templates/memo.html

Lines changed: 5 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -387,8 +387,7 @@ <h1><img src="{{>relpath}}style/{{type}}.svg"/> {{name}}</h1>
387387
dataType: "json",
388388
success: function(lexcorpus) {
389389
var corpus = {};
390-
for (var i in lexcorpus.rows) {
391-
var c = lexcorpus.rows[i];
390+
for (var c of lexcorpus.rows) {
392391
corpus[c.key[1]] = c.value;
393392
}
394393
$.ajax({
@@ -397,10 +396,9 @@ <h1><img src="{{>relpath}}style/{{type}}.svg"/> {{name}}</h1>
397396
dataType: "json",
398397
success: function(lexdoc) {
399398
var max_specific = 0;
400-
for (var j in lexdoc.rows) {
401-
var d = lexdoc.rows[j];
402-
var word = d.key[1];
403-
var inCorpus = corpus[word];
399+
for (var d of lexdoc.rows) {
400+
var word = d.key[1],
401+
inCorpus = corpus[word];
404402
metrics[word] = {
405403
rare: 1/inCorpus.sum,
406404
specific: Math.sqrt(d.value)/inCorpus.count,
@@ -422,8 +420,7 @@ <h1><img src="{{>relpath}}style/{{type}}.svg"/> {{name}}</h1>
422420
type: "GET",
423421
dataType: "json",
424422
success: function(phrases) {
425-
for (var l in phrases.rows) {
426-
var r = phrases.rows[l];
423+
for (var r of phrases.rows) {
427424
trigrams[[r.key[1], r.key[2], r.key[3]]] = r.value;
428425
}
429426
$('#repeated').removeClass('disabled');

app/templates/network.html

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -166,8 +166,7 @@ <h1>{{i18n.i_timeline}}</h1>
166166
graphviz += theoretical + '}}' + operational + '}'+ field + '}' + coding + '}}' + diagram + '}'+ storyline + '}';
167167
graphviz += '1->2->3->4->5->6 [style = invis]';
168168

169-
for (var i in edges) {
170-
var e = edges[i];
169+
for (var [i, e] of Object.entries(edges)) {
171170
var f = e;
172171
var j = surrenders.map(x => x.original).indexOf(e.from);
173172
if (j > -1) {
@@ -180,8 +179,7 @@ <h1>{{i18n.i_timeline}}</h1>
180179
edges.splice(i, 1, f);
181180
}
182181
}
183-
for (var i in edges) {
184-
var e = edges[i];
182+
for (var [i, e] of Object.entries(edges)) {
185183
if (edges.map(x => x.from+x.to).indexOf(e.from+e.to) == i && e.from != e.to) {
186184
graphviz += 'node'+e.from+' -> node'+e.to+' [color='+e.color+', constraint=false];';
187185
}

app/templates/table.html

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -250,11 +250,11 @@ <h1> <img title="{{i18n.i_memo.table}}" src="../../style/{{type}}.svg"/> {{name}
250250
{'color':'red', 'value': false, 'text': "{{i18n.i_false}}" },
251251
{'color':'', 'value': '...', 'text': "{{i18n.i_undef}}" }
252252
];
253-
for (i in colors) {
253+
for (c of colors) {
254254
var selected = false;
255-
if (selected_color == colors[i].color) selected = true ;
255+
if (selected_color == c.color) selected = true ;
256256
$(this).find('select').append(
257-
$('<option>', { value: selected_cell+colors[i].value, text: colors[i].text, class:colors[i].color, selected: selected })
257+
$('<option>', { value: selected_cell+c.value, text: c.text, class:c.color, selected: selected })
258258
);
259259
}
260260
});

app/templates/todo.html

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -103,10 +103,10 @@ <h2 id='ungrounded' class="hidden">{{i18n.i_ungrounded}}</h2>
103103
$('title').prepend(d.diary_name);
104104
nComments = d.comments.length;
105105
var data = d.comments;
106-
for (var i in data) {
106+
for (var c of data) {
107107
payload += "<li class='unchecked-comment'>"
108-
+'<span class="'+data[i].date+' moment"></span>&nbsp;– '
109-
+"<a href='../../"+data[i].type+"/"+data[i].diary+"/"+data[i].id+"'>"+data[i].name+"</a>"
108+
+'<span class="'+c.date+' moment"></span>&nbsp;– '
109+
+"<a href='../../"+c.type+"/"+c.diary+"/"+c.id+"'>"+c.name+"</a>"
110110
+'</li>';
111111
}
112112
}

0 commit comments

Comments
 (0)