[K2 SmartForms] – Confirmation Popup Trick

สวัสดีครับอาจจะมีหลายๆท่านงงหรือสงสัยกับการเรียกใช้ rule Get confirmation เพื่อแสดงข้อความ Pop up แจ้งเตือน User หากท่านใดไม่งงแล้วก็เลื่อนไปดู trick ด้านล่างๆได้เลยนะครับข้ามการใช้ไปได้เลยโดยการแสดง popup ของ K2 SMF เนี่ยเราสามารถเรียกใช้ได้ผ่าน rule Get confirmation ดังภาพด้านล่างครับ
get-confirm-1
get-confirm-2

หลายๆท่านอาจจะเจอปัญหาว่าหากมีการ config rule อื่นๆที่มีการ validate เพิ่มเติมต่อจาก rule Get confirmation เมื่อใช้งานจริงเวลา กด cancel ใน pop up comfirm แล้ว Rule ที่เหลืออยู่ยัง execute ทำงานต่อไปซึ่งไม่ถูกต้องจริงๆแล้วหลักการทำงานที่จะทำงานถูกต้องต้อง Config แบบนี้ครับคือ เพิ่ม advanced condition ที่โดยใส่เงื่อนไข 1=1 เข้าไป   get-confirm-2-1  จากนั้น config rule ตาม รูปภาพ ด้านล่างครับ เราสามารถเรียก rule อื่นๆหลังจาก User กด cancel ได้หรือไม่อยากให้ทำอะไรก็เพิ่ม rule transfer data ไปเฉยๆได้ครับ
get-confirm-3

ตอนทำงานจริงนั้นเรามันจะมีการ validate ค่าเป็นจำนวนมากหากทำตามวิธีด้านบนจะค่อนข้างยุ่งยากครับ technic ที่เราสามารถทำได้คือให้ rule ที่มีการ validate มากมายหลายแหล่เป็น Fucntion หรือ rule ลอยๆแทนซะยกตัวอย่างเช่น ผมทำการ validate มากมายจากนั้น Hilight สีนำเงินผมตั้งชื่อ Rule ชุดนี้ว่า FnSaveMainForm ดังภาพด้านล่างจากนั้นกด Save
get-confirm-4

จากนั้นที่ปุ่มเราต้องการแสดง Pop up Confirm ให้ใช้วิธีเรียก Execute another rule แทนดังภาพ ด้วยวิธีนี้การทำงานของ Pop up จะถูกต้องครับ
get-confirm-5

ทีนี้มีคำถามว่า Comfirm pop up สามารถ เพิ่ม size popup ,ใส่ header ,ใส่ template ,ใส่ค่าตัวแปร บลาๆๆ ไปได้ไหม???
คำตอบคือ ไม่ได้ครับ!!! 5555+

แต่เรามีทางออกให้ดังนี้คือแต้นแต๊นนนนน ใช้ rule Show a message แทนซิคร้าบพี่น้องง
get-confirm-6

แต่มีข้อแม้คือต้องเลือก Message Type เป็น Confirmation นะครับ ทีนี้เราสามารถลาก Control ต่างๆมายำใส่ในนี้ได้เลยแม้กระทั้งใส่ Tag Html เพื่อการแสดงผลที่ต้องการก็ยังได้เรื่อง size ก็สามารถปรับได้อีกทั้งการทำงานยังเหมือนกับใช้ rule Get confirmation ทุกประการครับ
get-confirm-7

เอาละลองกดดูจากที่ Config ได้ผลลัพตามภาพเลยครับผม
get-confirm-8

วันหลังจะมาแชร์ทริคอื่นๆอีกนะครับ บ้ายบาย

Test on K2 version
4.7
4.6.11

 

Advertisements

[K2 SmartForms] Log Out Button

สวัสดีครับทุกท่านครับ วันนี้มาเสนอ solution สำหรับทำปุ่ม logout ซึ่งก่อนที่จะทำ solution นี้อาจจะต้อง set K2 SmartForms ไปใช้ form authentication ก่อนนะครับ ซึ่งสามารถดูรายละเอียดตามนี้ครับ [K2 SmartForms] – เรื่องเกี่ยวกับ Authentication

เมื่อเราทำการติดตั้ง K2 Smartform เสร็จแล้วใน site K2 runtime หรือว่า K2 designer จะมี folder _trust สังเกตุเห็นว่ามี logout.aspx และ login.aspx อยู่ดังภาพ

logout-1

ทีนี้สิ่งที่เราจะทำก็คือสร้าง ปุ่มขึ้นมา 1 ปุ่มเพื่อทำเป็นปุ่ม logout แล้วทำการ Config rule ดังภาพครับ
logout-2

logout-3

Base URL:  https://k2.denallix.com/Runtime/_trust/logout.aspx
Note : [K2 url]/Runtime/_trust/logout.aspx or [K2 url]/Designer/_trust/logout.aspx

 จากนั้นลองมา Test ที่ Runtime กันครับ เมื่อเราทำการกดปุ่มที่เรา Config เสร็จแล้วหน้า Page K2 จะขึ้นให้ทำการ login User ดังรูปครับ ซึ่ง session ของ User ที่ทำการ login อยู่ขณะนั้นจะถูก clear ทิ้งทันทีถึงแม้ว่าเรากำลังเปิด tab อื่นๆอยู่หากไปทำการ refresh tab อื่น หน้าจอจะกลับไปแสดงหน้า login อยู่ดีครับ
logout-4

เมื่อทำการ login อีกครั้งโดยยังไม่ปิด browser จะปรากฎ page default ของ K2 SmartForm ดังภาพครับ
logout-5
ซึ่งจะมีคำถามต่อมาว่า อ้าววววว สามารถให้ไปหน้าที่เราต้องการหลังจาก login อีกครั้งไหมคำตอบคือได้ครับทางออกมี 2 วิธีเท่าที่ทราบตอนนี้คือ

1.ทำการ  แก้ไข file default.aspx  ซึ่ง file อยู่ที่ Path “C:\Program Files (x86)\K2 blackpearl\K2 smartforms Runtime\default.aspx”
โดยทำการเพิ่ม java script เพื่อให้ redirect ไปหน้าที่เราต้องการครับ

ก่อนแก้ไข  default.aspx
logout-6

เพิ่ม java script ลงใน tag </head>

function redirect() {
window.location.assign(“~/form/Test+Logout/”)
}

เพิ่ม  onload ลงใน tag </body>
<body onload=”redirect();”>

หลังทำการเพิ่ม Java script  file default.aspx
logout-7

2. Config rule ให้ navigate ไป [K2 url]/Runtime/_trust/login.aspx แทนพร้อมทั้งระบุ parameter ReturnUrl หน้า page ที่ต้องการให้ไปหลังจากทำการ login อีกครั้ง สามารถดูรายละเอียดได้ด้านล่างครับ

logout-8

Comfig Parameter

Name value
ReturnUrl %2FRuntime%2FRuntime%2FForm%2FTest+Logout%2F
_sessionUpdate  1

Note :  %2FRuntime%2FRuntime%2FForm%2F[SmartFormSystemName]%2F

หากมีท่านใดเจอแนวทางอื่นสามารถแนะนำเข้ามาได้ครับ  🙂

Test on K2 version
4.7
4.6.11