This commit is contained in:
richard-loafle 2020-02-18 10:54:44 +09:00
commit 698a6cf4ad
17 changed files with 216 additions and 116 deletions

View File

@ -539,15 +539,18 @@ ipcMain.on(
const mimeType: string = args[2]; const mimeType: string = args[2];
const customSavePath: string = args[3]; const customSavePath: string = args[3];
let basePath = app.getPath('downloads'); let basePath = path.join(
app.getPath('documents'),
appStorage.constDefaultDownloadFolder
);
if (!!appStorage.downloadPath) { if (!!appStorage.downloadPath) {
try { basePath = appStorage.downloadPath;
fse.mkdirpSync(appStorage.downloadPath); }
basePath = appStorage.downloadPath; try {
} catch (err) { fse.mkdirpSync(basePath);
log.error(err); } catch (err) {
basePath = app.getPath('downloads'); log.error(err);
} basePath = app.getPath('downloads');
} }
let savePath: string = path.join(basePath, fileName); let savePath: string = path.join(basePath, fileName);
@ -590,10 +593,10 @@ ipcMain.on(
} }
folderItem = basePath; folderItem = basePath;
} else { }
if (make) {
fse.mkdirpSync(folderItem); if (make) {
} fse.mkdirpSync(folderItem);
} }
let isSuccess = true; let isSuccess = true;

View File

@ -1,8 +1,10 @@
import ElectronStore from 'electron-store'; import ElectronStore from 'electron-store';
import { app } from 'electron'; import { app } from 'electron';
import path from 'path';
const STORE_KEY_STARTUPHIDEWINDOW = 'options.startupHideWindow'; const STORE_KEY_STARTUPHIDEWINDOW = 'options.startupHideWindow';
const STORE_KEY_DOWNLOADFOLDER = 'options.downloadPath'; const STORE_KEY_DOWNLOADFOLDER = 'options.downloadPath';
const DOWNLOAD_FOLDER_PATH = 'DS Talk Download';
export class Storage { export class Storage {
private readonly store: ElectronStore<any>; private readonly store: ElectronStore<any>;
@ -22,7 +24,10 @@ export class Storage {
}, },
default: { default: {
startupHideWindow: false, startupHideWindow: false,
downloadPath: app.getPath('downloads') downloadPath: path.join(
app.getPath('documents'),
DOWNLOAD_FOLDER_PATH
)
} }
} }
}, },
@ -44,6 +49,10 @@ export class Storage {
set downloadPath(downloadPath: string) { set downloadPath(downloadPath: string) {
this.store.set(STORE_KEY_DOWNLOADFOLDER, downloadPath); this.store.set(STORE_KEY_DOWNLOADFOLDER, downloadPath);
} }
get constDefaultDownloadFolder(): string {
return DOWNLOAD_FOLDER_PATH;
}
} }
export const appStorage: Storage = new Storage(); export const appStorage: Storage = new Storage();

View File

@ -1,6 +1,6 @@
<div class="login" fxLayout="column"> <div class="login" fxLayout="column">
<div class="login-wrapper"> <div class="login-wrapper">
<div class="slider"> <!--<div class="slider">
<div <div
*ngFor="let infomation of rotateInfomation; let i = index" *ngFor="let infomation of rotateInfomation; let i = index"
[ngClass]="[ [ngClass]="[
@ -17,7 +17,9 @@
'background-image': 'background-image':
' url(./assets/images/login/bg_login0' + (i + 1) + '.png)' ' url(./assets/images/login/bg_login0' + (i + 1) + '.png)'
}" }"
></div> >
<div class="slider_back" >
</div>
</div> </div>
<div <div
class="slider_inner" class="slider_inner"
@ -49,7 +51,7 @@
<div class="slider_indicator" data-slide="3"></div> <div class="slider_indicator" data-slide="3"></div>
</div> </div>
</div> </div>
-->
<ucap-account-login <ucap-account-login
[companyList]="companyList$ | async" [companyList]="companyList$ | async"
[curCompanyCode]="fixedCompany" [curCompanyCode]="fixedCompany"

View File

