9514: Refactor job log related bit out of log_viewer.js into job_log_viewer.js
[arvados.git] / apps / workbench / app / assets / javascripts / log_viewer.js
1 function gotoPage(n, logViewer, page, id) {
2     if (n < 0) { return; }
3     if (n*page > logViewer.matchingItems.length) { return; }
4     logViewer.page_offset = n;
5     logViewer.show(n*page, page);
6 }
7
8 function updatePaging(id, logViewer, page) {
9     var p = "";
10     var i = logViewer.matchingItems.length;
11     var n;
12     for (n = 0; (n*page) < i; n += 1) {
13         if (n == logViewer.page_offset) {
14             p += "<span class='log-viewer-page-num'>" + (n+1) + "</span> ";
15         } else {
16             p += "<a href=\"#\" class='log-viewer-page-num log-viewer-page-" + n + "'>" + (n+1) + "</a> ";
17         }
18     }
19     $(id).html(p);
20     for (n = 0; (n*page) < i; n += 1) {
21         (function(n) {
22             $(".log-viewer-page-" + n).on("click", function() {
23                 gotoPage(n, logViewer, page, id);
24                 return false;
25             });
26         })(n);
27     }
28
29     if (logViewer.page_offset == 0) {
30         $(".log-viewer-page-up").addClass("text-muted");
31     } else {
32         $(".log-viewer-page-up").removeClass("text-muted");
33     }
34
35     if (logViewer.page_offset == (n-1)) {
36         $(".log-viewer-page-down").addClass("text-muted");
37     } else {
38         $(".log-viewer-page-down").removeClass("text-muted");
39     }
40 }
41
42 function nextPage(logViewer, page, id) {
43     gotoPage(logViewer.page_offset+1, logViewer, page, id);
44 }
45
46 function prevPage(logViewer, page, id) {
47     gotoPage(logViewer.page_offset-1, logViewer, page, id);
48 }
49
50 function addToLogViewer(logViewer, lines) {
51     var items = [];
52     for (var a in lines) {
53       items.push({
54         message: lines[a].replace(/&/g, '&amp;').replace(/</g, '&lt;').replace(/>/g, '&gt;')
55       });
56     }
57     logViewer.add(items);
58 }