Các hàm javascript có sẵn trong admin
Cập nhật lúc 1693562496000ezyadmin.getI18nMessage
Các i18n message từ server thông qua thymeleaf có thể được render vào trang html và gửi cho client, thông thường sẽ được gán vào biến ezyadmin.messages
, ví dụ:
<script> /*<![CDATA[*/ ezyadmin.messages.avatar = "Avatar"; ezyadmin.messages.asked = "Asked"; </script>
Hàm getI18nMessage
dùng để lấy i18n message ezyadmin.messages
theo key truyền vào và có trả về kiểu viết chữ thường nếu được yêu cầu. Trong trường hợp không có giá trị nào Tham số truyền vào bao gồm:
- key - String: message key.
- toLowerCase - Boolean: viết thường i18n message hay không.
Ví dụ:
const avatarMessage = ezyadmin.getI18nMessage('avatar', true);
ezyadmin.currentTimeMillis
Trả về timestamp hiện tại kiểu Number
.
Ví dụ:
var currentMillis = ezyadmin.currentTimeMillis();
ezyadmin.formatTimeStamp
Format timestamp từ Number
sang theo format yêu cầu. Tham số truyền vào bao gồm:
- timestamp - Number.
- format - String: Mặc định là
YYYY-MM-DD HH:mm:ss
.
Ví dụ:
ezyadmin.formatTimeStamp(page.createdAt);
ezyadmin.formatTimeStampMinute
Format timestamp từ Number
sang format YYYY-MM-DD HH:mm
. Tham số truyền vào:
1. timestamp - Number
Ví dụ:
ezyadmin.formatTimeStampMinute(timestame);
ezyadmin.durationToString
Chuyển đổi từ duration (giây) sang string, ví dụ 34218061
sẽ là: 1y-1m-1d 1h:1m:1s
. Tham số truyền vào:
- duration - Number.
Lưu ý: Một năm là 356 ngày, một tháng là 30 ngày.
Ví dụ:
ezyadmin.durationToString(ezyadmin.liveTime);
ezyadmin.durationToSimpleString
Chuyển đổi từ duration (giây) sang string, ví dụ 34822861
se là: 1y1M1w1d1h1m1s
. Tham số truyền vào:
- duration - Number.
Lưu ý: Một năm là 356 ngày, một tháng là 30 ngày, một ngày 7 ngày.
Ví dụ:
ezyadmin.durationToSimpleString(duration);
ezyadmin.simpleDurationStringToMillis
Chuyển đổi duration (string) sang millis second, ví dụ 1y1M1w1d
sẽ được chuyển thành: 1450800000
. Tham số truyền vào:
- str - String
Ví dụ:
ezyadmin.simpleDurationStringToMillis('1m');
ezyadmin.getTimeRangeValue
Tính khoảng thời gian so với mốc thời gian tính từ thời điểm hiện tại, ví dụ hiện tại là 1693203170896
và mốc thời gian là 1693203170890
thì kết quả sẽ là 6
. Tham số truyền vào:
- milestoneTime - Number: Mốc thời gian tính theo millisecond.
Ví dụ:
var timeRangeValue = ezyadmin.getTimeRangeValue(milestoneTime);
ezyadmin.getTimeRangeTextValue
Tính khoảng thời gian so với mốc thời gian tính từ thời điểm hiện tại và chuyển về dạng string, ví dụ hiện tại là 1693203170896
và mốc thời gian là 1693206770896
thì kết quả sẽ là 1 hour
. Tham số truyền vào:
- milestoneTime - Number: Mốc thời gian tính theo millisecond.
- includeSuffix - Boolean: Có bổ sung hậu tố cho khoảng thời gian hay không, nếu có thì nếu mốc thời gian là lớn hơn hiện tại thì hậu tố sẽ là more, ngược lại nếu mốc thời gian nhỏ hơn thì sẽ là ago.
Ví dụ:
ezyadmin.getTimeRangeTextValue(notification.sentAt, false);
ezyadmin.formatNumberWithCommas
Format số theo định dạng dấu phẩy, ví dụ 1000
sẽ là 1,000
. Tham số truyền vào:
number - Number: Số cần định dạng.
Ví dụ:
ezyadmin.formatNumberWithCommas(post.comments);
ezyadmin.listToBooleanMap
Chuyển đổi một danh sách về thành map boolean, ví dụ List[1, 2, 3]
sẽ được chuyển thành Map{1:true, 2:true, 3:true}
. Mục tiêu là chuyển thành map để kiểm tra phần tử có tồn tại nhanh hơn. Tham số truyền vào:
- list - Array: Danh sách các phần tử.
Ví dụ:
var moduleTypeMap = ezyadmin.listToBooleanMap(moduleTypes);
ezyadmin.removeItemFromList
Xóa một item khỏi một list, ví dụ xóa 2 khỏi [1, 2, 3]
thì list sẽ còn [1, 3]
. Tham số truyền vào
- list - Array: Danh sách các phần tử.
- itemToRemove - Any: Phần tử cần xóa khỏi list.
Ví dụ:
ezyadmin.removeItemFromList(list, 1);
ezyadmin.getModuleTypeShortName
Lấy module type từ tên truyền vào. Danh sách các module type map với short name như sau:
- 'admin-plugin': 'Plugin'
- 'socket-plugin': 'Plugin'
- 'socket-app': 'App'
- 'web-plugin': 'Plugin'
- 'theme': 'Theme'
Tham số truyền vào:
- moduleType - String.
Ví dụ:
var moduleTypeShortName = ezyadmin.getModuleTypeShortName(module.type);
ezyadmin.getModuleTypeName
Lấy module type name từ module type truyền vào. Danh sách các module type name map với module type như sau:
- 'admin-plugin': 'Admin Plugin'
- 'socket-plugin': 'Socket Plugin'
- 'socket-app': 'Socket Application'
- 'web-plugin': 'Web Plugin'
- 'theme': 'Theme'
Tham số truyền vào:
- moduleType - String.
Ví dụ:
moduleTypeNames.push(ezyadmin.getModuleTypeName(moduleType));
ezyadmin.getModuleTypeNames
Lấy danh sách module type name dạng chuỗi ngắn cách bởi dấu phẩy, ví dụ truyền vào [admin-plugin, socket-plugin]
thì sẽ nhận được: Admin Plugin, Socket Plugin
. Tham số truyền vào:
- moduleTypes - Array: Danh sách module type.
Ví dụ:
ezyadmin.getModuleTypeNames(moduleTypes);
ezyadmin.getErrorMessageByCode
Lấy error message theo code truyền vào. Danh sách message map với code như sau:
ezyadwmin.errorMessageByCode = { 'required': ezyadmin.getI18nMessage('required'), 'invalid': ezyadmin.getI18nMessage('invalid'), 'tooShort': ezyadmin.getI18nMessage('too_short'), 'tooLong': ezyadmin.getI18nMessage('too_long'), 'overLength': ezyadmin.getI18nMessage('over_length'), 'duplicated': ezyadmin.getI18nMessage('duplicated'), 'incorrect': ezyadmin.getI18nMessage('incorrect'), 'mismatch': ezyadmin.getI18nMessage('mismatch'), 'tooMany': ezyadmin.getI18nMessage('too_many') };
Tham số truyền vào:
- code - String: Mã lỗi.
Ví dụ:
ezyadmin.getErrorMessageByCode('required');
Lưu ý: Bạn cũng có thể bổ sung mã lỗi và message của mình, ví dụ:
ezyadmin.errorMessageByCode['helloWorld'] = ezyadmin.getI18nMessage('helloWorld');
ezyadmin.getTextColorByStatus
Lấy text color theo status truyền vào. Danh sách color map với status như sau:
ezyadmin.textColorByStatus = { 'ACTIVATED': 'text-success', 'ARCHIVED': 'text-info', 'APPROVED': 'text-success', 'APPROVING': 'text-primary', 'BLOCKING': 'text-primary', 'BLOCKED': 'text-danger', 'BURNED': 'text-secondary', 'CLOSED': 'text-danger', 'DELETED': 'text-danger', 'INACTIVATED': 'text-secondary', 'MINTED': 'text-info', 'OPENED': 'text-success', 'PUBLISHED': 'text-success', 'REGISTER_OPENED': 'text-success', 'REGISTER_CLOSED': 'text-danger', 'REJECTED': 'text-danger', 'REVIEWING': 'text-primary', 'RELEASABLE': 'text-info', 'RELEASED': 'text-success' };
Tham số truyền vào:
- status - String
Ví dụ:
var statusColor = ezyadmin.getTextColorByStatus(admin.status);
Lưu ý: Bạn cũng có thể bổ sung màu sắc và trạng thái của mình, ví dụ:
ezyadmin.textColorByStatus['HELLO'] = 'text-hello';
ezyadmin.toDisplayString
Chuyển đổi string thông thường thành display string, ví dụ hello world
, hello-world
, hello.world
, hello_world
sẽ được chuyển thành Hello world
. Tham số truyền vào:
- str - String
Ví dụ:
var displayString = ezyadmin.toDisplayString(str);
ezyadmin.toCapitalizeString
Chuyển đổi string thông thường thành string viết hoa các chữ cái đầu tiên, ví dụ hello world
sẽ được chuyển thành Hello World
. Tham số truyền vào:
- str - String.
Ví dụ:
ezyadmin.toCapitalizeString(moduleType);
ezyadmin.toHeadingString
Chuyển đổi string thông thường thành display string, ví dụ hello world
, hello-world
, hello.world
, hello_world
sẽ được chuyển thành Hello World
. Tham số truyền vào:
- str - String.
Ví dụ:
ezyadmin.toHeadingString(feature);
ezyadmin.truncateString
Cắt ngắn một string và cộng thêm hậu tố. Tham số truyền vào:
- str - String: Chuỗi đầu vào.
- . maxLength - Number: Độ dài chuỗi được cắt.
- suffix - String: Hậu tố được cộng thêm.
Ví dụ:
ezyadmin.truncateString(notification.title, 18, '...');
ezyadmin.getHtmlBodyContent
Lấy nội dung bên trong thẻ body. Tham số truyền vào:
- html - String.
Ví dụ:
ezyadmin.getHtmlBodyContent(html);
ezyadmin.removeHtmlTagAndSub
Loại bỏ thẻ html khỏi nội dung và cắt ngắn. Tham số truyền vào:
- html - String.
- maxLength - Number: Độ dài nội dung sau khi được cắt.
Ví dụ:
ezyadmin.removeHtmlTagAndSub(project.description, 300);
ezyadmin.randomString
Random một chuỗi. Tham số truyền vào:
- length - Number: Độ dài chuỗi được random.
- characters - String: Chuỗi chứa các ký tự sẽ được random, mặc định sẽ là chuỗi
ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789
.
Ví dụ:
var encryptionKey = ezyadmin.randomString(32);
ezyadmin.randomPassword
Random mật khẩu. Tham số truyền vào:
- length - Number: Độ dài mật khẩu.
Các ký tự trong mật khẩu sẽ nằm trong chuỗi: ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789~!@#$%^&*()_+
.
Ví dụ:
var password = ezyadmin.randomPassword();
ezyadmin.wrapTextIfNeed
Wrap nội dung với thẻ html nếu cần. Tham số truyền vào:
- text - String: Nội dung.
- tag - String: Tên thẻ html.
- need - Boolean: Nếu là true thì nội dung sẽ được bọc với thẻ, nếu là false thì không.
Ví dụ:
ezyadmin.wrapTextIfNeed(from, 'strong', !letter.readAt);
ezyadmin.getCurrentUrlParameter
Lấy query parameter trong đường dẫn của trang. Tham số truyền vào:
- paramName - String: Tên của tham số cần lấy ra.
Ví dụ:
var keyword = ezyadmin.getCurrentUrlParameter('keyword');
ezyadmin.joinToString
Chuyển đổi một mảng thành string. Tham số truyền vào:
- array - Array.
- separator - String: Ký tự ngăn cách giữa các phần tử.
- itemMapper - Function: Hàm chuyển đổi item.
Ví dụ:
ezyadmin.joinToString( module.dependencies, ', ', it => it.projectName + ':' + it.projectVersion )
ezyadmin.mergeObjects
Merge các đối tượng lại với nhau. Tham số truyền vào:
- objects - Array: Danh sách các đối tượng cần merge.
Ví dụ:
ezyadmin.mergeObjects([ezyadmin.fromUserById, userMap]);
ezyadmin.mergeObjectsToFirst
Merge các đối tượng vào đối tượng đầu tiên. Tham số truyền vào:
- objects - Array: Danh sách các đối tượng cần merge.
Ví dụ:
ezyadmin.mergeObjectsToFirst([ezyadmin.fromUserById, userMap]);
ezyadmin.fetchAll
Gọi hàm callback
sau khi tất cả các hàm khác đã được thực thi xong. Tham số truyền vào:
- fetchFunctions - Array: Danh sách các hàm cần thực thi.
- callback - Function: Hàm
callback
được gọi sau khi các hàm cần thực thi đã xong.
Ví dụ:
var fetchUsers = callback => { ezyadmin.fetchUsersByIds(newFromUserIds, (userMap) => { ezyadmin.mergeObjectsToFirst([ezyadmin.fromUserById, userMap]); callback(); }); } fetchUsers.condition = () => newFromUserIds.length; var fetchAdmins = callback => { ezyadmin.fetchAdminsByIds(newFromAdminIds, (adminMap) => { ezyadmin.mergeObjectsToFirst([ezyadmin.fromAdminById, adminMap]); callback(); }); } fetchAdmins.condition = () => newFromAdminIds.length; var callback = () => $('#letterListBody').html( ezyadmin.buildLetterListBodyHtml(data.items) ); ezyadmin.fetchAll([fetchUsers, fetchAdmins], callback);
ezyadmin.shortToast
Hiển thị toast. Các tham số truyền vào:
- colorClass - String: Tên lớp màu sắc của chữ hoặc background.
- title - String: Tiêu đề.
- body - String: Nội dung.
Ví dụ:
ezyadmin.shortToast('bg-success', 'Update successfully');
ezyadmin.copyToClipboard
Copy nội dung của thẻ được chọn vào clip board. Tham số truyền vào:
- elementId - String: Id của thẻ được chọn.
- isInput - Boolean: Phần tử được chọn có phải là input hay không.
- alertTextPrefix - String: Tiền tố của thông báo copy thành công.
Ví dụ:
ezyadmin.copyToClipboard('updateMediaUrl', true, 'URL');
ezyadmin.formDataToObject
Chuyển đổi form data thành object. Ví dụ chúng ta có form:
<form id="editRoleForm"> <input type="text" name="editRoleName" id="editRoleName"> <input type="text" name="editRoleDisplayName" id="editRoleDisplayName"> </form>
Sẽ được chuyển thành object:
{ editRoleName: $('input[name="editRoleName"]').val(), editRoleDisplayName: $('input[name="editRoleDisplayName"]').val() }
Tham số truyền vào:
- formName - String: Tên form.
Ví dụ:
var formData = ezyadmin.formDataToObject('addNewRoleForm');
ezyadmin.watchInputKeyDown
Lắng nghe sự kiện keydown và keyup của một input element để kiểm soát độ dài của giá trị và hiển thị độ dài hiện tại của giá trị. Tham số truyền vào:
- elementId - String: Id của element cần lắng nghe sự kiện.
- maxValueLength - Number: Độ dài tối đa giá trị của input element.
- onEnterCallback - Function: Hàm callback khi người dùng nhấn Enter.
Ví dụ bạn có html:
<input type="text" name="helloWorld" id="helloWorld"> <span id="helloWorldLength"></span>
Bạn có thể sử dụng:
ezyadmin.watchInputKeyDown('helloWorld', 100, () => { console.log('Enter'); });
ezyadmin.extractMediaUrl
Lấy ra url từ một đối tượng media
. Tham số truyền vào:
- media - Object: Đối tượng
media
.
Ví dụ:
var mediaUrl = ezyadmin.extractMediaUrl(media);
ezyadmin.scrollToElement
Scroll đến vị trí của phần từ. Tham số truyền vào:
- elementId - String: Id của phần tử.
- duration - Number: Khoảng thời gian để scroll.
Ví dụ:
ezyadmin.scrollToElement('answer', 100);
ezyadmin.syntaxHighlightJson
Highlight json syntax. Tham số truyền vào:
- json - String
Ví dụ:
ezyadmin.syntaxHighlightJson(body);
ezyadmin.toCapacityString
Chuyển đổi dung lượng byte sang dạng. Ví dụ 1
sẽ là 1B
, 1024
sẽ là 1KB
… Tham số truyền vào:
- input - Number: Dung lượng byte.
Ví dụ:
ezyadmin.toCapacityString(data.usedMemory);
ezyadmin.toCountString
Chuyển đối từ số lượng sang dạng string, ví dụ 1000
là 1K
, 1000000
là 1M
, … Tham số truyền vào:
- input - Number: Số lượng
Ví dụ:
ezyadmin.toCountString(data);
ezyadmin.setCookie
Set giá trị cookie. Tham số truyền vào:
- name - String: Tên cookie.
- value - Any: Giá trị cookie.
- days - Number: Số ngày cookie tồn tại.
Ví dụ:
ezyadmin.setCookie('token', 'abc', 1);
ezyadmin.deleteCookie
Xóa cookie. Tham số truyền vào:
- name - String: Tên cookie.
Ví dụ:
ezyadmin.deleteCookie('token');
ezyadmin.getCookie
Lấy giá trị của cookie. Tham số truyền vào:
- cname - String: Tên cookie.
Ví dụ:
ezyadmin.getCookie("adminAccessToken");
ezyadmin.getCookieAccessToken
Lấy admin access token từ cookie.
Ví dụ:
ezyadmin.getCookieAccessToken();
ezyadmin.enableServer
Cho phép server hoạt động. Tham số truyền vào.
- target - String: Là admin, socket hoặc web
Ví dụ:
ezyadmin.enableServer('socket');
ezyadmin.disableServer
Vô hiệu hóa server. Tham số truyền vào;
- target - String: Là admin, socket hoặc web
Ví dụ:
ezyadmin.disableServer('socket');
ezyadmin.startServer
Khởi động server. Tham số truyền vào:
- target - String: Là admin, socket hoặc web
Ví dụ:
ezyadmin.startServer('socket');
ezyadmin.stopServer
Dừng server. Tham số truyền vào:
- target - String: Là admin, socket hoặc web
Ví dụ:
ezyadmin.stopServer('socket');
ezyadmin.restartServer
Khởi động lại server. Tham số truyền vào:
- target - String: Là admin, socket hoặc web
Ví dụ:
ezyadmin.restartServer('socket');
ezyadmin.doTargetAction
Thực hiện một hành động với server. Tham số truyền vào:
- target - String: Là
admin
,socket
hoặcweb
. - action - String: Là
enable
,disable,
stop,
starthay
restart.
- showLoading - Boolean: Có hiển thị loading không.
Ví dụ:
ezyadmin.doTargetAction(target, 'Enable', false);
ezyadmin.ensureAdminRunning
Gọi một hàm callback
nếu admin vẫn đang chạy, hoặc chờ cho đến khi admin
chạy trở lại. Tham số truyền vào:
- callback - Function.
Ví dụ:
ezyadmin.ensureAdminRunning(postAction);
ezyadmin.showLoadingScreen
Hiển thị loading screen
Ví dụ:
ezyadmin.showLoadingScreen();
ezyadmin.hideLoadingScreen
Ẩn loading screen.
Ví dụ:
ezyadmin.hideLoadingScreen();
ezyadmin.showProfile
Chuyển đến trang profile của admin, ví dụ:
ezyadmin.showProfile();
ezyadmin.logout
Đăng xuất admin.
Ví dụ:
ezyadmin.logout();
ezyadmin.redirectToLogin
Chuyển hướng đến trang login.
Ví dụ:
ezyadmin.redirectToLogin();
ezyadmin.redirectToPermissionDenied
Chuyển hướng đến trang truy cập bị từ chối có đường dẫn /permission-denied
.
Ví dụ:
ezyadmin.redirectToPermissionDenied();
ezyadmin.redirectToNotFound
Chuyển hướng đến trang không tìm thấy kết quả có đường dẫn /not-found
.
Ví dụ:
ezyadmin.redirectToNotFound();
ezyadmin.redirectToServerError()
Chuyển hướng đến trang server bị lỗi quả có đường dẫn /server-error
.
Ví dụ:
ezyadmin.redirectToServerError();
ezyadmin.processGetApiErrors
Xử lý lỗi khi gọi API GET. Tham số truyền vào:
- responseData - Any: Dữ liệu phản hồi từ server.
- handler - Function hoặc Map: Hàm hoặc một map chứa các hàm xử lý mã lỗi.
Ví dụ:
ezyadmin.processGetApiErrors(e);
ezyadmin.processUpdateApiErrors
Xử lý lỗi khi gọi API và hiển thị lỗi lên giao diện của form. Tham số truyền vào:
- formData - Object: Form chứa các trường dữ liệu được map với các trường bị lỗi trong dữ liệu phản hồi từ server.
- responseData - Any: Dữ liệu phản hồi từ server.
- handler - Function hoặc Map: Hàm hoặc một map chứa các hàm xử lý mã lỗi.
Ví dụ trường hợp tên các trường của form trùng khớp với các trường trong dữ liệu trả về:
HTML của form:
<form class="form-horizontal" id="contactUsForm"> <div class="form-group"> <label for="contactUsYourName" class="col-form-label"> [[#{ezysupport_contact_us_your_name}]] </label> <label class="col-form-label text-danger ml-2 ms-2 d-none" id="contactUsYourNameErrorLabel" for="contactUsYourName"> <i class="fas fa-exclamation"></i> <span id="contactUsYourNameError"></span> </label> <input type="text" name="contactUsYourName" id="contactUsYourName" class="form-control" th:value="${user != null ? user.displayName : ''}"> </div> ... <div class="form-group"> <label for="contactUsMessage" class="col-form-label"> [[#{ezysupport_contact_us_message}]] </label> <label class="col-form-label text-danger ml-2 ms-2 d-none" id="contactUsMessageErrorLabel" for="contactUsMessage"> <i class="fas fa-exclamation"></i> <span id="contactUsMessageError"></span> </label> <textarea id="contactUsMessage" name="contactUsMessage" class="form-control" rows="8"></textarea> </div> <div class="form-group"> <button type="button" id="submitButton" class="form-control btn btn-outline-primary" onclick="ezysupport.sendContactUs();"> [[#{ezysupport_contact_us_submit}]] </button> </div> </form>
Code javascript:
var formData = ezyadmin.formDataToObject('contactUsForm'); $.ajax({ ... error: function (data, e) { ezyadmin.processUpdateApiErrors(formData, data); } });
Ví dụ trường hợp tên các trường của form không khớp với các trường trong dữ liệu trả về:
HTML của form:
<form id="changePasswordForm"> <div class="form-group row" th:if="${!hasAutoGeneratedPassword}"> <label for="changeOldPassword" class="col-sm-4 col-form-label"> [[#{old_password}]] </label> <div class="col-sm-8"> <label class="col-form-label text-danger d-none" id="changeOldPasswordErrorLabel" for="changeOldPassword"> <i class="far fa-times-circle"></i> <span id="changeOldPasswordError"></span> </label> <div class="input-group mb-3"> <input type="password" name="oldPassword" onkeydown="onKeyDownToChangePassword()" id="changeOldPassword" class="form-control" th:placeholder="#{old_password}"> </div> </div> </div> ... <div class="form-group row"> <label for="changeRetypePassword" class="col-sm-4 col-form-label"> [[#{retype_password}]] </label> <div class="col-sm-8"> <label class="col-form-label text-danger d-none" id="changeRetypePasswordErrorLabel" for="changeRetypePassword"> <i class="far fa-times-circle"></i> <span id="changeRetypePasswordError"></span> </label> <div class="input-group"> <input type="password" name="retypeNewPassword" onkeydown="onKeyDownToChangePassword()" id="changeRetypePassword" class="form-control" th:placeholder="#{retype_password}"> </div> </div> </div> </form>
var formView = { changeOldPassword: true, changeNewPassword: true, changeRetypePassword: true }; $.ajax({ ..., error: function (e) { var errors = e.responseJSON || {}; errors.changeOldPassword = errors.password; errors.changeNewPassword = errors.newPassword; ezyadmin.processUpdateApiErrors(formView, e); } });
Chúng ta sẽ cần tạo ra một form giả để map với các trường trong dữ liệu phản hồi tử server.
ezyadmin.hideFormErrors
Ẩn các thông báo lỗi khỏi form. Tham số truyền vào:
- formData - Object: Form chứa các trường dữ liệu được map với các trường bị lỗi trong dữ liệu phản hồi từ server.
Ví dụ:
ezyadmin.hideFormErrors(formData);
ezyadmin.resetFormData
Ẩn các thông báo lỗi và reset dữ liệu của form.
- formData - Object: Form chứa các trường dữ liệu được map với các trường bị lỗi trong dữ liệu phản hồi từ server.
Ví dụ:
ezyadmin.resetFormData(formData);
ezyadmin.getUploadFileApiErrorMessage
Parse và trả về mã message lỗi từ phản hồi của server khi gọi API upload file. Tham số truyền vào:
- responseData - Object: Dữ liệu phản hồi từ server.
Ví dụ:
var errorMessage = ezyadmin.getUploadFileApiErrorMessage(responseData);
ezyadmin.processUploadFileApiErrors
Xử lý trong trường hợp load file lỗi, nếu mã lỗi là 401
sẽ chuyển hướng sang trang login
. Tham số truyền vào:
- responseData - Object: Dữ liệu phản hồi từ server.
- uploadView - Object: Đối tượng chứa thông tin về giao diện upload file.
Ví dụ:
var releaseProjectView = { name: 'uploadProject', chooseFileLabelText: $('#releaseBundleFileLabel').text() }; ezyadmin.processUploadFileApiErrors(data, releaseProjectView);
ezyadmin.formatDateStringElements
Duyệt qua tất cả các phần tử có class là date-string
và chuyển đổi dữ liệu từ dạng timestamp sang dạng YYY-MM-DD
.
Ví dụ:
ezyadmin.formatDateStringElements();
ezyadmin.formatDateTimeStringElements
Duyệt qua tất cả các phần tử có class là date-time-string
và chuyển đổi dữ liệu từ dạng timestamp sang dạng YYY-MM-DD HH:mm:ss
.
Ví dụ:
ezyadmin.formatDateTimeStringElements();
ezyadmin.formatDateTimeMinuteStringElements
Duyệt qua tất cả các phần tử có class là date-time-minute-string
và chuyển đổi dữ liệu từ dạng timestamp sang dạng YYY-MM-DD HH:mm:ss
.
Ví dụ:
ezyadmin.formatDateTimeStringElements();
ezyadmin.formatStatusTextElements
Duyệt qua tất cả các phần tử có class là status-text
và bổ sung class color cho text.
Ví dụ:
ezyadmin.formatStatusTextElements();
ezyadmin.formatNumberWithCommasElements
Duyệt qua tất cả các phần tử có class là commas-number-string
và giá trị sang dạng dấu phẩy.
Ví dụ:
ezyadmin.formatNumberWithCommasElements();
ezyadmin.createDataTable
Tạo một data table. Tham số truyền vào:
- tableId - String: id của data table.
- pageLength - Number: Số lượng phần tử trên một trang.
- searching - Boolean: Cho phép tìm kiếm hay không.
Ví dụ:
ezyadmin.createDataTable('categoryList', 12);
Chú ý: để sử dụng được hàm này bạn phải bổ sung thư viện data table vào trang html của bạn. Bạn có thể sử dụng cdn.
ezyadmin.appendLangParameterToFormActions
Bổ sung tham số lang vào các form action.
Ví dụ:
ezyadmin.appendLangParameterToFormActions();
ezyadmin.appendLangParameterToLinks
Bổ sung tham số lang vào thuộc tính href của các thẻ a.
Ví dụ:
ezyadmin.appendLangParameterToLinks();
ezyadmin.onLanguageSelected
Chuyển trang sang ngôn ngữ mới khi người dùng chọn ngôn ngữ. Tham số truyền vào:
selectedLanguage - String: Mã ngôn ngữ được chọn.
Ví dụ:
th:attr="onclick=|ezyadmin.onLanguageSelected('${webLanguage.code}')|"
ezyadmin.fetchAdminsByIds
Lấy danh sách admin theo danh sách id. Tham số truyền vào:
- ids - Array: Danh sách các admin id.
- callback - Function: Hàm callback được gọi khi lấy danh sách admin thành công.
Ví dụ:
var fetchAdmins = callback => {
ezyadmin.fetchAdminsByIds(newFromAdminIds, (adminMap) => {
ezyadmin.mergeObjectsToFirst([ezyadmin.fromAdminById, adminMap]);
callback();
});
}
ezyadmin.fetchUsersByIds
Lấy danh sách user theo danh sách id. Tham số truyền vào:
- ids - Array: Danh sách các user id.
- callback - Function: Hàm callback được gọi khi lấy danh sách user thành công.
Ví dụ:
var fetchUsers = callback => {
ezyadmin.fetchUsersByIds(newFromUserIds, (userMap) => {
ezyadmin.mergeObjectsToFirst([ezyadmin.fromUserById, userMap]);
callback();
});
}