GitHub(nextgroup2706/ken_nogi)は今後使わず自社Gitea運用に切替え。 NodeSrvは旧リポジトリの履歴を破棄しファイルのみ統合(Dokploy用サービスアカウントは 別途mygit-admin/NodeSrv.gitに履歴あり)。notepmエクスポート(12GB)とPleasanter インストーラzip(208MB)はサイズが大きいため.gitignoreで除外。 Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
3.9 KiB
3.9 KiB
別記資料 スクリプト(Scripts)全文 (16/28)
/*
@config :
@filename : 02_添付ファイルDL.js
@title : 02_添付ファイルDL
@name :
@siteIds :
@siteTitles : 問合せ内容管理
@disabled: false
*/
/*
init内部
let attachColumns = $('.control-attachments');
$.each(attachColumns, function (index, value) {
let attach = value.dataset.name;
attachmentComments(attach);
attachFileCheckbox(attach);
})
*/
//----------------------------------------------------------------------
//添付ファイル項目にボタンの追加
function attachFileCheckbox(attach) {
//管理番号 Results_ClassX
let title = $('#Results_ClassX').val();
let colName = $('#Results_' + attach + 'Field label')[0].innerHTML;
let attachData = JSON.parse($p.getControl(attach).val());
let zipFilename = title + '■' + colName + '■';
//console.log(attachData.length);
if (attachData.length >= 1) {
$.each(attachData, function (index, value) {
let checkbox = document.createElement('input');
checkbox.type = 'checkbox';
checkbox.style.margin = '2px';
checkbox.style.float = 'left';
checkbox.name = attach + '_checkbox';
checkbox.id = value.Guid + '_checkbox';
checkbox.value = value.Guid;
$('#' + value.Guid).prepend(checkbox);
});
//ダウンロードボタン
let div = document.createElement('div');
let dlButton1 = document.createElement('button');
dlButton1.type = 'button';
dlButton1.id = attach + '_dlButton1';
dlButton1.style.marginRight = '5px';
dlButton1.innerHTML = '全ファイルDL';
dlButton1.setAttribute('attach', attach);
dlButton1.setAttribute('onclick', 'dlAllFiles("' + attach + '","' + zipFilename + '全ファイルDL' + '")');
let dlButton2 = document.createElement('button');
dlButton2.type = 'button';
dlButton2.id = attach + '_dlButton2';
dlButton2.style.marginRight = '5px';
dlButton2.innerHTML = '選択DL';
dlButton2.setAttribute('attach', attach);
dlButton2.setAttribute('onclick', 'dlSelectedFiles("' + attach + '","' + zipFilename + '選択DL' + '")');
div.style.margin = '5px';
div.style.marginTop = '0px';
div.style.marginLeft = '120px';
div.style.marginRight = '5px';
div.style.marginBottom = '10px';
div.style.clear = 'both';
div.append(dlButton1);
div.append(dlButton2);
$('#Results_' + attach + 'Field').after(div);
$('#' + attach + '_dlButton1').button({
icon: 'ui-icon-document'
});
$('#' + attach + '_dlButton2').button({
icon: 'ui-icon-document'
});
}
}
function dlSelectedFiles(attach, zipFilename) {
//console.log(zipFilename);
//チェックがついているもののみ
const fileList = $('input[name="' + attach + '_checkbox"]:checked');
let guidList = new Array();
for (item of fileList) {
//console.log(item);
guidList.push(item.value);
}
if (guidList.length > 0) {
dlZipAttachements(guidList, zipFilename);
}
}
function dlAllFiles(attach, zipFilename) {
let guidList = new Array();
//全部
const fileList = JSON.parse($p.getControl(attach).val());
for (item of fileList) {
guidList.push(item.Guid);
}
if (guidList.length > 0) {
dlZipAttachements(guidList, zipFilename);
}
}
/**
* 複数ファイルを1ファイルにzip圧縮してDLする
* @param guidList DLする添付ファイルのGUIDのリスト
* @param zipFilename zipファイル名
* @return なし
*/
async function dlZipAttachements(guidList, zipFilename) {
var binary;
var filename;
const zip = new JSZip();
const jsonReq = {
ApiVersion: 1.1
};
for (guid of guidList) {
// ...(次ファイルへ続く)