140 lines
7.3 KiB
Plaintext
140 lines
7.3 KiB
Plaintext
<div class="skills-matrix-div" ng-cloak id="{{State.MatrixId}}">
|
|
<div class="form-inline">
|
|
<form class="form-horizontal">
|
|
<div class="row padding-sm-hr">
|
|
<div class="col-md-7 col-lg-7">
|
|
<div class="form-group select2-primary no-margin-hr" style="width:100%;">
|
|
<label class="control-label" style="float:left; margin-right:24px;">Display Skills Matrix for:</label>
|
|
<div class="radio-group-sigle-line">
|
|
<input type="radio" ng-model="Filter.CompaniesMode" ng-value="true" ng-change="switchCompaniesFilterMode()" class="form-control" data-key="companiesFilterMode" /><span class="radio-label" style="vertical-align:middle;">Business Unit</span><div class="radio-gap"></div>
|
|
<input type="radio" ng-model="Filter.ViewsMode" ng-value="true" ng-change="switchViewsFilterMode()" class="form-control" data-key="viewsFilterMode" /><span class="radio-label" style="vertical-align:middle;">Views</span><div class="radio-gap"></div>
|
|
<input type="radio" ng-model="Filter.TeamsMode" ng-value="true" ng-change="switchTeamsFilterMode()" class="form-control" data-key="teamsFilterMode" /><span class="radio-label" style="vertical-align:middle;">Teams</span>
|
|
</div>
|
|
<div ng-show="Filter.CompaniesMode">
|
|
<select ng-model="Filter.Companies" multiple="multiple" data-key="companiesFilterList"
|
|
name="select2FilterCompanies"
|
|
ng-options="s.Value as s.Text for s in FilterOptions.Companies"></select>
|
|
</div>
|
|
<div ng-show="Filter.ViewsMode">
|
|
<select ng-model="Filter.Views" multiple="multiple" data-key="viewsFilterList"
|
|
name="select2FilterElement"
|
|
ng-options="s.Value as s.Text for s in FilterOptions.Views"></select>
|
|
</div>
|
|
<div ng-show="Filter.TeamsMode">
|
|
<select ng-model="Filter.Teams" multiple="multiple" data-key="teamsFilterList"
|
|
name="select2FilterElement"
|
|
ng-options="s.Value as s.Text for s in FilterOptions.Teams"></select>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="col-md-5 col-lg-5">
|
|
<div class="form-group select2-primary no-margin-hr" style="width:100%">
|
|
<label class="control-label" style="padding-bottom:5px;">Skills:</label>
|
|
<div>
|
|
<select multiple="multiple" selected-data-changed
|
|
name="select2FilterSkills" data-key="skillsFilterList"
|
|
ng-model="Filter.Skills"
|
|
skillsmultilevel dataoptions="FilterOptions.Skills"></select>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="row padding-sm-hr">
|
|
<div class="col-md-7 col-lg-7">
|
|
<div class="form-group select2-primary no-margin-hr" style="width:100%">
|
|
<label class="control-label">Skill Levels:</label><br />
|
|
<select ng-model="Filter.SkillLevels" multiple="multiple"
|
|
name="select2FilterSkillLevels" data-key="skillLevelsFilterList"
|
|
ng-options="s.Value as s.Text for s in FilterOptions.SkillLevels"></select>
|
|
</div>
|
|
</div>
|
|
<div class="col-md-5 col-lg-5">
|
|
<div class="form-group no-margin-hr" style="width:100%">
|
|
<label class="control-label">Skill Interests:</label><br />
|
|
<select ng-model="Filter.SkillInterest"
|
|
name="select2FilterSkillInterests" data-key="skillInterestsFilterValue"
|
|
ng-options="s.Value as s.Text for s in FilterOptions.SkillInterests"></select>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="padding-sm-vr">
|
|
<div class="form-group no-margin-hr padding-sm-hr">
|
|
<button class="btn btn-default" ng-disabled="!filterIsValid()" ng-click="rebuildViewModel(true);"><i class="fa fa-refresh"></i> Reload</button>
|
|
<button class="btn btn-success" type="button" ng-if="!Settings.ReadOnly && State.DataLoaded" ng-show="State.DataAvailable" ng-click="saveChanges()" ng-disabled="!State.DataChanged">
|
|
<i class="fa fa-save"></i> Save Matrix
|
|
</button>
|
|
</div>
|
|
|
|
</div>
|
|
</form>
|
|
</div>
|
|
<div class="row padding-sm" ng-if="State.DataLoaded" ng-show="State.DataAvailable">
|
|
<table class="skills-matrix-legend-table">
|
|
<tr>
|
|
<td class="value-cell skill-cell-level">
|
|
<div class="skill-cell-interested skill-cell-level" style="width:40px;"><i class="fa fa-info"></i></div>
|
|
</td>
|
|
<td class="label-cell">Interested in Learning/Developing Skill</td>
|
|
<td class="value-cell skill-cell-level0">0</td>
|
|
<td class="label-cell">Cannot Perform</td>
|
|
<td class="value-cell skill-cell-level1">1</td>
|
|
<td class="label-cell">Knows All Elements</td>
|
|
<td class="value-cell skill-cell-level2">2</td>
|
|
<td class="label-cell">Can Complete the Basics</td>
|
|
<td class="value-cell skill-cell-level3">3</td>
|
|
<td class="label-cell">Proficient</td>
|
|
<td class="value-cell skill-cell-level4">4</td>
|
|
<td class="label-cell">Exceptional</td>
|
|
</tr>
|
|
</table>
|
|
</div>
|
|
<div class="skills-matrix-no-data-message" ng-if="State.DataLoaded" ng-show="!State.DataAvailable">
|
|
No skills data available
|
|
</div>
|
|
<div class="table-light table-responsive very-big-table freezeTable skills-matrix" style="overflow-y:hidden;" ng-if="State.DataLoaded" ng-show="State.DataAvailable">
|
|
<table class="table table-striped table-bordered dataTable" style="border-right: 1px solid #dbdbdb;">
|
|
<thead>
|
|
<tr>
|
|
<th class="headcol firstcol left" rowspan="2">Resouces / Teams</th>
|
|
<th ng-repeat="skillGroup in View.Header.Groups track by $index" colspan="{{skillGroup.SkillsCount}}" nowrap>
|
|
{{skillGroup.Name}}
|
|
</th>
|
|
</tr>
|
|
<tr>
|
|
<th class="headcol" style="visibility:hidden;"></th>
|
|
<th ng-repeat="skill in View.Header.Skills track by $index" nowrap>
|
|
{{skill.Name}}
|
|
</th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr ng-repeat="row in View.Rows track by $index" ng-init="rowIndex = $index" ng-class="(row.Type == 1) ? 'total-row' : ''">
|
|
<td class="headcol left team-row-title">
|
|
<div class="row-title" style="overflow-x:hidden; text-overflow:ellipsis;">{{row.Name}}</div>
|
|
</td>
|
|
@* Team row cells *@
|
|
<td ng-if="row.Type == 1" ng-attr-colspan="{{row.ColSpan}}" class="team-cell-value"> </td>
|
|
@* Resource row cells for editable mode *@
|
|
<td ng-if="!Settings.ReadOnly && (row.Type == 2)" ng-repeat="cell in row.Cells track by $index" ng-init="colIndex = $index" class="skill-cell-value" ng-click="textBtnForm.$show()"
|
|
ng-class="cell.CssClass" id="{{State.MatrixId}}_{{rowIndex}}_{{colIndex}}">
|
|
<div class="skill-cell-div">
|
|
<a href="javascript:void(0)" editable-text="cell.EditorValue" e-ng-blur="onTxtBlur(cell, this);" onshow="startEditCell(cell, rowIndex, colIndex, this)"
|
|
buttons="no" blur="submit" e-form="textBtnForm" onbeforesave="checkEditorValue($data, rowIndex, colIndex)" style="display:none;" e-skill-level-validation></a>
|
|
<div class="skill-cell-interested" ng-show="!textBtnForm.$visible"><i class="fa fa-info" ng-if="cell.Interested"></i></div>
|
|
<div class="skill-cell-num" ng-show="!textBtnForm.$visible">{{cell.Level}}</div>
|
|
</div>
|
|
</td>
|
|
@* Resource row cells for read-only mode *@
|
|
<td ng-if="Settings.ReadOnly && (row.Type == 2)" ng-repeat="cell in row.Cells track by $index" ng-init="colIndex = $index" class="skill-cell-value"
|
|
ng-class="cell.CssClass" id="{{State.MatrixId}}_{{rowIndex}}_{{colIndex}}">
|
|
<div class="skill-cell-div">
|
|
<div class="skill-cell-interested"><i class="fa fa-info" ng-if="cell.Interested"></i></div>
|
|
<div class="skill-cell-num">{{cell.Level}}</div>
|
|
</div>
|
|
</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
</div>
|
|
</div>
|