unclean SPARC
This commit is contained in:
@@ -0,0 +1,9 @@
|
||||
<article eiccard class="journal">
|
||||
<header>
|
||||
<h1>Documents available for this project</h1>
|
||||
<h2></h2>
|
||||
</header>
|
||||
<section>
|
||||
|
||||
</section>
|
||||
</article>
|
||||
@@ -0,0 +1,31 @@
|
||||
/**
|
||||
*/
|
||||
|
||||
class ProjectFundingDocumentsView extends EICDomContent {
|
||||
|
||||
DOMContentLoaded(options) {
|
||||
|
||||
for(let model in options.models) this[model] = options.models[model];
|
||||
|
||||
this.components = ui.eicfy(this.el);
|
||||
|
||||
this.project.documents(this.project.current.project.number)
|
||||
.then(this.fill.bind(this))
|
||||
}
|
||||
|
||||
fill(data) {
|
||||
let content = this.find('section');
|
||||
for(let section of data) {
|
||||
content.append(ui.create(`<label large><b>${section.category}</b></label>`));
|
||||
let files = ui.create(`<ul bulleted small>`)
|
||||
content.append(files);
|
||||
for(let file of section.attachments) {
|
||||
let url = app.config.api['/files'].get.uri
|
||||
url = url.replace('{id}', file.id)
|
||||
files.append(ui.create(`<li><a href="${url}" noroute target="_blank">${file.label}</a></li>`));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
app.registerClass('ProjectFundingDocumentsView',ProjectFundingDocumentsView);
|
||||
@@ -0,0 +1,9 @@
|
||||
<article eiccard class="history">
|
||||
<header>
|
||||
<h1>Project history</h1>
|
||||
<h2>Key events of the project life cycle</h2>
|
||||
</header>
|
||||
<section>
|
||||
<div eicdatagrid></div>
|
||||
</section>
|
||||
</article>
|
||||
@@ -0,0 +1,32 @@
|
||||
/**
|
||||
*/
|
||||
|
||||
class ProjectFundingHistoryView extends EICDomContent {
|
||||
|
||||
DOMContentLoaded(options) {
|
||||
this.components = ui.eicfy(this.el);
|
||||
|
||||
for(let model in options.models) this[model] = options.models[model];
|
||||
|
||||
this.list = new DataGrid(this.find('[eicdatagrid]'), {
|
||||
headers: [
|
||||
{label: 'date', type: 'dateTime'},
|
||||
{label: 'action'}
|
||||
],
|
||||
height: '45vh'
|
||||
})
|
||||
|
||||
this.fill(this.project.current.project.statusHistory);
|
||||
}
|
||||
|
||||
fill(data) {
|
||||
this.list.clear();
|
||||
|
||||
for(let item of data) {
|
||||
this.list.addRow(0, [ item.dateTime, item.value ]);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
app.registerClass('ProjectFundingHistoryView',ProjectFundingHistoryView);
|
||||
@@ -0,0 +1,53 @@
|
||||
<article eiccard class="history">
|
||||
<header>
|
||||
<h1>Summary</h1>
|
||||
<h2></h2>
|
||||
</header>
|
||||
<section>
|
||||
<p class="project-abstract"></p>
|
||||
<div class="project-keywords">
|
||||
<label xsmall><b>Keywords</b></label>
|
||||
<span></span>
|
||||
</div>
|
||||
<div class="project-extra-keywords">
|
||||
<label xsmall><b>Extra keywords</b></label>
|
||||
<span></span>
|
||||
</div>
|
||||
<hr/>
|
||||
<label xlarge><b>Fundings information</b></label>
|
||||
<div class="project-grant">
|
||||
<label large><b>Grant funding</b></label>
|
||||
<div class="cols-3">
|
||||
<div class="project-grant-requested">
|
||||
<label xsmall>Requested amount (by Beneficiary)</label>
|
||||
<span></span>
|
||||
</div>
|
||||
<div class="project-grant-proposed">
|
||||
<label xsmall>Recommended amount (by Interview panel)</label>
|
||||
<span></span>
|
||||
</div>
|
||||
<div class="project-grant-final">
|
||||
<label xsmall>Final amount</label>
|
||||
<span></span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="project-equity">
|
||||
<label large><b>Equity funding</b></label>
|
||||
<div class="cols-3">
|
||||
<div class="project-equity-requested">
|
||||
<label xsmall>Requested amount (by Beneficiary)</label>
|
||||
<span></span>
|
||||
</div>
|
||||
<div class="project-equity-proposed">
|
||||
<label xsmall>Recommended amount (by Interview panel)</label>
|
||||
<span></span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="project-documents">
|
||||
<hr/>
|
||||
<label xlarge><b>Documents</b></label>
|
||||
</div>
|
||||
</section>
|
||||
</article>
|
||||
@@ -0,0 +1,56 @@
|
||||
/**
|
||||
*
|
||||
*/
|
||||
class ProjectFundingInfoView extends EICDomContent {
|
||||
|
||||
DOMContentLoaded(options) {
|
||||
this.components = ui.eicfy(this.el);
|
||||
for(let model in options.models) this[model] = options.models[model];
|
||||
this.fill(this.project.current)
|
||||
}
|
||||
|
||||
fill(data) {
|
||||
this.find('.project-abstract').innerHTML = data.project.abstract;
|
||||
this.find('.project-keywords span').innerHTML = data.project.keywords.eicKeywords.join(', ');
|
||||
this.find('.project-extra-keywords span').innerHTML = data.project.keywords.freeKeywords.join(', ');
|
||||
|
||||
if(data.project.financingDetails.grant) {
|
||||
this.find('.project-grant-requested span').innerHTML = ui.format.currency(data.project.financingDetails.grant.requestedAmount);
|
||||
this.find('.project-grant-proposed span').innerHTML = ui.format.currency(data.project.financingDetails.grant.proposedAmount);
|
||||
this.find('.project-grant-final span').innerHTML = ui.format.currency(data.project.financingDetails.grant.finalAmount);
|
||||
|
||||
} else {
|
||||
ui.hide(this.find('.project-grant'))
|
||||
}
|
||||
|
||||
if(data.project.financingDetails.equity) {
|
||||
this.find('.project-equity-requested span').innerHTML = ui.format.currency(data.project.financingDetails.equity.requestedAmount);
|
||||
this.find('.project-equity-proposed span').innerHTML = ui.format.currency(data.project.financingDetails.equity.proposedAmount);
|
||||
|
||||
} else {
|
||||
ui.hide(this.find('.project-equity'))
|
||||
|
||||
}
|
||||
|
||||
if(data.project.documents) {
|
||||
let content = this.find('.project-documents');
|
||||
for(let section of data.project.documents) {
|
||||
content.append(ui.create(`<label large><b>${section.category}</b></label>`));
|
||||
let files = ui.create(`<ul bulleted small>`)
|
||||
content.append(files);
|
||||
for(let file of section.attachments) {
|
||||
let url = app.config.api['/files'].get.uri
|
||||
url = url.replace('{id}', file.id)
|
||||
files.append(ui.create(`<li><a href="${url}" noroute target="_blank">${file.label}</a></li>`));
|
||||
}
|
||||
}
|
||||
} else {
|
||||
ui.hide(this.find('.project-documents'))
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
app.registerClass('ProjectFundingInfoView',ProjectFundingInfoView);
|
||||
@@ -0,0 +1,47 @@
|
||||
<article eiccard class="funding-node progress-meeting">
|
||||
<header>
|
||||
<h1>Progress Meeting</h1>
|
||||
<h2><span eicchip warning>feedback</span></h2>
|
||||
</header>
|
||||
<section>
|
||||
<div class="cols-2 right">
|
||||
<div>
|
||||
<article eiccard>
|
||||
<header>
|
||||
<h1>Schedule</h1>
|
||||
</header>
|
||||
<section>
|
||||
<div>
|
||||
<label>Date</label>
|
||||
<span>6 Feb 2024 | 10:00 - 22:00</span>
|
||||
</div>
|
||||
<div>
|
||||
<label>Location</label>
|
||||
<span>skype</span>
|
||||
</div>
|
||||
</section>
|
||||
</article>
|
||||
<article eiccard>
|
||||
<header>
|
||||
<h1>Participants</h1>
|
||||
</header>
|
||||
<section>
|
||||
<label>Attending</label>
|
||||
<ul></ul>
|
||||
<label>Excused</label>
|
||||
<ul></ul>
|
||||
</section>
|
||||
</article>
|
||||
</div>
|
||||
<article eiccard class="feedback-form">
|
||||
<header>
|
||||
<h1>Feedback</h1>
|
||||
<h2></h2>
|
||||
</header>
|
||||
<section>
|
||||
|
||||
</section>
|
||||
</article>
|
||||
</div>
|
||||
</section>
|
||||
</article>
|
||||
@@ -0,0 +1,10 @@
|
||||
class ProjectFundingProgressMeetingView extends EICDomContent {
|
||||
|
||||
DOMContentLoaded(options) {
|
||||
|
||||
}
|
||||
|
||||
fill() {}
|
||||
|
||||
refresh(data) {}
|
||||
}
|
||||
@@ -0,0 +1,17 @@
|
||||
<style>
|
||||
.contributors .list {
|
||||
display: flex;
|
||||
flex-flow: wrap;
|
||||
grid-gap: 20px;
|
||||
white-space: nowrap;
|
||||
}
|
||||
</style>
|
||||
<article eiccard class="contributors">
|
||||
<header>
|
||||
<h1>Contributors</h1>
|
||||
<h2>People involved in the project</h2>
|
||||
</header>
|
||||
<section>
|
||||
<ul nonbulleted class="list"></ul>
|
||||
</section>
|
||||
</article>
|
||||
@@ -0,0 +1,44 @@
|
||||
/**
|
||||
*/
|
||||
|
||||
class ProjectFundingTeamView extends EICDomContent {
|
||||
|
||||
DOMContentLoaded(options) {
|
||||
|
||||
for(let model in options.models) this[model] = options.models[model];
|
||||
|
||||
this.components = ui.eicfy(this.el);
|
||||
|
||||
this.project.contributors(this.project.current.project.number)
|
||||
.then(this.fill.bind(this))
|
||||
}
|
||||
|
||||
fill(data) {
|
||||
let list = this.find('ul.list');
|
||||
|
||||
for(let member of data) {
|
||||
let roles = member.roles.map(o => this.translateRole(o.role))
|
||||
let el = ui.create(`<li>
|
||||
<div medium><b>${member.information.name.firstName} ${member.information.name.lastName}</b></div>
|
||||
<div xsmall><a href="mailto:${member.information.contacts.email}">${member.information.contacts.email}</a></div>
|
||||
<div small>${roles.join(' | ')}</div>
|
||||
</li>`);
|
||||
|
||||
list.append(el)
|
||||
}
|
||||
}
|
||||
|
||||
translateRole(role) {
|
||||
let s = role.replace('PROJECT_', '');
|
||||
|
||||
switch(s) {
|
||||
case 'TechDDExpert':
|
||||
s = 'TechDD Expert';
|
||||
break;
|
||||
}
|
||||
|
||||
return s;
|
||||
}
|
||||
}
|
||||
|
||||
app.registerClass('ProjectFundingTeamView',ProjectFundingTeamView);
|
||||
@@ -0,0 +1,29 @@
|
||||
<style>
|
||||
.funding-node.tech-dd textarea { height: 120px; }
|
||||
.funding-node.tech-dd .tabs-extended { min-width: 240px; }
|
||||
</style>
|
||||
<article eiccard class="funding-node tech-dd">
|
||||
<header class="cols-2 right">
|
||||
<div>
|
||||
<h1>Technical Due Diligence</h1>
|
||||
<h2></h2>
|
||||
</div>
|
||||
<div class="version"></div>
|
||||
</header>
|
||||
<section>
|
||||
<div class="files"></div>
|
||||
<div class="form"></div>
|
||||
|
||||
</section>
|
||||
<footer>
|
||||
<div class="cols-2 right">
|
||||
<div>
|
||||
<div class="autosave-control">
|
||||
<input eicinput type="toggler" labelleft="Enable auto-save" name="autosave" data-typ="ignore" truevalue="true" falsevalue="false" value="true" />
|
||||
</div>
|
||||
</div>
|
||||
<div class="actions"></div>
|
||||
</div>
|
||||
|
||||
</footer>
|
||||
</article>
|
||||
@@ -0,0 +1,625 @@
|
||||
/**
|
||||
*
|
||||
*/
|
||||
class ProjectFundingTechDDView extends EICDomContent {
|
||||
|
||||
_autoSave = null;
|
||||
|
||||
// save every 10s
|
||||
_autoSaveDelay = 10000;
|
||||
// validate every 2s
|
||||
_autoValidateDelay = 2000;
|
||||
// state flag avoiding saving form currently beeing loaded
|
||||
_busy = false;
|
||||
|
||||
get autoSave() { return this._autoSave != null; }
|
||||
set autoSave(value) {
|
||||
if(value) {
|
||||
if(!this._autoSave) {
|
||||
this._autoSave = setInterval(this.onAutoSave.bind(this), this._autoSaveDelay)
|
||||
}
|
||||
} else {
|
||||
clearInterval(this._autoSave);
|
||||
this._autoSave = null;
|
||||
}
|
||||
}
|
||||
|
||||
DOMContentLoaded(options) {
|
||||
this.components = ui.eicfy(this.el);
|
||||
this.projectNumber = options.projectNumber
|
||||
this.nodeId = options.nodeId;
|
||||
this.nodeType = 'techdd';
|
||||
this.mode = options.mode;
|
||||
for(let model in options.models) this[model] = options.models[model];
|
||||
|
||||
this.container = this.components.find(o => o.el.classList.contains('funding-node'))
|
||||
this.container.loading = true;
|
||||
|
||||
this._busy = true;
|
||||
this.techdd.get(this.projectNumber,this.nodeType, this.nodeId)
|
||||
.then(this.fill.bind(this))
|
||||
}
|
||||
|
||||
DOMContentBlured() {
|
||||
|
||||
if(this.autoSave) { this.autoSave = false; }
|
||||
|
||||
if(this.validationCheck) {
|
||||
clearInterval(this.validationCheck);
|
||||
this.validationCheck = null;
|
||||
}
|
||||
}
|
||||
|
||||
DOMContentRemoved() {
|
||||
if(this.autoSave) {
|
||||
this.autoSave = false;
|
||||
if((this.mode == 'edit')) this.save();
|
||||
};
|
||||
|
||||
if(this.validationCheck) {
|
||||
clearInterval(this.validationCheck);
|
||||
this.validationCheck = null;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
DOMContentFocused() {
|
||||
if(this.mode == 'edit') {
|
||||
if(this.saveToggler && this.saveToggler.value == 'true') { this.autoSave = true }
|
||||
if(!this.validationCheck) {
|
||||
this.validationCheck = setInterval(this.validateForm.bind(this), this._autoValidateDelay);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
setupFormActions() {
|
||||
|
||||
let saveControl = this.find('.autosave-control');
|
||||
this.availableActions = [];
|
||||
this.reviewActions = [];
|
||||
|
||||
ui.hide(saveControl);
|
||||
|
||||
if(this.techdd.hasPrivilege('read')) {
|
||||
this.mode = 'read'
|
||||
}
|
||||
|
||||
if(this.techdd.hasPrivilege('update')) {
|
||||
this.mode = 'edit';
|
||||
|
||||
ui.show(saveControl);
|
||||
|
||||
|
||||
this.availableActions.push({
|
||||
id: 'cancel',
|
||||
ctrl: new Button(null, {
|
||||
severity: 'secondary',
|
||||
onclick: this.cancel.bind(this),
|
||||
label: 'discard changes'
|
||||
})
|
||||
})
|
||||
|
||||
this.availableActions.push({
|
||||
id: 'save',
|
||||
ctrl: new Button(null, {
|
||||
severity: 'primary',
|
||||
onclick: this.save.bind(this),
|
||||
label: 'save' })
|
||||
})
|
||||
|
||||
this.autosave = true
|
||||
this.saveToggler.onToggle("true", this.saveToggler);
|
||||
}
|
||||
|
||||
if(this.techdd.hasPrivilege('submit')) {
|
||||
this.availableActions.push({
|
||||
id: 'submit',
|
||||
ctrl: new Button(null, {
|
||||
severity: 'primary',
|
||||
onclick: this.submit.bind(this),
|
||||
label: 'submit' })
|
||||
})
|
||||
}
|
||||
|
||||
if(this.techdd.hasPrivilege('reject')) {
|
||||
this.mode = 'review';
|
||||
|
||||
this.availableActions.push({
|
||||
id: 'reject',
|
||||
ctrl: new Button(null, {
|
||||
severity: 'primary',
|
||||
onclick: this.reject.bind(this),
|
||||
label: 'Reopen' })
|
||||
})
|
||||
|
||||
this.reviewActions.push({
|
||||
id: 'cancelReview',
|
||||
ctrl: new Button(null, {
|
||||
severity: 'secondary',
|
||||
onclick: this.cancelReview.bind(this),
|
||||
label: 'cancel' })
|
||||
})
|
||||
|
||||
this.reviewActions.push({
|
||||
id: 'commitReview',
|
||||
ctrl: new Button(null, {
|
||||
severity: 'primary',
|
||||
onclick: this.commitReview.bind(this),
|
||||
label: 'send remarks' })
|
||||
})
|
||||
}
|
||||
|
||||
if(this.techdd.hasPrivilege('sendforreview')) {
|
||||
this.mode = 'review';
|
||||
|
||||
this.availableActions.push({
|
||||
id: 'review',
|
||||
ctrl: new Button(null, {
|
||||
severity: 'primary',
|
||||
onclick: this.review.bind(this),
|
||||
label: 'send for consultation' })
|
||||
})
|
||||
}
|
||||
|
||||
if(this.techdd.hasPrivilege('validate')) {
|
||||
this.mode = 'review';
|
||||
|
||||
this.availableActions.push({
|
||||
id: 'validate',
|
||||
ctrl: new Button(null, {
|
||||
severity: 'success',
|
||||
onclick: this.validate.bind(this),
|
||||
label: 'validate' })
|
||||
})
|
||||
}
|
||||
|
||||
if(this.techdd.hasPrivilege('cancel')) {
|
||||
this.mode = 'review';
|
||||
|
||||
this.availableActions.push({
|
||||
id: 'abort',
|
||||
ctrl: new Button(null, {
|
||||
severity: 'danger',
|
||||
onclick: this.abort.bind(this),
|
||||
label: 'abort' })
|
||||
})
|
||||
}
|
||||
|
||||
if(this.techdd.hasPrivilege('review')) {
|
||||
this.mode = 'review';
|
||||
|
||||
this.availableActions.push({
|
||||
id: 'reject',
|
||||
ctrl: new Button(null, {
|
||||
severity: 'primary',
|
||||
onclick: this.reject.bind(this),
|
||||
label: 'add remarks' })
|
||||
})
|
||||
|
||||
this.availableActions.push({
|
||||
id: 'approve',
|
||||
ctrl: new Button(null, {
|
||||
severity: 'success',
|
||||
onclick: this.approve.bind(this),
|
||||
label: 'approve' })
|
||||
})
|
||||
|
||||
this.reviewActions.push({
|
||||
id: 'cancelReview',
|
||||
ctrl: new Button(null, {
|
||||
severity: 'secondary',
|
||||
onclick: this.cancelReview.bind(this),
|
||||
label: 'cancel' })
|
||||
})
|
||||
|
||||
this.reviewActions.push({
|
||||
id: 'commitReview',
|
||||
ctrl: new Button(null, {
|
||||
severity: 'primary',
|
||||
onclick: this.commitConsult.bind(this),
|
||||
label: 'send remarks' })
|
||||
})
|
||||
}
|
||||
|
||||
let container = this.find('footer .actions');
|
||||
container.innerHTML = '';
|
||||
for(let action of this.availableActions) { container.append(action.ctrl.el) }
|
||||
}
|
||||
|
||||
|
||||
fill(data) {
|
||||
|
||||
|
||||
let path = 'projects/icmp/project/forms/'
|
||||
let view = 'ICMPFormTechddV1View';
|
||||
let versionLabel = 'regular report'
|
||||
|
||||
switch(data.form.version) {
|
||||
case 'techdd-report-v1-full':
|
||||
view = 'ICMPFormTechddV1FullView';
|
||||
versionLabel = 'full report'
|
||||
break;
|
||||
case 'techdd-report-v1-enhanced':
|
||||
view = 'ICMPFormTechddV1EnhancedView'
|
||||
versionLabel = 'enhanced report'
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
let tags = [];
|
||||
this.find('header .version').innerHTML = `<span eicchip primary>${versionLabel}</span>`
|
||||
|
||||
if(data.experts.length > 0) {
|
||||
tags.push(`<span eicchip info>reporting assigned to ${data.experts[0].information.name.firstName} ${data.experts[0].information.name.lastName}</span>`)
|
||||
}
|
||||
tags.push(`<span eicchip accent>${app.meta.getItem('icmp-techdd-status', data.statusHistory[0].value).label}</span>`)
|
||||
|
||||
this.find('header h2').innerHTML = tags.join('');
|
||||
|
||||
this.originalForm = JSON.parse(JSON.stringify(data))
|
||||
|
||||
this.loadContent(path + view, {})
|
||||
.then(view => {
|
||||
this.find('.form').append(view.el)
|
||||
view.fill(data);
|
||||
this.formView = view;
|
||||
this.form = view.form;
|
||||
this.formComponents = view.components;
|
||||
this.setupForm(data)
|
||||
}
|
||||
)
|
||||
|
||||
|
||||
}
|
||||
|
||||
setupForm(data) {
|
||||
this.saveToggler = this.components.find(o => o.el.name == 'autosave');
|
||||
this.saveToggler.onToggle = this.onAutoSaveToggle.bind(this)
|
||||
this.setupFormActions();
|
||||
switch(this.mode) {
|
||||
case 'read':
|
||||
this.enableEditing(false);
|
||||
this.enableReviewing(false);
|
||||
break;
|
||||
case 'edit':
|
||||
this.enableEditing(true);
|
||||
this.enableReviewing(false);
|
||||
if(!this.validationCheck) {
|
||||
this.validationCheck = setInterval(this.validateForm.bind(this), this._autoValidateDelay);
|
||||
}
|
||||
break;
|
||||
case 'review':
|
||||
this.enableEditing(false);
|
||||
this.enableReviewing(false);
|
||||
break;
|
||||
}
|
||||
|
||||
let comments = this.findAll('[data-path^="comments."]')
|
||||
for(let comment of comments) {
|
||||
let chunks = comment.dataset.path.split('.')
|
||||
if(chunks.length > 2 && comment.value != '') {
|
||||
let trigger = this.find(`li[data-target=${chunks[2]}]`)
|
||||
if(trigger) trigger.setAttribute('warning', '')
|
||||
}
|
||||
}
|
||||
|
||||
if(data.documents && data.documents.length > 0) {
|
||||
for(let document of data.documents[0].attachments) {
|
||||
let url = app.config.api['/files'].get.uri
|
||||
url = url.replace('{id}', document.id)
|
||||
let alert = ui.create(`<div eicalert info><a href="${url}" noroute target="_blank">Download report as PDF</a></div>`)
|
||||
this.find('.files').append(alert);
|
||||
}
|
||||
}
|
||||
|
||||
this.container.loading = false;
|
||||
this._busy = false;
|
||||
}
|
||||
|
||||
enableEditing(value) {
|
||||
let fields = this.form.scan(true);
|
||||
for(let field of fields) {
|
||||
let component = this.form.element2component(this.formComponents, field.el.name, field.el.dataset.path)
|
||||
if(component && component.el && component.el.dataset.path.search('form') == 0) {
|
||||
if(value) {
|
||||
component.el.dataset.type = component.el.nodeName == 'SELECT' ? 'boolean': 'text'
|
||||
component.disabled = false;
|
||||
} else {
|
||||
component.el.dataset.type = 'ignore'
|
||||
component.disabled = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
enableReviewing(value) {
|
||||
|
||||
let fields = this.form.scan(true);
|
||||
|
||||
this.originalComments = [];
|
||||
|
||||
for(let field of fields) {
|
||||
let component = this.form.element2component(this.formComponents, field.el.name, field.el.dataset.path)
|
||||
if(component && component.el.dataset.path.search('comment') == 0) {
|
||||
if(value) {
|
||||
this.originalComments.push({
|
||||
component: component,
|
||||
value: component.value
|
||||
})
|
||||
component.el.dataset.type = 'text'
|
||||
component.disabled = false
|
||||
component.show()
|
||||
} else {
|
||||
component.el.dataset.type = 'ignore'
|
||||
component.disabled = true
|
||||
component.hide()
|
||||
let alerts = component.el.parentElement.querySelectorAll('[eicalert]');
|
||||
for(let alert of alerts) {
|
||||
alert.remove();
|
||||
}
|
||||
if(component.value != '') {
|
||||
component.el.parentElement.append((new Alert(null, {message: component.value,severity: 'warning'})).el)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
validateForm() {
|
||||
//let valid = true;
|
||||
let valid = this.form.validate();
|
||||
|
||||
// init tab badges
|
||||
//let triggers = [].concat( this.formView.tabTech.triggers, this.formView.tabMarket.triggers )
|
||||
console.log(this.formView.getTriggers())
|
||||
let triggers = this.formView.getTriggers();
|
||||
for(let trigger of triggers) {
|
||||
let badge = new Badge(trigger.querySelector('[eicbadge]'))
|
||||
badge.value = ''
|
||||
}
|
||||
|
||||
// mark tabs on error
|
||||
if(!valid) {
|
||||
let errors = this.findAll('.validation-failed textarea, .validation-failed select')
|
||||
|
||||
for(let error of errors) {
|
||||
let path = error.dataset.path.split('.')
|
||||
let trigger = triggers.find(el => el.dataset.target == path[2]);
|
||||
// todo make it count
|
||||
if(trigger) {
|
||||
let badge = new Badge(trigger.querySelector('[eicbadge]'))
|
||||
badge.value = parseInt(badge.value || 0) + 1;
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
/**/
|
||||
return valid;
|
||||
}
|
||||
|
||||
autoValidate() { this.validateForm(); }
|
||||
|
||||
reject() {
|
||||
let container = this.find('footer .actions');
|
||||
container.innerHTML = '';
|
||||
|
||||
for(let action of this.reviewActions) container.append(action.ctrl.el)
|
||||
|
||||
this.enableReviewing(true);
|
||||
}
|
||||
|
||||
cancelReview() {
|
||||
|
||||
let container = this.find('footer .actions');
|
||||
container.innerHTML = '';
|
||||
|
||||
for(let comment of this.originalComments) {
|
||||
comment.component.value = comment.value;
|
||||
}
|
||||
for(let action of this.availableActions) container.append(action.ctrl.el)
|
||||
|
||||
this.enableReviewing(false);
|
||||
}
|
||||
|
||||
commitReview() {
|
||||
for(let action of this.reviewActions) action.ctrl.disabled = true;
|
||||
this.reviewActions.find(o => o.id == 'commitReview').ctrl.loading = true;
|
||||
|
||||
let payload = this.form.value;
|
||||
this.techdd.comment('rejecting', this.projectNumber, this.nodeType, this.nodeId, payload)
|
||||
.then( () => {
|
||||
for(let action of this.reviewActions) action.ctrl.disabled = false;
|
||||
this.reviewActions.find(o => o.id == 'commitReview').ctrl.loading = false;
|
||||
this.reviewActions.find(o => o.id == 'commitReview').ctrl.disabled = this.autoSave;
|
||||
app.events.trigger('project_node_updated', {node: this.nodeType, nodeId: this.nodeId});
|
||||
},
|
||||
() => {
|
||||
for(let action of this.reviewActions) action.ctrl.disabled = false;
|
||||
this.reviewActions.find(o => o.id == 'commitReview').ctrl.loading = false;
|
||||
this.reviewActions.find(o => o.id == 'commitReview').ctrl.disabled = this.autoSave;
|
||||
})
|
||||
}
|
||||
|
||||
approve() {
|
||||
for(let action of this.availableActions) action.ctrl.disabled = true;
|
||||
this.availableActions.find(o => o.id == 'approve').ctrl.loading = true;
|
||||
|
||||
let payload = this.form.value;
|
||||
payload.comments = {};
|
||||
this.techdd.comment('reviewing', this.projectNumber, this.nodeType, this.nodeId, payload)
|
||||
.then( () => {
|
||||
for(let action of this.availableActions) action.ctrl.disabled = false;
|
||||
this.availableActions.find(o => o.id == 'approve').ctrl.loading = false;
|
||||
app.events.trigger('project_node_updated', {node: this.nodeType, nodeId: this.nodeId});
|
||||
},
|
||||
() => {
|
||||
for(let action of this.availableActions) action.ctrl.disabled = false;
|
||||
this.availableActions.find(o => o.id == 'approve').ctrl.loading = false;
|
||||
})
|
||||
}
|
||||
|
||||
commitConsult() {
|
||||
for(let action of this.reviewActions) action.ctrl.disabled = true;
|
||||
this.reviewActions.find(o => o.id == 'commitReview').ctrl.loading = true;
|
||||
|
||||
let payload = this.form.value;
|
||||
this.techdd.comment('reviewing', this.projectNumber, this.nodeType, this.nodeId, payload)
|
||||
.then( () => {
|
||||
for(let action of this.reviewActions) action.ctrl.disabled = false;
|
||||
this.reviewActions.find(o => o.id == 'commitReview').ctrl.loading = false;
|
||||
app.events.trigger('project_node_updated', {node: this.nodeType, nodeId: this.nodeId});
|
||||
},
|
||||
() => {
|
||||
for(let action of this.reviewActions) action.ctrl.disabled = false;
|
||||
this.reviewActions.find(o => o.id == 'commitReview').ctrl.loading = false;
|
||||
})
|
||||
}
|
||||
|
||||
save() {
|
||||
|
||||
if(!app.User.isAuthenticated || this._busy) return;
|
||||
|
||||
this.validateForm()
|
||||
|
||||
for(let action of this.availableActions) action.ctrl.disabled = true;
|
||||
this.availableActions.find(o => o.id == 'save').ctrl.loading = true;
|
||||
|
||||
let payload = this.form.value;
|
||||
this.techdd.process('saving', this.projectNumber, this.nodeType, this.nodeId, payload)
|
||||
.then( payload => {
|
||||
for(let action of this.availableActions) action.ctrl.disabled = false;
|
||||
this.availableActions.find(o => o.id == 'save').ctrl.loading = false;
|
||||
this.availableActions.find(o => o.id == 'save').ctrl.disabled = this.autoSave;
|
||||
this.availableActions.find(o => o.id == 'cancel').ctrl.disabled = this.autoSave;
|
||||
this.originalForm.form = payload.form;
|
||||
},
|
||||
() => {
|
||||
for(let action of this.availableActions) action.ctrl.disabled = false;
|
||||
this.availableActions.find(o => o.id == 'save').ctrl.loading = false;
|
||||
this.availableActions.find(o => o.id == 'save').ctrl.disabled = this.autoSave;
|
||||
this.availableActions.find(o => o.id == 'cancel').ctrl.disabled = this.autoSave;
|
||||
})
|
||||
}
|
||||
|
||||
submit() {
|
||||
for(let action of this.availableActions) action.ctrl.disabled = true;
|
||||
this.availableActions.find(o => o.id == 'submit').ctrl.loading = true;
|
||||
|
||||
if(this.validateForm()) {
|
||||
let payload = this.form.value;
|
||||
this.autoSave = false;
|
||||
this.techdd.process('submitting', this.projectNumber, this.nodeType, this.nodeId, payload)
|
||||
.then( () => {
|
||||
for(let action of this.availableActions) action.ctrl.disabled = false;
|
||||
this.availableActions.find(o => o.id == 'submit').ctrl.loading = false;
|
||||
app.events.trigger('project_node_updated', {node: this.nodeType, nodeId: this.nodeId});
|
||||
},
|
||||
() => {
|
||||
for(let action of this.availableActions) action.ctrl.disabled = false;
|
||||
this.availableActions.find(o => o.id == 'submit').ctrl.loading = false;
|
||||
})
|
||||
} else {
|
||||
for(let action of this.availableActions) action.ctrl.disabled = false;
|
||||
this.availableActions.find(o => o.id == 'submit').ctrl.loading = false;
|
||||
ui.growl.append('The form still contains issues', 'danger')
|
||||
}
|
||||
}
|
||||
|
||||
cancel() {
|
||||
this.form.fill(this.components,this.originalForm)
|
||||
}
|
||||
|
||||
async abort() {
|
||||
let success = await this.openDialog(
|
||||
await this.loadContent(
|
||||
'projects/icmp/project/dialogs/ICMPNodeActionConfirmDialog',
|
||||
{
|
||||
title: 'Dismiss expert and report',
|
||||
subtitle: 'You are about to dismiss this report. Another expert will be assigned to this task.'
|
||||
},
|
||||
{
|
||||
models: {
|
||||
node: this.techdd
|
||||
},
|
||||
number: this.projectNumber,
|
||||
type: this.nodeType,
|
||||
nodeId: this.nodeId,
|
||||
report: this.form.value,
|
||||
action: 'aborting'
|
||||
}
|
||||
)
|
||||
);
|
||||
|
||||
if(success) {
|
||||
app.events.trigger('project_node_updated', {node: this.nodeType, nodeId: this.nodeId});
|
||||
}
|
||||
}
|
||||
|
||||
async validate() {
|
||||
let success = await this.openDialog(
|
||||
await this.loadContent(
|
||||
'projects/icmp/project/dialogs/ICMPNodeActionConfirmDialog',
|
||||
{
|
||||
title: 'Validate this report',
|
||||
subtitle: 'You are about to approve this report and complete Technical Due Diligence'
|
||||
},
|
||||
{
|
||||
models: {
|
||||
node: this.techdd
|
||||
},
|
||||
number: this.projectNumber,
|
||||
type: this.nodeType,
|
||||
nodeId: this.nodeId,
|
||||
report: this.form.value,
|
||||
action: 'validating'
|
||||
}
|
||||
)
|
||||
);
|
||||
|
||||
if(success) {
|
||||
app.events.trigger('project_node_updated', {node: this.nodeType, nodeId: this.nodeId});
|
||||
}
|
||||
}
|
||||
|
||||
async review() {
|
||||
let success = await this.openDialog(
|
||||
await this.loadContent(
|
||||
'projects/icmp/project/dialogs/ICMPNodeActionConfirmDialog',
|
||||
{ title: 'Send this report for reviewing' },
|
||||
{
|
||||
models: {
|
||||
node: this.techdd
|
||||
},
|
||||
number: this.projectNumber,
|
||||
type: this.nodeType,
|
||||
nodeId: this.nodeId,
|
||||
report: this.form.value,
|
||||
action: 'reviewing'
|
||||
}
|
||||
)
|
||||
)
|
||||
|
||||
if(success) {
|
||||
app.events.trigger('project_node_updated', {node: this.nodeType, nodeId: this.nodeId});
|
||||
}
|
||||
}
|
||||
|
||||
onAutoSaveToggle(value, toggler) {
|
||||
if(value == 'true') {
|
||||
toggler.severity = 'primary'
|
||||
this.autoSave = true;
|
||||
} else {
|
||||
toggler.severity = 'secondary'
|
||||
this.autoSave = false;
|
||||
}
|
||||
this.availableActions.find(o => o.id == 'save').ctrl.disabled = this.autoSave;
|
||||
this.availableActions.find(o => o.id == 'cancel').ctrl.disabled = this.autoSave;
|
||||
}
|
||||
|
||||
onAutoSave() { this.save(); }
|
||||
}
|
||||
|
||||
app.registerClass('ProjectFundingTechDDView',ProjectFundingTechDDView);
|
||||
@@ -0,0 +1,10 @@
|
||||
<style>
|
||||
.project-node-process-confirm {
|
||||
min-width: 40vw;
|
||||
min-height: 40vh;
|
||||
}
|
||||
.project-node-process-confirm textarea { height:320px; }
|
||||
</style>
|
||||
<div class="project-node-process-confirm">
|
||||
<textarea eictextarea name="justification" placeholder="Comments about this action" class="required"></textarea>
|
||||
</div>
|
||||
@@ -0,0 +1,47 @@
|
||||
class ICMPNodeActionConfirmDialog extends EICDialogContent {
|
||||
actions = [
|
||||
{
|
||||
label: 'cancel',
|
||||
onclick: this.cancel.bind(this),
|
||||
severity: 'secondary',
|
||||
role: 'cancel'
|
||||
},
|
||||
{
|
||||
label: 'proceed',
|
||||
onclick: this.process.bind(this),
|
||||
severity: 'primary',
|
||||
role: 'process'
|
||||
}
|
||||
]
|
||||
|
||||
async DOMContentLoaded(options) {
|
||||
this.node = options.models.node;
|
||||
this.action = options.action
|
||||
this.number = options.number
|
||||
this.type = options.type
|
||||
this.nodeId = options.nodeId
|
||||
this.report = options.report
|
||||
console.log(options)
|
||||
console.log(this)
|
||||
}
|
||||
|
||||
DOMContentFocused() {
|
||||
ui.eicfy(this.el);
|
||||
this.form = new Form(this.el);
|
||||
}
|
||||
|
||||
process() {
|
||||
let payload = {
|
||||
status: this.action,
|
||||
form: this.report
|
||||
};
|
||||
|
||||
payload = {...payload, ...this.form.value}
|
||||
|
||||
this.node.process(this.action, this.number, this.type, this.nodeId, payload)
|
||||
.then( this.commit );
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
app.registerClass('ICMPNodeActionConfirmDialog', ICMPNodeActionConfirmDialog);
|
||||
@@ -0,0 +1,434 @@
|
||||
<form>
|
||||
<h2>1. Focus on the technology</h2>
|
||||
<div class="cols-2 left tech">
|
||||
<input type="hidden" name="form.version" data-path="" value="1.0" />
|
||||
<input type="hidden" name="status" data-path="" value="" />
|
||||
<div class="tabs-extended vertical">
|
||||
<section>
|
||||
<menu eictab>
|
||||
<li data-target="attributes">Attributes<span xxsmall eicbadge danger></span></li>
|
||||
<li data-target="protection">Protection<span xxsmall eicbadge danger></span></li>
|
||||
<li data-target="validity">Validity<span xxsmall eicbadge danger></span></li>
|
||||
<li data-target="commercialisation">Commercialisation<span xxsmall eicbadge danger></span></li>
|
||||
<li data-target="milestones">Milestones<span xxsmall eicbadge danger></span></li>
|
||||
<li data-target="production">Value Chain<span xxsmall eicbadge danger></span></li>
|
||||
<li data-target="compliance">Compliance<span xxsmall eicbadge danger></span></li>
|
||||
<li data-target="feedbacks">Feedbacks<span xxsmall eicbadge danger></span></li>
|
||||
</menu>
|
||||
</section>
|
||||
</div>
|
||||
<div>
|
||||
|
||||
<article eiccard>
|
||||
<header>
|
||||
<h1>1.1. Attributes</h1>
|
||||
<h2>qualities, shortcomings, use and possible extension</h2>
|
||||
</header>
|
||||
<section>
|
||||
<div>
|
||||
<label>Abstract</label>
|
||||
<textarea eictextarea name="abstract" data-path="form.technology.attributes" class="required" hint="Please try to provide an answer around 2500 chars length." maxlen="3500"></textarea>
|
||||
<textarea eictextarea name="abstract" data-path="comments.technology.attributes" class="" hint="" placeholder="Place your comments here"></textarea>
|
||||
</div>
|
||||
<div>
|
||||
<label>Expert opinion</label>
|
||||
<textarea eictextarea name="expertOpinion" data-path="form.technology.attributes" class="required" hint="Please try to provide an answer around 4000 chars length." maxlen="6000"></textarea>
|
||||
<textarea eictextarea name="expertOpinion" data-path="comments.technology.attributes" class="" hint="" placeholder="Place your comments here"></textarea>
|
||||
</div>
|
||||
<div>
|
||||
<label>Risk(s)</label>
|
||||
<textarea eictextarea name="risks" data-path="form.technology.attributes" class="required" hint="Please try to provide an answer around 2000 chars length." maxlen="3000"></textarea>
|
||||
<textarea eictextarea name="risks" data-path="comments.technology.attributes" class="" hint="" placeholder="Place your comments here"></textarea>
|
||||
</div>
|
||||
</section>
|
||||
</article>
|
||||
<article eiccard>
|
||||
<header>
|
||||
<h1>1.2. Protection</h1>
|
||||
<h2>patents, copyrights, trade secret, know-ho</h2>
|
||||
</header>
|
||||
<section>
|
||||
<div>
|
||||
<label>Abstract</label>
|
||||
<textarea eictextarea name="abstract" data-path="form.technology.protection" class="required" hint="Please try to provide an answer around 2500 chars length." maxlen="3500"></textarea>
|
||||
<textarea eictextarea name="abstract" data-path="comments.technology.protection" class="" hint="" placeholder="Place your comments here"></textarea>
|
||||
</div>
|
||||
<div>
|
||||
<label>Expert opinion</label>
|
||||
<textarea eictextarea name="expertOpinion" data-path="form.technology.protection" class="required" hint="Please try to provide an answer around 4000 chars length." maxlen="6000"></textarea>
|
||||
<textarea eictextarea name="expertOpinion" data-path="comments.technology.protection" class="" hint="" placeholder="Place your comments here"></textarea>
|
||||
</div>
|
||||
<div>
|
||||
<label>Risk(s)</label>
|
||||
<textarea eictextarea name="risks" data-path="form.technology.protection" class="required" hint="Please try to provide an answer around 2000 chars length." maxlen="3000"></textarea>
|
||||
<textarea eictextarea name="risks" data-path="comments.technology.protection" class="" hint="" placeholder="Place your comments here"></textarea>
|
||||
</div>
|
||||
</section>
|
||||
</article>
|
||||
<article eiccard>
|
||||
<header>
|
||||
<h1>1.3. Validity</h1>
|
||||
<h2>development plan, tests, prototype, demo, scalability</h2>
|
||||
</header>
|
||||
<section>
|
||||
<div>
|
||||
<label>Abstract</label>
|
||||
<textarea eictextarea name="abstract" data-path="form.technology.validity" class="required" hint="Please try to provide an answer around 2500 chars length." maxlen="3500"></textarea>
|
||||
<textarea eictextarea name="abstract" data-path="comments.technology.validity" class="" hint="" placeholder="Place your comments here"></textarea>
|
||||
</div>
|
||||
<div>
|
||||
<label>Expert opinion</label>
|
||||
<textarea eictextarea name="expertOpinion" data-path="form.technology.validity" class="required" hint="Please try to provide an answer around 4000 chars length." maxlen="6000"></textarea>
|
||||
<textarea eictextarea name="expertOpinion" data-path="comments.technology.validity" class="" hint="" placeholder="Place your comments here"></textarea>
|
||||
</div>
|
||||
<div>
|
||||
<label>Risk(s)</label>
|
||||
<textarea eictextarea name="risks" data-path="form.technology.validity" class="required" hint="Please try to provide an answer around 2000 chars length." maxlen="3000"></textarea>
|
||||
<textarea eictextarea name="risks" data-path="comments.technology.validity" class="" hint="" placeholder="Place your comments here"></textarea>
|
||||
</div>
|
||||
</section>
|
||||
</article>
|
||||
<article eiccard>
|
||||
<header>
|
||||
<h1>1.4. Commercialisation</h1>
|
||||
<h2>time and costs to develop, barriers and risks</h2>
|
||||
</header>
|
||||
<section>
|
||||
<div>
|
||||
<label>Abstract</label>
|
||||
<textarea eictextarea name="abstract" data-path="form.technology.commercialisation" class="required" hint="Please try to provide an answer around 2500 chars length." maxlen="3500"></textarea>
|
||||
<textarea eictextarea name="abstract" data-path="comments.technology.commercialisation" class="" hint="" placeholder="Place your comments here"></textarea>
|
||||
</div>
|
||||
<div>
|
||||
<label>Expert opinion</label>
|
||||
<textarea eictextarea name="expertOpinion" data-path="form.technology.commercialisation" class="required" hint="Please try to provide an answer around 4000 chars length." maxlen="6000"></textarea>
|
||||
<textarea eictextarea name="expertOpinion" data-path="comments.technology.commercialisation" class="" hint="" placeholder="Place your comments here"></textarea>
|
||||
</div>
|
||||
<div>
|
||||
<label>Risk(s)</label>
|
||||
<textarea eictextarea name="risks" data-path="form.technology.commercialisation" class="required" hint="Please try to provide an answer around 2000 chars length." maxlen="3000"></textarea>
|
||||
<textarea eictextarea name="risks" data-path="comments.technology.commercialisation" class="" hint="" placeholder="Place your comments here"></textarea>
|
||||
</div>
|
||||
</section>
|
||||
</article>
|
||||
<article eiccard>
|
||||
<header>
|
||||
<h1>1.5. Milestones</h1>
|
||||
<h2>Expert opinion: clear, complete, realistic? Costs and timing precisely explained?</h2>
|
||||
</header>
|
||||
<section>
|
||||
<div>
|
||||
<label>Abstract</label>
|
||||
<textarea eictextarea name="abstract" data-path="form.technology.milestones" class="required" hint="Please try to provide an answer around 2500 chars length." maxlen="3500"></textarea>
|
||||
<textarea eictextarea name="abstract" data-path="comments.technology.milestones" class="" hint="" placeholder="Place your comments here"></textarea>
|
||||
</div>
|
||||
<div>
|
||||
<label>Expert opinion</label>
|
||||
<textarea eictextarea name="expertOpinion" data-path="form.technology.milestones" class="required" hint="Please try to provide an answer around 4000 chars length." maxlen="6000"></textarea>
|
||||
<textarea eictextarea name="expertOpinion" data-path="comments.technology.milestones" class="" hint="" placeholder="Place your comments here"></textarea>
|
||||
</div>
|
||||
<div>
|
||||
<label>Risk(s)</label>
|
||||
<textarea eictextarea name="risks" data-path="form.technology.milestones" class="required" hint="Please try to provide an answer around 2000 chars length." maxlen="3000"></textarea>
|
||||
<textarea eictextarea name="risks" data-path="comments.technology.milestones" class="" hint="" placeholder="Place your comments here"></textarea>
|
||||
</div>
|
||||
</section>
|
||||
</article>
|
||||
<article eiccard>
|
||||
<header>
|
||||
<h1>1.6. Value Chain</h1>
|
||||
<h2>internal / external, supply chain, suppliers</h2>
|
||||
</header>
|
||||
<section>
|
||||
<div>
|
||||
<label>Abstract</label>
|
||||
<textarea eictextarea name="abstract" data-path="form.technology.production" class="required" hint="Please try to provide an answer around 2500 chars length." maxlen="3500"></textarea>
|
||||
<textarea eictextarea name="abstract" data-path="comments.technology.production" class="" hint="" placeholder="Place your comments here"></textarea>
|
||||
</div>
|
||||
<div>
|
||||
<label>Expert opinion</label>
|
||||
<textarea eictextarea name="expertOpinion" data-path="form.technology.production" class="required" hint="Please try to provide an answer around 4000 chars length." maxlen="6000"></textarea>
|
||||
<textarea eictextarea name="expertOpinion" data-path="comments.technology.production" class="" hint="" placeholder="Place your comments here"></textarea>
|
||||
</div>
|
||||
<div>
|
||||
<label>Risk(s)</label>
|
||||
<textarea eictextarea name="risks" data-path="form.technology.production" class="required" hint="Please try to provide an answer around 2000 chars length." maxlen="3000"></textarea>
|
||||
<textarea eictextarea name="risks" data-path="comments.technology.production" class="" hint="" placeholder="Place your comments here"></textarea>
|
||||
</div>
|
||||
</section>
|
||||
</article>
|
||||
<article eiccard>
|
||||
<header>
|
||||
<h1>1.7. Compliance</h1>
|
||||
<h2>current / future regulations, industry standards</h2>
|
||||
</header>
|
||||
<section>
|
||||
<div>
|
||||
<label>Abstract</label>
|
||||
<textarea eictextarea name="abstract" data-path="form.technology.compliance" class="required" hint="Please try to provide an answer around 2500 chars length." maxlen="3500"></textarea>
|
||||
<textarea eictextarea name="abstract" data-path="comments.technology.compliance" class="" hint="" placeholder="Place your comments here"></textarea>
|
||||
</div>
|
||||
<div>
|
||||
<label>Expert opinion</label>
|
||||
<textarea eictextarea name="expertOpinion" data-path="form.technology.compliance" class="required" hint="Please try to provide an answer around 4000 chars length." maxlen="6000"></textarea>
|
||||
<textarea eictextarea name="expertOpinion" data-path="comments.technology.compliance" class="" hint="" placeholder="Place your comments here"></textarea>
|
||||
</div>
|
||||
<div>
|
||||
<label>Risk(s)</label>
|
||||
<textarea eictextarea name="risks" data-path="form.technology.compliance" class="required" hint="Please try to provide an answer around 2000 chars length." maxlen="3000"></textarea>
|
||||
<textarea eictextarea name="risks" data-path="comments.technology.compliance" class="" hint="" placeholder="Place your comments here"></textarea>
|
||||
</div>
|
||||
</section>
|
||||
</article>
|
||||
<article eiccard>
|
||||
<header>
|
||||
<h1>1.8. Feedbacks</h1>
|
||||
<h2>from tests, lab results, prototypes, customers</h2>
|
||||
</header>
|
||||
<section>
|
||||
<div>
|
||||
<label>Abstract</label>
|
||||
<textarea eictextarea name="abstract" data-path="form.technology.feedbacks" class="required" hint="Please try to provide an answer around 2500 chars length." maxlen="3000"></textarea>
|
||||
<textarea eictextarea name="abstract" data-path="comments.technology.feedbacks" class="" hint="" placeholder="Place your comments here"></textarea>
|
||||
</div>
|
||||
<div>
|
||||
<label>Expert opinion</label>
|
||||
<textarea eictextarea name="expertOpinion" data-path="form.technology.feedbacks" class="required" hint="Please try to provide an answer around 4000 chars length." maxlen="6000"></textarea>
|
||||
<textarea eictextarea name="expertOpinion" data-path="comments.technology.feedbacks" class="" hint="" placeholder="Place your comments here"></textarea>
|
||||
</div>
|
||||
<div>
|
||||
<label>Risk(s)</label>
|
||||
<textarea eictextarea name="risks" data-path="form.technology.feedbacks" class="required" hint="Please try to provide an answer around 2000 chars length." maxlen="3000"></textarea>
|
||||
<textarea eictextarea name="risks" data-path="comments.technology.feedbacks" class="" hint="" placeholder="Place your comments here"></textarea>
|
||||
</div>
|
||||
</section>
|
||||
</article>
|
||||
</div>
|
||||
</div>
|
||||
<h2>2. Focus on the market</h2>
|
||||
<div class="cols-2 left market">
|
||||
<div class="tabs-extended vertical">
|
||||
<section>
|
||||
<menu eictab>
|
||||
<li data-target="landscape">Landscape<span xxsmall eicbadge danger></span></li>
|
||||
<li data-target="ecosystem">Ecosystem<span xxsmall eicbadge danger></span></li>
|
||||
<li data-target="positioning">Positioning<span xxsmall eicbadge danger></span></li>
|
||||
<li data-target="competition">Competition<span xxsmall eicbadge danger></span></li>
|
||||
<li data-target="opportunities">Opportunities<span xxsmall eicbadge danger></span></li>
|
||||
</menu>
|
||||
</section>
|
||||
</div>
|
||||
<div>
|
||||
<article eiccard>
|
||||
<header>
|
||||
<h1>2.1. Landscape</h1>
|
||||
<h2>market shares, trends, cycles, segments, regulations</h2>
|
||||
</header>
|
||||
<section>
|
||||
<div>
|
||||
<label>Abstract</label>
|
||||
<textarea eictextarea name="abstract" data-path="form.market.landscape" class="required" hint="Please try to provide an answer around 2500 chars length." maxlen="3500"></textarea>
|
||||
<textarea eictextarea name="abstract" data-path="comments.market.landscape" class="" hint="" placeholder="Place your comments here"></textarea>
|
||||
</div>
|
||||
<div>
|
||||
<label>Expert opinion</label>
|
||||
<textarea eictextarea name="expertOpinion" data-path="form.market.landscape" class="required" hint="Please try to provide an answer around 4000 chars length." maxlen="6000"></textarea>
|
||||
<textarea eictextarea name="expertOpinion" data-path="comments.market.landscape" class="" hint="" placeholder="Place your comments here"></textarea>
|
||||
</div>
|
||||
<div>
|
||||
<label>Risk(s)</label>
|
||||
<textarea eictextarea name="risks" data-path="form.market.landscape" class="required" hint="Please try to provide an answer around 2000 chars length." maxlen="3000"></textarea>
|
||||
<textarea eictextarea name="risks" data-path="comments.market.landscape" class="" hint="" placeholder="Place your comments here"></textarea>
|
||||
</div>
|
||||
</section>
|
||||
</article>
|
||||
<article eiccard>
|
||||
<header>
|
||||
<h1>2.2. Ecosystem</h1>
|
||||
<h2>actors and interactions (including competitors)</h2>
|
||||
</header>
|
||||
<section>
|
||||
<div>
|
||||
<label>Abstract</label>
|
||||
<textarea eictextarea name="abstract" data-path="form.market.ecosystem" class="required" hint="Please try to provide an answer around 2500 chars length." maxlen="3500"></textarea>
|
||||
<textarea eictextarea name="abstract" data-path="comments.market.ecosystem" class="" hint="" placeholder="Place your comments here"></textarea>
|
||||
</div>
|
||||
<div>
|
||||
<label>Expert opinion</label>
|
||||
<textarea eictextarea name="expertOpinion" data-path="form.market.ecosystem" class="required" hint="Please try to provide an answer around 4000 chars length." maxlen="6000"></textarea>
|
||||
<textarea eictextarea name="expertOpinion" data-path="comments.market.ecosystem" class="" hint="" placeholder="Place your comments here"></textarea>
|
||||
</div>
|
||||
<div>
|
||||
<label>Risk(s)</label>
|
||||
<textarea eictextarea name="risks" data-path="form.market.ecosystem" class="required" hint="Please try to provide an answer around 2000 chars length." maxlen="3000"></textarea>
|
||||
<textarea eictextarea name="risks" data-path="comments.market.ecosystem" class="" hint="" placeholder="Place your comments here"></textarea>
|
||||
</div>
|
||||
</section>
|
||||
</article>
|
||||
<article eiccard>
|
||||
<header>
|
||||
<h1>2.3. Positioning</h1>
|
||||
<h2>USP, alternatives, substitutes, comparaison</h2>
|
||||
</header>
|
||||
<section>
|
||||
<div>
|
||||
<label>Abstract</label>
|
||||
<textarea eictextarea name="abstract" data-path="form.market.positioning" class="required" hint="Please try to provide an answer around 2500 chars length." maxlen="3500"></textarea>
|
||||
<textarea eictextarea name="abstract" data-path="comments.market.positioning" class="" hint="" placeholder="Place your comments here"></textarea>
|
||||
</div>
|
||||
<div>
|
||||
<label>Expert opinion</label>
|
||||
<textarea eictextarea name="expertOpinion" data-path="form.market.positioning" class="required" hint="Please try to provide an answer around 4000 chars length." maxlen="6000"></textarea>
|
||||
<textarea eictextarea name="expertOpinion" data-path="comments.market.positioning" class="" hint="" placeholder="Place your comments here"></textarea>
|
||||
</div>
|
||||
<div>
|
||||
<label>Risk(s)</label>
|
||||
<textarea eictextarea name="risks" data-path="form.market.positioning" class="required" hint="Please try to provide an answer around 2000 chars length." maxlen="3000"></textarea>
|
||||
<textarea eictextarea name="risks" data-path="comments.market.positioning" class="" hint="" placeholder="Place your comments here"></textarea>
|
||||
</div>
|
||||
</section>
|
||||
</article>
|
||||
<article eiccard>
|
||||
<header>
|
||||
<h1>2.4. Competition</h1>
|
||||
<h2>who, how far, what traction, what funding</h2>
|
||||
</header>
|
||||
<section>
|
||||
<div>
|
||||
<label>Abstract</label>
|
||||
<textarea eictextarea name="abstract" data-path="form.market.competition" class="required" hint="Please try to provide an answer around 2500 chars length." maxlen="3500"></textarea>
|
||||
<textarea eictextarea name="abstract" data-path="comments.market.competition" class="" hint="" placeholder="Place your comments here"></textarea>
|
||||
</div>
|
||||
<div>
|
||||
<label>Expert opinion</label>
|
||||
<textarea eictextarea name="expertOpinion" data-path="form.market.competition" class="required" hint="Please try to provide an answer around 4000 chars length." maxlen="6000"></textarea>
|
||||
<textarea eictextarea name="expertOpinion" data-path="comments.market.competition" class="" hint="" placeholder="Place your comments here"></textarea>
|
||||
</div>
|
||||
<div>
|
||||
<label>Risk(s)</label>
|
||||
<textarea eictextarea name="risks" data-path="form.market.competition" class="required" hint="Please try to provide an answer around 2000 chars length." maxlen="3000"></textarea>
|
||||
<textarea eictextarea name="risks" data-path="comments.market.competition" class="" hint="" placeholder="Place your comments here"></textarea>
|
||||
</div>
|
||||
</section>
|
||||
</article>
|
||||
<article eiccard>
|
||||
<header>
|
||||
<h1>2.5. Opportunities</h1>
|
||||
<h2>procurement, expansion, export, trade</h2>
|
||||
</header>
|
||||
<section>
|
||||
<div>
|
||||
<label>Abstract</label>
|
||||
<textarea eictextarea name="abstract" data-path="form.market.opportunities" class="required" hint="Please try to provide an answer around 2500 chars length." maxlen="3500"></textarea>
|
||||
<textarea eictextarea name="abstract" data-path="comments.market.opportunities" class="" hint="" placeholder="Place your comments here"></textarea>
|
||||
</div>
|
||||
<div>
|
||||
<label>Expert opinion</label>
|
||||
<textarea eictextarea name="expertOpinion" data-path="form.market.opportunities" class="required" hint="Please try to provide an answer around 4000 chars length." maxlen="6000"></textarea>
|
||||
<textarea eictextarea name="expertOpinion" data-path="comments.market.opportunities" class="" hint="" placeholder="Place your comments here"></textarea>
|
||||
</div>
|
||||
<div>
|
||||
<label>Risk(s)</label>
|
||||
<textarea eictextarea name="risks" data-path="form.market.opportunities" class="required" hint="Please try to provide an answer around 2000 chars length." maxlen="3000"></textarea>
|
||||
<textarea eictextarea name="risks" data-path="comments.market.opportunities" class="" hint="" placeholder="Place your comments here"></textarea>
|
||||
</div>
|
||||
</section>
|
||||
</article>
|
||||
</div>
|
||||
</div>
|
||||
<h2>3. Focus on Strategy and business matters</h2>
|
||||
<div class="cols-2 left strategy">
|
||||
<div class="tabs-extended vertical">
|
||||
<section>
|
||||
<menu eictab>
|
||||
<li data-target="team">Team<span xxsmall eicbadge danger></span></li>
|
||||
<li data-target="scalability">Scalability<span xxsmall eicbadge danger></span></li>
|
||||
</menu>
|
||||
</section>
|
||||
</div>
|
||||
|
||||
<article eiccard>
|
||||
<header>
|
||||
<h1>3.1. Team</h1>
|
||||
<h2>Team sizing, key profiles, hiring, critical external collaborations.</h2>
|
||||
</header>
|
||||
<section>
|
||||
<div>
|
||||
<label>Abstract</label>
|
||||
<textarea eictextarea name="abstract" data-path="form.strategy.team" class="required" hint="Please try to provide an answer around 2500 chars length." maxlen="3500"></textarea>
|
||||
<textarea eictextarea name="abstract" data-path="comments.strategy.team" class="" hint="" placeholder="Place your comments here"></textarea>
|
||||
</div>
|
||||
<div>
|
||||
<label>Expert opinion</label>
|
||||
<textarea eictextarea name="expertOpinion" data-path="form.strategy.team" class="required" hint="Please try to provide an answer around 4000 chars length." maxlen="5000"></textarea>
|
||||
<textarea eictextarea name="expertOpinion" data-path="comments.strategy.team" class="" hint="" placeholder="Place your comments here"></textarea>
|
||||
</div>
|
||||
<div>
|
||||
<label>Risk(s)</label>
|
||||
<textarea eictextarea name="risks" data-path="form.strategy.team" class="required" hint="Please try to provide an answer around 2000 chars length." maxlen="3000"></textarea>
|
||||
<textarea eictextarea name="risks" data-path="comments.strategy.team" class="" hint="" placeholder="Place your comments here"></textarea>
|
||||
</div>
|
||||
</section>
|
||||
</article>
|
||||
<article eiccard>
|
||||
<header>
|
||||
<h1>3.2. Scalability</h1>
|
||||
<h2>Growth speed, reach profitability</h2>
|
||||
</header>
|
||||
<section>
|
||||
<div>
|
||||
<label>Abstract</label>
|
||||
<textarea eictextarea name="abstract" data-path="form.strategy.scalability" class="required" hint="Please try to provide an answer around 2500 chars length." maxlen="3500"></textarea>
|
||||
<textarea eictextarea name="abstract" data-path="comments.strategy.scalability" class="" hint="" placeholder="Place your comments here"></textarea>
|
||||
</div>
|
||||
<div>
|
||||
<label>Expert opinion</label>
|
||||
<textarea eictextarea name="expertOpinion" data-path="form.strategy.scalability" class="required" hint="Please try to provide an answer around 4000 chars length." maxlen="5000"></textarea>
|
||||
<textarea eictextarea name="expertOpinion" data-path="comments.strategy.scalability" class="" hint="" placeholder="Place your comments here"></textarea>
|
||||
</div>
|
||||
<div>
|
||||
<label>Risk(s)</label>
|
||||
<textarea eictextarea name="risks" data-path="form.strategy.scalability" class="required" hint="Please try to provide an answer around 2000 chars length." maxlen="3000"></textarea>
|
||||
<textarea eictextarea name="risks" data-path="comments.strategy.scalability" class="" hint="" placeholder="Place your comments here"></textarea>
|
||||
</div>
|
||||
</section>
|
||||
</article>
|
||||
</div>
|
||||
<h2>General conclusions and recommendations</h2>
|
||||
<div>
|
||||
<label>Is the technology in combination with the company investable or not?</label>
|
||||
<div class="cols-3">
|
||||
<select eicselect name="choice" data-path="form.conclusion.combination" data-type="boolean" class="required">
|
||||
<option></option>
|
||||
<option value="true">Yes</option>
|
||||
<option value="false">No</option>
|
||||
</select>
|
||||
</div>
|
||||
<textarea eictextarea name="justification" data-path="form.conclusion.combination" class="required" hint="Please try to provide an answer between 3200 and 4000 chars." maxlen="7000" placeholder="please explain"></textarea>
|
||||
<textarea eictextarea name="justification" data-path="comments.conclusion.combination" class="" hint="" placeholder="Place your comments here"></textarea>
|
||||
</div>
|
||||
<div>
|
||||
<label>Did you identify issues or short comings? Should this be the case can you suggest recommendations to address them.</label>
|
||||
<div class="cols-3">
|
||||
<select eicselect name="choice" data-path="form.conclusion.issues" data-type="boolean" class="required">
|
||||
<option></option>
|
||||
<option value="true">Yes</option>
|
||||
<option value="false">No</option>
|
||||
</select>
|
||||
</div>
|
||||
<textarea eictextarea name="justification" data-path="form.conclusion.issues" class="required" hint="Please try to provide an answer between 3200 and 4000 chars." maxlen="7000" placeholder="please explain"></textarea>
|
||||
<textarea eictextarea name="justification" data-path="comments.conclusion.issues" class="" hint="" placeholder="Place your comments here"></textarea>
|
||||
</div>
|
||||
<div>
|
||||
<label>In your opinion is the project aligned with the objectives of the EC funds on Deep tech, strategic priorities and sovereignity concerns?</label>
|
||||
<div class="cols-3">
|
||||
<select eicselect name="choice" data-path="form.conclusion.alignment" data-type="boolean" class="required">
|
||||
<option></option>
|
||||
<option value="true">Yes</option>
|
||||
<option value="false">No</option>
|
||||
</select>
|
||||
</div>
|
||||
<textarea eictextarea name="justification" data-path="form.conclusion.alignment" class="required" hint="Please try to provide an answer between 3200 and 4000 chars." maxlen="7000" placeholder="please explain"></textarea>
|
||||
<textarea eictextarea name="justification" data-path="comments.conclusion.alignment" class="" hint="" placeholder="Place your comments here"></textarea>
|
||||
</div>
|
||||
</form>
|
||||
@@ -0,0 +1,22 @@
|
||||
/**
|
||||
*
|
||||
*/
|
||||
class ICMPFormTechddV1EnhancedView extends ICMPFormTechddV1View {
|
||||
|
||||
DOMContentLoaded(options) {
|
||||
super.DOMContentLoaded(options);
|
||||
|
||||
this.tabStrategy = new Tab();
|
||||
this.tabStrategy.addTabs(
|
||||
this.findAll('.strategy .tabs-extended menu li'),
|
||||
this.findAll('.strategy article')
|
||||
);
|
||||
}
|
||||
|
||||
getTriggers() {
|
||||
return [].concat( this.tabTech.triggers, this.tabMarket.triggers, this.tabStrategy.triggers )
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
app.registerClass('ICMPFormTechddV1EnhancedView',ICMPFormTechddV1EnhancedView);
|
||||
@@ -0,0 +1,460 @@
|
||||
<form>
|
||||
<h2>Focus on the technology</h2>
|
||||
<div class="cols-2 left tech">
|
||||
<input type="hidden" name="form.version" data-path="" value="1.0" />
|
||||
<input type="hidden" name="status" data-path="" value="" />
|
||||
<div class="tabs-extended vertical">
|
||||
<section>
|
||||
<menu eictab>
|
||||
<li data-target="attributes">Attributes<span xxsmall eicbadge danger></span></li>
|
||||
<li data-target="protection">Protection<span xxsmall eicbadge danger></span></li>
|
||||
<li data-target="validity">Validity<span xxsmall eicbadge danger></span></li>
|
||||
<li data-target="commercialisation">Commercialisation<span xxsmall eicbadge danger></span></li>
|
||||
<li data-target="milestones">Milestones<span xxsmall eicbadge danger></span></li>
|
||||
<li data-target="production">Value Chain<span xxsmall eicbadge danger></span></li>
|
||||
<li data-target="compliance">Compliance<span xxsmall eicbadge danger></span></li>
|
||||
<li data-target="feedbacks">Feedbacks<span xxsmall eicbadge danger></span></li>
|
||||
</menu>
|
||||
</section>
|
||||
</div>
|
||||
<div>
|
||||
|
||||
<article eiccard>
|
||||
<header>
|
||||
<h1>1.1. Attributes</h1>
|
||||
<h2>qualities, shortcomings, use and possible extension</h2>
|
||||
</header>
|
||||
<section>
|
||||
<div>
|
||||
<label>Abstract</label>
|
||||
<textarea eictextarea name="abstract" data-path="form.technology.attributes" class="required" hint="Please try to provide an answer around 4500 chars length." maxlen="6500"></textarea>
|
||||
<textarea eictextarea name="abstract" data-path="comments.technology.attributes" class="" hint="" placeholder="Place your comments here"></textarea>
|
||||
</div>
|
||||
<div>
|
||||
<label>Expert opinion</label>
|
||||
<textarea eictextarea name="expertOpinion" data-path="form.technology.attributes" class="required" hint="Please try to provide an answer around 6000 chars length." maxlen="9000"></textarea>
|
||||
<textarea eictextarea name="expertOpinion" data-path="comments.technology.attributes" class="" hint="" placeholder="Place your comments here"></textarea>
|
||||
</div>
|
||||
<div>
|
||||
<label>Risk(s)</label>
|
||||
<textarea eictextarea name="risks" data-path="form.technology.attributes" class="required" hint="Please try to provide an answer around 4500 chars length." maxlen="6000"></textarea>
|
||||
<textarea eictextarea name="risks" data-path="comments.technology.attributes" class="" hint="" placeholder="Place your comments here"></textarea>
|
||||
</div>
|
||||
</section>
|
||||
</article>
|
||||
<article eiccard>
|
||||
<header>
|
||||
<h1>1.2. Protection</h1>
|
||||
<h2>patents, copyrights, trade secret, know-ho</h2>
|
||||
</header>
|
||||
<section>
|
||||
<div>
|
||||
<label>Abstract</label>
|
||||
<textarea eictextarea name="abstract" data-path="form.technology.protection" class="required" hint="Please try to provide an answer around 4500 chars length." maxlen="6500"></textarea>
|
||||
<textarea eictextarea name="abstract" data-path="comments.technology.protection" class="" hint="" placeholder="Place your comments here"></textarea>
|
||||
</div>
|
||||
<div>
|
||||
<label>Expert opinion</label>
|
||||
<textarea eictextarea name="expertOpinion" data-path="form.technology.protection" class="required" hint="Please try to provide an answer around 6000 chars length." maxlen="9000"></textarea>
|
||||
<textarea eictextarea name="expertOpinion" data-path="comments.technology.protection" class="" hint="" placeholder="Place your comments here"></textarea>
|
||||
</div>
|
||||
<div>
|
||||
<label>Risk(s)</label>
|
||||
<textarea eictextarea name="risks" data-path="form.technology.protection" class="required" hint="Please try to provide an answer around 4500 chars length." maxlen="6000"></textarea>
|
||||
<textarea eictextarea name="risks" data-path="comments.technology.protection" class="" hint="" placeholder="Place your comments here"></textarea>
|
||||
</div>
|
||||
</section>
|
||||
</article>
|
||||
<article eiccard>
|
||||
<header>
|
||||
<h1>1.3. Validity</h1>
|
||||
<h2>development plan, tests, prototype, demo, scalability</h2>
|
||||
</header>
|
||||
<section>
|
||||
<div>
|
||||
<label>Abstract</label>
|
||||
<textarea eictextarea name="abstract" data-path="form.technology.validity" class="required" hint="Please try to provide an answer around 4500 chars length." maxlen="6500"></textarea>
|
||||
<textarea eictextarea name="abstract" data-path="comments.technology.validity" class="" hint="" placeholder="Place your comments here"></textarea>
|
||||
</div>
|
||||
<div>
|
||||
<label>Expert opinion</label>
|
||||
<textarea eictextarea name="expertOpinion" data-path="form.technology.validity" class="required" hint="Please try to provide an answer around 6000 chars length." maxlen="9000"></textarea>
|
||||
<textarea eictextarea name="expertOpinion" data-path="comments.technology.validity" class="" hint="" placeholder="Place your comments here"></textarea>
|
||||
</div>
|
||||
<div>
|
||||
<label>Risk(s)</label>
|
||||
<textarea eictextarea name="risks" data-path="form.technology.validity" class="required" hint="Please try to provide an answer around 4500 chars length." maxlen="6000"></textarea>
|
||||
<textarea eictextarea name="risks" data-path="comments.technology.validity" class="" hint="" placeholder="Place your comments here"></textarea>
|
||||
</div>
|
||||
</section>
|
||||
</article>
|
||||
<article eiccard>
|
||||
<header>
|
||||
<h1>1.4. Commercialisation</h1>
|
||||
<h2>time and costs to develop, barriers and risks</h2>
|
||||
</header>
|
||||
<section>
|
||||
<div>
|
||||
<label>Abstract</label>
|
||||
<textarea eictextarea name="abstract" data-path="form.technology.commercialisation" class="required" hint="Please try to provide an answer around 4500 chars length." maxlen="6500"></textarea>
|
||||
<textarea eictextarea name="abstract" data-path="comments.technology.commercialisation" class="" hint="" placeholder="Place your comments here"></textarea>
|
||||
</div>
|
||||
<div>
|
||||
<label>Expert opinion</label>
|
||||
<textarea eictextarea name="expertOpinion" data-path="form.technology.commercialisation" class="required" hint="Please try to provide an answer around 6000 chars length." maxlen="9000"></textarea>
|
||||
<textarea eictextarea name="expertOpinion" data-path="comments.technology.commercialisation" class="" hint="" placeholder="Place your comments here"></textarea>
|
||||
</div>
|
||||
<div>
|
||||
<label>Risk(s)</label>
|
||||
<textarea eictextarea name="risks" data-path="form.technology.commercialisation" class="required" hint="Please try to provide an answer around 4500 chars length." maxlen="6000"></textarea>
|
||||
<textarea eictextarea name="risks" data-path="comments.technology.commercialisation" class="" hint="" placeholder="Place your comments here"></textarea>
|
||||
</div>
|
||||
</section>
|
||||
</article>
|
||||
<article eiccard>
|
||||
<header>
|
||||
<h1>1.5. Milestones</h1>
|
||||
<h2>Expert opinion: clear, complete, realistic? Costs and timing precisely explained?</h2>
|
||||
</header>
|
||||
<section>
|
||||
<div>
|
||||
<label>Abstract</label>
|
||||
<textarea eictextarea name="abstract" data-path="form.technology.milestones" class="required" hint="Please try to provide an answer around 4500 chars length." maxlen="6500"></textarea>
|
||||
<textarea eictextarea name="abstract" data-path="comments.technology.milestones" class="" hint="" placeholder="Place your comments here"></textarea>
|
||||
</div>
|
||||
<div>
|
||||
<label>Expert opinion</label>
|
||||
<textarea eictextarea name="expertOpinion" data-path="form.technology.milestones" class="required" hint="Please try to provide an answer around 6000 chars length." maxlen="9000"></textarea>
|
||||
<textarea eictextarea name="expertOpinion" data-path="comments.technology.milestones" class="" hint="" placeholder="Place your comments here"></textarea>
|
||||
</div>
|
||||
<div>
|
||||
<label>Risk(s)</label>
|
||||
<textarea eictextarea name="risks" data-path="form.technology.milestones" class="required" hint="Please try to provide an answer around 4500 chars length." maxlen="6000"></textarea>
|
||||
<textarea eictextarea name="risks" data-path="comments.technology.milestones" class="" hint="" placeholder="Place your comments here"></textarea>
|
||||
</div>
|
||||
</section>
|
||||
</article>
|
||||
<article eiccard>
|
||||
<header>
|
||||
<h1>1.6. Value Chain</h1>
|
||||
<h2>internal / external, supply chain, suppliers</h2>
|
||||
</header>
|
||||
<section>
|
||||
<div>
|
||||
<label>Abstract</label>
|
||||
<textarea eictextarea name="abstract" data-path="form.technology.production" class="required" hint="Please try to provide an answer around 4500 chars length." maxlen="6500"></textarea>
|
||||
<textarea eictextarea name="abstract" data-path="comments.technology.production" class="" hint="" placeholder="Place your comments here"></textarea>
|
||||
</div>
|
||||
<div>
|
||||
<label>Expert opinion</label>
|
||||
<textarea eictextarea name="expertOpinion" data-path="form.technology.production" class="required" hint="Please try to provide an answer around 6000 chars length." maxlen="9000"></textarea>
|
||||
<textarea eictextarea name="expertOpinion" data-path="comments.technology.production" class="" hint="" placeholder="Place your comments here"></textarea>
|
||||
</div>
|
||||
<div>
|
||||
<label>Risk(s)</label>
|
||||
<textarea eictextarea name="risks" data-path="form.technology.production" class="required" hint="Please try to provide an answer around 4500 chars length." maxlen="6000"></textarea>
|
||||
<textarea eictextarea name="risks" data-path="comments.technology.production" class="" hint="" placeholder="Place your comments here"></textarea>
|
||||
</div>
|
||||
</section>
|
||||
</article>
|
||||
<article eiccard>
|
||||
<header>
|
||||
<h1>1.7. Compliance</h1>
|
||||
<h2>current / future regulations, industry standards</h2>
|
||||
</header>
|
||||
<section>
|
||||
<div>
|
||||
<label>Abstract</label>
|
||||
<textarea eictextarea name="abstract" data-path="form.technology.compliance" class="required" hint="Please try to provide an answer around 4500 chars length." maxlen="6500"></textarea>
|
||||
<textarea eictextarea name="abstract" data-path="comments.technology.compliance" class="" hint="" placeholder="Place your comments here"></textarea>
|
||||
</div>
|
||||
<div>
|
||||
<label>Expert opinion</label>
|
||||
<textarea eictextarea name="expertOpinion" data-path="form.technology.compliance" class="required" hint="Please try to provide an answer around 6000 chars length." maxlen="9000"></textarea>
|
||||
<textarea eictextarea name="expertOpinion" data-path="comments.technology.compliance" class="" hint="" placeholder="Place your comments here"></textarea>
|
||||
</div>
|
||||
<div>
|
||||
<label>Risk(s)</label>
|
||||
<textarea eictextarea name="risks" data-path="form.technology.compliance" class="required" hint="Please try to provide an answer around 4500 chars length." maxlen="6000"></textarea>
|
||||
<textarea eictextarea name="risks" data-path="comments.technology.compliance" class="" hint="" placeholder="Place your comments here"></textarea>
|
||||
</div>
|
||||
</section>
|
||||
</article>
|
||||
<article eiccard>
|
||||
<header>
|
||||
<h1>1.8. Feedbacks</h1>
|
||||
<h2>from tests, lab results, prototypes, customers</h2>
|
||||
</header>
|
||||
<section>
|
||||
<div>
|
||||
<label>Abstract</label>
|
||||
<textarea eictextarea name="abstract" data-path="form.technology.feedbacks" class="required" hint="Please try to provide an answer around 2500 chars length." maxlen="3000"></textarea>
|
||||
<textarea eictextarea name="abstract" data-path="comments.technology.feedbacks" class="" hint="" placeholder="Place your comments here"></textarea>
|
||||
</div>
|
||||
<div>
|
||||
<label>Expert opinion</label>
|
||||
<textarea eictextarea name="expertOpinion" data-path="form.technology.feedbacks" class="required" hint="Please try to provide an answer around 6000 chars length." maxlen="9000"></textarea>
|
||||
<textarea eictextarea name="expertOpinion" data-path="comments.technology.feedbacks" class="" hint="" placeholder="Place your comments here"></textarea>
|
||||
</div>
|
||||
<div>
|
||||
<label>Risk(s)</label>
|
||||
<textarea eictextarea name="risks" data-path="form.technology.feedbacks" class="required" hint="Please try to provide an answer around 4500 chars length." maxlen="6000"></textarea>
|
||||
<textarea eictextarea name="risks" data-path="comments.technology.feedbacks" class="" hint="" placeholder="Place your comments here"></textarea>
|
||||
</div>
|
||||
</section>
|
||||
</article>
|
||||
</div>
|
||||
</div>
|
||||
<h2>2. Focus on the market</h2>
|
||||
<div class="cols-2 left market">
|
||||
<div class="tabs-extended vertical">
|
||||
<section>
|
||||
<menu eictab>
|
||||
<li data-target="landscape">Landscape<span xxsmall eicbadge danger></span></li>
|
||||
<li data-target="ecosystem">Ecosystem<span xxsmall eicbadge danger></span></li>
|
||||
<li data-target="positioning">Positioning<span xxsmall eicbadge danger></span></li>
|
||||
<li data-target="competition">Competition<span xxsmall eicbadge danger></span></li>
|
||||
<li data-target="opportunities">Opportunities<span xxsmall eicbadge danger></span></li>
|
||||
</menu>
|
||||
</section>
|
||||
</div>
|
||||
<div>
|
||||
<article eiccard>
|
||||
<header>
|
||||
<h1>2.1. Landscape</h1>
|
||||
<h2>market shares, trends, cycles, segments, regulations</h2>
|
||||
</header>
|
||||
<section>
|
||||
<div>
|
||||
<label>Abstract</label>
|
||||
<textarea eictextarea name="abstract" data-path="form.market.landscape" class="required" hint="Please try to provide an answer around 4500 chars length." maxlen="6500"></textarea>
|
||||
<textarea eictextarea name="abstract" data-path="comments.market.landscape" class="" hint="" placeholder="Place your comments here"></textarea>
|
||||
</div>
|
||||
<div>
|
||||
<label>Expert opinion</label>
|
||||
<textarea eictextarea name="expertOpinion" data-path="form.market.landscape" class="required" hint="Please try to provide an answer around 6000 chars length." maxlen="9000"></textarea>
|
||||
<textarea eictextarea name="expertOpinion" data-path="comments.market.landscape" class="" hint="" placeholder="Place your comments here"></textarea>
|
||||
</div>
|
||||
<div>
|
||||
<label>Risk(s)</label>
|
||||
<textarea eictextarea name="risks" data-path="form.market.landscape" class="required" hint="Please try to provide an answer around 4500 chars length." maxlen="6000"></textarea>
|
||||
<textarea eictextarea name="risks" data-path="comments.market.landscape" class="" hint="" placeholder="Place your comments here"></textarea>
|
||||
</div>
|
||||
</section>
|
||||
</article>
|
||||
<article eiccard>
|
||||
<header>
|
||||
<h1>2.2. Ecosystem</h1>
|
||||
<h2>actors and interactions (including competitors)</h2>
|
||||
</header>
|
||||
<section>
|
||||
<div>
|
||||
<label>Abstract</label>
|
||||
<textarea eictextarea name="abstract" data-path="form.market.ecosystem" class="required" hint="Please try to provide an answer around 4500 chars length." maxlen="6500"></textarea>
|
||||
<textarea eictextarea name="abstract" data-path="comments.market.ecosystem" class="" hint="" placeholder="Place your comments here"></textarea>
|
||||
</div>
|
||||
<div>
|
||||
<label>Expert opinion</label>
|
||||
<textarea eictextarea name="expertOpinion" data-path="form.market.ecosystem" class="required" hint="Please try to provide an answer around 6000 chars length." maxlen="9000"></textarea>
|
||||
<textarea eictextarea name="expertOpinion" data-path="comments.market.ecosystem" class="" hint="" placeholder="Place your comments here"></textarea>
|
||||
</div>
|
||||
<div>
|
||||
<label>Risk(s)</label>
|
||||
<textarea eictextarea name="risks" data-path="form.market.ecosystem" class="required" hint="Please try to provide an answer around 4500 chars length." maxlen="6000"></textarea>
|
||||
<textarea eictextarea name="risks" data-path="comments.market.ecosystem" class="" hint="" placeholder="Place your comments here"></textarea>
|
||||
</div>
|
||||
</section>
|
||||
</article>
|
||||
<article eiccard>
|
||||
<header>
|
||||
<h1>2.3. Positioning</h1>
|
||||
<h2>USP, alternatives, substitutes, comparaison</h2>
|
||||
</header>
|
||||
<section>
|
||||
<div>
|
||||
<label>Abstract</label>
|
||||
<textarea eictextarea name="abstract" data-path="form.market.positioning" class="required" hint="Please try to provide an answer around 4500 chars length." maxlen="6500"></textarea>
|
||||
<textarea eictextarea name="abstract" data-path="comments.market.positioning" class="" hint="" placeholder="Place your comments here"></textarea>
|
||||
</div>
|
||||
<div>
|
||||
<label>Expert opinion</label>
|
||||
<textarea eictextarea name="expertOpinion" data-path="form.market.positioning" class="required" hint="Please try to provide an answer around 6000 chars length." maxlen="9000"></textarea>
|
||||
<textarea eictextarea name="expertOpinion" data-path="comments.market.positioning" class="" hint="" placeholder="Place your comments here"></textarea>
|
||||
</div>
|
||||
<div>
|
||||
<label>Risk(s)</label>
|
||||
<textarea eictextarea name="risks" data-path="form.market.positioning" class="required" hint="Please try to provide an answer around 4500 chars length." maxlen="6000"></textarea>
|
||||
<textarea eictextarea name="risks" data-path="comments.market.positioning" class="" hint="" placeholder="Place your comments here"></textarea>
|
||||
</div>
|
||||
</section>
|
||||
</article>
|
||||
<article eiccard>
|
||||
<header>
|
||||
<h1>2.4. Competition</h1>
|
||||
<h2>who, how far, what traction, what funding</h2>
|
||||
</header>
|
||||
<section>
|
||||
<div>
|
||||
<label>Abstract</label>
|
||||
<textarea eictextarea name="abstract" data-path="form.market.competition" class="required" hint="Please try to provide an answer around 4500 chars length." maxlen="6500"></textarea>
|
||||
<textarea eictextarea name="abstract" data-path="comments.market.competition" class="" hint="" placeholder="Place your comments here"></textarea>
|
||||
</div>
|
||||
<div>
|
||||
<label>Expert opinion</label>
|
||||
<textarea eictextarea name="expertOpinion" data-path="form.market.competition" class="required" hint="Please try to provide an answer around 6000 chars length." maxlen="9000"></textarea>
|
||||
<textarea eictextarea name="expertOpinion" data-path="comments.market.competition" class="" hint="" placeholder="Place your comments here"></textarea>
|
||||
</div>
|
||||
<div>
|
||||
<label>Risk(s)</label>
|
||||
<textarea eictextarea name="risks" data-path="form.market.competition" class="required" hint="Please try to provide an answer around 4500 chars length." maxlen="6000"></textarea>
|
||||
<textarea eictextarea name="risks" data-path="comments.market.competition" class="" hint="" placeholder="Place your comments here"></textarea>
|
||||
</div>
|
||||
</section>
|
||||
</article>
|
||||
<article eiccard>
|
||||
<header>
|
||||
<h1>2.5. Opportunities</h1>
|
||||
<h2>procurement, expansion, export, trade</h2>
|
||||
</header>
|
||||
<section>
|
||||
<div>
|
||||
<label>Abstract</label>
|
||||
<textarea eictextarea name="abstract" data-path="form.market.opportunities" class="required" hint="Please try to provide an answer around 4500 chars length." maxlen="6500"></textarea>
|
||||
<textarea eictextarea name="abstract" data-path="comments.market.opportunities" class="" hint="" placeholder="Place your comments here"></textarea>
|
||||
</div>
|
||||
<div>
|
||||
<label>Expert opinion</label>
|
||||
<textarea eictextarea name="expertOpinion" data-path="form.market.opportunities" class="required" hint="Please try to provide an answer around 6000 chars length." maxlen="9000"></textarea>
|
||||
<textarea eictextarea name="expertOpinion" data-path="comments.market.opportunities" class="" hint="" placeholder="Place your comments here"></textarea>
|
||||
</div>
|
||||
<div>
|
||||
<label>Risk(s)</label>
|
||||
<textarea eictextarea name="risks" data-path="form.market.opportunities" class="required" hint="Please try to provide an answer around 4500 chars length." maxlen="6000"></textarea>
|
||||
<textarea eictextarea name="risks" data-path="comments.market.opportunities" class="" hint="" placeholder="Place your comments here"></textarea>
|
||||
</div>
|
||||
</section>
|
||||
</article>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<h2>3. Focus on Strategy and business matters</h2>
|
||||
<div class="cols-2 left strategy">
|
||||
<div class="tabs-extended vertical">
|
||||
<section>
|
||||
<menu eictab>
|
||||
<li data-target="team">Team<span xxsmall eicbadge danger></span></li>
|
||||
<li data-target="scalability">Scalability<span xxsmall eicbadge danger></span></li>
|
||||
<li data-target="business">Business model<span xxsmall eicbadge danger></span></li>
|
||||
</menu>
|
||||
</section>
|
||||
</div>
|
||||
|
||||
<article eiccard>
|
||||
<header>
|
||||
<h1>3.1. Team</h1>
|
||||
<h2>Team sizing, key profiles, hiring, critical external collaborations.</h2>
|
||||
</header>
|
||||
<section>
|
||||
<div>
|
||||
<label>Abstract</label>
|
||||
<textarea eictextarea name="abstract" data-path="form.strategy.team" class="required" hint="Please try to provide an answer around 4500 chars length." maxlen="6500"></textarea>
|
||||
<textarea eictextarea name="abstract" data-path="comments.strategy.team" class="" hint="" placeholder="Place your comments here"></textarea>
|
||||
</div>
|
||||
<div>
|
||||
<label>Expert opinion</label>
|
||||
<textarea eictextarea name="expertOpinion" data-path="form.strategy.team" class="required" hint="Please try to provide an answer around 6000 chars length." maxlen="9000"></textarea>
|
||||
<textarea eictextarea name="expertOpinion" data-path="comments.strategy.team" class="" hint="" placeholder="Place your comments here"></textarea>
|
||||
</div>
|
||||
<div>
|
||||
<label>Risk(s)</label>
|
||||
<textarea eictextarea name="risks" data-path="form.strategy.team" class="required" hint="Please try to provide an answer around 4500 chars length." maxlen="6000"></textarea>
|
||||
<textarea eictextarea name="risks" data-path="comments.strategy.team" class="" hint="" placeholder="Place your comments here"></textarea>
|
||||
</div>
|
||||
</section>
|
||||
</article>
|
||||
<article eiccard>
|
||||
<header>
|
||||
<h1>3.2. Scalability</h1>
|
||||
<h2>Growth speed, reach profitability</h2>
|
||||
</header>
|
||||
<section>
|
||||
<div>
|
||||
<label>Abstract</label>
|
||||
<textarea eictextarea name="abstract" data-path="form.strategy.scalability" class="required" hint="Please try to provide an answer around 4500 chars length." maxlen="6500"></textarea>
|
||||
<textarea eictextarea name="abstract" data-path="comments.strategy.scalability" class="" hint="" placeholder="Place your comments here"></textarea>
|
||||
</div>
|
||||
<div>
|
||||
<label>Expert opinion</label>
|
||||
<textarea eictextarea name="expertOpinion" data-path="form.strategy.scalability" class="required" hint="Please try to provide an answer around 6000 chars length." maxlen="9000"></textarea>
|
||||
<textarea eictextarea name="expertOpinion" data-path="comments.strategy.scalability" class="" hint="" placeholder="Place your comments here"></textarea>
|
||||
</div>
|
||||
<div>
|
||||
<label>Risk(s)</label>
|
||||
<textarea eictextarea name="risks" data-path="form.strategy.scalability" class="required" hint="Please try to provide an answer around 4500 chars length." maxlen="6000"></textarea>
|
||||
<textarea eictextarea name="risks" data-path="comments.strategy.scalability" class="" hint="" placeholder="Place your comments here"></textarea>
|
||||
</div>
|
||||
</section>
|
||||
</article>
|
||||
<article eiccard>
|
||||
<header>
|
||||
<h1>3.3. Business model</h1>
|
||||
<h2>Key revenues, Capex, Cost assumptions in the Business model</h2>
|
||||
</header>
|
||||
<section>
|
||||
<div>
|
||||
<label>Abstract</label>
|
||||
<textarea eictextarea name="abstract" data-path="form.strategy.business" class="required" hint="Please try to provide an answer around 4500 chars length." maxlen="6500"></textarea>
|
||||
<textarea eictextarea name="abstract" data-path="comments.strategy.business" class="" hint="" placeholder="Place your comments here"></textarea>
|
||||
</div>
|
||||
<div>
|
||||
<label>Expert opinion</label>
|
||||
<textarea eictextarea name="expertOpinion" data-path="form.strategy.business" class="required" hint="Please try to provide an answer around 6000 chars length." maxlen="9000"></textarea>
|
||||
<textarea eictextarea name="expertOpinion" data-path="comments.strategy.business" class="" hint="" placeholder="Place your comments here"></textarea>
|
||||
</div>
|
||||
<div>
|
||||
<label>Risk(s)</label>
|
||||
<textarea eictextarea name="risks" data-path="form.strategy.business" class="required" hint="Please try to provide an answer around 4500 chars length." maxlen="6000"></textarea>
|
||||
<textarea eictextarea name="risks" data-path="comments.strategy.business" class="" hint="" placeholder="Place your comments here"></textarea>
|
||||
</div>
|
||||
</section>
|
||||
</article>
|
||||
</div>
|
||||
|
||||
<h2>General conclusions and recommendations</h2>
|
||||
<div>
|
||||
<label>Is the technology in combination with the company investable or not?</label>
|
||||
<div class="cols-3">
|
||||
<select eicselect name="choice" data-path="form.conclusion.combination" data-type="boolean" class="required">
|
||||
<option></option>
|
||||
<option value="true">Yes</option>
|
||||
<option value="false">No</option>
|
||||
</select>
|
||||
</div>
|
||||
<textarea eictextarea name="justification" data-path="form.conclusion.combination" class="required" hint="Please try to provide an answer between 3200 and 4000 chars." maxlen="7000" placeholder="please explain"></textarea>
|
||||
<textarea eictextarea name="justification" data-path="comments.conclusion.combination" class="" hint="" placeholder="Place your comments here"></textarea>
|
||||
</div>
|
||||
<div>
|
||||
<label>Did you identify issues or short comings? Should this be the case can you suggest recommendations to address them.</label>
|
||||
<div class="cols-3">
|
||||
<select eicselect name="choice" data-path="form.conclusion.issues" data-type="boolean" class="required">
|
||||
<option></option>
|
||||
<option value="true">Yes</option>
|
||||
<option value="false">No</option>
|
||||
</select>
|
||||
</div>
|
||||
<textarea eictextarea name="justification" data-path="form.conclusion.issues" class="required" hint="Please try to provide an answer between 3200 and 4000 chars." maxlen="7000" placeholder="please explain"></textarea>
|
||||
<textarea eictextarea name="justification" data-path="comments.conclusion.issues" class="" hint="" placeholder="Place your comments here"></textarea>
|
||||
</div>
|
||||
<div>
|
||||
<label>In your opinion is the project aligned with the objectives of the EC funds on Deep tech, strategic priorities and sovereignity concerns?</label>
|
||||
<div class="cols-3">
|
||||
<select eicselect name="choice" data-path="form.conclusion.alignment" data-type="boolean" class="required">
|
||||
<option></option>
|
||||
<option value="true">Yes</option>
|
||||
<option value="false">No</option>
|
||||
</select>
|
||||
</div>
|
||||
<textarea eictextarea name="justification" data-path="form.conclusion.alignment" class="required" hint="Please try to provide an answer between 3200 and 4000 chars." maxlen="7000" placeholder="please explain"></textarea>
|
||||
<textarea eictextarea name="justification" data-path="comments.conclusion.alignment" class="" hint="" placeholder="Place your comments here"></textarea>
|
||||
</div>
|
||||
</form>
|
||||
@@ -0,0 +1,22 @@
|
||||
/**
|
||||
*
|
||||
*/
|
||||
class ICMPFormTechddV1FullView extends ICMPFormTechddV1View {
|
||||
|
||||
DOMContentLoaded(options) {
|
||||
super.DOMContentLoaded(options);
|
||||
|
||||
this.tabStrategy = new Tab();
|
||||
this.tabStrategy.addTabs(
|
||||
this.findAll('.strategy .tabs-extended menu li'),
|
||||
this.findAll('.strategy article')
|
||||
);
|
||||
}
|
||||
|
||||
getTriggers() {
|
||||
return [].concat( this.tabTech.triggers, this.tabMarket.triggers, this.tabStrategy.triggers )
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
app.registerClass('ICMPFormTechddV1FullView',ICMPFormTechddV1FullView);
|
||||
@@ -0,0 +1,352 @@
|
||||
<form>
|
||||
<h2>1. Focus on the technology</h2>
|
||||
<div class="cols-2 left tech">
|
||||
<input type="hidden" name="form.version" data-path="" value="1.0" />
|
||||
<input type="hidden" name="status" data-path="" value="" />
|
||||
<div class="tabs-extended vertical">
|
||||
<section>
|
||||
<menu eictab>
|
||||
<li data-target="attributes">Attributes<span xxsmall eicbadge danger></span></li>
|
||||
<li data-target="protection">Protection<span xxsmall eicbadge danger></span></li>
|
||||
<li data-target="validity">Validity<span xxsmall eicbadge danger></span></li>
|
||||
<li data-target="commercialisation">Commercialisation<span xxsmall eicbadge danger></span></li>
|
||||
<li data-target="milestones">Milestones<span xxsmall eicbadge danger></span></li>
|
||||
<li data-target="production">Value Chain<span xxsmall eicbadge danger></span></li>
|
||||
<li data-target="compliance">Compliance<span xxsmall eicbadge danger></span></li>
|
||||
<li data-target="feedbacks">Feedbacks<span xxsmall eicbadge danger></span></li>
|
||||
</menu>
|
||||
</section>
|
||||
</div>
|
||||
<div>
|
||||
|
||||
<article eiccard>
|
||||
<header>
|
||||
<h1>1.1. Attributes</h1>
|
||||
<h2>qualities, shortcomings, use and possible extension</h2>
|
||||
</header>
|
||||
<section>
|
||||
<div>
|
||||
<label>Abstract</label>
|
||||
<textarea eictextarea name="abstract" data-path="form.technology.attributes" class="required" hint="Please try to provide an answer around 1500 chars length." maxlen="2000"></textarea>
|
||||
<textarea eictextarea name="abstract" data-path="comments.technology.attributes" class="" hint="" placeholder="Place your comments here"></textarea>
|
||||
</div>
|
||||
<div>
|
||||
<label>Expert opinion</label>
|
||||
<textarea eictextarea name="expertOpinion" data-path="form.technology.attributes" class="required" hint="Please try to provide an answer around 3000 chars length." maxlen="4500"></textarea>
|
||||
<textarea eictextarea name="expertOpinion" data-path="comments.technology.attributes" class="" hint="" placeholder="Place your comments here"></textarea>
|
||||
</div>
|
||||
<div>
|
||||
<label>Risk(s)</label>
|
||||
<textarea eictextarea name="risks" data-path="form.technology.attributes" class="required" hint="Please try to provide an answer around 1500 chars length." maxlen="2000"></textarea>
|
||||
<textarea eictextarea name="risks" data-path="comments.technology.attributes" class="" hint="" placeholder="Place your comments here"></textarea>
|
||||
</div>
|
||||
</section>
|
||||
</article>
|
||||
<article eiccard>
|
||||
<header>
|
||||
<h1>1.2. Protection</h1>
|
||||
<h2>patents, copyrights, trade secret, know-ho</h2>
|
||||
</header>
|
||||
<section>
|
||||
<div>
|
||||
<label>Abstract</label>
|
||||
<textarea eictextarea name="abstract" data-path="form.technology.protection" class="required" hint="Please try to provide an answer around 1500 chars length." maxlen="2000"></textarea>
|
||||
<textarea eictextarea name="abstract" data-path="comments.technology.protection" class="" hint="" placeholder="Place your comments here"></textarea>
|
||||
</div>
|
||||
<div>
|
||||
<label>Expert opinion</label>
|
||||
<textarea eictextarea name="expertOpinion" data-path="form.technology.protection" class="required" hint="Please try to provide an answer around 3000 chars length." maxlen="4500"></textarea>
|
||||
<textarea eictextarea name="expertOpinion" data-path="comments.technology.protection" class="" hint="" placeholder="Place your comments here"></textarea>
|
||||
</div>
|
||||
<div>
|
||||
<label>Risk(s)</label>
|
||||
<textarea eictextarea name="risks" data-path="form.technology.protection" class="required" hint="Please try to provide an answer around 1500 chars length." maxlen="2000"></textarea>
|
||||
<textarea eictextarea name="risks" data-path="comments.technology.protection" class="" hint="" placeholder="Place your comments here"></textarea>
|
||||
</div>
|
||||
</section>
|
||||
</article>
|
||||
<article eiccard>
|
||||
<header>
|
||||
<h1>1.3. Validity</h1>
|
||||
<h2>development plan, tests, prototype, demo, scalability</h2>
|
||||
</header>
|
||||
<section>
|
||||
<div>
|
||||
<label>Abstract</label>
|
||||
<textarea eictextarea name="abstract" data-path="form.technology.validity" class="required" hint="Please try to provide an answer around 1500 chars length." maxlen="2000"></textarea>
|
||||
<textarea eictextarea name="abstract" data-path="comments.technology.validity" class="" hint="" placeholder="Place your comments here"></textarea>
|
||||
</div>
|
||||
<div>
|
||||
<label>Expert opinion</label>
|
||||
<textarea eictextarea name="expertOpinion" data-path="form.technology.validity" class="required" hint="Please try to provide an answer around 3000 chars length." maxlen="4500"></textarea>
|
||||
<textarea eictextarea name="expertOpinion" data-path="comments.technology.validity" class="" hint="" placeholder="Place your comments here"></textarea>
|
||||
</div>
|
||||
<div>
|
||||
<label>Risk(s)</label>
|
||||
<textarea eictextarea name="risks" data-path="form.technology.validity" class="required" hint="Please try to provide an answer around 1500 chars length." maxlen="2000"></textarea>
|
||||
<textarea eictextarea name="risks" data-path="comments.technology.validity" class="" hint="" placeholder="Place your comments here"></textarea>
|
||||
</div>
|
||||
</section>
|
||||
</article>
|
||||
<article eiccard>
|
||||
<header>
|
||||
<h1>1.4. Commercialisation</h1>
|
||||
<h2>time and costs to develop, barriers and risks</h2>
|
||||
</header>
|
||||
<section>
|
||||
<div>
|
||||
<label>Abstract</label>
|
||||
<textarea eictextarea name="abstract" data-path="form.technology.commercialisation" class="required" hint="Please try to provide an answer around 1500 chars length." maxlen="2000"></textarea>
|
||||
<textarea eictextarea name="abstract" data-path="comments.technology.commercialisation" class="" hint="" placeholder="Place your comments here"></textarea>
|
||||
</div>
|
||||
<div>
|
||||
<label>Expert opinion</label>
|
||||
<textarea eictextarea name="expertOpinion" data-path="form.technology.commercialisation" class="required" hint="Please try to provide an answer around 3000 chars length." maxlen="4500"></textarea>
|
||||
<textarea eictextarea name="expertOpinion" data-path="comments.technology.commercialisation" class="" hint="" placeholder="Place your comments here"></textarea>
|
||||
</div>
|
||||
<div>
|
||||
<label>Risk(s)</label>
|
||||
<textarea eictextarea name="risks" data-path="form.technology.commercialisation" class="required" hint="Please try to provide an answer around 1500 chars length." maxlen="2000"></textarea>
|
||||
<textarea eictextarea name="risks" data-path="comments.technology.commercialisation" class="" hint="" placeholder="Place your comments here"></textarea>
|
||||
</div>
|
||||
</section>
|
||||
</article>
|
||||
<article eiccard>
|
||||
<header>
|
||||
<h1>1.5. Milestones</h1>
|
||||
<h2>Expert opinion: clear, complete, realistic? Costs and timing precisely explained?</h2>
|
||||
</header>
|
||||
<section>
|
||||
<div>
|
||||
<label>Abstract</label>
|
||||
<textarea eictextarea name="abstract" data-path="form.technology.milestones" class="required" hint="Please try to provide an answer around 1500 chars length." maxlen="2000"></textarea>
|
||||
<textarea eictextarea name="abstract" data-path="comments.technology.milestones" class="" hint="" placeholder="Place your comments here"></textarea>
|
||||
</div>
|
||||
<div>
|
||||
<label>Expert opinion</label>
|
||||
<textarea eictextarea name="expertOpinion" data-path="form.technology.milestones" class="required" hint="Please try to provide an answer around 3000 chars length." maxlen="4500"></textarea>
|
||||
<textarea eictextarea name="expertOpinion" data-path="comments.technology.milestones" class="" hint="" placeholder="Place your comments here"></textarea>
|
||||
</div>
|
||||
<div>
|
||||
<label>Risk(s)</label>
|
||||
<textarea eictextarea name="risks" data-path="form.technology.milestones" class="required" hint="Please try to provide an answer around 1500 chars length." maxlen="2000"></textarea>
|
||||
<textarea eictextarea name="risks" data-path="comments.technology.milestones" class="" hint="" placeholder="Place your comments here"></textarea>
|
||||
</div>
|
||||
</section>
|
||||
</article>
|
||||
<article eiccard>
|
||||
<header>
|
||||
<h1>1.6. Value Chain</h1>
|
||||
<h2>internal / external, supply chain, suppliers</h2>
|
||||
</header>
|
||||
<section>
|
||||
<div>
|
||||
<label>Abstract</label>
|
||||
<textarea eictextarea name="abstract" data-path="form.technology.production" class="required" hint="Please try to provide an answer around 1500 chars length." maxlen="2000"></textarea>
|
||||
<textarea eictextarea name="abstract" data-path="comments.technology.production" class="" hint="" placeholder="Place your comments here"></textarea>
|
||||
</div>
|
||||
<div>
|
||||
<label>Expert opinion</label>
|
||||
<textarea eictextarea name="expertOpinion" data-path="form.technology.production" class="required" hint="Please try to provide an answer around 3000 chars length." maxlen="4500"></textarea>
|
||||
<textarea eictextarea name="expertOpinion" data-path="comments.technology.production" class="" hint="" placeholder="Place your comments here"></textarea>
|
||||
</div>
|
||||
<div>
|
||||
<label>Risk(s)</label>
|
||||
<textarea eictextarea name="risks" data-path="form.technology.production" class="required" hint="Please try to provide an answer around 1500 chars length." maxlen="2000"></textarea>
|
||||
<textarea eictextarea name="risks" data-path="comments.technology.production" class="" hint="" placeholder="Place your comments here"></textarea>
|
||||
</div>
|
||||
</section>
|
||||
</article>
|
||||
<article eiccard>
|
||||
<header>
|
||||
<h1>1.7. Compliance</h1>
|
||||
<h2>current / future regulations, industry standards</h2>
|
||||
</header>
|
||||
<section>
|
||||
<div>
|
||||
<label>Abstract</label>
|
||||
<textarea eictextarea name="abstract" data-path="form.technology.compliance" class="required" hint="Please try to provide an answer around 1500 chars length." maxlen="2000"></textarea>
|
||||
<textarea eictextarea name="abstract" data-path="comments.technology.compliance" class="" hint="" placeholder="Place your comments here"></textarea>
|
||||
</div>
|
||||
<div>
|
||||
<label>Expert opinion</label>
|
||||
<textarea eictextarea name="expertOpinion" data-path="form.technology.compliance" class="required" hint="Please try to provide an answer around 3000 chars length." maxlen="4500"></textarea>
|
||||
<textarea eictextarea name="expertOpinion" data-path="comments.technology.compliance" class="" hint="" placeholder="Place your comments here"></textarea>
|
||||
</div>
|
||||
<div>
|
||||
<label>Risk(s)</label>
|
||||
<textarea eictextarea name="risks" data-path="form.technology.compliance" class="required" hint="Please try to provide an answer around 1500 chars length." maxlen="2000"></textarea>
|
||||
<textarea eictextarea name="risks" data-path="comments.technology.compliance" class="" hint="" placeholder="Place your comments here"></textarea>
|
||||
</div>
|
||||
</section>
|
||||
</article>
|
||||
<article eiccard>
|
||||
<header>
|
||||
<h1>1.8. Feedbacks</h1>
|
||||
<h2>from tests, lab results, prototypes, customers</h2>
|
||||
</header>
|
||||
<section>
|
||||
<div>
|
||||
<label>Abstract</label>
|
||||
<textarea eictextarea name="abstract" data-path="form.technology.feedbacks" class="required" hint="Please try to provide an answer around 1500 chars length." maxlen="2000"></textarea>
|
||||
<textarea eictextarea name="abstract" data-path="comments.technology.feedbacks" class="" hint="" placeholder="Place your comments here"></textarea>
|
||||
</div>
|
||||
<div>
|
||||
<label>Expert opinion</label>
|
||||
<textarea eictextarea name="expertOpinion" data-path="form.technology.feedbacks" class="required" hint="Please try to provide an answer around 3000 chars length." maxlen="4500"></textarea>
|
||||
<textarea eictextarea name="expertOpinion" data-path="comments.technology.feedbacks" class="" hint="" placeholder="Place your comments here"></textarea>
|
||||
</div>
|
||||
<div>
|
||||
<label>Risk(s)</label>
|
||||
<textarea eictextarea name="risks" data-path="form.technology.feedbacks" class="required" hint="Please try to provide an answer around 1500 chars length." maxlen="2000"></textarea>
|
||||
<textarea eictextarea name="risks" data-path="comments.technology.feedbacks" class="" hint="" placeholder="Place your comments here"></textarea>
|
||||
</div>
|
||||
</section>
|
||||
</article>
|
||||
</div>
|
||||
</div>
|
||||
<h2>2. Focus on the market</h2>
|
||||
<div class="cols-2 left market">
|
||||
<div class="tabs-extended vertical">
|
||||
<section>
|
||||
<menu eictab>
|
||||
<li data-target="landscape">Landscape<span xxsmall eicbadge danger></span></li>
|
||||
<li data-target="ecosystem">Ecosystem<span xxsmall eicbadge danger></span></li>
|
||||
<li data-target="positioning">Positioning<span xxsmall eicbadge danger></span></li>
|
||||
<li data-target="competition">Competition<span xxsmall eicbadge danger></span></li>
|
||||
<li data-target="opportunities">Opportunities<span xxsmall eicbadge danger></span></li>
|
||||
</menu>
|
||||
</section>
|
||||
</div>
|
||||
<div>
|
||||
<article eiccard>
|
||||
<header>
|
||||
<h1>2.1. Landscape</h1>
|
||||
<h2>market shares, trends, cycles, segments, regulations</h2>
|
||||
</header>
|
||||
<section>
|
||||
<div>
|
||||
<label>Abstract</label>
|
||||
<textarea eictextarea name="abstract" data-path="form.market.landscape" class="required" hint="Please try to provide an answer around 1500 chars length." maxlen="2000"></textarea>
|
||||
<textarea eictextarea name="abstract" data-path="comments.market.landscape" class="" hint="" placeholder="Place your comments here"></textarea>
|
||||
</div>
|
||||
<div>
|
||||
<label>Expert opinion</label>
|
||||
<textarea eictextarea name="expertOpinion" data-path="form.market.landscape" class="required" hint="Please try to provide an answer around 3000 chars length." maxlen="4500"></textarea>
|
||||
<textarea eictextarea name="expertOpinion" data-path="comments.market.landscape" class="" hint="" placeholder="Place your comments here"></textarea>
|
||||
</div>
|
||||
<div>
|
||||
<label>Risk(s)</label>
|
||||
<textarea eictextarea name="risks" data-path="form.market.landscape" class="required" hint="Please try to provide an answer around 1500 chars length." maxlen="2000"></textarea>
|
||||
<textarea eictextarea name="risks" data-path="comments.market.landscape" class="" hint="" placeholder="Place your comments here"></textarea>
|
||||
</div>
|
||||
</section>
|
||||
</article>
|
||||
<article eiccard>
|
||||
<header>
|
||||
<h1>2.2. Ecosystem</h1>
|
||||
<h2>actors and interactions (including competitors)</h2>
|
||||
</header>
|
||||
<section>
|
||||
<div>
|
||||
<label>Abstract</label>
|
||||
<textarea eictextarea name="abstract" data-path="form.market.ecosystem" class="required" hint="Please try to provide an answer around 1500 chars length." maxlen="2000"></textarea>
|
||||
<textarea eictextarea name="abstract" data-path="comments.market.ecosystem" class="" hint="" placeholder="Place your comments here"></textarea>
|
||||
</div>
|
||||
<div>
|
||||
<label>Expert opinion</label>
|
||||
<textarea eictextarea name="expertOpinion" data-path="form.market.ecosystem" class="required" hint="Please try to provide an answer around 3000 chars length." maxlen="4500"></textarea>
|
||||
<textarea eictextarea name="expertOpinion" data-path="comments.market.ecosystem" class="" hint="" placeholder="Place your comments here"></textarea>
|
||||
</div>
|
||||
<div>
|
||||
<label>Risk(s)</label>
|
||||
<textarea eictextarea name="risks" data-path="form.market.ecosystem" class="required" hint="Please try to provide an answer around 1500 chars length." maxlen="2000"></textarea>
|
||||
<textarea eictextarea name="risks" data-path="comments.market.ecosystem" class="" hint="" placeholder="Place your comments here"></textarea>
|
||||
</div>
|
||||
</section>
|
||||
</article>
|
||||
<article eiccard>
|
||||
<header>
|
||||
<h1>2.3. Positioning</h1>
|
||||
<h2>USP, alternatives, substitutes, comparaison</h2>
|
||||
</header>
|
||||
<section>
|
||||
<div>
|
||||
<label>Abstract</label>
|
||||
<textarea eictextarea name="abstract" data-path="form.market.positioning" class="required" hint="Please try to provide an answer around 1500 chars length." maxlen="2000"></textarea>
|
||||
<textarea eictextarea name="abstract" data-path="comments.market.positioning" class="" hint="" placeholder="Place your comments here"></textarea>
|
||||
</div>
|
||||
<div>
|
||||
<label>Expert opinion</label>
|
||||
<textarea eictextarea name="expertOpinion" data-path="form.market.positioning" class="required" hint="Please try to provide an answer around 3000 chars length." maxlen="4500"></textarea>
|
||||
<textarea eictextarea name="expertOpinion" data-path="comments.market.positioning" class="" hint="" placeholder="Place your comments here"></textarea>
|
||||
</div>
|
||||
<div>
|
||||
<label>Risk(s)</label>
|
||||
<textarea eictextarea name="risks" data-path="form.market.positioning" class="required" hint="Please try to provide an answer around 1500 chars length." maxlen="2000"></textarea>
|
||||
<textarea eictextarea name="risks" data-path="comments.market.positioning" class="" hint="" placeholder="Place your comments here"></textarea>
|
||||
</div>
|
||||
</section>
|
||||
</article>
|
||||
<article eiccard>
|
||||
<header>
|
||||
<h1>2.4. Competition</h1>
|
||||
<h2>who, how far, what traction, what funding</h2>
|
||||
</header>
|
||||
<section>
|
||||
<div>
|
||||
<label>Abstract</label>
|
||||
<textarea eictextarea name="abstract" data-path="form.market.competition" class="required" hint="Please try to provide an answer around 1500 chars length." maxlen="2000"></textarea>
|
||||
<textarea eictextarea name="abstract" data-path="comments.market.competition" class="" hint="" placeholder="Place your comments here"></textarea>
|
||||
</div>
|
||||
<div>
|
||||
<label>Expert opinion</label>
|
||||
<textarea eictextarea name="expertOpinion" data-path="form.market.competition" class="required" hint="Please try to provide an answer around 3000 chars length." maxlen="4500"></textarea>
|
||||
<textarea eictextarea name="expertOpinion" data-path="comments.market.competition" class="" hint="" placeholder="Place your comments here"></textarea>
|
||||
</div>
|
||||
<div>
|
||||
<label>Risk(s)</label>
|
||||
<textarea eictextarea name="risks" data-path="form.market.competition" class="required" hint="Please try to provide an answer around 1500 chars length." maxlen="2000"></textarea>
|
||||
<textarea eictextarea name="risks" data-path="comments.market.competition" class="" hint="" placeholder="Place your comments here"></textarea>
|
||||
</div>
|
||||
</section>
|
||||
</article>
|
||||
<article eiccard>
|
||||
<header>
|
||||
<h1>2.5. Opportunities</h1>
|
||||
<h2>procurement, expansion, export, trade</h2>
|
||||
</header>
|
||||
<section>
|
||||
<div>
|
||||
<label>Abstract</label>
|
||||
<textarea eictextarea name="abstract" data-path="form.market.opportunities" class="required" hint="Please try to provide an answer around 1500 chars length." maxlen="2000"></textarea>
|
||||
<textarea eictextarea name="abstract" data-path="comments.market.opportunities" class="" hint="" placeholder="Place your comments here"></textarea>
|
||||
</div>
|
||||
<div>
|
||||
<label>Expert opinion</label>
|
||||
<textarea eictextarea name="expertOpinion" data-path="form.market.opportunities" class="required" hint="Please try to provide an answer around 3000 chars length." maxlen="4500"></textarea>
|
||||
<textarea eictextarea name="expertOpinion" data-path="comments.market.opportunities" class="" hint="" placeholder="Place your comments here"></textarea>
|
||||
</div>
|
||||
<div>
|
||||
<label>Risk(s)</label>
|
||||
<textarea eictextarea name="risks" data-path="form.market.opportunities" class="required" hint="Please try to provide an answer around 1500 chars length." maxlen="2000"></textarea>
|
||||
<textarea eictextarea name="risks" data-path="comments.market.opportunities" class="" hint="" placeholder="Place your comments here"></textarea>
|
||||
</div>
|
||||
</section>
|
||||
</article>
|
||||
</div>
|
||||
</div>
|
||||
<h2>General conclusions and recommendations</h2>
|
||||
<div>
|
||||
<label>Is the technology in combination with the company investable or not?</label>
|
||||
<div class="cols-3">
|
||||
<select eicselect name="combination" data-path="form.conclusion" data-type="boolean" class="required">
|
||||
<option></option>
|
||||
<option value="true">Yes</option>
|
||||
<option value="false">No</option>
|
||||
</select>
|
||||
</div>
|
||||
<textarea eictextarea name="justification" data-path="form.conclusion" class="required" hint="Please try to provide an answer between 3200 and 4000 chars." maxlen="7000" placeholder="please explain"></textarea>
|
||||
<textarea eictextarea name="justification" data-path="comments.conclusion" class="" hint="" placeholder="Place your comments here"></textarea>
|
||||
</div>
|
||||
</form>
|
||||
@@ -0,0 +1,29 @@
|
||||
/**
|
||||
*
|
||||
*/
|
||||
class ICMPFormTechddV1View extends EICDomContent {
|
||||
|
||||
DOMContentLoaded(options) {
|
||||
this.components = ui.eicfy(this.el);
|
||||
//for(let model in options.models) this[model] = options.models[model];
|
||||
console.log('tabs')
|
||||
|
||||
this.tabTech = new Tab();
|
||||
this.tabTech.addTabs(this.findAll('.tech .tabs-extended menu li'), this.findAll('.tech article'))
|
||||
this.tabMarket = new Tab();
|
||||
this.tabMarket.addTabs(this.findAll('.market .tabs-extended menu li'), this.findAll('.market article'))
|
||||
}
|
||||
|
||||
fill(data) {
|
||||
this.form = new Form(this.find('form'));
|
||||
this.form.fill(this.components, data);
|
||||
|
||||
}
|
||||
|
||||
getTriggers() {
|
||||
return [].concat( this.tabTech.triggers, this.tabMarket.triggers )
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
app.registerClass('ICMPFormTechddV1View',ICMPFormTechddV1View);
|
||||
Reference in New Issue
Block a user