Skip to content

Commit

Permalink
Merge pull request #377 from phuonghuynh/master
Browse files Browse the repository at this point in the history
Update changes
  • Loading branch information
phuonghuynh committed Aug 27, 2015
2 parents 0ee9a53 + a089bb5 commit 24ae286
Show file tree
Hide file tree
Showing 25 changed files with 188 additions and 98 deletions.
28 changes: 18 additions & 10 deletions src/main/java/com/techlooper/controller/JobListingController.java
Original file line number Diff line number Diff line change
Expand Up @@ -49,16 +49,24 @@ public JobListingModel list(@RequestBody JobListingCriteria criteria) throws Exc
@Scheduled(cron = "${scheduled.cron.indexVietnamworksJob}")
public void indexJobFromVietnamworks() throws Exception {
VNWJobSearchRequest vnwJobSearchRequest = getTopPriorityJobSearchRequest();
VNWJobSearchResponse vnwJobSearchResponse = vietnamWorksJobSearchService.searchJob(vnwJobSearchRequest);
if (vnwJobSearchResponse.hasData()) {
scrapeJobService.save(vnwJobSearchResponse.getData().getJobs(), Boolean.TRUE);
}

vnwJobSearchRequest = getNormalJobSearchRequest();
vnwJobSearchResponse = vietnamWorksJobSearchService.searchJob(vnwJobSearchRequest);
if (vnwJobSearchResponse.hasData()) {
scrapeJobService.save(vnwJobSearchResponse.getData().getJobs(), Boolean.FALSE);
}
VNWJobSearchResponse vnwJobSearchResponse;
do {
vnwJobSearchResponse = vietnamWorksJobSearchService.searchJob(vnwJobSearchRequest);
if (vnwJobSearchResponse.hasData()) {
scrapeJobService.save(vnwJobSearchResponse.getData().getJobs(), Boolean.TRUE);
vnwJobSearchRequest.setPageNumber(vnwJobSearchRequest.getPageNumber() + 1);
}
} while (vnwJobSearchResponse.hasData());

VNWJobSearchRequest vnwNormalJobSearchRequest = getNormalJobSearchRequest();
VNWJobSearchResponse vnwNormalJobSearchResponse;
do {
vnwNormalJobSearchResponse = vietnamWorksJobSearchService.searchJob(vnwNormalJobSearchRequest);
if (vnwNormalJobSearchResponse.hasData()) {
scrapeJobService.save(vnwNormalJobSearchResponse.getData().getJobs(), Boolean.FALSE);
vnwNormalJobSearchRequest.setPageNumber(vnwNormalJobSearchRequest.getPageNumber() + 1);
}
} while (vnwNormalJobSearchResponse.hasData());

}

Expand Down
70 changes: 37 additions & 33 deletions src/main/java/com/techlooper/controller/SharingController.java
Original file line number Diff line number Diff line change
@@ -1,10 +1,9 @@
package com.techlooper.controller;

