iteration
This commit is contained in:
@@ -22,6 +22,7 @@ export default class ColDefFactory {
|
|||||||
{headerName: "Name", field: "name",
|
{headerName: "Name", field: "name",
|
||||||
width: 150, pinned: true},
|
width: 150, pinned: true},
|
||||||
{headerName: "Country", field: "country", width: 150,
|
{headerName: "Country", field: "country", width: 150,
|
||||||
|
// not bothering with React for country, as it's a simple HTML string
|
||||||
cellRenderer: countryCellRenderer, pinned: true,
|
cellRenderer: countryCellRenderer, pinned: true,
|
||||||
filterParams: {cellRenderer: countryCellRenderer, cellHeight: 20}},
|
filterParams: {cellRenderer: countryCellRenderer, cellHeight: 20}},
|
||||||
]
|
]
|
||||||
@@ -30,11 +31,15 @@ export default class ColDefFactory {
|
|||||||
headerName: 'IT Skills',
|
headerName: 'IT Skills',
|
||||||
children: [
|
children: [
|
||||||
{headerName: "Skills", width: 125, suppressSorting: true, field: 'skills',
|
{headerName: "Skills", width: 125, suppressSorting: true, field: 'skills',
|
||||||
|
// using ag-Grid's React cellRenderer factory
|
||||||
cellRenderer: reactCellRendererFactory(SkillsCellRenderer),
|
cellRenderer: reactCellRendererFactory(SkillsCellRenderer),
|
||||||
|
// using ag-Grid's React filter factory
|
||||||
filter: reactFilterFactory(SkillsFilter)
|
filter: reactFilterFactory(SkillsFilter)
|
||||||
},
|
},
|
||||||
{headerName: "Proficiency", field: "proficiency", filter: 'number', width: 120,
|
{headerName: "Proficiency", field: "proficiency", filter: 'number', width: 120,
|
||||||
|
// using ag-Grid's React cellRenderer factory
|
||||||
cellRenderer: reactCellRendererFactory(ProficiencyCellRenderer),
|
cellRenderer: reactCellRendererFactory(ProficiencyCellRenderer),
|
||||||
|
// using ag-Grid's React filter factory
|
||||||
filter: reactFilterFactory(ProficiencyFilter)}
|
filter: reactFilterFactory(ProficiencyFilter)}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
@@ -54,155 +59,8 @@ export default class ColDefFactory {
|
|||||||
// this is a simple cell renderer, putting together static html, no
|
// this is a simple cell renderer, putting together static html, no
|
||||||
// need to use React for it.
|
// need to use React for it.
|
||||||
function countryCellRenderer(params) {
|
function countryCellRenderer(params) {
|
||||||
var flag = "<img border='0' width='15' height='10' style='margin-bottom: 2px' src='http://flags.fmcdn.net/data/flags/mini/" + RefData.COUNTRY_CODES[params.value] + ".png'>";
|
var flag = "<img border='0' width='15' height='10' " +
|
||||||
|
"style='margin-bottom: 2px' src='http://flags.fmcdn.net/data/flags/mini/"
|
||||||
|
+ RefData.COUNTRY_CODES[params.value] + ".png'>";
|
||||||
return flag + " " + params.value;
|
return flag + " " + params.value;
|
||||||
}
|
}
|
||||||
/*
|
|
||||||
var SKILL_TEMPLATE =
|
|
||||||
'<label style="border: 1px solid lightgrey; margin: 4px; padding: 4px; display: inline-block;">' +
|
|
||||||
' <span>' +
|
|
||||||
' <div style="text-align: center;">SKILL_NAME</div>' +
|
|
||||||
' <div>' +
|
|
||||||
' <input type="checkbox"/>' +
|
|
||||||
' <img src="images/skills/SKILL.png" width="30px"/>' +
|
|
||||||
' </div>' +
|
|
||||||
' </span>' +
|
|
||||||
'</label>';
|
|
||||||
|
|
||||||
var FILTER_TITLE =
|
|
||||||
'<div style="text-align: center; background: lightgray; width: 100%; display: block; border-bottom: 1px solid grey;">' +
|
|
||||||
'<b>TITLE_NAME</b>' +
|
|
||||||
'</div>';*/
|
|
||||||
/*
|
|
||||||
function SkillFilter() {
|
|
||||||
}
|
|
||||||
|
|
||||||
SkillFilter.prototype.init = function (params) {
|
|
||||||
this.filterChangedCallback = params.filterChangedCallback;
|
|
||||||
this.model = {
|
|
||||||
android: false,
|
|
||||||
css: false,
|
|
||||||
html5: false,
|
|
||||||
mac: false,
|
|
||||||
windows: false
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
SkillFilter.prototype.getGui = function () {
|
|
||||||
var eGui = document.createElement('div');
|
|
||||||
eGui.style.width = '380px';
|
|
||||||
var eInstructions = document.createElement('div');
|
|
||||||
eInstructions.innerHTML = FILTER_TITLE.replace('TITLE_NAME', 'Custom Skills Filter');
|
|
||||||
eGui.appendChild(eInstructions);
|
|
||||||
|
|
||||||
var that = this;
|
|
||||||
|
|
||||||
RefData.IT_SKILLS.forEach(function (skill, index) {
|
|
||||||
var skillName = RefData.IT_SKILLS_NAMES[index];
|
|
||||||
var eSpan = document.createElement('span');
|
|
||||||
var html = SKILL_TEMPLATE.replace("SKILL_NAME", skillName).replace("SKILL", skill);
|
|
||||||
eSpan.innerHTML = html;
|
|
||||||
|
|
||||||
var eCheckbox = eSpan.querySelector('input');
|
|
||||||
eCheckbox.addEventListener('click', function () {
|
|
||||||
that.model[skill] = eCheckbox.checked;
|
|
||||||
that.filterChangedCallback();
|
|
||||||
});
|
|
||||||
|
|
||||||
eGui.appendChild(eSpan);
|
|
||||||
});
|
|
||||||
|
|
||||||
return eGui;
|
|
||||||
};
|
|
||||||
|
|
||||||
SkillFilter.prototype.doesFilterPass = function (params) {
|
|
||||||
|
|
||||||
var rowSkills = params.data.skills;
|
|
||||||
var model = this.model;
|
|
||||||
var passed = true;
|
|
||||||
|
|
||||||
IT_SKILLS.forEach(function (skill) {
|
|
||||||
if (model[skill]) {
|
|
||||||
if (!rowSkills[skill]) {
|
|
||||||
passed = false;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
return passed;
|
|
||||||
};
|
|
||||||
|
|
||||||
SkillFilter.prototype.isFilterActive = function () {
|
|
||||||
var model = this.model;
|
|
||||||
var somethingSelected = model.android || model.css || model.html5 || model.mac || model.windows;
|
|
||||||
return somethingSelected;
|
|
||||||
};*/
|
|
||||||
//
|
|
||||||
//var PROFICIENCY_TEMPLATE =
|
|
||||||
// '<label style="padding-left: 4px;">' +
|
|
||||||
// '<input type="radio" name="RANDOM"/>' +
|
|
||||||
// 'PROFICIENCY_NAME' +
|
|
||||||
// '</label>';
|
|
||||||
//
|
|
||||||
//var PROFICIENCY_NONE = 'none';
|
|
||||||
//var PROFICIENCY_ABOVE40 = 'above40';
|
|
||||||
//var PROFICIENCY_ABOVE60 = 'above60';
|
|
||||||
//var PROFICIENCY_ABOVE80 = 'above80';
|
|
||||||
//
|
|
||||||
//var PROFICIENCY_NAMES = ['No Filter', 'Above 40%', 'Above 60%', 'Above 80%'];
|
|
||||||
//var PROFICIENCY_VALUES = [PROFICIENCY_NONE, PROFICIENCY_ABOVE40, PROFICIENCY_ABOVE60, PROFICIENCY_ABOVE80];
|
|
||||||
//
|
|
||||||
//function ProficiencyFilter() {
|
|
||||||
//}
|
|
||||||
//
|
|
||||||
//ProficiencyFilter.prototype.init = function (params) {
|
|
||||||
// this.filterChangedCallback = params.filterChangedCallback;
|
|
||||||
// this.selected = PROFICIENCY_NONE;
|
|
||||||
// this.valueGetter = params.valueGetter;
|
|
||||||
//};
|
|
||||||
//
|
|
||||||
//ProficiencyFilter.prototype.getGui = function () {
|
|
||||||
// var eGui = document.createElement('div');
|
|
||||||
// var eInstructions = document.createElement('div');
|
|
||||||
// eInstructions.innerHTML = FILTER_TITLE.replace('TITLE_NAME', 'Custom Proficiency Filter');
|
|
||||||
// eGui.appendChild(eInstructions);
|
|
||||||
//
|
|
||||||
// var random = '' + Math.random();
|
|
||||||
//
|
|
||||||
// var that = this;
|
|
||||||
// PROFICIENCY_NAMES.forEach( function (name, index) {
|
|
||||||
// var eFilter = document.createElement('div');
|
|
||||||
// var html = PROFICIENCY_TEMPLATE.replace('PROFICIENCY_NAME', name).replace('RANDOM', random);
|
|
||||||
// eFilter.innerHTML = html;
|
|
||||||
// var eRadio = eFilter.querySelector('input');
|
|
||||||
// if (index === 0) {
|
|
||||||
// eRadio.checked = true;
|
|
||||||
// }
|
|
||||||
// eGui.appendChild(eFilter);
|
|
||||||
//
|
|
||||||
// eRadio.addEventListener('click', function () {
|
|
||||||
// that.selected = PROFICIENCY_VALUES[index];
|
|
||||||
// that.filterChangedCallback();
|
|
||||||
// });
|
|
||||||
// });
|
|
||||||
//
|
|
||||||
// return eGui;
|
|
||||||
//};
|
|
||||||
//
|
|
||||||
//ProficiencyFilter.prototype.doesFilterPass = function (params) {
|
|
||||||
//
|
|
||||||
// var value = this.valueGetter(params);
|
|
||||||
// var valueAsNumber = parseFloat(value);
|
|
||||||
//
|
|
||||||
// switch (this.selected) {
|
|
||||||
// case PROFICIENCY_ABOVE40 : return valueAsNumber >= 40;
|
|
||||||
// case PROFICIENCY_ABOVE60 : return valueAsNumber >= 60;
|
|
||||||
// case PROFICIENCY_ABOVE80 : return valueAsNumber >= 80;
|
|
||||||
// default : return true;
|
|
||||||
// }
|
|
||||||
//
|
|
||||||
//};
|
|
||||||
//
|
|
||||||
//ProficiencyFilter.prototype.isFilterActive = function () {
|
|
||||||
// return this.selected !== PROFICIENCY_NONE;
|
|
||||||
//};
|
|
||||||
|
|||||||
Reference in New Issue
Block a user