update sort
This commit is contained in:
parent
c704d089bb
commit
0eacfd742b
@ -3,9 +3,6 @@ package com.pudonghot.ambition.crm.controller;
|
||||
import java.util.List;
|
||||
import java.util.Arrays;
|
||||
import javax.validation.Valid;
|
||||
|
||||
import com.pudonghot.ambition.crm.form.create.ApplicationImageFormForCreate;
|
||||
import com.pudonghot.ambition.crm.form.update.ApplicationImageFormForUpdate;
|
||||
import me.chyxion.tigon.mybatis.Search;
|
||||
import javax.validation.constraints.Max;
|
||||
import javax.validation.constraints.Min;
|
||||
@ -14,9 +11,9 @@ import me.chyxion.tigon.model.ListResult;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import com.pudonghot.ambition.crm.model.User;
|
||||
import org.apache.commons.lang3.tuple.Pair;
|
||||
import org.hibernate.validator.constraints.NotBlank;
|
||||
import org.springframework.stereotype.Controller;
|
||||
import com.pudonghot.ambition.crm.model.Application;
|
||||
import org.hibernate.validator.constraints.NotBlank;
|
||||
import com.pudonghot.ambition.crm.service.UserService;
|
||||
import org.apache.shiro.authz.annotation.RequiresRoles;
|
||||
import com.pudonghot.ambition.crm.model.CustomerProperty;
|
||||
@ -28,6 +25,8 @@ import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import com.pudonghot.ambition.crm.form.create.ApplicationFormForCreate;
|
||||
import com.pudonghot.ambition.crm.form.update.ApplicationFormForUpdate;
|
||||
import com.pudonghot.ambition.crm.form.create.ApplicationImageFormForCreate;
|
||||
import com.pudonghot.ambition.crm.form.update.ApplicationImageFormForUpdate;
|
||||
|
||||
/**
|
||||
* @author Shaun Chyxion <br>
|
||||
@ -104,6 +103,19 @@ public class ApplicationController
|
||||
((ApplicationService) queryService).update(form);
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*/
|
||||
@Override
|
||||
public ViewModel<Application> find(final String id) {
|
||||
final ViewModel<Application> viewModel = queryService.findViewModel(id);
|
||||
if (getAuthUser().getUser().getData().isAdmin()) {
|
||||
viewModel.setAttr("users", userService.listViewModels(
|
||||
new Search().asc(User.EMPLOYEE_ID)));
|
||||
}
|
||||
return viewModel;
|
||||
}
|
||||
|
||||
@RequestMapping(value = "/add-image", method = RequestMethod.POST)
|
||||
public void addImage(
|
||||
@Valid ApplicationImageFormForCreate form) {
|
||||
|
@ -54,7 +54,7 @@ public class ApplicationServiceSupport
|
||||
final Date now = new Date();
|
||||
application.setDateUpdated(now);
|
||||
|
||||
uploadImages(id, 0, form.getImages(), form.getImageTitles(), form.getCreatedBy());
|
||||
uploadImages(id, 1, form.getImages(), form.getImageTitles(), form.getCreatedBy());
|
||||
mapper.insert(application);
|
||||
return toViewModel(application);
|
||||
}
|
||||
@ -122,13 +122,14 @@ public class ApplicationServiceSupport
|
||||
final String updatedBy = form.getUpdatedBy();
|
||||
validatePerm(applicationId, updatedBy, form.isAdmin());
|
||||
|
||||
final int sort = form.getSort();
|
||||
final int sortOld = (int) appImage.getSort();
|
||||
// client sort is array index
|
||||
final float sort = form.getSort();
|
||||
final float sortOld = appImage.getSort();
|
||||
if (sort < sortOld) {
|
||||
appImage.setSort(sortOld - 1.1f);
|
||||
appImage.setSort(sortOld - 1.5f);
|
||||
}
|
||||
else if (sort > sortOld) {
|
||||
appImage.setSort(sortOld + 1.1f);
|
||||
appImage.setSort(sortOld + 1.5f);
|
||||
}
|
||||
appImage.setNote(form.getNote());
|
||||
appImage.setDateUpdated(new Date());
|
||||
|
@ -1,5 +1,6 @@
|
||||
package com.pudonghot.ambition.crm;
|
||||
|
||||
import com.pudonghot.ambition.crm.model.ApplicationImage;
|
||||
import com.pudonghot.ambition.crm.util.AmDateUtil;
|
||||
import org.apache.commons.lang3.time.DateFormatUtils;
|
||||
import org.apache.commons.lang3.time.DateUtils;
|
||||
@ -92,4 +93,12 @@ public class TestDriver {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testFloat() {
|
||||
ApplicationImage image = new ApplicationImage();
|
||||
int sortOld = 2;
|
||||
image.setSort(sortOld - 1.5f);
|
||||
System.err.println(image);
|
||||
}
|
||||
}
|
||||
|
@ -20,10 +20,11 @@
|
||||
<update id="updateSort">
|
||||
update crm_application_image a
|
||||
join (
|
||||
select id, (@cur_row := @cur_row + 1) - 1 sort
|
||||
select id, @cur_row := @cur_row + 1 sort
|
||||
from crm_application_image
|
||||
join (select @cur_row := 0) r
|
||||
where application_id = #{applicationId}) s
|
||||
where application_id = #{applicationId}
|
||||
order by crm_application_image.sort) s
|
||||
on a.id = s.id
|
||||
set a.sort = s.sort
|
||||
</update>
|
||||
|
@ -18,5 +18,5 @@ public class ApplicationImageFormForUpdate extends FU2<String, String> {
|
||||
|
||||
// current user is admin
|
||||
private boolean admin;
|
||||
private int sort;
|
||||
private float sort;
|
||||
}
|
||||
|
@ -18,7 +18,12 @@ export default BaseEditRoute.extend({
|
||||
},
|
||||
removeImage(image) {
|
||||
const me = this;
|
||||
me.get('controller.model.images').removeObject(image);
|
||||
me.get('dialog').confirm('Are you sure to remove image?', () => {
|
||||
me.get('store').ajaxPost('application/remove-image', image, () => {
|
||||
me.get('message').alert('Image removed');
|
||||
me.get('controller.model.images').removeObject(image);
|
||||
});
|
||||
});
|
||||
},
|
||||
moveUp(image) {
|
||||
let me = this;
|
||||
@ -27,6 +32,7 @@ export default BaseEditRoute.extend({
|
||||
let index = images.indexOf(image);
|
||||
images.removeObject(image);
|
||||
images.insertAt(index - 1, image);
|
||||
--image.sort;
|
||||
me.updateImage(image);
|
||||
}
|
||||
},
|
||||
@ -37,6 +43,7 @@ export default BaseEditRoute.extend({
|
||||
let index = images.indexOf(image);
|
||||
images.removeObject(image);
|
||||
images.insertAt(index + 1, image);
|
||||
++image.sort;
|
||||
me.updateImage(image);
|
||||
}
|
||||
}
|
||||
|
@ -3,7 +3,7 @@
|
||||
{{#each images as |image i|}}
|
||||
{{#if (eq i index)}}
|
||||
<li class="no-margin no-padding clearfix" style="float: inherit; overflow: inherit; border-width: 0">
|
||||
<a href="{{if image.image image.image iamge}}"
|
||||
<a href="{{if image.image image.image image}}"
|
||||
title={{image.title}} data-rel="{{elementId}}_preview">
|
||||
<img height="{{image-height}}" style="{{image-style}}"
|
||||
src="{{if image.image image.image image}}"
|
||||
|
@ -26,14 +26,15 @@
|
||||
<table class="table table-striped table-bordered table-hover">
|
||||
<thead class="thin-border-bottom">
|
||||
<tr>
|
||||
<th>
|
||||
<i class="ace-icon fa fa-user"></i>
|
||||
<th style="width: 86px;">
|
||||
<i class="ace-icon fa fa-file-image-o"></i>
|
||||
Image
|
||||
</th>
|
||||
<th>
|
||||
<i class="ace-icon fa fa-sticky-note-o bigger-110 hidden-480"></i>
|
||||
Description
|
||||
</th>
|
||||
<th>
|
||||
<th style="width: 106px;">
|
||||
<i class="ace-icon fa fa-cogs bigger-110 hidden-480"></i>
|
||||
Settings
|
||||
</th>
|
||||
@ -44,23 +45,28 @@
|
||||
{{#each model.images as |image|}}
|
||||
<tr>
|
||||
<td>
|
||||
{{image.id}}
|
||||
{{image-previews images=image.url}}
|
||||
</td>
|
||||
<td>
|
||||
{{editable-cell model=image field='note' post-url='application/update-image'}}
|
||||
</td>
|
||||
<td>
|
||||
{{!image.note}}
|
||||
<div class="btn-group">
|
||||
<a class="btn btn-xs btn-danger" data-rel="tooltip" title="Remove" {{action (route-action 'moveUp' image)}}>
|
||||
<i class="ace-icon fa fa-trash-o"></i>
|
||||
</a>
|
||||
{{#if (not-eq model.images.firstObject.id image.id)}}
|
||||
<a class="btn btn-xs btn-purple" data-rel="tooltip" title="Move Up" {{action (route-action 'moveUp' image)}}>
|
||||
<a class="btn btn-xs btn-info" data-rel="tooltip" title="Move Up" {{action (route-action 'moveUp' image)}}>
|
||||
<i class="ace-icon fa fa-arrow-up bigger-90"></i>
|
||||
</a>
|
||||
{{/if}}
|
||||
{{#if (not-eq model.images.lastObject.id image.id)}}
|
||||
<a class="btn btn-xs" data-rel="tooltip" title="Move Down" {{action (route-action 'moveDown' image)}}>
|
||||
<a class="btn btn-xs btn-success" data-rel="tooltip" title="Move Down" {{action (route-action 'moveDown' image)}}>
|
||||
<i class="ace-icon fa fa-arrow-down bigger-90"></i>
|
||||
</a>
|
||||
{{/if}}
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
{{/each}}
|
||||
@ -71,36 +77,19 @@
|
||||
</div>
|
||||
{{/form-input}}
|
||||
|
||||
{{#form-input name='image' label='Images'}}
|
||||
<div class="widget-box transparent">
|
||||
<div class="widget-header widget-header-small">
|
||||
<div class="widget-toolbar action-buttons">
|
||||
<a href="#" data-rel="tooltip" title="Add Image" {{action (route-action 'addImage')}}>
|
||||
<i class="ace-icon fa fa-plus-circle green"></i>
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
<div class="widget-body">
|
||||
<div class="widget-main padding-4">
|
||||
{{#each model.images as |image i|}}
|
||||
<div class="col-xs-6 no-padding-left">
|
||||
<div class="space-4"></div>
|
||||
{{input name=(concat 'imageTitles[' i ']') class='width-80' placeholder='Image title' value=image.title}}
|
||||
|
||||
<a href="#" class="red" data-rel="tooltip" title="Remove Image" {{action (route-action 'removeImage' image)}}>
|
||||
<i class="ace-icon fa fa-times bigger-125"></i>
|
||||
</a>
|
||||
<div class="space-2"></div>
|
||||
{{image-input name=(concat 'images[' i ']') image=image}}
|
||||
</div>
|
||||
{{/each}}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{{/form-input}}
|
||||
|
||||
{{form-input-enabled label='Enabled' enabledText='TRUE' disabledText='FALSE'}}
|
||||
{{form-input name='note' label='Remark'}}
|
||||
{{#if ajax.user.admin}}
|
||||
{{form-input-select2
|
||||
nullable=true
|
||||
name='owner'
|
||||
label='Owner'
|
||||
options=model.users
|
||||
value-field='id'
|
||||
text-field='name'
|
||||
text-exp='$.employeeId ($.name)'
|
||||
}}
|
||||
{{/if}}
|
||||
<hr />
|
||||
{{form-footer-buttons type='update'}}
|
||||
{{/form-content}}
|
||||
|
@ -79,18 +79,6 @@
|
||||
{{#link-to 'customer-application.edit' it.id class='btn btn-xs btn-info' data-rel='tooltip' title='Edit'}}
|
||||
<i class="ace-icon fa fa-pencil bigger-120"></i>
|
||||
{{/link-to}}
|
||||
{{!--
|
||||
{{#if (not-eq model.data.firstObject.id it.id)}}
|
||||
<button class="btn btn-xs btn-purple" title="Move Up" {{action (route-action 'moveUp' it)}}>
|
||||
<i class="ace-icon fa fa-arrow-up bigger-120"></i>
|
||||
</button>
|
||||
{{/if}}
|
||||
{{#if (not-eq model.data.lastObject.id it.id)}}
|
||||
<button class="btn btn-xs" title="Move Down" {{action (route-action 'moveDown' it)}}>
|
||||
<i class="ace-icon fa fa-arrow-down bigger-120"></i>
|
||||
</button>
|
||||
{{/if}}
|
||||
--}}
|
||||
</div>
|
||||
<div class="hidden-md hidden-lg">
|
||||
<div class="inline pos-rel">
|
||||
|
@ -52,12 +52,12 @@
|
||||
<i class="ace-icon fa fa-pencil bigger-120"></i>
|
||||
{{/link-to}}
|
||||
{{#if (not-eq model.data.firstObject.id it.id)}}
|
||||
<button class="btn btn-xs btn-purple" data-rel="tooltip" title="Move Up" {{action (route-action 'moveUp' it)}}>
|
||||
<button class="btn btn-xs btn-info" data-rel="tooltip" title="Move Up" {{action (route-action 'moveUp' it)}}>
|
||||
<i class="ace-icon fa fa-arrow-up bigger-120"></i>
|
||||
</button>
|
||||
{{/if}}
|
||||
{{#if (not-eq model.data.lastObject.id it.id)}}
|
||||
<button class="btn btn-xs" data-rel="tooltip" title="Move Down" {{action (route-action 'moveDown' it)}}>
|
||||
<button class="btn btn-xs btn-success" data-rel="tooltip" title="Move Down" {{action (route-action 'moveDown' it)}}>
|
||||
<i class="ace-icon fa fa-arrow-down bigger-120"></i>
|
||||
</button>
|
||||
{{/if}}
|
||||
|
Loading…
x
Reference in New Issue
Block a user