web cleanup

This commit is contained in:
Donghuang 2022-06-24 00:16:47 +08:00
parent 87a3d72a33
commit decb2c133b
29 changed files with 132 additions and 128 deletions

1
.gitignore vendored
View File

@ -30,7 +30,6 @@
!.gitkeep
*.iml
# ember-try
.node_modules.ember-try/
bower.json.ember-try

2
server/.gitignore vendored
View File

@ -7,4 +7,6 @@ target/
bin/
crm/src/main/resources/static/
crm/src/main/resources/application.properties
crm/src/main/resources/application.yml
crm/src/main/resources/log4j2.xml
crm/src/main/resources/logback.xml

View File

@ -69,6 +69,11 @@ public class ExportTaskServiceSupport
val exportFile = customerService.exportCSV(employeeKey);
val distDir = new File(new File(exportLocation),
DateFormatUtils.format(now, "yyyyMMdd"));
if (!distDir.exists()) {
distDir.mkdirs();
}
FileUtils.moveFileToDirectory(exportFile, distDir, true);
exportTask.setStatus(EnumExportTaskStatus.DONE);
exportTask.setLocation(new File(distDir, exportFile.getName()).getPath());

View File

@ -1,46 +0,0 @@
server:
port: 8088
spring:
jackson:
default-property-inclusion: NON_NULL
time-zone: GMT+8
serialization:
write-dates-as-timestamps: true
fail-on-empty-beans: false
servlet:
multipart:
max-file-size: 512MB
max-request-size: 512MB
datasource:
database-name: ambition-crm
host: 172.16.4.6
password: MySQL2b||!2b
port: 3306
username: root
database:
backup-dir: d:/data/database_backups
restore-shell: /data/program/mysql-backup/bin/mysql_restore.sh
file:
base-dir: /Users/donghuang/Documents/Workspaces/ambition-crm/files/
base-path: http://127.0.0.1:1217/lm-f/
export:
location: d:/data/export
tigon:
shiro:
session:
validation:
scheduler:
enabled: true
filter-chain: >
/auth/login=anon
/=anon
/index.html=anon
/assets/**=anon
/f/**=anon
/**=user

View File

@ -32,12 +32,13 @@ file:
base-dir: /data/program/lemo-crm/files
base-path: http://116.62.189.211/f/
shiro:
session:
timeout: 21600000
validation:
scheduler:
enabled: true
tigon:
shiro:
session:
timeout: 21600000
validation:
scheduler:
enabled: true
filter-chain: >
/auth/login=anon
/=anon

View File

@ -1,18 +1,47 @@
datasource:
database-name: ambition_crm
host: 127.0.0.1
password: 696@2^~)oZ@^#*Q
port: 3306
username: root
server:
port: 80
shiro:
session:
validation:
scheduler:
enabled: true
port: 8100
spring:
http:
multipart:
max-file-size: 1024MB
max-request-size: 1024MB
http:
multipart:
max-file-size: 1024MB
max-request-size: 1024MB
jackson:
default-property-inclusion: NON_NULL
time-zone: GMT+8
serialization:
write-dates-as-timestamps: true
fail-on-empty-beans: false
servlet:
multipart:
max-file-size: 1024MB
max-request-size: 1024MB
datasource:
database-name: ambition_crm
host: 127.0.0.1
password: 696@2^~)oZ@^#*Q
port: 3306
username: root
database:
backup-dir: /data/program/mysql-backup/backup/ambition_crm
restore-shell: /data/program/mysql-backup/bin/mysql-restore.sh
file:
base-dir: /data/program/lemo-crm/files
base-path: http://116.62.189.211/f/
shiro:
session:
timeout: 21600000
validation:
scheduler:
enabled: true
filter-chain: >
/auth/login=anon
/=anon
/index.html=anon
/assets/**=anon
/f/**=anon
/**=user

View File

@ -409,11 +409,11 @@
<directory>src/main/resources</directory>
<filtering>false</filtering>
<excludes>
<exclude>config_*.properties</exclude>
<exclude>application_*.properties</exclude>
<exclude>application_*.yaml</exclude>
<exclude>application_*.yml</exclude>
<exclude>log4j2_*.xml</exclude>
<exclude>application*.properties</exclude>
<exclude>application*.yaml</exclude>
<exclude>application*.yml</exclude>
<exclude>log4j2*.xml</exclude>
<exclude>logback*.xml</exclude>
</excludes>
</resource>
<resource>
@ -425,11 +425,11 @@
<include>**/*.txt</include>
</includes>
<excludes>
<exclude>config_*.properties</exclude>
<exclude>application_*.properties</exclude>
<exclude>application_*.yaml</exclude>
<exclude>application_*.yml</exclude>
<exclude>log4j2_*.xml</exclude>
<exclude>application*.properties</exclude>
<exclude>application*.yaml</exclude>
<exclude>application*.yml</exclude>
<exclude>log4j2*.xml</exclude>
<exclude>logback*.xml</exclude>
</excludes>
</resource>
</resources>

