updates for project of UI

This commit is contained in:
kunw 2016-05-02 18:24:58 +08:00
parent eb26c59738
commit aa3b1b3cbe
6 changed files with 55 additions and 35 deletions

View File

@ -4,7 +4,7 @@
</thead>
<tbody>
<tr ng-repeat="p in vm.projects">
<td><a href="/ng/repository?project_id=//p.ProjectId//">//p.Name//</a></td>
<td><a href="/ng/repository#/repositories?project_id=//p.ProjectId//">//p.Name//</a></td>
<td>N/A</td>
<td>N/A</td>
<td>//p.CreationTime | dateL : 'YYYY-MM-DD HH:mm:ss'//</td>

View File

@ -15,11 +15,13 @@
vm.reload = reload;
vm.getCurrentUser = getCurrentUser;
vm.resultCount = 0;
vm.publicity = 0;
function reload() {
$.when(vm.getCurrentUser())
.done(function(e) {
vm.retrieve(vm.projectName);
vm.retrieve();
});
}
@ -27,18 +29,21 @@
$scope.$on('needToReload', function(e, val) {
if(val) {
vm.reload(vm.projectName);
vm.reload();
}
});
function retrieve(projectName) {
ListProjectService({'is_public': 0, 'project_name': projectName})
function retrieve() {
ListProjectService(vm.projectName, vm.publicity)
.success(listProjectSuccess)
.error(listProjectFailed);
}
function listProjectSuccess(data, status) {
vm.projects = data;
if(data) {
vm.resultCount = vm.projects.length;
}
}
function listProjectFailed(e) {
console.log('Failed in listProject:' + e);
@ -65,7 +70,9 @@
'restrict': 'E',
'templateUrl': '/static/ng/resources/js/components/project/list-project.directive.html',
'scope': {
'projectName': '='
'projectName': '=',
'publicity': '=',
'resultCount': '='
},
'controller': ListProjectController,
'controllerAs': 'vm',

View File

@ -12,8 +12,11 @@
var vm = this;
vm.isOpen = false;
vm.closeRetrievePane = closeRetrievePane;
vm.projectName = '';
vm.isPublic = 0;
ListProjectService({'isPublic' : 0, 'projectName' : ''})
ListProjectService(vm.projectName, vm.isPublic)
.then(getProjectComplete)
.catch(getProjectFailed);

View File

@ -9,10 +9,15 @@
ProjectController.$inject = ['$scope'];
function ProjectController($scope) {
var vm = $scope;
var vm = this;
vm.showAddProject = showAddProject;
vm.isOpen = false;
vm.searchProject = searchProject;
vm.inputProjectName = "";
vm.inputPublicity = 0;
vm.showAddButton = showAddButton;
vm.togglePublicity = togglePublicity;
$scope.$on('addedSuccess', function(e, val) {
$scope.$broadcast('needToReload', true);
@ -27,10 +32,23 @@
}
function searchProject() {
$scope.$broadcast('needToReload', true);
}
function showAddButton() {
if(vm.inputPublicity == 0) {
return true;
}else{
return false;
}
}
function togglePublicity(e) {
vm.inputPublicity = e.publicity;
$scope.$broadcast('needToReload', true);
console.log('vm.inputPublicity:' + vm.inputPublicity);
}
}
})();

View File

@ -11,24 +11,16 @@
return ListProject;
function ListProject(queryParams) {
function ListProject(projectName, isPublic) {
$log.info('list project projectName:' + projectName, ', isPublic:' + isPublic);
return $http
.get('/api/projects', {
'params' : {
'is_public': isPublic,
'project_name': projectName
}
});
$log.info(queryParams);
var isPublic = queryParams.isPublic;
var projectName = queryParams.projectName;
return $http({
method: 'GET',
url: '/api/projects',
headers: {'Content-Type': 'application/x-www-form-urlencoded'},
transformRequest: function(obj) {
var str = [];
for(var p in obj)
str.push(encodeURIComponent(p) + "=" + encodeURIComponent(obj[p]));
return str.join("&");
},
data: {'is_public': isPublic, 'project_name': projectName}
});
}
}
})();

View File

@ -1,26 +1,26 @@
<div class="container-fluid container-fluid-custom" ng-controller="ProjectController">
<div class="container-fluid container-fluid-custom" ng-controller="ProjectController as vm">
<div class="container container-custom">
<div class="row extend-height">
<div class="col-xs-12 col-md-12 extend-height">
<div class="section">
<h4 class="page-header">My Projects<span class="gutter">|</span><a href="#" class="title-color">Public Projects</a></h4>
<h4 class="page-header"><a href="#" ng-click="vm.togglePublicity({publicity: 0})">My Projects</a><span class="gutter">|</span><a href="#" class="title-color" ng-click="vm.togglePublicity({publicity: 1})">Public Projects</a></h4>
<div class="search-pane">
<div class="form-inline">
<div class="input-group">
<input type="text" class="form-control" placeholder="" ng-model="inputProjectName" size="30">
<input type="text" class="form-control" placeholder="" ng-model="vm.inputProjectName" size="30">
<span class="input-group-btn">
<button class="btn btn-primary" type="button" ng-click="searchProject()"><span class="glyphicon glyphicon-search"></span></button>
<button class="btn btn-primary" type="button" ng-click="vm.searchProject()"><span class="glyphicon glyphicon-search"></span></button>
</span>
</div>
<button class="btn btn-success" type="button" ng-click="showAddProject()"><span class="glyphicon glyphicon-plus"></span>New Project</button>
<button class="btn btn-success" type="button" ng-show="vm.showAddButton()" ng-click="vm.showAddProject()"><span class="glyphicon glyphicon-plus"></span>New Project</button>
</div>
</div>
<div class="pane project-pane">
<add-project ng-show="isOpen" is-open="isOpen"></add-project>
<add-project ng-show="vm.isOpen" is-open="vm.isOpen"></add-project>
<div class="sub-pane">
<list-project project-name="inputProjectName"></list-project>
<list-project project-name="vm.inputProjectName" publicity="vm.inputPublicity" result-count="vm.resultCount"></list-project>
</div>
<div class="col-xs-4 col-md-12 well well-sm well-custom"><div class="col-md-offset-10">7 items</div></div>
<div class="col-xs-4 col-md-12 well well-sm well-custom"><div class="col-md-offset-10">//vm.resultCount// items</div></div>
</div>
</div>
</div>