diff --git a/server/crm/src/main/java/com/pudonghot/ambition/crm/service/support/ApplicationServiceSupport.java b/server/crm/src/main/java/com/pudonghot/ambition/crm/service/support/ApplicationServiceSupport.java index d9d2dd9..62e0f96 100644 --- a/server/crm/src/main/java/com/pudonghot/ambition/crm/service/support/ApplicationServiceSupport.java +++ b/server/crm/src/main/java/com/pudonghot/ambition/crm/service/support/ApplicationServiceSupport.java @@ -1,6 +1,7 @@ package com.pudonghot.ambition.crm.service.support; import java.util.Date; +import java.util.List; import java.io.IOException; import java.io.InputStream; import lombok.extern.slf4j.Slf4j; @@ -13,6 +14,7 @@ import com.pudonghot.ambition.crm.model.Application; import org.springframework.web.multipart.MultipartFile; import com.pudonghot.ambition.crm.model.ApplicationImage; import com.pudonghot.ambition.crm.mapper.ApplicationMapper; +import org.springframework.beans.factory.annotation.Value; import com.pudonghot.ambition.crm.service.ApplicationService; import org.springframework.beans.factory.annotation.Autowired; import me.chyxion.tigon.service.support.BaseCrudServiceSupport; @@ -38,6 +40,8 @@ public class ApplicationServiceSupport private ApplicationImageMapper imageMapper; @Autowired private AmbitionFileApi fileApi; + @Value("${file.base-path}") + private String fileBasePath; /** * {@inheritDoc} @@ -68,10 +72,12 @@ public class ApplicationServiceSupport */ @Override public ViewModel findViewModel(final String id) { + final List images = imageMapper.list( + new Search(ApplicationImage.APPLICATION_ID, id) + .asc(ApplicationImage.SORT)); + images.forEach(image -> image.setUrl(fileBasePath + imageFolder(id) + "/" + image.getId())); return super.findViewModel(id) - .setAttr("images", imageMapper.list( - new Search(ApplicationImage.APPLICATION_ID, id) - .asc(ApplicationImage.SORT))); + .setAttr("images", images); } /** diff --git a/server/model/src/main/java/com/pudonghot/ambition/crm/model/ApplicationImage.java b/server/model/src/main/java/com/pudonghot/ambition/crm/model/ApplicationImage.java index da289e3..009bc05 100644 --- a/server/model/src/main/java/com/pudonghot/ambition/crm/model/ApplicationImage.java +++ b/server/model/src/main/java/com/pudonghot/ambition/crm/model/ApplicationImage.java @@ -4,6 +4,7 @@ import lombok.Getter; import lombok.Setter; import me.chyxion.tigon.model.M3; import me.chyxion.tigon.mybatis.Table; +import me.chyxion.tigon.mybatis.Transient; /** * @author Shaun Chyxion
@@ -23,4 +24,6 @@ public class ApplicationImage extends M3 { // Properties private String applicationId; private float sort; + @Transient + private String url; } diff --git a/web/app/routes/customer-application/edit.js b/web/app/routes/customer-application/edit.js index b5af587..0f34582 100644 --- a/web/app/routes/customer-application/edit.js +++ b/web/app/routes/customer-application/edit.js @@ -20,5 +20,28 @@ export default BaseEditRoute.extend({ const me = this; me.get('controller.model.images').removeObject(image); }, + moveUp(image) { + let me = this; + let images = me.get('controller.model.images'); + if (images && images.length > 1) { + let index = images.indexOf(image); + images.removeObject(image); + images.insertAt(index - 1, image); + me.updateImage(image); + } + }, + moveDown(image) { + let me = this; + let images = me.get('controller.model.images'); + if (images && images.length > 1) { + let index = images.indexOf(image); + images.removeObject(image); + images.insertAt(index + 1, image); + me.updateImage(image); + } + } + }, + updateImage(image) { + this.get('ajax').doPost('application/update-image', image, false); } }); diff --git a/web/app/templates/customer-application/edit.hbs b/web/app/templates/customer-application/edit.hbs index ab5bac3..52f6725 100644 --- a/web/app/templates/customer-application/edit.hbs +++ b/web/app/templates/customer-application/edit.hbs @@ -47,10 +47,20 @@ {{image.id}} - {{image.note}} + {{editable-cell model=image field='note' post-url='application/update-image'}} - {{u.note}} + {{!image.note}} + {{#if (not-eq model.images.firstObject.id image.id)}} + + {{/if}} + {{#if (not-eq model.images.lastObject.id image.id)}} + + {{/if}} {{/each}}