View File

@ -1,5 +1,5 @@
import Ember from 'ember';
import Component from '@ember/component';
export default Ember.Component.extend({
export default Component.extend({
classNames: ['checkbox']
});

View File

@ -1,7 +1,7 @@
import Ember from 'ember';
import Component from '@ember/component';
import $ from 'jquery';
export default Ember.Component.extend({
export default Component.extend({
classNames: ['container-fluid'],
errors: {},
model: {

View File

@ -1,7 +1,7 @@
import Ember from 'ember';
import Component from '@ember/component';
import { alias } from '@ember/object/computed';
export default Ember.Component.extend({
export default Component.extend({
tagName: 'span',
value: alias('model'),
format: 'YYYY-MM-DD H:mm:ss'

View File

@ -1,5 +1,5 @@
import Ember from 'ember';
import Component from '@ember/component';
export default Ember.Component.extend({
export default Component.extend({
classNames: ['page-content']
});

View File

@ -1,5 +1,5 @@
import Ember from 'ember';
import Component from '@ember/component';
export default Ember.Component.extend({
export default Component.extend({
tagName: 'span'
});

View File

@ -1,6 +1,6 @@
import Ember from 'ember';
import Component from '@ember/component';
export default Ember.Component.extend({
export default Component.extend({
classNames: ['widget-header'],
dropdownMenu: true,
'search-box': true

View File

@ -1,7 +1,8 @@
import Ember from 'ember';
import Component from '@ember/component';
import $ from 'jquery';
export default Ember.Component.extend({
export default Component.extend({
classNames: ['page-content', 'no-padding', 'desktop'],
init() {
let me = this;

View File

@ -1,6 +1,7 @@
import Ember from 'ember';
import Component from '@ember/component';
export default Ember.Component.extend({
export default Component.extend({
step: 1,
value: 0,
classNames: ['ace-spinner', 'middle'],

View File

@ -1,5 +1,5 @@
import Ember from 'ember';
import Component from '@ember/component';
export default Ember.Component.extend({
export default Component.extend({
classNames: ['page-content']
});

View File

@ -1,4 +1,4 @@
import Ember from 'ember';
import Component from '@ember/component';
export default Ember.Component.extend({
export default Component.extend({
});

View File

@ -1,4 +1,4 @@
import Ember from 'ember';
import Component from '@ember/component';
export default Ember.Component.extend({
export default Component.extend({
});

View File

@ -1,6 +1,7 @@
import Ember from 'ember';
import { computed } from '@ember/object'
import Component from '@ember/component';
export default Ember.Component.extend({
export default Component.extend({
classNames: ['form-group'],
optionsKeyMapping: {
dateAdded: 'model.dateAddedList',
@ -12,7 +13,7 @@ export default Ember.Component.extend({
salesperson: 'model.salespersonList',
status: 'model.statusList'
},
valOptions: Ember.computed('criterion.col', function() {
valOptions: computed('criterion.col', function() {
let me = this;
let optionsKey = me.get('optionsKeyMapping.' + me.get('criterion.col'));
optionsKey && me.set('criterion.val', '');

View File

@ -1,6 +1,6 @@
import Ember from 'ember';
import Component from '@ember/component';
export default Ember.Component.extend({
export default Component.extend({
tagName: 'li',
classNames: ['clearfix'],
classNameBindings: ['selected:selected'],

View File

@ -1,7 +1,8 @@
import Ember from 'ember';
import { computed } from '@ember/object'
import Component from '@ember/component';
const WeekGoalCompletionRateComponent = Ember.Component.extend({
rate: Ember.computed('goal', 'goal.goal', 'goal.done', function() {
const WeekGoalCompletionRateComponent = Component.extend({
rate: computed('goal', 'goal.goal', 'goal.done', function() {
let me = this;
let goal = me.get('goal.goal');
let done = me.get('goal.done');

View File

@ -1,14 +1,15 @@
import Ember from 'ember';
import { computed } from '@ember/object'
import Component from '@ember/component';
const WeekGoalCompletionRateComponent = Ember.Component.extend({
const WeekGoalCompletionRateComponent = Component.extend({
tagName: '',
'completed-icon': true,
'timeout-icon': true,
completed: Ember.computed('goal', 'goal.goal', 'goal.done', function() {
completed: computed('goal', 'goal.goal', 'goal.done', function() {
let me = this;
return me.get('goal.goal') > 0 && me.get('goal.goal') == me.get('goal.done');
}),
rate: Ember.computed('goal', 'goal.goal', 'goal.done', function() {
rate: computed('goal', 'goal.goal', 'goal.done', function() {
let me = this;
let goal = me.get('goal.goal');
let done = me.get('goal.done');

View File

@ -1,19 +1,20 @@
import Ember from 'ember';
import { computed } from '@ember/object'
import Component from '@ember/component';
const WeekGoalTotalCompletionRateComponent = Ember.Component.extend({
const WeekGoalTotalCompletionRateComponent = Component.extend({
tagName: '',
goals: [],
completed: Ember.computed('goals', 'goals.@each.goal', 'goals.@each.done', function() {
completed: computed('goals', 'goals.@each.goal', 'goals.@each.done', function() {
let me = this;
return me.get('goal') > 0 && me.get('goal') == me.get('done');
}),
goal: Ember.computed('goals.@each.goal', function() {
goal: computed('goals.@each.goal', function() {
return this.get('goals').map(it => it.goal).reduce((pv, g) => pv + parseInt(g), 0);
}),
done: Ember.computed('goals.@each.done', function() {
done: computed('goals.@each.done', function() {
return this.get('goals').map(it => it.done).reduce((pv, g) => pv + parseInt(g), 0);
}),
totalRate: Ember.computed('goal', 'done', function() {
totalRate: computed('goal', 'done', function() {
let me = this;
let goal = me.get('goal');
let done = me.get('done');

View File

@ -1,8 +1,9 @@
import Ember from 'ember';
import { computed } from '@ember/object'
import Component from '@ember/component';
const WeekGoalTotalGoalComponent = Ember.Component.extend({
const WeekGoalTotalGoalComponent = Component.extend({
tagName: '',
totalDone: Ember.computed('goals.@each.done', function() {
totalDone: computed('goals.@each.done', function() {
return this.get('goals').mapBy('done').reduce((pv, g) => pv + parseInt(g), 0);
})
});

View File

@ -1,8 +1,9 @@
import Ember from 'ember';
import { computed } from '@ember/object'
import Component from '@ember/component';
const WeekGoalTotalGoalComponent = Ember.Component.extend({
const WeekGoalTotalGoalComponent = Component.extend({
tagName: '',
totalGoal: Ember.computed('goals.@each.goal', function() {
totalGoal: computed('goals.@each.goal', function() {
return this.get('goals').mapBy('goal').reduce((pv, g) => pv + parseInt(g), 0);
})
});

View File

@ -1,4 +1,4 @@
import Ember from 'ember';
import Component from '@ember/component';
import $ from 'jquery';
export function initialize(/* appInstance */) {
$(function() {
@ -6,7 +6,7 @@ export function initialize(/* appInstance */) {
'<div class="tooltip" role="tooltip"><div class="tooltip-arrow"></div><pre class="tooltip-inner"></pre></div>';
});
Ember.Component.reopen({
Component.reopen({
didInsertElement() {
let me = this;
me._super(...arguments);
@ -29,7 +29,7 @@ export function initialize(/* appInstance */) {
$('[data-rel=tooltip]', me.element).tooltip();
}
catch(e) {
Ember.Logger.warn('Init tooltip error caused', e);
console.warn('Init tooltip error caused', e);
}
}
}

View File

@ -1,4 +1,3 @@
import Ember from 'ember';
import BaseService from '../service';
export default BaseService.extend({

View File

@ -17,6 +17,9 @@
<th>
File Downloaded
</th>
<th>
Note
</th>
<th style="min-width: 106px;">
<i class="ace-icon fa fa-cogs bigger-110"></i>
Actions
@ -46,12 +49,17 @@
</span>
{{/if}}
</td>
<td>
{{it.note}}
</td>
<td>
<div class="btn-group">
{{#if (eq it.status 'DONE')}}
<a {{on 'click' (route-action 'download' it)}} target="_blank" href="/export-task/download?id={{it.id}}" class="btn btn-xs btn-info" data-rel="tooltip" title="Download">
<i class="ace-icon fa fa-download bigger-120"></i>
Download
</a>
{{/if}}
</div>
</td>
</tr>

View File

@ -16,7 +16,6 @@
"author": "Shaun Chyxion",
"license": "MIT",
"devDependencies": {
"@ember/jquery": "1.1.0",
"@ember/optional-features": "^1.3.0",
"@ember/test-helpers": "^2.8.1",
"bootbox": "5.1.3",