unclean SPARC
This commit is contained in:
@@ -0,0 +1,97 @@
|
||||
<style>
|
||||
.coaching-admin-dashboard .filter { min-height: 380px; }
|
||||
.coaching-admin-dashboard .metrics { min-width: 240px; }
|
||||
.coaching-admin-dashboard .coachings .row { grid-template-columns: 106px 1fr 3fr 3fr 2fr 1fr 1fr 88px; }
|
||||
.coaching-admin-dashboard .organisations .row { grid-template-columns: 1fr 5fr 1fr 48px; }
|
||||
.coaching-admin-dashboard .organisations .sublist .row { grid-template-columns: 106px 3fr 1fr 2fr 1fr 1fr 88px; }
|
||||
.coaching-admin-dashboard .coaches .row { grid-template-columns: 1fr 4fr 4fr 1fr 1fr 48px; }
|
||||
.coaching-admin-dashboard .coachings .row .cell:nth-child(3),
|
||||
.coaching-admin-dashboard .coachings .row .cell:nth-child(6),
|
||||
.coaching-admin-dashboard .coachings .row .cell:nth-child(7),
|
||||
.coaching-admin-dashboard .coachings .row .cell:nth-child(8)
|
||||
{ text-align: center; }
|
||||
.coaching-admin-dashboard .organisations .row .cell:nth-child(4)
|
||||
{ text-align: center; }
|
||||
.coaching-admin-dashboard .organisations .sublist header .row { background: none;}
|
||||
.coaching-admin-dashboard .organisations .sublist .row .cell:nth-child(4),
|
||||
.coaching-admin-dashboard .organisations .sublist .row .cell:nth-child(5),
|
||||
.coaching-admin-dashboard .organisations .sublist .row .cell:nth-child(6),
|
||||
.coaching-admin-dashboard .organisations .sublist .row .cell:nth-child(7)
|
||||
{ text-align: center; }
|
||||
.coaching-admin-dashboard .coaches .row .cell:nth-child(5),
|
||||
.coaching-admin-dashboard .coaches .row .cell:nth-child(6)
|
||||
{ text-align: center; }
|
||||
</style>
|
||||
<article eiccard class="coaching-admin-dashboard">
|
||||
<header>
|
||||
<h1>Coaching Activities Monitoring</h1>
|
||||
<h2>(for admins)</h2>
|
||||
</header>
|
||||
<section>
|
||||
|
||||
<article eiccard class="filter chart">
|
||||
<section>
|
||||
<div class="cols-2 right top">
|
||||
<div eicnodemap></div>
|
||||
<button eicbutton small rounded primary class="menu icon-search"></button>
|
||||
</div>
|
||||
</section>
|
||||
</article>
|
||||
<article eiccard class="filter search">
|
||||
<section>
|
||||
<div class="cols-2 left top">
|
||||
<button eicbutton small rounded primary class="menu icon-angle-left"></button>
|
||||
<div>
|
||||
<input eicinput type="search" name="q" placeholder="free search" />
|
||||
<div class="cols-4">
|
||||
<div>
|
||||
<label small>cutoff</label>
|
||||
<select eicselect></select>
|
||||
</div>
|
||||
<div>
|
||||
<label small>status</label>
|
||||
<select eicselect></select>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</section>
|
||||
</article>
|
||||
<div class="cols-2 left">
|
||||
<div class="metrics">
|
||||
<article eiccard danger>
|
||||
<header>
|
||||
<h1>TODO List</h1>
|
||||
</header>
|
||||
<section>
|
||||
<ul bulleted xsmall>
|
||||
<li>Plans need approval</li>
|
||||
<li>Coaching requests</li>
|
||||
</ul>
|
||||
</section>
|
||||
</article>
|
||||
</div>
|
||||
<article eiccard >
|
||||
<section>
|
||||
<div class="result-menu tabs-extended">
|
||||
<menu eictab small badges>
|
||||
<li>Coachings<span xxsmall eicbadge danger>2</span></li>
|
||||
<li>Organisations<span xxsmall eicbadge danger>2</span></li>
|
||||
<li>Coaches<span xxsmall eicbadge danger>1</span></li>
|
||||
</menu>
|
||||
</div>
|
||||
<div class="result coachings">
|
||||
<div eicdatagrid></div>
|
||||
</div>
|
||||
<div class="result organisations">
|
||||
<div eicdatagrid></div>
|
||||
</div>
|
||||
<div class="result coaches">
|
||||
<div eicdatagrid></div>
|
||||
</div>
|
||||
</section>
|
||||
</article>
|
||||
</div>
|
||||
</section>
|
||||
</article>
|
||||
@@ -0,0 +1,227 @@
|
||||
class CoachingAdminDashboardView extends EICDomContent {
|
||||
|
||||
DOMContentLoaded(options) {
|
||||
|
||||
for(let model in options.models) this[model] = options.models[model];
|
||||
|
||||
ui.eicfy(this.el);
|
||||
|
||||
this.workflow = new NodeMap(this.find('[eicnodemap]'), {
|
||||
"orientation": "radial",
|
||||
"resizable": true,
|
||||
"allowDrag": true,
|
||||
"entity": {
|
||||
"width": 150,
|
||||
"height": 50,
|
||||
"gap": 30
|
||||
}
|
||||
});
|
||||
|
||||
app.Assets.loadJson({name:'workflows/wf-coaching-admin.json'})
|
||||
.then(this.setupWorflow.bind(this));
|
||||
|
||||
//this.workflow.click = this.testBadge.bind(this)
|
||||
|
||||
this.filters = new Tab();
|
||||
this.filters.addTabs(Array.prototype.slice.call(this.findAll('.filter button.menu')).reverse(), this.findAll('.filter'));
|
||||
|
||||
this.results = new Tab();
|
||||
this.results.addTabs(this.findAll('.result-menu li'), this.findAll('.result'));
|
||||
|
||||
this.coachingList = new DataGrid(this.find('.coachings [eicdatagrid]'), {
|
||||
headers: [
|
||||
{label: 'number', filter: 'text'},
|
||||
{label: 'type', filter: 'list'},
|
||||
{label: 'project', filter: 'text'},
|
||||
{label: 'owner', filter: 'text'},
|
||||
{label: 'status', filter: 'list'},
|
||||
{label: 'credits used'},
|
||||
{label: 'credits left'},
|
||||
{label: ''}
|
||||
]
|
||||
});
|
||||
this.coachingList.onRowClick = this.onCoachingSelect.bind(this);
|
||||
|
||||
this.organisationList = new DataGrid(this.find('.organisations [eicdatagrid]'), {
|
||||
headers: [
|
||||
{label: 'pic', filter: 'text'},
|
||||
{label: 'name', filter: 'text', sortable: true},
|
||||
{label: 'projects', sortable: true},
|
||||
{label: ''}
|
||||
]
|
||||
});
|
||||
this.organisationList.onRowClick = this.onOrganisationSelect.bind(this);
|
||||
|
||||
|
||||
this.coachList = new DataGrid(this.find('.coaches [eicdatagrid]'), {
|
||||
headers: [
|
||||
{label: 'eu login', filter: 'text'},
|
||||
{label: 'name', filter: 'text'},
|
||||
{label: 'email', filter: 'text'},
|
||||
{label: 'invitations'},
|
||||
{label: 'coachings'},
|
||||
{label: ''}
|
||||
]
|
||||
});
|
||||
this.coachList.onRowClick = this.onCoachSelect.bind(this);
|
||||
|
||||
this.coachings.getCoachings().then(this.fillCoachings.bind(this));
|
||||
this.coachings.getCompanies().then(this.fillCompanies.bind(this));
|
||||
this.coachings.getCoaches().then(this.fillCoaches.bind(this));
|
||||
}
|
||||
|
||||
setupWorflow(data) {
|
||||
console.log(data)
|
||||
this.workflow.data = data;
|
||||
}
|
||||
|
||||
fillCoachings(list) {
|
||||
this.coachingList.clear();
|
||||
|
||||
for(let item of list) {
|
||||
|
||||
let row = this.coachingList.addRow( item.reference, [
|
||||
item.number,
|
||||
item.type,
|
||||
item.acronym,
|
||||
item.organisation,
|
||||
item.status,
|
||||
item.creditsUsed,
|
||||
item.creditsLeft,
|
||||
''
|
||||
]);
|
||||
|
||||
let button = new Button(null, { label: 'refill', severity: 'primary', size: 'xsmall' })
|
||||
button.el.addEventListener('click', this.onCreditsAdd.bind(this))
|
||||
row.querySelector('.cell:nth-child(9)').append(button.el)
|
||||
}
|
||||
}
|
||||
|
||||
fillCompanies(list) {
|
||||
this.organisationList.clear();
|
||||
|
||||
for(let item of list) {
|
||||
|
||||
let row = this.organisationList.addRow( item.pic, [
|
||||
item.pic,
|
||||
item.legalname,
|
||||
item.projects.length
|
||||
]);
|
||||
|
||||
let button = new Button(null, { icon: 'icon-angle-down', size: 'xsmall', rounded: true })
|
||||
button.addEventListener('click', this.onOrganisationProjects.bind(this))
|
||||
row.querySelector('.cell:nth-child(5)').append(button.el)
|
||||
}
|
||||
}
|
||||
|
||||
fillCoaches(list) {
|
||||
this.coachList.clear();
|
||||
|
||||
for(let item of list) {
|
||||
|
||||
let row = this.coachList.addRow( item.id, [
|
||||
item.uid,
|
||||
item.lastname + ' ' + item.firstname,
|
||||
item.email,
|
||||
item.invitations,
|
||||
item.coachings
|
||||
]);
|
||||
|
||||
let button = new Button(null, { icon: 'icon-angle-down', size: 'xsmall', rounded: true })
|
||||
row.querySelector('.cell:nth-child(7)').append(button.el)
|
||||
}
|
||||
}
|
||||
|
||||
async onCreditsAdd(event) {
|
||||
event.stopPropagation();
|
||||
event.preventDefault();
|
||||
|
||||
let result = await this.openDialog(
|
||||
await this.loadContent(
|
||||
'coachings/admin/dialogs/CoachingCreditsDialog',
|
||||
{ title: 'Add coaching credits' },
|
||||
{ models: { } }
|
||||
)
|
||||
);
|
||||
}
|
||||
|
||||
onCoachingSelect(row, event) {
|
||||
event.stopPropagation();
|
||||
event.preventDefault();
|
||||
let id = row.dataset.id;
|
||||
|
||||
app.Router.route(`/coachings/coaching/${id}`, { });
|
||||
}
|
||||
|
||||
onOrganisationProjects(event) {
|
||||
event.stopPropagation();
|
||||
event.preventDefault();
|
||||
|
||||
let row = event.currentTarget.closest('.row');
|
||||
|
||||
|
||||
if(this.currentOrganisationProjects) {
|
||||
this.currentOrganisationProjects.remove();
|
||||
}
|
||||
|
||||
let projects = ui.create(`
|
||||
<article eiccard class="sublist" primary>
|
||||
<section>
|
||||
<div eicdatagrid footer="hidden"></div>
|
||||
</section>
|
||||
</article>
|
||||
`);
|
||||
|
||||
let grid = new DataGrid(projects.querySelector('[eicdatagrid]'), {
|
||||
headers: [
|
||||
{label: 'number'},
|
||||
{label: 'acronym'},
|
||||
{label: 'type'},
|
||||
{label: 'status'},
|
||||
{label: 'credits used'},
|
||||
{label: 'credits left'},
|
||||
{label: ''},
|
||||
]
|
||||
});
|
||||
|
||||
let organisation = this.coachings.getOrganisation(row.dataset.id);
|
||||
|
||||
for(let item of organisation.projects) {
|
||||
console.log(item)
|
||||
let row2 = grid.addRow( item.reference, [
|
||||
item.number,
|
||||
item.acronym,
|
||||
item.type,
|
||||
item.status,
|
||||
item.creditsUsed,
|
||||
item.creditsLeft,
|
||||
''
|
||||
]);
|
||||
|
||||
let button = new Button(null, { label: 'refill', severity: 'primary', size: 'xsmall' })
|
||||
button.el.addEventListener('click', this.onCreditsAdd.bind(this))
|
||||
row2.querySelector('.cell:nth-child(8)').append(button.el)
|
||||
}
|
||||
|
||||
row.after(projects);
|
||||
|
||||
this.currentOrganisationProjects = projects;
|
||||
}
|
||||
|
||||
onOrganisationSelect(row, event) {
|
||||
event.stopPropagation();
|
||||
event.preventDefault();
|
||||
}
|
||||
|
||||
onCoachSelect(row, event) {
|
||||
event.stopPropagation();
|
||||
event.preventDefault();
|
||||
|
||||
let id = row.dataset.id
|
||||
|
||||
app.Router.route(`/coachings/coaches/${id}`, { });
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
app.registerClass('CoachingAdminDashboardView', CoachingAdminDashboardView);
|
||||
@@ -0,0 +1,71 @@
|
||||
<style>
|
||||
|
||||
</style>
|
||||
<article eiccard class="coaching-admin-activity">
|
||||
<header>
|
||||
<h1>Coaching for [Project name]</h1>
|
||||
<h2><span eicchip primary>[status]</span></h2>
|
||||
</header>
|
||||
<section>
|
||||
<div class="cols-2 left">
|
||||
<div>
|
||||
<article eicarticle>
|
||||
<header>
|
||||
<h1>Project owner</h1>
|
||||
</header>
|
||||
<section>
|
||||
<span small>[company pic]</span>
|
||||
<span large>[company name]</span>
|
||||
</section>
|
||||
</article>
|
||||
<article eicarticle>
|
||||
<header>
|
||||
<h1>Coaching</h1>
|
||||
</header>
|
||||
<section>
|
||||
<label>reference</label>
|
||||
<span>[coaching id]</span>
|
||||
<label>selected coach</label>
|
||||
<span>[coach name]</span>
|
||||
<label>started</label>
|
||||
<span>[start date]</span>
|
||||
<label>status</label>
|
||||
<span>[coaching status]</span>
|
||||
<label>credits assigned</label>
|
||||
<span>[credits]</span>
|
||||
</section>
|
||||
</article>
|
||||
</div>
|
||||
<div>
|
||||
<div class="tabs-extended">
|
||||
<menu>
|
||||
<li>priorities</li>
|
||||
<li>plan</li>
|
||||
<li>timesheet</li>
|
||||
<li>feedback</li>
|
||||
</menu>
|
||||
<section class="panel">
|
||||
<label>challenge</label>
|
||||
<div></div>
|
||||
<label>topics</label>
|
||||
<div></div>
|
||||
<label>remarks</label>
|
||||
<div></div>
|
||||
</section>
|
||||
<section class="panel">
|
||||
<label>objectives</label>
|
||||
<div></div>
|
||||
<label>activities</label>
|
||||
<div></div>
|
||||
</section>
|
||||
<section class="panel">
|
||||
|
||||
</section>
|
||||
<section class="panel">
|
||||
|
||||
</section>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
</article>
|
||||
@@ -0,0 +1,12 @@
|
||||
class CoachingAdminView extends EICDomContent {
|
||||
|
||||
DOMContentLoaded() {
|
||||
ui.eicfy(this.el);
|
||||
|
||||
this.tabs = new Tab();
|
||||
this.tabs.addTabs(this.findAll('menu li'), this.findAll('.panel'));
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
app.registerClass('CoachingAdminView', CoachingAdminView);
|
||||
@@ -0,0 +1,18 @@
|
||||
<div class="cols-2">
|
||||
<div>
|
||||
<label small>Amount of credits</label>
|
||||
<select eicselect>
|
||||
<option value="3">3 credits</option>
|
||||
<option value="6">6 credits</option>
|
||||
<option value="9">9 credits</option>
|
||||
<option value="15">15 credits</option>
|
||||
</select>
|
||||
</div>
|
||||
<div>
|
||||
<label small>Granularity</label>
|
||||
<select eicselect>
|
||||
<option value="3">3 credits</option>
|
||||
<option value="6">6 credits</option>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
@@ -0,0 +1,30 @@
|
||||
class CoachingCreditsDialog extends EICDialogContent {
|
||||
|
||||
actions = [
|
||||
{
|
||||
label: 'cancel',
|
||||
onclick: this.cancel.bind(this),
|
||||
severity: 'secondary',
|
||||
role: 'cancel'
|
||||
},
|
||||
{
|
||||
label: 'add',
|
||||
onclick: this.create.bind(this),
|
||||
severity: 'primary',
|
||||
role: 'create'
|
||||
}
|
||||
]
|
||||
|
||||
DOMContentLoaded(options) {
|
||||
ui.eicfy(this.el);
|
||||
}
|
||||
|
||||
|
||||
|
||||
create() {
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
app.registerClass('CoachingCreditsDialog', CoachingCreditsDialog);
|
||||
@@ -0,0 +1,186 @@
|
||||
<style>
|
||||
.coaching-applicant > header {
|
||||
background: url('/app/assets/images/cards/applicant-dashboard.jpg');
|
||||
background-position: center;
|
||||
background-size: cover !important;
|
||||
background-repeat: no-repeat;
|
||||
border-bottom: 4px solid white !important;
|
||||
}
|
||||
.coaching-applicant .info {
|
||||
min-width: 240px;
|
||||
}
|
||||
</style>
|
||||
<article eiccard media class="coaching-applicant">
|
||||
<header>
|
||||
<h1>My coaching for [proposal_acronym]</h1>
|
||||
<h2>[coaching_title] <button eicbutton xsmall primary rounded icon="icon-edit"></button></h2>
|
||||
</header>
|
||||
<section>
|
||||
<div class="cols-2 left">
|
||||
<div class="info">
|
||||
<article eiccard collapsable>
|
||||
<header>
|
||||
<h1>Coaching Summary</h1>
|
||||
</header>
|
||||
<section>
|
||||
<div>
|
||||
<label small>started</label>
|
||||
<span><b>12 dec. 2023</b></span>
|
||||
</div>
|
||||
<div>
|
||||
<label small>credits</label>
|
||||
<span xlarge><b>6 <span small>(3 days)</span></b></span>
|
||||
</div>
|
||||
</section>
|
||||
<footer>
|
||||
<div class="cols-2 ">
|
||||
<button eicbutton xsmall danger>abort</button>
|
||||
<button eicbutton xsmall secondary>request credits</button>
|
||||
</div>
|
||||
</footer>
|
||||
</article>
|
||||
<article eiccard collapsable>
|
||||
<header>
|
||||
<h1>Participants</h1>
|
||||
<h2><span eicchip xsmall success>2 active</span></h2>
|
||||
</header>
|
||||
<section>
|
||||
<ul nonbulleted=""><li class="cols-2 right middle">
|
||||
<div>
|
||||
<div><b>Michael FALLISE</b></div>
|
||||
<div xsmall class="props">
|
||||
CFO Chief Financial Officer
|
||||
<a href="mailto:Michael.FALLISE@ext.ec.europa.eu">Michael.FALLISE@ext.ec.europa.eu</a>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<span class="actions"></span>
|
||||
</li><li class="cols-2 right middle">
|
||||
<div>
|
||||
<div><b>Michael SCHWEDA</b></div>
|
||||
<div xsmall class="props">
|
||||
Coach
|
||||
<a href="mailto:Michael.SCHWEDA@ext.ec.europa.eu">Michael.SCHWEDA@ext.ec.europa.eu</a>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<span class="actions"></span>
|
||||
</li>
|
||||
</ul>
|
||||
</section>
|
||||
<footer>
|
||||
<div class="cols-1 right">
|
||||
<button eicbutton xsmall primary>add participant</button>
|
||||
</div>
|
||||
</footer>
|
||||
</article>
|
||||
</div>
|
||||
<div>
|
||||
<div eicstatechart></div>
|
||||
<article eiccard class="panel priorities">
|
||||
<header>
|
||||
<h1>Priorities</h1>
|
||||
<h2><span eicchip xsmall success>priorities defined</span></h2>
|
||||
</header>
|
||||
<section>
|
||||
<div eicalert info>Indicate your challenge and the topics you wish to improve with a coach, for the availability invitations to your shortlist.</div>
|
||||
<form>
|
||||
<div>
|
||||
<label>Biggest Business development challenge</label>
|
||||
<textarea eictextarea name="challenge" data-name="Challenge" data-type="text" class="required validate-maxlength:1000" placeholder="What is the major challenge for the swift development of your business? (max 1000 chars.)"></textarea>
|
||||
</div>
|
||||
<div>
|
||||
<label>Business development topics</label>
|
||||
<ul></ul>
|
||||
</div>
|
||||
<div>
|
||||
<label>Any Other question/remark</label>
|
||||
<textarea eictextarea name="remarks" class="validate-maxlength:200" data-name="Remarks" data-type="text" placeholder="Put any other topic or issue to illustrate your coaching objective. (max 200 chars.)"></textarea>
|
||||
</div>
|
||||
</form>
|
||||
</section>
|
||||
</article>
|
||||
<article eiccard class="panel invitations">
|
||||
<header>
|
||||
<h1>Coach selection</h1>
|
||||
<h2><span eicchip xsmall success>coach selected</span></h2>
|
||||
</header>
|
||||
<section>
|
||||
<div>
|
||||
<menu eictab class="tabs-extended">
|
||||
<li>step1</li>
|
||||
<li>step2</li>
|
||||
</menu>
|
||||
</div>
|
||||
<div class="step">
|
||||
<div eicalert info>
|
||||
1. Browse coach profiles by matching their experience in industries and markets to your project, add a keyword if you wish.<br/>
|
||||
2. Check their summaries or CVs and create a shortlist that you will ask for availability to coach with your project.
|
||||
</div>
|
||||
<form class="filters form">
|
||||
<input eicinput type="search" name="q" data-type="text" data-path="Keywords" placeholder="enter a keyword (or coach name)" />
|
||||
<div class="cols-2 right bottom">
|
||||
<div>
|
||||
<label small>Industry domain experience</label>
|
||||
<select eicselect multiple="multiple" name="industries" data-type="array" data-path="IndustrialDomains/IndustrialDomainRef" class="free-select multiple lookup"></select>
|
||||
</div>
|
||||
<button eicbutton primary><i class="icon-search"></i></button>
|
||||
</div>
|
||||
</form>
|
||||
|
||||
</div>
|
||||
<div class="step">
|
||||
<div eicdatagrid class="coaches" footer="hidden"></div>
|
||||
</div>
|
||||
|
||||
</section>
|
||||
</article>
|
||||
<article eiccard class="panel plan">
|
||||
<header>
|
||||
<h1>Coaching plan</h1>
|
||||
<h2><span eicchip xsmall warning>plan approval</span></h2>
|
||||
</header>
|
||||
<section>
|
||||
<div eicalert info>
|
||||
Now that you have selected your coach, (s)he will submit the discussed coaching objectives into the EISMEA coaching system.<br/>
|
||||
As soon as the approved coaching plan appears in your dashboard, the coach and you can start working together.
|
||||
</div>
|
||||
<div>
|
||||
<label>Your coaching priorities</label>
|
||||
<div class="challenge">
|
||||
<label>Your challenge</label>
|
||||
<span></span>
|
||||
</div>
|
||||
<div>
|
||||
<label>Focused topics</label>
|
||||
<ul class="topics"></ul>
|
||||
</div>
|
||||
<div class="remarks">
|
||||
<label>remark/question</label>
|
||||
<span></span>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
</article>
|
||||
<article eiccard class="panel timesheet">
|
||||
<header>
|
||||
<h1>Timesheet</h1>
|
||||
</header>
|
||||
<section></section>
|
||||
</article>
|
||||
<article eiccard class="panel evaluation">
|
||||
<header>
|
||||
<h1>Evaluation</h1>
|
||||
</header>
|
||||
<section></section>
|
||||
</article>
|
||||
<article eiccard class="panel closed">
|
||||
<header>
|
||||
<h1>Evaluation</h1>
|
||||
</header>
|
||||
<section></section>
|
||||
</article>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
</article>
|
||||
@@ -0,0 +1,51 @@
|
||||
class CoachingApplicantView extends EICDomContent {
|
||||
|
||||
DOMContentLoaded() {
|
||||
this.components = ui.eicfy(this.el);
|
||||
this.panels = this.findAll('.panel');
|
||||
|
||||
this.workflow = new StateChart(this.find('[eicstatechart]'), {
|
||||
"orientation": "linear",
|
||||
"resizable": true,
|
||||
"allowDrag": true,
|
||||
"entity": {
|
||||
"width": 150,
|
||||
"height": 50,
|
||||
"gap": 30
|
||||
}
|
||||
});
|
||||
|
||||
app.Assets.loadJson({name:'workflows/wf-coaching-applicant.json'})
|
||||
.then(this.setupWorflow.bind(this));
|
||||
|
||||
let invTab = new Tab();
|
||||
invTab.addTabs(this.findAll('.invitations menu li'), this.findAll('.invitations .step'));
|
||||
let invList = new DataGrid(this.find('.invitations .coaches'), {
|
||||
headers: [
|
||||
{label: 'coach'},
|
||||
{label: 'email'},
|
||||
{label: 'status'},
|
||||
{label: ''},
|
||||
]
|
||||
})
|
||||
|
||||
invList.addRow(1, [ 'Michael Schweda','michael.schweda@ext.ec.europa.eu', '<span eicchip success>selected</span>', '' ])
|
||||
invList.addRow(1, [ 'Carmelo Infosino','(not provided)', '<span eicchip danger>declined</span>', '' ])
|
||||
|
||||
this.workflow.click = this.onPanelSelect.bind(this);
|
||||
}
|
||||
|
||||
setupWorflow(data) {
|
||||
this.workflow.data = data;
|
||||
this.showPanel('plan');
|
||||
}
|
||||
|
||||
onPanelSelect(entity) { this.showPanel(entity.options.data.id) }
|
||||
|
||||
showPanel(id) {
|
||||
for(let panel of this.panels) ui.hide(panel);
|
||||
ui.show(this.find('.panel.' + id))
|
||||
}
|
||||
}
|
||||
|
||||
app.registerClass('CoachingApplicantView', CoachingApplicantView);
|
||||
@@ -0,0 +1,157 @@
|
||||
<style>
|
||||
.coaching-coach-dashboard > header {
|
||||
background: url('/app/assets/images/cards/applicant-dashboard.jpg');
|
||||
background-position: center;
|
||||
background-size: cover !important;
|
||||
background-repeat: no-repeat;
|
||||
border-bottom: 4px solid white !important;
|
||||
}
|
||||
.coaching-coach-dashboard .list {
|
||||
display: grid;
|
||||
grid-gap: var(--eicui-base-spacing-m);
|
||||
grid-template-columns: repeat(auto-fill, 240px);
|
||||
}
|
||||
.coaching-coach-dashboard .profile {
|
||||
min-width: 320px;
|
||||
max-height: 380px;
|
||||
overflow: visible !important;
|
||||
overflow-y: auto !important;
|
||||
|
||||
}
|
||||
</style>
|
||||
<article eiccard media class="coaching-coach-dashboard">
|
||||
<header>
|
||||
<h1>My Coaching activities</h1>
|
||||
<h2>(for Coaches)</h2>
|
||||
</header>
|
||||
<section>
|
||||
<div class="cols-2 left">
|
||||
<div>
|
||||
<article eiccard collapsable collapsed class="profile">
|
||||
<header>
|
||||
<h1>My Profile</h1>
|
||||
<h2>
|
||||
<span xsmall info danger eicchip>ending 3 march 2024</span>
|
||||
</h2>
|
||||
</header>
|
||||
<section>
|
||||
<label xsmall>Industrial domains</label>
|
||||
<div>
|
||||
<span xsmall info eicchip>Biotechnology</span>
|
||||
</div>
|
||||
<label xsmall>Countries of expertise</label>
|
||||
<div>
|
||||
<span xsmall info eicchip>Belgium</span>
|
||||
<span xsmall info eicchip>Germany</span>
|
||||
<span xsmall info eicchip badge="+2">France</span>
|
||||
</div>
|
||||
<label xsmall>Summary</label>
|
||||
<div small info>
|
||||
Lorem ipsum sit amet doloris que...
|
||||
</div>
|
||||
<label xsmall>keywords</label>
|
||||
<div>
|
||||
<span xsmall info eicchip>EIC expert</span>
|
||||
<span xsmall info eicchip>track record</span>
|
||||
<span xsmall info eicchip badge="+14">climate tech</span>
|
||||
</div>
|
||||
</section>
|
||||
<footer>
|
||||
<div class="cols-1 right">
|
||||
<button eicbutton xsmall primary>Edit my profile</button>
|
||||
</div>
|
||||
</footer>
|
||||
</article>
|
||||
<article eiccard danger class="todos">
|
||||
<header>
|
||||
<h1>TODO List</h1>
|
||||
</header>
|
||||
<section>
|
||||
<ul bulleted>
|
||||
<li>1 invitation pending</li>
|
||||
<li>A timesheet has been approved</li>
|
||||
<li>A timesheet has been rejected</li>
|
||||
</ul>
|
||||
</section>
|
||||
</article>
|
||||
</div>
|
||||
<div>
|
||||
<article eiccard class="invitations" collapsable>
|
||||
<header>
|
||||
<h1>Invitations</h1>
|
||||
<h2>
|
||||
<span eicchip xsmall warning>1 invitation pending</span>
|
||||
</h2>
|
||||
</header>
|
||||
<section>
|
||||
<div class="list">
|
||||
<article eiccard>
|
||||
<header>
|
||||
<h1>adasd</h1>
|
||||
<h2>190200064</h2>
|
||||
</header>
|
||||
<section>
|
||||
<span eicchip xsmall primary>short 1.0</span>
|
||||
<span eicchip xsmall info>evaluation-finalised</span>
|
||||
</section>
|
||||
<footer>
|
||||
<div class="cols-2 center noflex"><button eicbutton primary xsmall aria-enabled="true" role="button" aria-label="Button"><span>view</span></button></div>
|
||||
</footer>
|
||||
</article>
|
||||
</div>
|
||||
</section>
|
||||
</article>
|
||||
<article eiccard class="coachings" collapsable>
|
||||
<header>
|
||||
<h1>Ongoing coachings</h1>
|
||||
<h2>
|
||||
<span eicchip xsmall warning>1 timesheet approved</span>
|
||||
<span eicchip xsmall info>1 evaluated</span>
|
||||
|
||||
</h2>
|
||||
</header>
|
||||
<section>
|
||||
<div class="list">
|
||||
<article eiccard>
|
||||
<header>
|
||||
<h1>Betacom</h1>
|
||||
<h2>192300067</h2>
|
||||
</header>
|
||||
<section>
|
||||
<span eicchip xsmall info>evaluated</span>
|
||||
</section>
|
||||
<footer>
|
||||
<div class="cols-2 center noflex"><button eicbutton primary xsmall aria-enabled="true" role="button" aria-label="Button"><span>view</span></button></div>
|
||||
</footer>
|
||||
</article>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
</article>
|
||||
<article eiccard class="archives" collapsable collapsed>
|
||||
<header>
|
||||
<h1>Past coachings</h1>
|
||||
<h2></h2>
|
||||
</header>
|
||||
<section>
|
||||
<div class="list">
|
||||
<article eiccard>
|
||||
<header>
|
||||
<h1>Betacom</h1>
|
||||
<h2>192300067</h2>
|
||||
</header>
|
||||
<section>
|
||||
<span eicchip xsmall info>evaluated</span>
|
||||
</section>
|
||||
<footer>
|
||||
<div class="cols-2 center noflex"><button eicbutton primary xsmall aria-enabled="true" role="button" aria-label="Button"><span>view</span></button></div>
|
||||
</footer>
|
||||
</article>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
</article>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
</article>
|
||||
@@ -0,0 +1,37 @@
|
||||
class CoachingCoachDashboardView extends EICDomContent {
|
||||
|
||||
DOMContentLoaded() {
|
||||
|
||||
let profileBt = this.find('.profile button');
|
||||
profileBt.addEventListener('click', this.onProfileEdit.bind(this));
|
||||
|
||||
let coachings = this.findAll('.list button')
|
||||
|
||||
for(let button of coachings) {
|
||||
button.addEventListener('click', this.onCoachingSelect.bind(this));
|
||||
}
|
||||
|
||||
this.components = ui.eicfy(this.el);
|
||||
|
||||
}
|
||||
|
||||
onProfileEdit(event) {
|
||||
event.stopPropagation();
|
||||
event.preventDefault();
|
||||
|
||||
let id = 1;
|
||||
|
||||
app.Router.route(`/coachings/coaches/${id}`, { });
|
||||
}
|
||||
|
||||
onCoachingSelect(event) {
|
||||
event.stopPropagation();
|
||||
event.preventDefault();
|
||||
//let id = event.dataset.id;
|
||||
|
||||
app.Router.route(`/coachings/coaching/1`, { });
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
app.registerClass('CoachingCoachDashboardView', CoachingCoachDashboardView);
|
||||
@@ -0,0 +1,12 @@
|
||||
<style>
|
||||
|
||||
</style>
|
||||
<article eiccard class="coaching-coach-activity">
|
||||
<header>
|
||||
<h1>My Coaching activity</h1>
|
||||
<h2></h2>
|
||||
</header>
|
||||
<section>
|
||||
|
||||
</section>
|
||||
</article>
|
||||
@@ -0,0 +1,9 @@
|
||||
class CoachingCoachView extends EICDomContent {
|
||||
|
||||
DOMContentLoaded() {
|
||||
ui.eicfy(this.el)
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
app.registerClass('CoachingCoachView', CoachingCoachView);
|
||||
@@ -0,0 +1,137 @@
|
||||
<style>
|
||||
.coach-profile > header {
|
||||
background: url('/app/assets/images/cards/applicant-dashboard.jpg');
|
||||
background-position: center;
|
||||
background-size: cover !important;
|
||||
background-repeat: no-repeat;
|
||||
border-bottom: 4px solid white !important;
|
||||
}
|
||||
|
||||
.coach-profile .rating {
|
||||
width: min-content;
|
||||
}
|
||||
</style>
|
||||
<article eiccard media class="coach-profile">
|
||||
<header>
|
||||
<h1>Profile of John-Sebastian Smith</h1>
|
||||
<h2>
|
||||
<span eicchip xsmall info>Updated: 16 sep 2023</span>
|
||||
<span eicchip xsmall danger>Ending: 3 mar 2024</span>
|
||||
</h2>
|
||||
</header>
|
||||
<section>
|
||||
<div class="tabs-extended">
|
||||
<menu eictab>
|
||||
<li data-target="contact">Contact details</li>
|
||||
<li data-target="profile">Profile</li>
|
||||
<li data-target="performance">Performance</li>
|
||||
</menu>
|
||||
</div>
|
||||
|
||||
<div class="panel contact">
|
||||
<div class="cols-3">
|
||||
<input eicinput type="hidden" name="uid" data-type="ignore" value="" class="required" />
|
||||
<div>
|
||||
<label xsmall>Title</label>
|
||||
<select eicselect class="required" name="gender" data-path="" disabled></select>
|
||||
</div>
|
||||
<div>
|
||||
<label xsmall>Firstname</label>
|
||||
<input eicinput disabled value="" class="required" data-path="" name="firstname" data-type="ignore" />
|
||||
</div>
|
||||
<div>
|
||||
<label xsmall>Lastname</label>
|
||||
<input eicinput disabled value="" class="required" data-path="" name="lastname" data-type="ignore" />
|
||||
</div>
|
||||
</div>
|
||||
<div class="cols-3">
|
||||
<div>
|
||||
<label xsmall>EU Login</label>
|
||||
<input eicinput disabled type="text" value="" data-path="" name="euLogin" data-type="ignore" />
|
||||
</div>
|
||||
<div>
|
||||
<label xsmall>Email</label>
|
||||
<input eicinput disabled type="email" value="" data-path="" name="email" data-type="ignore" />
|
||||
</div>
|
||||
<div>
|
||||
<label xsmall>Phone</label>
|
||||
<input eicinput type="tel" value="" class="" data-path="" name="phone" disabled />
|
||||
</div>
|
||||
</div>
|
||||
<div>
|
||||
<div>
|
||||
<label xsmall>Address (street, number)</label>
|
||||
<input eicinput disabled value="" data-path="" name="address" />
|
||||
</div>
|
||||
</div>
|
||||
<div class="cols-2 left">
|
||||
<div>
|
||||
<label xsmall>Postcode</label>
|
||||
<input eicinput disabled value="" data-path="" name="postcode" />
|
||||
</div>
|
||||
<div>
|
||||
<label xsmall>City</label>
|
||||
<input eicinput disabled value="" class="" data-path="" name="postcode"/>
|
||||
</div>
|
||||
</div>
|
||||
<div>
|
||||
<label xsmall>Country</label>
|
||||
<select eicselect disabled class="required" name="country" data-path=""></select>
|
||||
</div>
|
||||
</div>
|
||||
<div class="panel profile">
|
||||
|
||||
<label xsmall>Industrial domains</label>
|
||||
<select eicselect multiple editable disabled>
|
||||
<option value="Biotechnology" selected>Biotechnology</option>
|
||||
<option value="Health" selected>Health</option>
|
||||
<option value="Environment and Earch Sciences" selected>Environment and Earch Sciences</option>
|
||||
</select>
|
||||
<label xsmall>Countries of experience</label>
|
||||
<select eicselect multiple editable disabled>
|
||||
<option value="fr" selected>France</option>
|
||||
<option value="ie" selected>Ireland</option>
|
||||
<option value="da" selected>Denmark</option>
|
||||
<option value="de" selected>Germany</option>
|
||||
<option value="be" selected>Belgium</option>
|
||||
<option value="us" selected>United States of America</option>
|
||||
</select>
|
||||
<label xsmall>Executive summary</label>
|
||||
<textarea eictextarea disabled name="">Fundraising consultant specialised in EIC Accelerator + EIB venture debt in conjunction with private fundraising. 75% success rate in last 2 years on triaged clients. 16 years in EU funding. Laser-sharp, incisive & hands-on. Deep understanding of both EU & start-up worlds and of how public and private funding can leverage each other - see explicit recommendations on LinkedIn.</textarea>
|
||||
<label xsmall>Keywords</label>
|
||||
<select eicselect multiple editable disabled>
|
||||
<option value="EIC expert" selected>EIC expert</option>
|
||||
<option value="EIB expert" selected>EIB expert</option>
|
||||
<option value="success rate" selected>success rate</option>
|
||||
<option value="track record" selected>track record</option>
|
||||
<option value="EU funding" selected>EU funding</option>
|
||||
<option value="fundraising" selected>fundraising</option>
|
||||
<option value="strategy" selected>strategy</option>
|
||||
<option value="capacity-building" selected>capacity-building</option>
|
||||
<option value="investment readiness" selected>investment readiness</option>
|
||||
<option value="research" selected>research</option>
|
||||
<option value="life sciences" selected>life sciences</option>
|
||||
<option value="deep tech" selected>deep tech</option>
|
||||
<option value="climate tech" selected>climate tech</option>
|
||||
<option value="researcher-entrepreneurs" selected>researcher-entrepreneurs</option>
|
||||
<option value="female entrepreneurs" selected>female entrepreneurs</option>
|
||||
<option value="committed" selected>committed</option>
|
||||
<option value="passionate" selected>passionate</option>
|
||||
</select>
|
||||
<label xsmall>Curriculum vitae</label>
|
||||
<div>
|
||||
<a href="#">download as PDF</a>
|
||||
<a href="#">view online</a>
|
||||
</div>
|
||||
</div>
|
||||
<div class="panel performance">
|
||||
<section class="cols-1 right">
|
||||
<span eicchip info xxlarge badge="4 ratings" class="rating">4.94</span>
|
||||
<label xxsmall info>Horizon Europe Rating</label>
|
||||
</section>
|
||||
|
||||
<div eicdatagrid class="evaluations"></div>
|
||||
</div>
|
||||
</section>
|
||||
</article>
|
||||
|
||||
@@ -0,0 +1,19 @@
|
||||
class CoachProfileView extends EICDomContent {
|
||||
|
||||
DOMContentLoaded() {
|
||||
ui.eicfy(this.el);
|
||||
|
||||
this.tabs = new Tab();
|
||||
this.tabs.addTabs(this.findAll('menu li'), this.findAll('.panel'));
|
||||
|
||||
this.evaluationList = new DataGrid(this.find('.performance [eicdatagrid]'), {
|
||||
headers: [
|
||||
{label: 'project'},
|
||||
{label: 'rating'}
|
||||
]
|
||||
})
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
app.registerClass('CoachProfileView', CoachProfileView);
|
||||
@@ -0,0 +1,105 @@
|
||||
<div>
|
||||
<menu>
|
||||
<li data-target="contact">Contact details</li>
|
||||
<li data-target="profile">Profile</li>
|
||||
<li data-target="performance">Performance</li>
|
||||
</menu>
|
||||
<div>
|
||||
<div class="panel contact">
|
||||
<div class="cols-3">
|
||||
<input eicinput type="hidden" name="uid" data-type="ignore" value="" class="required" />
|
||||
<div>
|
||||
<label>Title</label>
|
||||
<select eicselect class="required" name="gender" data-path=""></select>
|
||||
</div>
|
||||
<div>
|
||||
<label>Firstname</label>
|
||||
<input eicinput disabled value="" class="required" data-path="" name="firstname" data-type="ignore" />
|
||||
</div>
|
||||
<div>
|
||||
<label>Lastname</label>
|
||||
<input eicinput disabled value="" class="required" data-path="" name="lastname" data-type="ignore" />
|
||||
</div>
|
||||
</div>
|
||||
<div class="cols-2">
|
||||
<div>
|
||||
<label>Email</label>
|
||||
<input eicinput disabled type="email" value="" data-path="" name="email" data-type="ignore" />
|
||||
</div>
|
||||
<div>
|
||||
<label>Phone</label>
|
||||
<input eicinput type="tel" value="" class="" data-path="" name="phone"/>
|
||||
</div>
|
||||
</div>
|
||||
<div>
|
||||
<div>
|
||||
<label>Address (street, number)</label>
|
||||
<input eicinput disabled value="" data-path="" name="address" />
|
||||
</div>
|
||||
</div>
|
||||
<div class="cols-2 left">
|
||||
<div>
|
||||
<label>Postcode</label>
|
||||
<input eicinput disabled value="" data-path="" name="postcode" />
|
||||
</div>
|
||||
<div>
|
||||
<label>City</label>
|
||||
<input eicinput value="" class="" data-path="" name="postcode"/>
|
||||
</div>
|
||||
</div>
|
||||
<div>
|
||||
<label>Country</label>
|
||||
<select eicselect class="required" name="country" data-path=""></select>
|
||||
</div>
|
||||
</div>
|
||||
<div class="panel profile">
|
||||
<label>Rating (HE)</label>
|
||||
<div><span eicchip badge="4">4.94</span></div>
|
||||
<label>Industrial domains</label>
|
||||
<select eicselect editable disabled>
|
||||
<option value="Biotechnology" selected>Biotechnology</option>
|
||||
<option value="Health" selected>Health</option>
|
||||
<option value="Environment and Earch Sciences" selected>Environment and Earch Sciences</option>
|
||||
</div>
|
||||
<label>Countries of experience</label>
|
||||
<select eicselect editable disabled>
|
||||
<option value="fr" selected>France</option>
|
||||
<option value="ie" selected>Ireland</option>
|
||||
<option value="da" selected>Denmark</option>
|
||||
<option value="de" selected>Germany</option>
|
||||
<option value="be" selected>Belgium</option>
|
||||
<option value="us" selected>United States of America</option>
|
||||
</div>
|
||||
<label>Executive summary</label>
|
||||
<textarea eictextarea name="">Fundraising consultant specialised in EIC Accelerator + EIB venture debt in conjunction with private fundraising. 75% success rate in last 2 years on triaged clients. 16 years in EU funding. Laser-sharp, incisive & hands-on. Deep understanding of both EU & start-up worlds and of how public and private funding can leverage each other - see explicit recommendations on LinkedIn.</textarea>
|
||||
<label>Keywords</label>
|
||||
<select eicselect editable disabled>
|
||||
<option value="EIC expert" selected>EIC expert</option>
|
||||
<option value="EIB expert" selected>EIB expert</option>
|
||||
<option value="success rate" selected>success rate</option>
|
||||
<option value="track record" selected>track record</option>
|
||||
<option value="EU funding" selected>EU funding</option>
|
||||
<option value="fundraising" selected>fundraising</option>
|
||||
<option value="strategy" selected>strategy</option>
|
||||
<option value="capacity-building" selected>capacity-building</option>
|
||||
<option value="investment readiness" selected>investment readiness</option>
|
||||
<option value="research" selected>research</option>
|
||||
<option value="life sciences" selected>life sciences</option>
|
||||
<option value="deep tech" selected>deep tech</option>
|
||||
<option value="climate tech" selected>climate tech</option>
|
||||
<option value="researcher-entrepreneurs" selected>researcher-entrepreneurs</option>
|
||||
<option value="female entrepreneurs" selected>female entrepreneurs</option>
|
||||
<option value="committed" selected>committed</option>
|
||||
<option value="passionate" selected>passionate</option>
|
||||
</div>
|
||||
<label>Curriculum vitae</label>
|
||||
<div>
|
||||
<a href="#">download as PDF</a>
|
||||
<a href="#">view online</a>
|
||||
</div>
|
||||
</div>
|
||||
<div class="panel performance">
|
||||
<div eicdatagrid class="evaluations"></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -0,0 +1,9 @@
|
||||
class AdminCoachProfileDialog extends EICDomContent {
|
||||
|
||||
DOMContentLoaded() {
|
||||
ui.eicfy(this.el)
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
app.registerClass('AdminCoachProfileDialog', AdminCoachProfileDialog);
|
||||
Reference in New Issue
Block a user