Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- var requirements = [];
- var sortAsc = true;
- var sortId = "";
- Template.requirementsManagement.events({
- 'click .projectNameButton': function(event, template) {
- selectedprojectId = event.target.id;
- $('#projectSelectHeader').hide();
- $('#requirementSelectHeader').show();
- $("#selectProject").slideToggle(500);
- $("#selectRequirement").slideToggle(500);
- quarantines = this.quarantines;
- requirements = [];
- quarantinesOfSegments = [];
- quarantines.forEach(function(quarantineId) {
- var quarantine = Quarantines.findOne(quarantineId);
- if (quarantinesOfSegments.indexOf(quarantineId === -1)) {
- quarantinesOfSegments.push(quarantineId);
- }
- });
- Projects.findOne(selectedprojectId).requirements.forEach(function(requirement) {
- var foundIndex = -1;
- for (var i = 0; i < requirements.length; i++) {
- if (requirements[i].ID == requirement.ID && requirement.Version != "V1") {
- foundIndex = i;
- }
- }
- if (foundIndex > -1) {
- requirements.splice(foundIndex, 1);
- }
- requirements.push(requirement);
- });
- requirements.forEach(function(requirement) {
- quarantinesOfSegments.forEach(function(quarantineId) {
- var segmentData = Segments.find({
- quarantineId: quarantineId
- }).fetch()[0].data.message;
- segmentData.segmentedText.forEach(function(segmentedText) {
- if (segmentedText.textId == requirement.ID) {
- requirement.segment = segmentedText.bestSegmentFit
- }
- if (segments.indexOf(segmentedText.bestSegmentFit) == -1) {
- segments.push(segmentedText.bestSegmentFit);
- }
- });
- });
- });
- CreateTable("requirementsTable", "tableHeader", "tableBody", requirements, true);
- },
- 'click .reqManTHeaderTH': function(event, template) {
- var requirementsToUse = requirements;
- if (sortId != event.target.id) {
- sortAsc = true;
- sortId = event.target.id;
- }
- if (!sortAsc) {
- requirements.sort((a, b) => {
- const v1 = (sortAsc ? a : b)[sortId];
- const v2 = (sortAsc ? b : a)[sortId];
- return v1 < v2 ? -1 : (v1 > v2 ? 1 : 0);
- });
- // requirements = _.sortBy(requirements, event.target.id).reverse();
- } else {
- requirements = _.sortBy(requirements, sortId);
- }
- sortAsc = !sortAsc;
- CreateTable("requirementsTable", "tableHeader", "tableBody", requirements, true);
- }
- }
- CreateTable = function(table, header, body, requirements, clickable) {
- $('#' + header).empty();
- $('#' + body).empty();
- CreateTableHeader(header, requirements, false);
- if (clickable) {
- CreateTableBodyReqs(body, requirements);
- } else {
- CreateTableBody(body, requirements);
- }
- var table = $('#' + table);
- table.floatThead({
- scrollContainer: function(table) {
- return table.closest('.requirementsManagementTable');
- }
- });
- }
- CreateTableHeader = function(header, result, importingFile) {
- if (result.length > 0) {
- var array = Object.keys(result[0]);
- var columnHeaders = [];
- array.forEach(function(columnheader) {
- if (importingFile) {
- var checkNotImport = columnheader.substring(0, columnheader.length - 1);
- if (checkNotImport === "Do not import") {
- if (columnHeaders.indexOf(checkNotImport) == -1) {
- columnHeaders.push(checkNotImport);
- }
- } else {
- columnHeaders.push(columnheader);
- }
- } else {
- columnHeaders.push(columnheader);
- }
- });
- if (importingFile) {
- for (var i = 0; i < array.length; i++) {
- var line = "";
- line = "<th><select class=\"form-control\" id=\"sel" + i + "\">";
- for (var j = 0; j < columnHeaders.length; j++) {
- line += "<option id=\"opt" + j + "\">" + columnHeaders[j] + "</option>";
- }
- line += "</select></th>";
- $('#' + header).append(line);
- }
- var tableHeaders = $('#' + header).children();
- for (var i = 0; i < tableHeaders.length; i++) {
- if (columnHeaders[i]) {
- document.getElementById('sel' + i).selectedIndex = i;
- } else {
- document.getElementById('sel' + i).selectedIndex = columnHeaders.length - 1;
- }
- }
- } else {
- for (var j = 0; j < columnHeaders.length; j++) {
- line += "<th id=\"" + columnHeaders[j] + "\" class=\"reqManTHeaderTH\">";
- line += "<p id=\"" + columnHeaders[j] + "\" class=\"reqManTHeadText\">" + columnHeaders[j] + "</p><span id=\"" + columnHeaders[j] + "\" class=\"glyphicon glyphicon-arrow-down reqManTHeadGlyph\"></span>";
- line += "</th>";
- }
- $('#' + header).append(line);
- }
- }
- }
- CreateTableBody = function(body, result) {
- if (result.length > 0) {
- var array = Object.keys(result[0]);
- for (var i = 0; i < result.length; i++) {
- var line = '<tr>';
- for (var j = 0; j < array.length; j++) {
- var key = array[j];
- line += "<td class=\"tablecolumn\">" + result[i][key] + "</td>";
- }
- line += "</tr>"
- $('#' + body).append(line);
- }
- }
- }
- CreateTableBodyReqs = function(body, result) {
- if (result.length > 0) {
- var array = Object.keys(result[0]);
- for (var i = 0; i < result.length; i++) {
- var line = "<tr class=\"tableRowReqs\">";
- for (var j = 0; j < array.length; j++) {
- var key = array[j];
- line += "<td id=\"" + i + "\" class=\"tablecolumnReqs\">" + result[i][key] + "</td>";
- }
- line += "</tr>";
- $('#' + body).append(line);
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement