How-To

ICE์˜ BackOffice Builder๋ฅผ ์ด์šฉํ•˜์—ฌ ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ๋ฐ์ดํ„ฐ ๊ด€๋ฆฌ์—์„œ ๊ธฐ๋ณธ์ ์œผ๋กœ ํ•„์š”ํ•œ CRUD(Create, Retrieve, Update, Delete)๋ฅผ ๊ตฌํ˜„ํ•ด์•ผ ํ•œ๋‹ค. ์ด๋•Œ, ๋Œ€์ƒ์ด๋˜๋Š” ๋ฐ์ดํ„ฐ์˜ ์œ ํ˜•์— ๋”ฐ๋ผ์„œ ๋ช‡ ๊ฐ€์ง€ ํŒจํ„ด์œผ๋กœ CRUD๋ฅผ ๊ตฌ์„ฑํ•˜๋ฉด UX์˜ ํŽธ์˜์„ฑ๊ณผ ํ†ต์ผ์„ฑ์„ ์ œ๊ณตํ•  ์ˆ˜ ์žˆ๋‹ค.

๋ณธ ๋ฌธ์„œ์—์„œ๋Š” ICE4์—์„œ ์ œ๊ณตํ•˜๋Š” ๊ธฐ๋Šฅ๋“ค์„ ์ด์šฉํ•˜์—ฌ ๊ตฌํ˜„ ๊ฐ€๋Šฅํ•œ ํŒจํ„ด๋“ค์— ๋Œ€ํ•œ ๊ตฌํ˜„ ๋ฐฉ์•ˆ์„ ์ œ๊ณตํ•œ๋‹ค.

ย 

ย 

ย 

ย 

ย 


Example. Table-Modal

https://dev-admin.justten.io/admin/boTesting/pattern/tableModal

ย 

ํ…Œ์ด๋ธ”-๋ชจ๋‹ฌ ํŒจํ„ด์€ ๋ฐฑ์˜คํ”ผ์Šค์—์„œ ๊ฐ€์žฅ ๋งŽ์ด ์‚ฌ์šฉ ๋˜๋Š” ํŒจํ„ด ์ค‘ ํ•˜๋‚˜์ด๋‹ค. ํ…Œ์ด๋ธ” ๋ฆฌ์ŠคํŠธ ํŽ˜์ด์ง€์—์„œ ์ปจํ…์ธ ๋ฅผ ์ƒ์„ฑํ•˜๊ณ , ํ™•์ธํ•˜๊ณ  ์ˆ˜์ •ํ•˜๊ธฐ ์œ„ํ•œ ๋ชจ๋“  ๋งํฌ๋ฅผ Modal ํƒ€์ž…์œผ๋กœ ๋งŒ๋“ค์–ด ๋ณด์ž.

tip Modal์€ ์Šคํ‚ค๋งˆ์˜ ๊ธฐ๋ณธ ํผ์ด๋‚˜ ๋‹ค๋ฅธ ํŽ˜์ด์ง€๋ฅผ ์ถœ๋ ฅํ•  ์ˆ˜ ์žˆ๋‹ค. ์ด๋ฒˆ ์˜ˆ์ œ์—์„œ๋Š” ๊ธฐ๋ณธ ํผ๋งŒ์„ ๋‹ค๋ฃจ๋„๋ก ํ•œ๋‹ค.

ย 

1. Create Table

ICE4 - BackOffice Builder์—์„œ ํ…Œ์ด๋ธ” ์ปดํฌ๋„ŒํŠธ๋ฅผ ์ถ”๊ฐ€ํ•˜์ž. ( ์ฐธ๊ณ  : ์…‹ํŒ… ์˜ต์…˜ ๊ฐ€์ด๋“œ Table List )

tip Basic Setting

- Target NodeType : TEST Blog

- Data Sync{ON}

ย 

tip Create/Detail Page

ํ…Œ์ด๋ธ” ๋ฆฌ์ŠคํŠธ ๋˜๋Š” ๋ฒ„ํŠผ ํด๋ฆญํ•˜๋ฉด, ์Šคํ‚ค๋งˆ๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ๊ธฐ๋ณธ ์…‹ํŒ… ๋œ Create/Detail ํŽ˜์ด์ง€๊ฐ€ ์ถœ๋ ฅ๋œ๋‹ค.

