diff --git a/src/main/java/org/hbp/mip/controllers/UsersApi.java b/src/main/java/org/hbp/mip/controllers/UsersApi.java new file mode 100644 index 0000000000000000000000000000000000000000..2ec81564f8aa6ff913c71040ac64a4f5f593b2a6 --- /dev/null +++ b/src/main/java/org/hbp/mip/controllers/UsersApi.java @@ -0,0 +1,40 @@ +package org.hbp.mip.controllers; + +import io.swagger.annotations.*; +import org.hbp.mip.model.User; +import org.hibernate.Session; +import org.springframework.http.HttpStatus; +import org.springframework.http.ResponseEntity; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; + +import static org.springframework.http.MediaType.APPLICATION_JSON_VALUE; + +/** + * Created by mirco on 14.01.16. + */ + +@Controller +@RequestMapping(value = "/users", produces = {APPLICATION_JSON_VALUE}) +@Api(value = "/users", description = "the users API") +@javax.annotation.Generated(value = "class io.swagger.codegen.languages.SpringMVCServerCodegen", date = "2016-01-07T07:38:20.227Z") +public class UsersApi { + + @ApiOperation(value = "Get a user", notes = "", response = User.class) + @ApiResponses(value = { + @ApiResponse(code = 200, message = "Found"), + @ApiResponse(code = 404, message = "Not found")}) + @RequestMapping(value = "/{id}", produces = {"application/json"}, method = RequestMethod.GET) + public ResponseEntity<User> getAUser( + @ApiParam(value = "id", required = true) @PathVariable("id") Long id) throws NotFoundException { + Session session = HibernateUtil.getSessionFactory().getCurrentSession(); + session.beginTransaction(); + org.hibernate.Query query = session.createQuery("from User where id= :id"); + query.setLong("id", id); + User user = (User) query.uniqueResult(); + session.getTransaction().commit(); + return new ResponseEntity<User>(HttpStatus.OK).ok(user); + } +} diff --git a/src/main/java/org/hbp/mip/model/User.java b/src/main/java/org/hbp/mip/model/User.java index 10399daa3726bee98d4a17e85a8a8ff0df03411f..d18a876742b48a24143090686f0ba8774f8d34d4 100644 --- a/src/main/java/org/hbp/mip/model/User.java +++ b/src/main/java/org/hbp/mip/model/User.java @@ -4,7 +4,6 @@ package org.hbp.mip.model; -import com.fasterxml.jackson.annotation.JsonIgnoreProperties; import com.fasterxml.jackson.annotation.JsonProperty; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; @@ -19,7 +18,6 @@ import java.util.regex.Pattern; @Table(name = "`user`") @ApiModel(description = "") @javax.annotation.Generated(value = "class io.swagger.codegen.languages.SpringMVCServerCodegen", date = "2016-01-06T09:32:22.266Z") -@JsonIgnoreProperties(value = { "id" }) public class User { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) diff --git a/src/main/resources/static/frontend/app/scripts/app/articles/articles.html b/src/main/resources/static/frontend/app/scripts/app/articles/articles.html index b29db5417ae339011df5b6c17e1b2639ed94ffcf..c1b7a32c83bdaf320714d4e4d219e9eaf2cc0244 100644 --- a/src/main/resources/static/frontend/app/scripts/app/articles/articles.html +++ b/src/main/resources/static/frontend/app/scripts/app/articles/articles.html @@ -1,54 +1,54 @@ -<div class="panel" data-widget='{"draggable": "false"}'> -<div class="panel-heading"> - <h2>Recent Articles</h2> - <div class="panel-ctrls button-icon-bg" - data-actions-container="" - data-action-collapse='{"target": ".panel-body"}' - data-action-refresh-demo='{"type": "circular"}'> - </div> -</div> -<div class="panel-body scroll-pane" style="height: 320px;"> - <div class="custom-scrollbar" scrollbar> - <ul class="mini-timeline"> - <li ng-class="{'mini-timeline-owner': isMine(article), 'mini-timeline-default': !isMine(article) }" ng-repeat="article in articles"> - <div class="timeline-icon"></div> - <div class="timeline-body"> - <div class="timeline-content"> - <a href="" ng-click="showModal(article)" class="name">{{article.title}}</a> - <div class="author-box"> - <a href="{{'#/users/' + article.createdBy.id }}" class="avatar"> - <img ng-src="{{article.createdBy.picture}}" alt="" class="avatar" /> - </a> - by <a href="{{'#/users/' + article.createdBy.id }}">{{article.createdBy.fullname}}</a><br /> - <span class="time">{{article.createdAt | fromNow}}</span> - </div> - </div> - <div class="timeline-action"> - <a href="" ng-click="showModal(article)" class="icon-tl"> - <i class="icon-preview"></i> - </a> - <a ng-href="{{getPdfUrl(article.slug)}}" target="_blank" class="icon-tl"> - <i class="icon-pdf"></i> - </a> - <a ng-if="isMine(article)" href="#/articles/edit/{{article.slug}}" ng-if="isAuthorized(article)" class="icon-tl"> - <i class="icon-html"></i> - </a> - </div> - </div> - </li> - <li ng-if="articles.length > 0" class="mini-timeline-default"> - <div class="timeline-body ml-n"> - <div class="timeline-content"> - <button type="button" data-loading-text="Loading..." class="loading-example-btn btn btn-sm btn-default">See more</button> - </div> - </div> - </li> - <li ng-if="!articles || articles.length == 0" class="mini-timeline-default"> - <div class="timeline-body ml-n"> - <div class="timeline-content">No article available</div> - </div> - </li> - </ul> - </div> -</div> -</div> +<div class="panel" data-widget='{"draggable": "false"}'> +<div class="panel-heading"> + <h2>Recent Articles</h2> + <div class="panel-ctrls button-icon-bg" + data-actions-container="" + data-action-collapse='{"target": ".panel-body"}' + data-action-refresh-demo='{"type": "circular"}'> + </div> +</div> +<div class="panel-body scroll-pane" style="height: 320px;"> + <div class="custom-scrollbar" scrollbar> + <ul class="mini-timeline"> + <li ng-class="{'mini-timeline-owner': isMine(article), 'mini-timeline-default': !isMine(article) }" ng-repeat="article in articles"> + <div class="timeline-icon"></div> + <div class="timeline-body"> + <div class="timeline-content"> + <a href="" ng-click="showModal(article)" class="name">{{article.title}}</a> + <div class="author-box"> + <a href="{{'#/users/' + article.createdBy.id }}" class="avatar"> + <img ng-src="{{article.createdBy.picture}}" alt="" class="avatar" /> + </a> + by <a href="{{'#/users/' + article.createdBy.id }}">{{article.createdBy.fullname}}</a><br /> + <span class="time">{{article.createdAt | fromNow}}</span> + </div> + </div> + <div class="timeline-action"> + <a href="" ng-click="showModal(article)" class="icon-tl"> + <i class="icon-preview"></i> + </a> + <a ng-href="{{getPdfUrl(article.slug)}}" target="_blank" class="icon-tl"> + <i class="icon-pdf"></i> + </a> + <a ng-if="isMine(article)" href="#/articles/edit/{{article.slug}}" ng-if="isAuthorized(article)" class="icon-tl"> + <i class="icon-html"></i> + </a> + </div> + </div> + </li> + <li ng-if="articles.length > 0" class="mini-timeline-default"> + <div class="timeline-body ml-n"> + <div class="timeline-content"> + <button type="button" data-loading-text="Loading..." class="loading-example-btn btn btn-sm btn-default">See more</button> + </div> + </div> + </li> + <li ng-if="!articles || articles.length == 0" class="mini-timeline-default"> + <div class="timeline-body ml-n"> + <div class="timeline-content">No article available</div> + </div> + </li> + </ul> + </div> +</div> +</div> diff --git a/src/main/resources/static/frontend/app/scripts/app/users/users.service.js b/src/main/resources/static/frontend/app/scripts/app/users/users.service.js index 0dfcf039d7e334bcffc8dab470d789c1dca14074..3b09f4ca1b393bd8f182a31160e04ba32420e628 100644 --- a/src/main/resources/static/frontend/app/scripts/app/users/users.service.js +++ b/src/main/resources/static/frontend/app/scripts/app/users/users.service.js @@ -6,22 +6,7 @@ angular.module('chuvApp.users') .factory('User', ['$rootScope','backendUrl','$http','$cookieStore','base64', function ($rootScope,backendUrl,$http,$cookieStore,base64) { - var datas = [ - { id: 1, login: "admin", password: "kitten", firstname: "Bogdan", lastname: "DRAGANSKI", fullname: "Bogdan DRAGANSKI", team: "Scientist", - picture: "images/users/Bogdan.jpg", web:"http://www.hbpproject.eu", email: "admin@hbpproject.eu", phone:"+33 6 00 00 00 00", birthday: "1982-01-22", gender:"Male", - languages:["French"], city:"Lausanne", country:"Switzerland" }, - - { id: 2, login: "l.dib", password: "user", firstname: "Linda", lastname: "DIB", fullname: "Linda DIB", team: "Scientist", - picture: "images/users/Linda.png", web:"http://www.hbpproject.eu", - email: "a.kiliaan@hbpproject.eu", phone:"+33 6 00 00 00 00", birthday: "1983-05-02", gender:"Female", - languages:["French","Netherlands"], city:"Nijmegen", country:"Netherlands" }, - - { id: 3, login: "llaursen", password: "poc", firstname: "Lucas", lastname: "LAURSEN", fullname: "Lucas LAURSEN", team: "Press", - picture: "images/users/llaursen.jpg", web:"http://www.hbpproject.eu", email: "llaursen@hbpproject.eu", phone:"06 00 00 00 00", birthday: "1982-05-10", gender:"Male", - languages:["French","Spanish"], city:"Madric", country:"Spain" } - ]; - - var currentUser = datas[0]; + var currentUser; return { @@ -50,12 +35,11 @@ angular.module('chuvApp.users') }, get: function (id) { - for (var idx in datas) { - if (datas.hasOwnProperty(idx) && datas[idx].id == id) { - return datas[idx]; - } - } - return null; + $http.get("/users/"+id).success(function(data) { + return data; + }).error(function() { + return null; + }); }, create: function (user) {