You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
208 lines
11 KiB
208 lines
11 KiB
'use strict';
|
|
var sProgramId = getProgramId(),
|
|
oGrid = null,
|
|
fnPageInit = function () {
|
|
var saLangTypes = [],
|
|
saLangCountries = [],
|
|
canDo = new CanDo({
|
|
sortField: 'LangId',
|
|
sortOrder: 'asc',
|
|
inserting: true,
|
|
/**
|
|
* 當前程式所有ID名稱集合
|
|
*/
|
|
idKeys: ['OrgID', 'ArgumentClassID', 'ArgumentID'],
|
|
/**
|
|
* Grid欄位設置(可以是 function)
|
|
*/
|
|
gridFields: function () {
|
|
return [
|
|
{ name: "RowIndex", title: 'common.RowNumber', editing: false, inserting: false, type: "text", width: 50, align: "center", sorting: false },
|
|
{ name: "Type", title: 'Language_Set.LanguageType', editing: false, align: "left", type: "select", items: saLangTypes, valueField: "id", textField: "name", width: 200 },
|
|
{ name: "Country", title: 'Language_Set.Language', editing: false, align: "left", type: "select", items: saLangCountries, valueField: "id", textField: "label", width: 100 },
|
|
{ name: "LangId", title: 'Language_Set.languageId_required', editing: false, type: "text", width: 200, validate: { validator: 'required', message: i18next.t("Language_Set.languageId_required") } },// ╠Language_Set.languageId_required⇒語系ID不能為空╣
|
|
{ name: "LangName", title: 'Language_Set.LanguageName', type: "text", width: 200 },
|
|
{ name: "Memo", title: 'common.Memo', type: "text", width: 200 },
|
|
{ type: "control" }
|
|
];
|
|
},
|
|
/**
|
|
* 客製化按鈕
|
|
* @param {Object} pargs CanDo 對象
|
|
*/
|
|
cusBtns: function (pargs) {
|
|
var saCusBtns = [{
|
|
id: 'CreateLangFile',
|
|
value: 'common.Toolbar_CreateLangFile',// ╠common.Toolbar_CreateLangFile⇒產生檔案╣
|
|
action: function (_pargs) {
|
|
fnCreateLangFile();
|
|
}
|
|
},
|
|
{
|
|
id: 'CopyLanguage',
|
|
value: 'common.Toolbar_CopyLanguage',// ╠common.Toolbar_CopyLanguage⇒語系複製╣
|
|
action: function (_pargs) {
|
|
fnCopyLanguageFile();
|
|
}
|
|
},
|
|
{
|
|
id: 'InitializeLanguage',
|
|
value: 'common.Toolbar_InitializeLanguage',// ╠common.Toolbar_InitializeLanguage⇒語系初始化╣
|
|
action: function (_pargs) {
|
|
fnInitializeLanguage();
|
|
}
|
|
}];
|
|
return saCusBtns;
|
|
},
|
|
/**
|
|
* 頁面初始化
|
|
* @param {Object} pargs CanDo 對象
|
|
*/
|
|
pageInit: function (pargs) {
|
|
$.when(fnSetLanguageTypeDrop(),
|
|
fnSetArgDrop([
|
|
{
|
|
ArgClassID: 'LanCountry',
|
|
Select: $('#Country'),
|
|
ShowId: true,
|
|
CallBack: function (data) {
|
|
saLangCountries = data;
|
|
}
|
|
}
|
|
])).done(function () {
|
|
pargs._reSetQueryPm();
|
|
pargs._initGrid();
|
|
});
|
|
}
|
|
}),
|
|
/**
|
|
* 設置語言類別下拉單
|
|
* @return {Object} Ajax 物件
|
|
*/
|
|
fnSetLanguageTypeDrop = function () {
|
|
return g_api.ConnectLite(canDo.ProgramId, 'GetSysHtmlPath', {
|
|
filepath: ''
|
|
}, function (res) {
|
|
if (res.RESULT) {
|
|
var saList = res.DATA.rel;
|
|
$.each(saList, function (idx, data) {
|
|
data.id = getProgramId(data.id);
|
|
data.name = data.name.split("/").slice(-1)[0].match(/^[a-zA-Z0-9_]*/g);
|
|
//data.name = data.name.split("/").slice(-1)[0].match(/^[a-zA-Z0-9_]*/g);
|
|
});
|
|
saList.unshift({ id: 'other', name: '其他' });
|
|
saList.unshift({ id: 'message', name: '提示消息' });
|
|
saList.unshift({ id: 'common', name: '公用' });
|
|
saLangTypes = saList;
|
|
|
|
var sOptionHtml = createOptions(saList, 'id', 'name');
|
|
$('#LanguageType').html(sOptionHtml);
|
|
}
|
|
else {
|
|
showMsg(res.MSG, 'error'); //更新失敗
|
|
}
|
|
});
|
|
},
|
|
/**
|
|
* 初始化多語系
|
|
*/
|
|
fnInitializeLanguage = function () {
|
|
g_api.ConnectLite('Language', 'InitializeLanguage', {}, function (res) {
|
|
if (res.RESULT) {
|
|
showMsg(i18next.t("message.Initialize_Success"), 'success'); // ╠message.Initialize_Success⇒初始化成功╣
|
|
}
|
|
else {
|
|
showMsg(i18next.t('message.Initialize_Failed') + '<br>' + res.MSG, 'error'); // ╠message.Initialize_Failed⇒初始化失敗╣
|
|
}
|
|
}, function () {
|
|
showMsg(i18next.t("message.Initialize_Failed"), 'error');// ╠message.Initialize_Failed⇒初始化失敗╣
|
|
});
|
|
},
|
|
/**
|
|
* 更新語系檔案
|
|
*/
|
|
fnCreateLangFile = function () {
|
|
g_api.ConnectLite('Language', 'CreateLangJson', {}, function (res) {
|
|
if (res.RESULT) {
|
|
showMsg(i18next.t("message.Createlanguage_Success"), 'success'); // ╠message.Createlanguage_Success⇒語系檔產生成功╣
|
|
}
|
|
else {
|
|
showMsg(i18next.t('message.Createlanguage_Failed') + '<br>' + res.MSG, 'error'); // ╠message.Createlanguage_Failed⇒語系檔產生失敗╣
|
|
}
|
|
}, function () {
|
|
showMsg(i18next.t("message.Createlanguage_Failed"), 'error'); // ╠message.Createlanguage_Failed⇒語系檔產生失敗╣
|
|
});
|
|
},
|
|
/**
|
|
* 複製語系
|
|
*/
|
|
fnCopyLanguageFile = function () {
|
|
var oValidator = null;
|
|
layer.open({
|
|
type: 2,
|
|
title: i18next.t('common.CopyLanguage'),// ╠common.CopyLanguage⇒語言複製╣
|
|
shade: 0.75,
|
|
maxmin: true, //开启最大化最小化按钮
|
|
area: ['600px', '240px'],
|
|
content: '/Page/Pop/CopyLanguage.html',
|
|
success: function (layero, index) {
|
|
var iframe = $('iframe').contents(),
|
|
sOptions = $('#Country').html();
|
|
iframe.find('#lang_from').html(sOptions);
|
|
iframe.find('#lang_to').html(sOptions);
|
|
|
|
$.validator.addMethod("comparlang_to", function (value, element, parms) {
|
|
if (value === iframe.find(parms).val()) {
|
|
return false;
|
|
}
|
|
return true;
|
|
});
|
|
oValidator = iframe.find("#CopyLanguage_form").validate({ //表單欄位驗證
|
|
rules: {
|
|
lang_from: 'required',
|
|
lang_to: { required: true, comparlang_to: '#lang_from' }
|
|
},
|
|
messages: {
|
|
lang_from: i18next.t('CopyLanguage.LangFrom_required'),// ╠CopyLanguage.LangFrom_required⇒請選擇來源語系╣
|
|
lang_to: { required: i18next.t('CopyLanguage.LangTo_required'), comparlang_to: i18next.t('CopyLanguage.LangTo_equalTo') }//╠CopyLanguage.LangTo_required⇒請選擇目的語系╣ ╠CopyLanguage.LangTo_equalTo⇒目的語系不能與來源語系一致╣
|
|
}
|
|
});
|
|
transLang(layero);
|
|
},
|
|
btn: [i18next.t('common.Confirm'), i18next.t('common.Cancel')],//╠common.Confirm⇒確定╣╠common.Cancel⇒取消╣
|
|
yes: function (index, layero) {
|
|
var iframe = $('iframe').contents();
|
|
if (!iframe.find("#CopyLanguage_form").valid()) {
|
|
oValidator.focusInvalid();
|
|
return false;
|
|
}
|
|
|
|
var sLang_from = iframe.find('#lang_from').val(),
|
|
sLang_to = iframe.find('#lang_to').val(),
|
|
data = { LangFrom: sLang_from, LangTo: sLang_to, UserId: parent.UserInfo.MemberID };
|
|
|
|
g_api.ConnectLite(canDo.ProgramId, 'CopyLanguage', data, function (res) {
|
|
if (res.RESULT) {
|
|
showMsg(i18next.t("message.CopyLanguage_Success")); //╠message.CopyLanguage_Success⇒語系複製成功╣
|
|
layer.close(index);
|
|
}
|
|
else {
|
|
if (res.MSG == "0") {
|
|
showMsg(i18next.t("message.CopyLanguage_Failed"), 'error'); //╠message.CopyLanguage_Failed⇒語言複製失敗╣
|
|
}
|
|
else if (res.MSG == "1") {
|
|
showMsg(i18next.t("message.Lang_From_NotFond"), 'error'); //╠message.Lang_From_NotFond⇒來源語系為空╣
|
|
}
|
|
else {
|
|
showMsg(res.MSG, 'error');
|
|
}
|
|
}
|
|
}, function () {
|
|
showMsg(i18next.t("message.CopyLanguage_Failed"), 'error');//╠message.CopyLanguage_Failed⇒語言複製失敗╣
|
|
});
|
|
}
|
|
});
|
|
};
|
|
};
|
|
|
|
require(['base', 'jsgrid', 'cando'], fnPageInit);
|