Author: smaisonneuve Date: 2015-05-26 12:51:44 +0000 (Tue, 26 May 2015) New Revision: 1481 Url: http://forge.nuiton.org/projects/sandbox/repository/revisions/1481 Log: [Refactoring] FilterLogs : moving txt and csv export tu a utility class Modified: wit/.eslintrc wit/index.html wit/js/components/FilterLogs.js Modified: wit/.eslintrc =================================================================== --- wit/.eslintrc 2015-05-26 10:37:24 UTC (rev 1480) +++ wit/.eslintrc 2015-05-26 12:51:44 UTC (rev 1481) @@ -6,7 +6,8 @@ "console": false, "React": false, "scope": false, - "alert": false + "alert": false, + "Printer": false }, "env": { "browser": true, Modified: wit/index.html =================================================================== --- wit/index.html 2015-05-26 10:37:24 UTC (rev 1480) +++ wit/index.html 2015-05-26 12:51:44 UTC (rev 1481) @@ -5,6 +5,7 @@ <!-- For React --> <script type="text/javascript" src="node_modules/react/dist/react-with-addons.js"></script> <script type="text/javascript" src="node_modules/react/dist/JSXTransformer.js"></script> + <script type="text/javascript" src="js/utils/Printer.js"></script> <script type="text/jsx" src="js/router/Routes.js"></script> <script type="text/jsx" src="js/router/Link.js"></script> Modified: wit/js/components/FilterLogs.js =================================================================== --- wit/js/components/FilterLogs.js 2015-05-26 10:37:24 UTC (rev 1480) +++ wit/js/components/FilterLogs.js 2015-05-26 12:51:44 UTC (rev 1481) @@ -3,84 +3,22 @@ var FilterLogs = React.createClass({ nonce: require("nonce")(), + printer: new Printer(), - getCSV: function() { - var result = ""; - - var nodes = document.querySelectorAll("tr"); - for (var r = 0, lr = nodes.length; r < lr; r++) { - var row = nodes[r].children; - - for (var c = 0, lc = row.length; c < lc; c++) { - var col = row[c]; - result += col.textContent + ";"; - } - result += "\n"; - } - - return result; - }, - - getTXT: function() { - var result = ""; - - var dates = Object.keys(this.state.data); - for (var date of dates) { - result += date + "\n--------\n"; - result += "\n" + this.getTXTRow(date, [], this.state.data[date]) + "\n"; - } - - return result; - }, - - getTXTRow: function(date, tags, tagObject) { - var r = ""; - - if (tagObject.duration) { - var state = this.state; - var filterTags = tags.filter(function(tag) { - return state.tags[tag]; - }); - - if (filterTags.length) { - r += tagObject.duration + " - " + filterTags.join(", ") + "\n"; - } - } - - var keys = Object.keys(tagObject); - for (var k of keys) { - if (k !== "diff" && k !== "duration") { - r += this.getTXTRow(date, tags.concat(k), tagObject[k]); - } - } - - return r; - }, - onClipboardCSV: function() { - var content = this.getCSV(); - this.clipboard(content); + this.printer.clipboard(Printer.CSV); }, onClipboardTXT: function() { - var content = this.getTXT(); - this.clipboard(content); + this.printer.clipboard(Printer.TXT, this.state); }, - clipboard: function(content) { - var gui = require("nw.gui"); - var clipboard = gui.Clipboard.get(); - clipboard.set(content, "text"); - }, - onMailCSV: function() { - var content = this.getCSV(); - this.mail(content); + this.printer.mail(Printer.CSV); }, onMailTXT: function() { - var content = this.getTXT(); - this.mail(content); + this.printer.mail(Printer.TXT, this.state); }, onShowSummary: function() { @@ -94,12 +32,6 @@ } }, - mail: function(content) { - content = content.replace(/\n/g, "%0A").replace(/;/g, "%3B").replace(/-/g, "%2D"); - var link = "mailto:?body=" + content; - window.location.href = link; - }, - onToggleFilterTag: function() { this.refs.filterTags.getDOMNode().classList.toggle("hidden"); },
participants (1)
-
smaisonneuveďź users.nuiton.org