ย 

ย 


2. Set Enable List Events

ICE์—์„œ๋Š” ์Šคํ‚ค๋งˆ๋ฅผ ์ƒ์„ฑํ•  ๋•Œ, ๊ธฐ๋ณธ์ ์œผ๋กœ CRUD(Create, Read, Update, Delete + list)์— ๊ด€๋ จ๋œ ์ด๋ฒคํŠธ๋ฅผ ์ œ๊ณตํ•œ๋‹ค.
์ด๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•ด์„œ Enable List Events ์˜์—ญ์—์„œ ์ƒ์„ฑํ•˜๊ณ ์ž ํ•˜๋Š” CRUD ๋ฒ„ํŠผ์„ ์ฒดํฌ๋ฐ•์Šค๋กœ ์„ ํƒํ•˜๊ณ  ์ €์žฅํ•˜์ž.

ย 

ํ…Œ์ด๋ธ” ๋ฆฌ์ŠคํŠธ ํ•˜๋‹จ์— ๊ธฐ๋ณธ CRUD ๋ฒ„ํŠผ์ด ์ƒ์„ฑ๋˜๋Š” ๊ฒƒ์„ ํ™•์ธ ํ•  ์ˆ˜ ์žˆ๋‹ค.

ย 

์…‹ํŒ… ํ™”๋ฉด์˜ List Button Instancew Slot ์˜์—ญ์—์„œ๋„ ์ƒ์„ฑํ•œ ๋ฒ„ํŠผ ๋ชฉ๋ก์œผ๋กœ ๋ฆฌ์ŠคํŠธ์—… ๋˜๋Š” ๊ฒƒ์„ ํ™•์ธ ํ•  ์ˆ˜ ์žˆ๋‹ค.

ย 

Read, Update, Delete ๋ฒ„ํŠผ์„ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ํ…Œ์ด๋ธ” ๋ชฉ๋ก์—์„œ ์ปจํ…์ธ  ์„ ํƒ์ด ์šฐ์„ ์ ์œผ๋กœ ์ง„ํ–‰๋˜์–ด์•ผํ•œ๋‹ค. ๋ฐ์ดํ„ฐ ์„ ํƒ ํ•„๋“œ ์˜ต์…˜์„ Radio ๋˜๋Š” Checkbox๋กœ ์„ค์ •ํ•˜์ž.

ย 

ํ…Œ์ด๋ธ”์— ๋ฐ์ดํ„ฐ ์„ ํƒ ํ•„๋“œ๊ฐ€ ์ถ”๊ฐ€ ๋œ ๊ฒƒ์„ ํ™•์ธ ํ•  ์ˆ˜ ์žˆ๋‹ค.

ย 

ย 

ย 


3. Set CRU Link Type

CRU ๋ฒ„ํŠผ ๋งํฌ๋ฅผ Modal๋กœ ์…‹ํŒ…์€ ๋‘๊ฐ€์ง€ ๋ฐฉ๋ฒ•์ด ์žˆ๋‹ค.

  • List Button Instance Slot ์˜์—ญ์—์„œ ๋ฒ„ํŠผ์„ ๊ฐœ๋ณ„ ์…‹ํŒ…()
    [1] ์„ ํด๋ฆญํ•˜๋ฉด ํ•˜๋‹จ์— ์ƒ์„ธ ์„ค์ • ์˜์—ญ์ด ์ถœ๋ ฅ๋œ๋‹ค. Options์—์„œ [2]Link Type = 'Modal'์œผ๋กœ ์„ค์ •ํ•˜์ž.

ex Create ButtonLink ์…‹ํŒ… ํ™”๋ฉด

tip CRUD ๋ฒ„ํŠผ ๋งํฌ ํƒ€์ž… ๋ณ€๊ฒฝํ•˜๊ธฐ