@ -21,9 +21,12 @@ $mob-l-width: 640px;
.login-wrapper { .login-wrapper {
flex: 1 0 auto; flex: 1 0 auto;
//background: url(/assets/images/bg_login.png) no-repeat 50% bottom; background-color: #ffffff;
background-size: 100% auto; background-size: 100% auto;
position: relative; position: relative;
justify-content: center;
align-items: center;
display: flex;
} }
} }
@ -50,9 +53,8 @@ $ease-in-out: cubic-bezier(0.785, 0.135, 0.15, 0.86);
position: relative; position: relative;
height: 100%; height: 100%;
width: 100%; width: 100%;
background: $main; //background: $main;
overflow: hidden; overflow: hidden;
&_wrap { &_wrap {
position: absolute; position: absolute;
width: 100%; width: 100%;
@ -79,6 +81,7 @@ $ease-in-out: cubic-bezier(0.785, 0.135, 0.15, 0.86);
background-position: center; background-position: center;
background-repeat: none; background-repeat: none;
transition: filter $time/4 $ease-in-out; transition: filter $time/4 $ease-in-out;
background-color: #2d3a4a;
} }
&_inner { &_inner {
@ -94,7 +97,7 @@ $ease-in-out: cubic-bezier(0.785, 0.135, 0.15, 0.86);
transition: transform $time/4 $ease-in-out, box-shadow $time/4 $ease-in-out, transition: transform $time/4 $ease-in-out, box-shadow $time/4 $ease-in-out,
opacity $time/4 step-end; opacity $time/4 step-end;
opacity: 0; opacity: 0;
box-shadow: 0 $base $base rgba(darken($accent, 50%), 0); //box-shadow: 0 $base $base rgba(darken($accent, 50%), 0);
padding: $base * 3; padding: $base * 3;
box-sizing: border-box; box-sizing: border-box;
border: 1px solid #ffffff; border: 1px solid #ffffff;
@ -270,21 +273,25 @@ $ease-in-out: cubic-bezier(0.785, 0.135, 0.15, 0.86);
::ng-deep .login-form-box { ::ng-deep .login-form-box {
position: absolute; position: absolute;
width: 26vw; width: 20vw;
height: 70%; height: 50%;
top: 15%; min-height: 480px;
right: 15%;
display: flex; display: flex;
justify-content: flex-end; justify-content: flex-end;
z-index: 100; z-index: 100;
@media screen and (max-width: #{$desktop-l-width}) { @media screen and (max-width: #{$desktop-l-width}) {
width: 28vw; width: 24vw;
min-height: 480px;
} }
@media screen and (max-width: #{$tablet-l-width}), (max-height: $tablet-s-width) { @media screen and (max-width: #{$tablet-l-width}) {
width: 34vw; width: 36vw;
min-height: 420px;
} }
.mat-form-field { .mat-form-field-label-wrapper {
color: #06b2d6;
}
/*.mat-form-field {
padding-top: 20px; padding-top: 20px;
.mat-form-field-wrapper { .mat-form-field-wrapper {
padding-bottom: 0; padding-bottom: 0;
@ -324,7 +331,7 @@ $ease-in-out: cubic-bezier(0.785, 0.135, 0.15, 0.86);
} }
.error-container { .error-container {
padding-top: 10px; padding-top: 10px;
} }*/
} }
.mat-card > .notice { .mat-card > .notice {

View File

@ -71,12 +71,6 @@ export class LoginPageComponent implements OnInit, OnDestroy {
}, },
{ {
index: 1, index: 1,
content: `“ 세계시장에 깊고 온화한 한국의 맛을 전파합니다! ”`,
info: `대상은 산업근대화 시기인 지난 70년대 초반, 국내 최초의 플랜트 수출 성공사례로 평가 받고 있는 인도네시아 진출을 계기로 해외시장 개척의 새로운 장을 열었습니다.
.`
},
{
index: 2,
content: `“ 나눌수록 맛있는 행복을 전합니다 ”`, content: `“ 나눌수록 맛있는 행복을 전합니다 ”`,
info: `다 함께 행복할 수 있는 세상을 만들기 위해 대상은 사회적 책임을 다합니다. info: `다 함께 행복할 수 있는 세상을 만들기 위해 대상은 사회적 책임을 다합니다.
, . , .

View File

@ -74,12 +74,13 @@ export class AppAuthenticationService {
...environment.productConfig.defaultSettings.chat, ...environment.productConfig.defaultSettings.chat,
downloadPath: join( downloadPath: join(
await this.nativeService.getPath('documents'), await this.nativeService.getPath('documents'),
'MessengerDownloads' environment.productConfig.CommonSetting.defaultDownloadFolder
) )
} }
} }
}; };
} }
console.log(appUserInfo);
appUserInfo = { appUserInfo = {
...appUserInfo, ...appUserInfo,

View File

@ -223,50 +223,55 @@ export class Effects {
case SSVC_TYPE_SYNC_ROOM_USER: case SSVC_TYPE_SYNC_ROOM_USER:
{ {
const roomUserData = res as RoomUserData; const roomUserData = res as RoomUserData;
if ( if (!roomUserInfoMap[roomUserData.roomSeq]) {
roomList.length > 0 && roomUserInfoMap[roomUserData.roomSeq] = {
roomList.filter(r => r.roomSeq === roomUserData.roomSeq) userInfoList: [],
.length > 0 userInfoShortList: []
) { };
if (!roomUserInfoMap[roomUserData.roomSeq]) {
roomUserInfoMap[roomUserData.roomSeq] = {
userInfoList: [],
userInfoShortList: []
};
}
roomUserInfoMap[
roomUserData.roomSeq
].userInfoShortList.push(...roomUserData.userInfos);
} }
roomUserInfoMap[
roomUserData.roomSeq
].userInfoShortList.push(...roomUserData.userInfos);
} }
break; break;
case SSVC_TYPE_SYNC_ROOM_USER2: case SSVC_TYPE_SYNC_ROOM_USER2:
{ {
const roomUserDetailData = res as RoomUserDetailData; const roomUserDetailData = res as RoomUserDetailData;
if ( if (!roomUserInfoMap[roomUserDetailData.roomSeq]) {
roomList.length > 0 && roomUserInfoMap[roomUserDetailData.roomSeq] = {
roomList.filter( userInfoList: [],
r => r.roomSeq === roomUserDetailData.roomSeq userInfoShortList: []
).length > 0 };
) {
if (!roomUserInfoMap[roomUserDetailData.roomSeq]) {
roomUserInfoMap[roomUserDetailData.roomSeq] = {
userInfoList: [],
userInfoShortList: []
};
}
roomUserInfoMap[
roomUserDetailData.roomSeq
].userInfoList.push(...roomUserDetailData.userInfos);
} }
roomUserInfoMap[
roomUserDetailData.roomSeq
].userInfoList.push(...roomUserDetailData.userInfos);
} }
break; break;
case SSVC_TYPE_SYNC_ROOM_RES: case SSVC_TYPE_SYNC_ROOM_RES:
{ {
const tmpRoomUserInfoMap: {
[param: string]: {
userInfoShortList: UserInfoShort[];
userInfoList: RoomUserInfo[];
};
} = {};
roomList.forEach(roomInfo => {
for (const key in roomUserInfoMap) {
if (
key === roomInfo.roomSeq &&
roomUserInfoMap.hasOwnProperty(key)
) {
tmpRoomUserInfoMap[key] = roomUserInfoMap[key];
}
}
});
this.store.dispatch( this.store.dispatch(
roomSuccess({ roomSuccess({
roomList, roomList,
roomUserInfoMap, roomUserInfoMap: tmpRoomUserInfoMap,
syncDate: (res as RoomResponse).syncDate syncDate: (res as RoomResponse).syncDate
}) })
); );

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.8 MiB

After

Width:  |  Height:  |  Size: 1.6 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.6 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.8 MiB

View File

@ -66,6 +66,7 @@ export const environment: Environment = {
} }
}, },
CommonSetting: { CommonSetting: {
defaultDownloadFolder: 'DS Talk Download',
defaultFileAllowSize: 100, defaultFileAllowSize: 100,
editableProfileImage: false, editableProfileImage: false,

View File

@ -66,6 +66,7 @@ export const environment: Environment = {
} }
}, },
CommonSetting: { CommonSetting: {
defaultDownloadFolder: 'DS Talk Download',
defaultFileAllowSize: 100, defaultFileAllowSize: 100,
editableProfileImage: false, editableProfileImage: false,

View File

@ -66,6 +66,7 @@ export const environment: Environment = {
} }
}, },
CommonSetting: { CommonSetting: {
defaultDownloadFolder: 'MessengerDownloads',
defaultFileAllowSize: 100, defaultFileAllowSize: 100,
editableProfileImage: true, editableProfileImage: true,

View File

@ -66,6 +66,7 @@ export const environment: Environment = {
} }
}, },
CommonSetting: { CommonSetting: {
defaultDownloadFolder: 'MessengerDownloads',
defaultFileAllowSize: 100, defaultFileAllowSize: 100,
editableProfileImage: true, editableProfileImage: true,

View File

@ -64,6 +64,8 @@ export interface Environment {
defaultSettings: Settings; defaultSettings: Settings;
CommonSetting: { CommonSetting: {
/** 기본 다운로드 경로 */
defaultDownloadFolder: string;
/** 파일업로드 제한 사이즈 (mb) */ /** 파일업로드 제한 사이즈 (mb) */
defaultFileAllowSize: number; defaultFileAllowSize: number;

View File

@ -21,20 +21,66 @@
</mat-select> </mat-select>
</mat-form-field> </mat-form-field>
<mat-form-field class="login-id"> <div class="input-lineless">
<mat-label>{{ 'accounts.fieldLoginId' | translate }}</mat-label> <!--<span class="icon-img"><i class="mid mdi-account-tie-outline"></i></span>-->
<input matInput [formControl]="loginIdFormControl" /> <span class="icon-img">
</mat-form-field> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20.82 22">
<path
d="M14.39,11.88a5.7,5.7,0,1,0-4.78,0A10.41,10.41,0,0,0,1.59,22v1H22.41V22A10.41,10.41,0,0,0,14.39,11.88Z"
transform="translate(-1.59 -1)"
style="fill:#fff"
/>
<path
d="M14.39,11.88a5.7,5.7,0,1,0-4.78,0A10.41,10.41,0,0,0,1.59,22v1H22.41V22A10.41,10.41,0,0,0,14.39,11.88ZM8.3,6.7A3.71,3.71,0,1,1,12,10.41,3.7,3.7,0,0,1,8.3,6.7ZM3.65,21a8.42,8.42,0,0,1,7.58-7.37L10,16.58l2,2,2-2-1.23-2.95A8.42,8.42,0,0,1,20.35,21Z"
transform="translate(-1.59 -1)"
/>
</svg>
</span>
<mat-form-field class="login-id">
<mat-label>{{ 'accounts.fieldLoginId' | translate }}</mat-label>
<input matInput [formControl]="loginIdFormControl" />
</mat-form-field>
</div>
<mat-form-field class="login-pw"> <div class="input-lineless">
<mat-label>{{ 'accounts.fieldLoginPw' | translate }}</mat-label> <!--<span class="icon-img"><i class="mid mdi-lock-outline"></i></span>-->
<input <span class="icon-img">
matInput <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 22.07">
type="password" <title>login-lock</title>
[formControl]="loginPwFormControl" <path
#loginPw d="M19,10H18V7A6,6,0,0,0,6,7v3H5a3,3,0,0,0-3,3v7a3,3,0,0,0,3,3H19a3,3,0,0,0,3-3V13A3,3,0,0,0,19,10Z"
/> transform="translate(-2 -0.93)"
</mat-form-field> style="fill:#fff"
/>
<rect x="9.08" y="12.94" width="1.84" height="3.72" />
<path
d="M19,22.93H5a3,3,0,0,1-3-3v-7a3,3,0,0,1,3-3H19a3,3,0,0,1,3,3v7A3,3,0,0,1,19,22.93Zm-14-11a1,1,0,0,0-1,1v7a1,1,0,0,0,1,1H19a1,1,0,0,0,1-1v-7a1,1,0,0,0-1-1Z"
transform="translate(-2 -0.93)"
/>
<path
d="M17,11.93a1,1,0,0,1-1-1v-4a4,4,0,0,0-8,0v4a1,1,0,0,1-2,0v-4a6,6,0,0,1,12,0v4A1,1,0,0,1,17,11.93Z"
transform="translate(-2 -0.93)"
/>
<rect
x="9.58"
y="13.36"
width="0.84"
height="2.72"
style="fill:#fff"
/>
<rect x="9.08" y="12.86" width="1.84" height="3.72" />
</svg>
</span>
<mat-form-field class="login-pw">
<mat-label>{{ 'accounts.fieldLoginPw' | translate }}</mat-label>
<input
matInput
type="password"
[formControl]="loginPwFormControl"
#loginPw
/>
</mat-form-field>
</div>
<div class="error-container"> <div class="error-container">
<mat-error <mat-error
@ -105,9 +151,8 @@
</div> </div>
</div> </div>
<div class="policy bg-accent-light"> <div class="policy" (click)="onClickNoti()">
<a class="link" (click)="onClickNoti()">{{ <div class="icon-img"><i class="mid mdi-alarm-light"></i></div>
!!notiText ? notiText : '개인정보 처리방침' <a class="link">{{ !!notiText ? notiText : '개인정보 처리방침' }}</a>
}}</a>
</div> </div>
</div> </div>

View File

@ -31,7 +31,6 @@ $login-max-height: 800px;
min-width: 100%; min-width: 100%;
top: 0; top: 0;
right: 0; right: 0;
padding: 14%;
text-align: center; text-align: center;
background-color: rgba(255, 255, 255, 1); background-color: rgba(255, 255, 255, 1);
border-radius: 0px; border-radius: 0px;
@ -40,8 +39,8 @@ $login-max-height: 800px;
.mat-title { .mat-title {
margin: 10px 0 10px 0; margin: 10px 0 10px 0;
text-indent: -10000000px; text-indent: -10000000px;
width: 140px; width: 120px;
height: 140px; height: 120px;
background-repeat: no-repeat; background-repeat: no-repeat;
display: inline-flex; display: inline-flex;
background-size: 100% auto; background-size: 100% auto;
@ -53,12 +52,33 @@ $login-max-height: 800px;
width: 100%; width: 100%;
text-align: left; text-align: left;
mat-form-field { .input-lineless {
width: 100%; background-color: #e0e0e0;
&.login-pw { padding: 14px 20px;
margin-top: 10px; margin-top: 6px;
@media screen and (max-width: #{$tablet-s-width}) { display: flex;
margin-top: 0; flex-flow: row;
@media screen and (max-width: #{$tablet-s-width}) {
padding: 8px 20px;
}
.icon-img {
width: 20px;
height: 20px;
margin-right: 10px;
svg {
width: 100%;
height: 100%;
}
}
mat-form-field {
width: 100%;
color: #333333;
&.login-pw {
//margin-top: 10px;
@media screen and (max-width: #{$tablet-s-width}) {
margin-top: 0;
}
} }
} }
} }
@ -83,8 +103,14 @@ $login-max-height: 800px;
.submit-button { .submit-button {
width: 100%; width: 100%;
margin: 0 auto; margin: 0 auto;
margin: 1.4vh 0; margin: 20px 0 10px;
display: block; display: block;
border-radius: 0;
line-height: 50px;
font-size: 1.1em;
@media screen and (max-width: #{$tablet-s-width}) {
line-height: 38px;
}
} }
} }
@ -131,19 +157,34 @@ $login-max-height: 800px;
} }
} }
.policy { .policy {
cursor: pointer;
position: absolute; position: absolute;
bottom: 5vh; bottom: 2vh;
display: block; display: block;
text-align: center; background-color: #58b0b1;
opacity: 0.7; width: 100%;
padding: 6px; color: #ffffff;
border-radius: 100px;
width: 72%;
color: #333333;
font-size: 0.86em; font-size: 0.86em;
display: flex;
flex-flow: row;
align-items: center;
&:hover { &:hover {
opacity: 1; opacity: 1;
} }
.icon-img {
padding: 12px 10px;
width: 50px;
color: #ffffff;
padding-right: 10px;
border-right: 1px solid rgba(255, 255, 255, 0.7);
flex: 0 0 auto;
@media screen and (max-width: #{$tablet-s-width}) {
padding: 9px 10px;
}
}
a {
margin-left: 10px;
}
} }
button { button {
&.google, &.google,
@ -156,22 +197,11 @@ $login-max-height: 800px;
} }
} }
@include desktop-m {
.login-form {
.mat-title {
background-size: 86% auto;
}
}
}
@include tab { @include tab {
.login-form { .login-form {
font-size: 0.9em; font-size: 0.9em;
padding: 12%;
.mat-title { .mat-title {
width: 14vh; background-size: 90% auto;
height: 14vh;
margin: 10px 0 10px 0;
} }
.mat-form-field .mat-form-field-infix input { .mat-form-field .mat-form-field-infix input {
font-size: 0.9em; font-size: 0.9em;
@ -179,13 +209,11 @@ $login-max-height: 800px;
.policy { .policy {
position: absolute; position: absolute;
bottom: 0; bottom: 0;
display: block; display: flex;
text-align: center; flex-flow: row;
opacity: 0.7;
padding: 0; padding: 0;
border-radius: 0; border-radius: 0;
width: 100%; width: 100%;
margin-left: -12%;
font-size: 0.9em; font-size: 0.9em;
padding: 0px; padding: 0px;
line-height: 3em; line-height: 3em;