import com.techlooper.model.SocialConfig;
import com.techlooper.model.SocialProvider;
import com.techlooper.repository.JsonConfigRepository;
import com.techlooper.repository.elasticsearch.SalaryReviewRepository;
import com.techlooper.service.ChallengeService;
import com.techlooper.service.WebinarService;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Controller;
import org.springframework.ui.ModelMap;
Expand All @@ -19,35 +18,40 @@
@Controller
public class SharingController {

@Resource
private SalaryReviewRepository salaryReviewRepository;

@Resource
private ChallengeService challengeService;

@Value("${web.baseUrl}")
private String baseUrl;

@Resource
private JsonConfigRepository jsonConfigRepository;

@RequestMapping(value = "renderSalaryReport/{language}/{salaryReviewId}")
public String renderReport(@PathVariable String language, @PathVariable Long salaryReviewId, ModelMap model) {
model.put("report", salaryReviewRepository.findOne(salaryReviewId).getSalaryReport());
return "/jsp/salary-sharing." + language + ".jsp";
}

@RequestMapping(value = "shareChallenge/{language}/{id}")
public String renderChallenge(@PathVariable String language, @PathVariable Long id, ModelMap model) {
model.put("challenge", challengeService.getChallengeDetail(id));
model.put("lang", language);
model.put("baseUrl", baseUrl);
SocialConfig socialConfig = jsonConfigRepository.getSocialConfig().stream()
.filter(config -> {
return SocialProvider.FACEBOOK == config.getProvider();
}).findFirst().get();
model.put("config", socialConfig);
// return socialConfig.getApiUrl().get("login");
return "/jsp/challenge-sharing.jsp";
}
@Resource
private SalaryReviewRepository salaryReviewRepository;

@Resource
private ChallengeService challengeService;

@Value("${web.baseUrl}")
private String baseUrl;

@Resource
private JsonConfigRepository jsonConfigRepository;

@Resource
private WebinarService webinarService;

@RequestMapping(value = "renderSalaryReport/{language}/{salaryReviewId}")
public String renderReport(@PathVariable String language, @PathVariable Long salaryReviewId, ModelMap model) {
model.put("report", salaryReviewRepository.findOne(salaryReviewId).getSalaryReport());
return "/jsp/salary-sharing." + language + ".jsp";
}

@RequestMapping(value = "shareChallenge/{language}/{id}")
public String renderChallenge(@PathVariable String language, @PathVariable Long id, ModelMap model) {
model.put("challenge", challengeService.getChallengeDetail(id));
model.put("lang", language);
model.put("baseUrl", baseUrl);
return "/jsp/challenge-sharing.jsp";
}

@RequestMapping(value = "shareWebinar/{language}/{id}")
public String renderWebinar(@PathVariable String language, @PathVariable Long id, ModelMap model) {
model.put("webinar", webinarService.findWebinarById(id));
model.put("lang", language);
model.put("baseUrl", baseUrl);
return "/jsp/webinar-sharing.jsp";
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -63,8 +63,9 @@ public WebinarInfoDto createWebinarInfo(WebinarInfoDto webinarInfoDto, UserProfi
event.setStart(new EventDateTime().setDateTime(new DateTime(startDate.toString())));
event.setEnd(new EventDateTime().setDateTime(new DateTime(endDate.toString())));

webinarInfoDto.getAttendees().add(organiser);
EventAttendee[] attendees = webinarInfoDto.getAttendees().stream()
Set<UserProfileDto> webinarAttendees = webinarInfoDto.getAttendees();

EventAttendee[] attendees = webinarAttendees.stream()
.map(attEmail -> new EventAttendee().setEmail(attEmail.getEmail()))
.toArray(EventAttendee[]::new);

Expand All @@ -77,6 +78,7 @@ public WebinarInfoDto createWebinarInfo(WebinarInfoDto webinarInfoDto, UserProfi

entity.setOrganiser(organiser);

webinarAttendees.remove(organiser);//Remove organiser
entity = webinarRepository.save(entity);
return dozerMapper.map(entity, WebinarInfoDto.class);
}
Expand Down Expand Up @@ -144,7 +146,8 @@ public WebinarInfoDto joinWebinar(JoinBySocialDto joinBySocialDto) throws IOExce
Event event = googleCalendar.events().get(googleSocialConfig.getCalendarId(), webinar.getCalendarInfo().getId()).execute();
EventAttendee att = new EventAttendee().setEmail(attendee.getEmail())
.setDisplayName(String.format("%s %s", joinBySocialDto.getFirstName(), joinBySocialDto.getLastName()));
event.getAttendees().add(att);
List<EventAttendee> attendees = Optional.ofNullable(event.getAttendees()).orElseGet(ArrayList::new);
attendees.add(att);
event = googleCalendar.events().update(googleSocialConfig.getCalendarId(), webinar.getCalendarInfo().getId(), event)
.setSendNotifications(true).execute();
webinar.setCalendarInfo(dozerMapper.map(event, CalendarInfo.class));
Expand Down
2 changes: 1 addition & 1 deletion src/main/resources/template/jobAlert.en.ftl
Original file line number Diff line number Diff line change
Expand Up @@ -160,7 +160,7 @@
</tr>
<tr>
<td align="center">
<a href="http://www.techlooper.com/#/challenge-detail/job-search-innovation-hackathon-1439866071515-id"target="_blank">
<a href="http://www.techlooper.com/#/challenge-detail/job-search-innovation-hackathon-1439866071515-id?utm_source=jobalertemail&utm_medium=hackathon&utm_campaign=techlooperjobhub" target="_blank">
<img src="http://www.techlooper.com/images/hackathon-job-search.png" style="boder: 0; width: 100%" alt="Job Search Innovation Hackathon"></a>
</td>
</tr>
Expand Down
2 changes: 1 addition & 1 deletion src/main/resources/template/jobAlert.vi.ftl
Original file line number Diff line number Diff line change
Expand Up @@ -160,7 +160,7 @@
</tr>
<tr>
<td align="center">
<a href="http://www.techlooper.com/#/challenge-detail/job-search-innovation-hackathon-1439866071515-id"target="_blank">
<a href="http://www.techlooper.com/#/challenge-detail/job-search-innovation-hackathon-1439866071515-id?utm_source=jobalertemail&utm_medium=hackathon&utm_campaign=techlooperjobhub" target="_blank">
<img src="http://www.techlooper.com/images/hackathon-job-search.png" style="boder: 0; width: 100%" alt="Job Search Innovation Hackathon"></a>
</td>
</tr>
Expand Down
2 changes: 1 addition & 1 deletion src/main/webapp/assets/modules/_app.js
Original file line number Diff line number Diff line change
Expand Up @@ -227,7 +227,7 @@ techlooper.config(["$routeProvider", "$translateProvider", "$authProvider", "loc
templateUrl: "modules/events/events.html",
controller: "eventsController"
})
.when("/event-details/:id", {
.when("/event-detail/:id", {
templateUrl: "modules/event-details/event-details.html",
controller: "eventDetailsController"
})
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ techlooper.factory("joinAnythingService", function (apiService, localStorageServ
case "webinar":
apiService.joinWebinar(id, firstName, lastName, email)
.success(function (webinar) {
$rootScope.$broadcast("joinAnything", webinar);
$rootScope.$broadcast("joinAnythingSuccess", webinar);
});
break;
}
Expand Down
4 changes: 2 additions & 2 deletions src/main/webapp/assets/modules/common/json.val.js
Original file line number Diff line number Diff line change
Expand Up @@ -300,8 +300,8 @@ techlooper.factory("jsonValue", function () {
},
{
name: "eventDetails",
url: "/event-details",
regex: /\/event-details\//i,
url: "/event-detail",
regex: /\/event-detail\//i,
type: "SEO"
},
{
Expand Down
6 changes: 3 additions & 3 deletions src/main/webapp/assets/modules/common/listInput.html
Original file line number Diff line number Diff line change
@@ -1,13 +1,13 @@
<div class="list-input">
<ng-form novalidate name="listForm" autocomplete="off" isolate-form>
<form novalidate name="listForm" autocomplete="off" isolate-form>
<div class="input">
<input type="{{config.type}}" id="txtAttendants"
ng-model="item" class="input-style"
placeholder="{{config.placeholder | translate}}"
name="inputItem" ng-required="true" />
<button type="submit" translate="add" class="btn btn-primary btn-flat add-item" ng-click="addItem()" />
</div>
<div class="error-messages" ng-show="(listForm.$submitted || listForm.inputItem.$dirty) && listForm.inputItem.$invalid">
<div class="error-messages" ng-show="!listForm.$pristine && listForm.inputItem.$invalid">
<div translate="requiredThisField" ng-show="listForm.inputItem.$error.required"/>
<div translate="emailInvalid" ng-show="listForm.inputItem.$error.email"/>
<div translate="alreadyExistValue" ng-show="listForm.inputItem.$error.unique"/>
Expand All @@ -25,6 +25,6 @@
</li>
</ul>
</div>
</ng-form>
</form>

</div>
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ techlooper.directive("listInput", function () {
scope.addItem = function () {
//var requiredToInput = (!scope.item || scope.item.length == 0);
//scope.listForm.inputItem.$setValidity("requiredToInput", !requiredToInput);
scope.listForm.$setSubmitted();
//scope.listForm.$setSubmitted();

if (scope.listForm.$invalid) return;

Expand Down
2 changes: 1 addition & 1 deletion src/main/webapp/assets/modules/common/utils.fac.js
Original file line number Diff line number Diff line change
Expand Up @@ -318,7 +318,7 @@ techlooper.factory("utils", function (jsonValue, $location, $rootScope, localSto
else if (/\/all-events/.test(path)) {
return jsonValue.views.allEvents;
}
else if (/\/event-details/.test(path)) {
else if (/\/event-detail/.test(path)) {
return jsonValue.views.eventDetails;
}
},
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -56,7 +56,7 @@ <h2 translate="createYourNewEvent"></h2>
<div class="create-event-field">
<label for="txtOrganiser" translate="organiser"></label>
<input type="text" id="txtOrganiser"
class="input-style" disabled="disabled" value="Thu Hoang"/>
class="input-style" disabled="disabled" value="{{$root.userInfo.name || $root.userInfo.username | textTruncate: 'email'}}"/>
</div>
<div class="create-event-field">
<label for="txtWhyEvent" translate="whoJoinAndWhy"></label>
Expand Down
Original file line number Diff line number Diff line change
@@ -1,19 +1,25 @@
techlooper.controller("createEventController", function ($scope, $translate, jsonValue, apiService, $rootScope, utils, $anchorScroll) {
techlooper.controller("createEventController", function ($scope, $translate, jsonValue, apiService, $rootScope, utils,
$location, $anchorScroll, localStorageService) {

$scope.createWebinar = function () {
$scope.webinarForm.$setSubmitted();
$anchorScroll();
utils.sendNotification(jsonValue.notifications.loading, $(window).height());
$scope.webinarForm.$setSubmitted();
if ($scope.webinarForm.$invalid) {
utils.sendNotification(jsonValue.notifications.loaded);
return;
}

apiService.createWebinar($scope.webinar).success(function (data) {
utils.sendNotification(jsonValue.notifications.loading, $(window).height());
var title = utils.toAscii(data.name);
window.location.href = sprintf('#/event-details/'+title+'-'+data.createdDateTime+ '-id');
}).finally(function () {
utils.sendNotification(jsonValue.notifications.loaded);
});
apiService.createWebinar($scope.webinar)
.success(function (data) {
var title = utils.toAscii(data.name);
var path = sprintf("event-detail/%s-%s-id", title, data.createdDateTime);
localStorageService.set("webinarCreated", true);
$location.path(path);
})
.finally(function () {
utils.sendNotification(jsonValue.notifications.loaded);
});

$scope.webinarForm.$setPristine();
}
Expand Down
13 changes: 10 additions & 3 deletions src/main/webapp/assets/modules/event-details/event-details.html
Original file line number Diff line number Diff line change
@@ -1,4 +1,10 @@
<div class="content-page-block event-details-page">
<div class="alert alert-success" ng-show="showPostSuccessfulMessage">
<p translate="postedEventSuccessful"></p>
</div>
<div class="alert alert-success" ng-show="status('not-joined')">
<p translate="joinedEventAlert"></p>
</div>
<div class="header-page">
<h2 class="text-left">{{webinar.name}}</h2>
</div>
Expand All @@ -21,15 +27,15 @@ <h2 class="text-left">{{webinar.name}}</h2>
</div>
<div class="right-content">
<div class="tell-your-friends">
<a href="#" >
<a href="" ng-click="fbShare()">
<span translate="tellYourFriends"></span>
<span class="btn-facebook">
<i class="fa fa-facebook"></i>
</span>
</a>
</div>
<div class="number-going">
<p translate="thereAreGoing" translate-value-number="{{webinar.attendees.length - 1}}"></p>
<p translate="thereAreGoing" translate-value-number="{{webinar.attendees.length}}"></p>
</div>
<div class="join-with-facebook">
<button class="btn btn-primary btn-flat" translate="joinWithFacebook" ng-click="joinNow()"
Expand All @@ -46,7 +52,8 @@ <h2 class="text-left">{{webinar.name}}</h2>
<ul>
<li>
<span class="title" translate="organiser"></span>
<span>{{(webinar.organiser.name) || (webinar.organiser.email | textTruncate: 'email')}}</span>
<span>{{(webinar.organiser.name) || (webinar.organiser.email | textTruncate: 'email')}} <strong ng-show="webinar.company.companyName.length">({{webinar.company.companyName}})</strong></span>

</li>
<li ng-show="webinar.company.address.length">
<span class="title">{{'address' | translate}}:</span>
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
techlooper.controller("eventDetailsController", function ($scope, apiService, $routeParams, localStorageService,
vnwConfigService, utils, jsonValue) {
vnwConfigService, utils, jsonValue, $translate) {
var parts = $routeParams.id.split("-");
parts.pop();
var webinarId = parts.pop();
Expand All @@ -8,7 +8,7 @@ techlooper.controller("eventDetailsController", function ($scope, apiService, $r
apiService.findWebinarById(webinarId)
.success(function(webinar) {
$scope.webinar = webinar;
if($scope.webinar.company = !undefined){
if($scope.webinar.company){
$scope.webinar.company.companySize = vnwConfigService.getCompanySizeText($scope.webinar.company.companySizeId);
}
}).finally(function () {
Expand All @@ -21,8 +21,10 @@ techlooper.controller("eventDetailsController", function ($scope, apiService, $r
apiService.joinNowByFB();
}

$scope.$on("joinAnything", function(fromScope, webinar) {
$scope.$on("joinAnythingSuccess", function(fromScope, webinar) {
$scope.webinar = webinar;

//join success
});

$scope.status = function(type) {
Expand All @@ -36,9 +38,19 @@ techlooper.controller("eventDetailsController", function ($scope, apiService, $r
return false;
}

//$scope.$on("joinAnythingWithoutEmail", function() {
// console.log(567);
// console.log(arguments);
//});
$scope.showPostSuccessfulMessage = localStorageService.get("webinarCreated");

localStorageService.remove("webinarCreated");

$scope.fbShare = function () {
ga("send", {
hitType: "event",
eventCategory: "facebookshare",
eventAction: "click",
eventLabel: "webinarDetails"
});
utils.openFBShare("/shareWebinar/" + $translate.use() + "/" + webinarId);
}

});

4 changes: 2 additions & 2 deletions src/main/webapp/assets/modules/events/events.html
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ <h3>{{webinarInfo.startDate}}</h3>
</div>
<div class="right-content">
<div class="event-name">
<h4><a ng-href="#/event-details/{{webinar.name | nonAscii}}-{{webinar.createdDateTime}}-id" target="_blank">{{webinar.name}}</a></h4>
<h4><a ng-href="#/event-detail/{{webinar.name | nonAscii}}-{{webinar.createdDateTime}}-id" target="_blank">{{webinar.name}}</a></h4>
</div>
<ul>
<li class="time">{{webinar.startDate | timestamp: 'hour'}}</li>
Expand All @@ -29,7 +29,7 @@ <h4><a ng-href="#/event-details/{{webinar.name | nonAscii}}-{{webinar.createdDat
</ul>
</div>
<div class="view-details" title="{{'viewDetails' | translate}}">
<a ng-href="#/event-details/{{webinar.name | nonAscii}}-{{webinar.createdDateTime}}-id" target="_blank"></a>
<a ng-href="#/event-detail/{{webinar.name | nonAscii}}-{{webinar.createdDateTime}}-id" target="_blank"></a>
</div>
</div>
</div>
Expand Down
Loading

0 comments on commit 24ae286

Please sign in to comment.