๋งŒ์•ฝ Modal์ด ์•„๋‹Œ ๋‹ค๋ฅธ ํƒ€์ž…์œผ๋กœ ๋งํฌ๋ฅผ ์ถœ๋ ฅํ•˜๊ณ  ์‹ถ๋‹ค๋ฉด [Table Component > List Button Instance Slot > ]์œผ๋กœ ๋“ค์–ด๊ฐ€ [๋ฒ„ํŠผ ์„ค์ • > Link Type]์„ ๋ณ€๊ฒฝํ•˜๋ฉด ๋œ๋‹ค.

ย 

  • builder์—์„œ ์ƒ์„ฑ๋œ ๋ฒ„ํŠผ์˜ ์…‹ํŒ… ๋ฒ„ํŠผ ํด๋ฆญ
    [1] ์„ ํด๋ฆญํ•˜๋ฉด ์ƒ์„ธ ์„ค์ • ์˜์—ญ์ด ์ถœ๋ ฅ๋œ๋‹ค. ์œ„์™€ ๊ฐ™์ด Options์—์„œ [2]Link Type = 'Modal'์œผ๋กœ ์„ค์ •ํ•˜์ž.

ย 

ย 

ย 

ย 

3-1. Create Button-Modal

ํ…Œ์ด๋ธ”์—์„œ [Create]๋ฒ„ํŠผ์„ ํด๋ฆญํ•˜๋ฉด Create Form์ด Modal๋กœ ์ถœ๋ ฅ๋œ๋‹ค.

ย 

Create Form์„ ๋ชจ๋‘ ์ž‘์„ฑํ•˜๊ณ  [Save]๋ฒ„ํŠผ์„ ํด๋ฆญํ•ด๋ณด์ž. ํ•ด๋‹น ๋‚ด์šฉ์ด ์ €์žฅ๋˜๊ณ  Modal์ด ๋‹ซํžˆ๋ฉฐ, ํ…Œ์ด๋ธ” ๋ชฉ๋ก์— ์ƒ์„ฑํ•œ ๋ฐ์ดํ„ฐ๊ฐ€ ์ถ”๊ฐ€ ๋˜๋Š” ๊ฒƒ์„ ํ™•์ธ ํ•  ์ˆ˜ ์žˆ๋‹ค.

ย 

ย 

ย 

3-2. Read/Update Button-Modal

ํ…Œ์ด๋ธ”์—์„œ [1]์กฐํšŒ/์ˆ˜์ • ํ•  ์ปจํ…์ธ ๋ฅผ ์ฒดํฌ๋ฐ•์Šค๋กœ ์„ ํƒํ•˜๊ณ , [2][์ƒ์„ธ์กฐํšŒ]๋ฒ„ํŠผ ๋˜๋Š” [์ˆ˜์ •]๋ฒ„ํŠผ์„ ํด๋ฆญํ•˜๋ฉด Detail ํŽ˜์ด์ง€๋ฅผ Modal๋กœ ์ถœ๋ ฅ๋˜์–ด ์กฐํšŒํ•˜๊ฑฐ๋‚˜ ์ˆ˜์ • ํ•  ์ˆ˜ ์žˆ๋‹ค.

ย 

์กฐํšŒ/์ˆ˜์ • Modal์— ์žˆ๋Š” ๊ธฐ๋ณธ์ ์ธ Click Event๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.

  • Save : Edit and Save Contents > Refresh Modal

  • Delete : Delete Contents > Close Modal

  • Icon[X] : Close Modal

ย 

ย 

ย 

3-3. Delete Button-Modal

์‚ญ์ œ ๋ฒ„ํŠผ์˜ ๊ธฐ๋ณธ ์…‹ํŒ… ํ™”๋ฉด์€ ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค. ๋ณ„๋„์˜ Modal ์ถœ๋ ฅ์€ ์—†์œผ๋ฉฐ Callback Link Type = Page๋กœ ํ•œ๋‹ค.

ย 

