webapp/app/partials/projects/projects.html (62 lines of code) (raw):
<!--
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
-->
<div class="page-header">
<button class="btn btn-primary btn-sm" ng-if="userService.hasRole('ROLE_ADMIN')" ng-click="toCreateProj()"><i class="fa fa-plus"></i> Project</button>
</div>
<div ng-if="!loading && projects.length == 0">
<div no-result text="No Project."></div>
</div>
<loading ng-if="loading" text="Loading Projects..."></loading>
<div ng-if="projects.length > 0" class="dataTables_wrapper form-inline no-footer">
<div class="row">
<div class="col-xs-12"><label class="table-header-text">Projects</label></div>
</div>
<table class="table table-striped table-bordered table-hover dataTable no-footer">
<thead>
<tr style="cursor: pointer">
<th ng-repeat="theaditem in projectConfig.theaditems"
ng-click="state.filterAttr= theaditem.attr;state.reverseColumn=theaditem.attr;state.filterReverse=!state.filterReverse;">
{{theaditem.name}}
<i ng-if="state.reverseColumn!= theaditem.attr"
class="fa fa-unsorted"></i>
<i ng-if="state.reverseColumn== theaditem.attr && !state.filterReverse"
class="fa fa-sort-desc"></i>
<i ng-if="state.reverseColumn== theaditem.attr && state.filterReverse"
class="fa fa-sort-asc"></i>
</th>
<th>Actions</th>
</tr>
</thead>
<tbody ng-repeat="project in projects | orderObjectBy:state.filterAttr:state.filterReverse">
<tr ng-class="{accordion:true}" style="cursor: pointer" ng-click="project.showDetail=!project.showDetail;">
<td>
<i ng-show="!project.showDetail" class="fa fa-chevron-circle-right blue"></i>
<i ng-show="project.showDetail" class="fa fa-chevron-circle-down blue"></i>
{{ project.name}}
</td>
<td>{{ project.owner}}</td>
<td>{{ project.description}}</td>
<td>{{ project.realizations.length}}</td>
<td>{{ project.create_time_utc | utcToConfigTimeZone}}</td>
<td>
<button class="btn btn-xs btn-info" ng-click="toEdit(project)" tooltip="Edit"
ng-disabled="!(userService.hasRole('ROLE_ADMIN') || hasPermission('project',project, permissions.ADMINISTRATION.mask))">
<i class="fa fa-pencil"></i></button>
<button class="btn btn-xs btn-danger" ng-click="delete(project)" tooltip="Delete"
ng-disabled="!userService.hasRole('ROLE_ADMIN')"
><i class="fa fa-trash-o"></i></button>
</td>
</tr>
<tr ng-show="project.showDetail">
<td colspan="9" style="padding: 10px 30px 10px 30px;">
<div ng-include src="'partials/projects/project_detail.html'"
ng-init="project.visiblePage='cubes'"></div>
</td>
</tr>
</tbody>
</table>
</div>
<div class="row">
<div class="col-xs-12">
<kylin-pagination data="projects" load-func="list"/>
</div>
</div>
<div ng-include="'partials/projects/project_create.html'"></div>