์‚ญ์ œ ๋ฒ„ํŠผ์˜ ๊ธฐ๋ณธ ์ƒํƒœ๋Š” Disable์ด๋ฉฐ, ๋ฐ์ดํ„ฐ๋ฅผ ์„ ํƒํ•˜๋ฉด ํ™œ์„ฑํ™” ์ƒํƒœ๋กœ ๋ณ€๊ฒฝ๋œ๋‹ค. [1]์‚ญ์ œ ํ•  ์ปจํ…์ธ ๋ฅผ ์ฒดํฌ๋ฐ•์Šค๋กœ ์„ ํƒํ•˜๊ณ , [2][์‚ญ์ œ]๋ฒ„ํŠผ์„ ํด๋ฆญํ•ด๋ณด์ž. ์‚ญ์ œ ์•Œ๋ฆผ์ด ์ถœ๋ ฅ ๋˜๋ฉฐ ํ•ด๋‹น ์ปจํ…์ธ ๊ฐ€ ์‚ญ์ œ ๋œ ๊ฒƒ์„ ํ™•์ธ ํ•  ์ˆ˜ ์žˆ๋‹ค.

ย 

ย 

ย 


4. Click Event

ํ…Œ์ด๋ธ” ๋ชฉ๋ก ํด๋ฆญ ์ด๋ฒคํŠธ๋Š” On Click / On Double Click ์„ค์ • ์˜์—ญ์—์„œ ์…‹ํŒ… ํ•  ์ˆ˜ ์žˆ๋‹ค.

ย 

Click/Double Click List-Modal

๋‹ค์Œ๊ณผ ๊ฐ™์ด On Click > Page Type = 'Modal'๋กœ ์„ค์ •ํ•˜๋ฉด, ํ…Œ์ด๋ธ” ๋ชฉ๋ก์„ ํ•œ ๋ฒˆ ํด๋ฆญ ํ–ˆ์„ ๋•Œ ๋ชจ๋‹ฌ์ด ์ถœ๋ ฅ๋œ๋‹ค.

โ—๏ธโ€On Clickโ€๊ณผ โ€œOn Double Clickโ€ ๊ธฐ๋Šฅ์€ ํ•จ๊ป˜ ์‚ฌ์šฉ ํ•  ์ˆ˜ ์—†์œผ๋‹ˆ ์ฃผ์˜ํ•˜์ž.

ํ…Œ์ด๋ธ” ๋ชฉ๋ก์—์„œ ์›ํ•˜๋Š” ์ปจํ…์ธ ๋ฅผ Clickํ•˜๋ฉด Detail ํŽ˜์ด์ง€๊ฐ€ Modal๋กœ ์ถœ๋ ฅ๋˜๋Š” ๊ฒƒ์„ ํ™•์ธ ํ•  ์ˆ˜ ์žˆ๋‹ค.

ํด๋ฆญ ์ด๋ฒคํŠธ๋กœ ์ถœ๋ ฅ๋˜๋Š” Modal๋„ ์Šคํ‚ค๋งˆ๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ๊ธฐ๋ณธ ์…‹ํŒ… ๋œ ํ•ญ๋ชฉ๋“ค๋กœ ๊ตฌ์„ฑ๋œ Detail ํŽ˜์ด์ง€์ด๋‹ค.

ย 

ย 

ย 

Modal with Link User Selected

๋ชจ๋“  Modal์—์„œ๋Š” ์Šคํ‚ค๋งˆ ๊ธฐ๋ฐ˜์˜ ๊ธฐ๋ณธ ํผ ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ, ๋‹ค๋ฅธ ํŽ˜์ด์ง€์˜ ํผ๋„ ์‚ฌ์šฉ์ด ๊ฐ€๋Šฅํ•˜๋‹ค.

๊ธฐ๋ณธ ์…‹ํŒ… ๋œ Detail ํŽ˜์ด์ง€ ์™ธ์˜ ๋‹ค๋ฅธ ๋งํฌ ํŽ˜์ด์ง€๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์‹ถ๋‹ค๋ฉด, ์•„๋ž˜ ๊ทธ๋ฆผ๊ณผ ๊ฐ™์ด Page ์˜ต์…˜์„ ์ถ”๊ฐ€๋กœ ์„ค์ •ํ•˜์ž.

ย