ken_nogi/Pleasanter/ケアセブン(リハ)/(仮)リハ訪問カレンダー_2026_08_28 09_22_46.json
Kenichiro NOGI ce58cb4be4 初回コミット: dev配下(NodeSrv/Pleasanter等)をGitea管理下に統合
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>
2026-09-04 15:37:06 +09:00

1968 lines
113 KiB
JSON
Raw Permalink Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

{
"HeaderInfo": {
"AssemblyVersion": "1.5.6.1",
"BaseSiteId": 482691,
"Server": "https://nextoffice.next-hd.co.jp/pleasanter",
"CreatorName": "野木 健一郎",
"PackageTime": "2026-08-28T09:22:45.7935807+09:00",
"Convertors": [
{
"SiteId": 482691,
"SiteTitle": "(仮)リハ訪問カレンダー",
"ReferenceType": "Sites",
"IncludeData": false,
"Order": "[0,482693,482703,482696,482701,482700,482697,482692,482694,482695,482698,482699,482702]"
},
{
"SiteId": 482700,
"SiteTitle": "例外予定日",
"ReferenceType": "Results",
"IncludeData": false
},
{
"SiteId": 482692,
"SiteTitle": "周回パターン",
"ReferenceType": "Results",
"IncludeData": false
},
{
"SiteId": 482694,
"SiteTitle": "カテゴリ管理",
"ReferenceType": "Results",
"IncludeData": false
},
{
"SiteId": 482693,
"SiteTitle": "リハ訪問カレンダー",
"ReferenceType": "Results",
"IncludeData": false
},
{
"SiteId": 482695,
"SiteTitle": "祝日・休日",
"ReferenceType": "Results",
"IncludeData": false
},
{
"SiteId": 482696,
"SiteTitle": "周回予定",
"ReferenceType": "Results",
"IncludeData": false
},
{
"SiteId": 482698,
"SiteTitle": "病院リスト",
"ReferenceType": "Results",
"IncludeData": false
},
{
"SiteId": 482699,
"SiteTitle": "主治医リスト",
"ReferenceType": "Results",
"IncludeData": false
},
{
"SiteId": 482697,
"SiteTitle": "担当一覧",
"ReferenceType": "Results",
"IncludeData": false
},
{
"SiteId": 482701,
"SiteTitle": "個別予定",
"ReferenceType": "Results",
"IncludeData": false
},
{
"SiteId": 482703,
"SiteTitle": "顧客リスト",
"ReferenceType": "Results",
"IncludeData": false
},
{
"SiteId": 482702,
"SiteTitle": "顧客リストのみ",
"ReferenceType": "Results",
"IncludeData": false
}
],
"IncludeSitePermission": true,
"IncludeRecordPermission": true,
"IncludeColumnPermission": true,
"IncludeNotifications": true,
"IncludeReminders": true
},
"Sites": [
{
"TenantId": 1,
"SiteId": 482691,
"Title": "(仮)リハ訪問カレンダー",
"SiteName": "",
"SiteGroupName": "",
"Body": "",
"GridGuide": "",
"EditorGuide": "",
"CalendarGuide": "",
"CrosstabGuide": "",
"GanttGuide": "",
"BurnDownGuide": "",
"TimeSeriesGuide": "",
"AnalyGuide": "",
"KambanGuide": "",
"ImageLibGuide": "",
"ReferenceType": "Sites",
"ParentId": 2244,
"InheritPermission": 482691,
"SiteSettings": {
"Version": 1.017,
"ReferenceType": "Sites",
"NoDisplayIfReadOnly": false,
"NotInheritPermissionsWhenCreatingSite": false
},
"Publish": false,
"DisableCrossSearch": false,
"Comments": []
},
{
"TenantId": 1,
"SiteId": 482700,
"Title": "例外予定日",
"SiteName": "",
"SiteGroupName": "",
"Body": "",
"GridGuide": "",
"EditorGuide": "",
"CalendarGuide": "",
"CrosstabGuide": "",
"GanttGuide": "",
"BurnDownGuide": "",
"TimeSeriesGuide": "",
"AnalyGuide": "",
"KambanGuide": "",
"ImageLibGuide": "",
"ReferenceType": "Results",
"ParentId": 482691,
"InheritPermission": 482691,
"SiteSettings": {
"Version": 1.017,
"ReferenceType": "Results",
"GridColumns": [
"ResultId",
"Title",
"DateB",
"Updator",
"UpdatedTime"
],
"EditorColumnHash": {
"General": [
"Title",
"ClassA",
"DateB",
"Body",
"_Links-482696"
]
},
"TitleColumns": [
"ClassA",
"DateB"
],
"LinkColumns": [
"ResultId",
"DateB",
"Body",
"Updator",
"UpdatedTime"
],
"Columns": [
{
"ColumnName": "ClassA",
"LabelText": "周回予定",
"ChoicesText": "[[482696]]",
"Link": true,
"SearchType": "PartialMatch"
},
{
"ColumnName": "DateB",
"LabelText": "例外予定日",
"NoWrap": true
},
{
"ColumnName": "ClassK",
"DefaultInput": "例外予定日"
}
],
"Links": [
{
"ColumnName": "ClassA",
"SiteId": 482696
}
],
"TitleSeparator": "■例外予定日■",
"NoDisplayIfReadOnly": false,
"NotInheritPermissionsWhenCreatingSite": false
},
"Publish": false,
"DisableCrossSearch": false,
"Comments": []
},
{
"TenantId": 1,
"SiteId": 482692,
"Title": "周回パターン",
"SiteName": "",
"SiteGroupName": "",
"Body": "",
"GridGuide": "[md]\n# ※新規追加禁止 すでに登録されているリストの色味だけ変更OK",
"EditorGuide": "[md]\n# ※新規追加禁止 すでに登録されているリストの色味だけ変更OK",
"CalendarGuide": "",
"CrosstabGuide": "",
"GanttGuide": "",
"BurnDownGuide": "",
"TimeSeriesGuide": "",
"AnalyGuide": "",
"KambanGuide": "",
"ImageLibGuide": "",
"ReferenceType": "Results",
"ParentId": 482691,
"InheritPermission": 482691,
"SiteSettings": {
"Version": 1.017,
"ReferenceType": "Results",
"GridColumns": [
"ResultId",
"ClassA",
"ClassB",
"ClassC",
"Updator",
"UpdatedTime"
],
"EditorColumnHash": {
"General": [
"Title",
"ClassA",
"ClassB",
"ClassC",
"Comments"
]
},
"TitleColumns": [
"ClassB"
],
"Columns": [
{
"ColumnName": "ClassA",
"LabelText": "コード",
"NoWrap": true
},
{
"ColumnName": "ClassB",
"LabelText": "パターン名",
"NoWrap": true,
"FieldCss": "field-wide"
},
{
"ColumnName": "ClassC",
"LabelText": "色",
"ChoicesText": "Lavender-Black\nSkyBlue-Black\nLightYellow-Black\nLightGreen-Black\nLightCyan-Black\nMistyRose-Black\nPeachPuff-Black\nWhite-Black\nLightGray-Black\nGold-Black\nPink-Black\nTurquoise-Black\nPowderBlue-Black\nPaleGreen-Black\nThistle-Black\nAliceBlue-Black\nBeige-Black\n",
"SearchType": "PartialMatch"
}
],
"ViewLatestId": 1,
"Views": [
{
"Id": 1,
"Name": "既定",
"DefaultMode": "Index",
"ColumnSorterHash": {
"ClassA": "asc"
},
"ApiColumnKeyDisplayType": 0,
"ApiColumnValueDisplayType": 0,
"CalendarSiteId": 0,
"ApiDataType": 0
}
],
"Scripts": [
{
"Title": "色見本表示",
"New": true,
"Edit": true,
"Body": "// ...existing code...\n\n// パステルカラー英語名リスト\nconst pastelColors = [];\n\n// テーブル生成関数\nfunction createPastelColorTable() {\n\n const select = document.getElementById('Results_ClassC');\n if (select) {\n pastelColors.length = 0;\n for (let i = 0; i < select.options.length; i++) {\n const value = select.options[i].value.trim();\n const bgColor = value.split('-')[0];\n const fontColor = value.split('-')[1];\n if (bgColor) {\n pastelColors.push({\n \"bgColor\": bgColor,\n \"fontColor\": fontColor\n });\n }\n }\n }\n\n let table = document.createElement('table');\n table.style.borderCollapse = 'collapse';\n table.style.margin = '20px';\n table.style.width = '100px';\n\n pastelColors.forEach(color => {\n let tr = document.createElement('tr');\n let td = document.createElement('td');\n td.textContent = color.bgColor;\n td.style.backgroundColor = color.bgColor;\n td.style.color = color.fontColor;\n td.style.padding = '8px 24px';\n td.style.border = '1px solid #ccc';\n td.style.fontWeight = 'bold';\n tr.appendChild(td);\n table.appendChild(tr);\n });\n\n const commentField = document.getElementById('CommentField');\n if (commentField) {\n commentField.innerHTML = '';\n commentField.appendChild(table);\n } else {\n document.body.appendChild(table);\n }\n\n const resultsClassC = $('#Results_ClassC').val();\n if (resultsClassC) {\n const bgColor = resultsClassC.split('-')[0].trim();\n const fontColor = resultsClassC.split('-')[1].trim();\n $('#Results_ClassC').css('background-color', bgColor);\n $('#Results_ClassC').css('color', fontColor);\n }\n\n}\n\n// ページロード時にテーブルを表示\nwindow.addEventListener('load', createPastelColorTable);\n\n$p.events.after_set = function (args) {\n //処理内容\n createPastelColorTable();\n}\n\n\n",
"Id": 1
},
{
"Title": "リストの色変更",
"Index": true,
"Body": "// グリッドロード時に色を適用\n$p.events.on_grid_load = function () {\n applyColorColumnBg();\n}\n\nfunction applyColorColumnBg() {\n const grid = document.getElementById('Grid');\n if (!grid) return;\n\n // 「色」列のインデックスを取得\n let colorColIndex = -1;\n const headerRows = grid.getElementsByTagName('tr');\n if (headerRows.length > 0) {\n const ths = headerRows[0].getElementsByTagName('th');\n for (let i = 0; i < ths.length; i++) {\n if (ths[i].textContent.trim() === '色') {\n colorColIndex = i;\n break;\n }\n }\n }\n if (colorColIndex === -1) return;\n\n // 2行目以降のtdセルの背景色を変更\n for (let i = 1; i < headerRows.length; i++) {\n const tds = headerRows[i].getElementsByTagName('td');\n if (tds.length > colorColIndex) {\n if (tds[colorColIndex].textContent.trim()) {\n const color = tds[colorColIndex].textContent.trim();\n const bgColor = color.split('-')[0].trim();\n const fontColor = color.split('-')[1].trim();\n\n tds[colorColIndex].style.backgroundColor = bgColor;\n tds[colorColIndex].style.color = fontColor;\n }\n }\n }\n}\n",
"Id": 2
}
],
"NoDisplayIfReadOnly": false,
"NotInheritPermissionsWhenCreatingSite": false
},
"Publish": false,
"DisableCrossSearch": false,
"Comments": []
},
{
"TenantId": 1,
"SiteId": 482694,
"Title": "カテゴリ管理",
"SiteName": "",
"SiteGroupName": "",
"Body": "",
"GridGuide": "",
"EditorGuide": "",
"CalendarGuide": "",
"CrosstabGuide": "",
"GanttGuide": "",
"BurnDownGuide": "",
"TimeSeriesGuide": "",
"AnalyGuide": "",
"KambanGuide": "",
"ImageLibGuide": "",
"ReferenceType": "Results",
"ParentId": 482691,
"InheritPermission": 482691,
"SiteSettings": {
"Version": 1.017,
"ReferenceType": "Results",
"GridColumns": [
"ResultId",
"ClassA",
"ClassB",
"ClassC",
"Updator",
"UpdatedTime"
],
"EditorColumnHash": {
"General": [
"Title",
"ClassA",
"ClassB",
"ClassC",
"Comments"
]
},
"TitleColumns": [
"ClassB"
],
"Columns": [
{
"ColumnName": "ClassA",
"LabelText": "コード",
"NoWrap": true,
"ValidateRequired": true
},
{
"ColumnName": "ClassB",
"LabelText": "パターン名",
"NoWrap": true,
"ValidateRequired": true,
"FieldCss": "field-wide"
},
{
"ColumnName": "ClassC",
"LabelText": "色",
"ChoicesText": "Red-White\nSkyBlue-Black\nYellow-Black\nLightGreen-Black\nCyan-Black\nMagenta-White\nOrange-Black\nWhite-Black\nLightGray-Black\nGold-Black\nDeepPink-White\nTurquoise-Black\nBlue-White\nGreen-White\nViolet-White\nBlack-White\nBrown-White\n",
"ValidateRequired": true,
"SearchType": "PartialMatch"
}
],
"ViewLatestId": 1,
"Views": [
{
"Id": 1,
"Name": "既定",
"DefaultMode": "Index",
"ColumnSorterHash": {
"ClassA": "asc"
},
"ApiColumnKeyDisplayType": 0,
"ApiColumnValueDisplayType": 0,
"CalendarSiteId": 0,
"ApiDataType": 0
}
],
"Scripts": [
{
"Title": "色見本表示",
"New": true,
"Edit": true,
"Body": "// ...existing code...\n\n// パステルカラー英語名リスト\nconst pastelColors = [];\n\n// テーブル生成関数\nfunction createPastelColorTable() {\n\n const select = document.getElementById('Results_ClassC');\n if (select) {\n pastelColors.length = 0;\n for (let i = 0; i < select.options.length; i++) {\n const value = select.options[i].value.trim();\n const bgColor = value.split('-')[0];\n const fontColor = value.split('-')[1];\n if (bgColor) {\n pastelColors.push({\n \"bgColor\": bgColor,\n \"fontColor\": fontColor\n });\n }\n }\n }\n\n let table = document.createElement('table');\n table.style.borderCollapse = 'collapse';\n table.style.margin = '20px';\n table.style.width = '100px';\n\n pastelColors.forEach(color => {\n let tr = document.createElement('tr');\n let td = document.createElement('td');\n td.textContent = color.bgColor;\n td.style.backgroundColor = color.bgColor;\n td.style.color = color.fontColor;\n td.style.padding = '8px 24px';\n td.style.border = '1px solid #ccc';\n td.style.fontWeight = 'bold';\n tr.appendChild(td);\n table.appendChild(tr);\n });\n\n const commentField = document.getElementById('CommentField');\n if (commentField) {\n commentField.innerHTML = '';\n commentField.appendChild(table);\n } else {\n document.body.appendChild(table);\n }\n\n const resultsClassC = $('#Results_ClassC').val();\n if (resultsClassC) {\n const bgColor = resultsClassC.split('-')[0].trim();\n const fontColor = resultsClassC.split('-')[1].trim();\n $('#Results_ClassC').css('background-color', bgColor);\n $('#Results_ClassC').css('color', fontColor);\n }\n\n}\n\n// ページロード時にテーブルを表示\nwindow.addEventListener('load', createPastelColorTable);\n\n$p.events.after_set = function (args) {\n //処理内容\n createPastelColorTable();\n}\n\n\n",
"Id": 1
},
{
"Title": "リストの色変更",
"Index": true,
"Body": "// グリッドロード時に色を適用\n$p.events.on_grid_load = function () {\n applyColorColumnBg();\n}\n\nfunction applyColorColumnBg() {\n const grid = document.getElementById('Grid');\n if (!grid) return;\n\n // 「色」列のインデックスを取得\n let colorColIndex = -1;\n const headerRows = grid.getElementsByTagName('tr');\n if (headerRows.length > 0) {\n const ths = headerRows[0].getElementsByTagName('th');\n for (let i = 0; i < ths.length; i++) {\n if (ths[i].textContent.trim() === '色') {\n colorColIndex = i;\n break;\n }\n }\n }\n if (colorColIndex === -1) return;\n\n // 2行目以降のtdセルの背景色を変更\n for (let i = 1; i < headerRows.length; i++) {\n const tds = headerRows[i].getElementsByTagName('td');\n if (tds.length > colorColIndex) {\n if (tds[colorColIndex].textContent.trim()) {\n const color = tds[colorColIndex].textContent.trim();\n const bgColor = color.split('-')[0].trim();\n const fontColor = color.split('-')[1].trim();\n\n tds[colorColIndex].style.backgroundColor = bgColor;\n tds[colorColIndex].style.color = fontColor;\n }\n }\n }\n}\n",
"Id": 2
}
],
"NoDisplayIfReadOnly": false,
"NotInheritPermissionsWhenCreatingSite": false
},
"Publish": false,
"DisableCrossSearch": false,
"Comments": []
},
{
"TenantId": 1,
"SiteId": 482693,
"Title": "リハ訪問カレンダー",
"SiteName": "",
"SiteGroupName": "",
"Body": "",
"GridGuide": "",
"EditorGuide": "",
"CalendarGuide": "",
"CrosstabGuide": "",
"GanttGuide": "",
"BurnDownGuide": "",
"TimeSeriesGuide": "",
"AnalyGuide": "",
"KambanGuide": "",
"ImageLibGuide": "",
"ReferenceType": "Results",
"ParentId": 482691,
"InheritPermission": 482691,
"SiteSettings": {
"Version": 1.017,
"ReferenceType": "Results",
"GridColumns": [],
"Styles": [
{
"Title": "ボーダー色変更",
"All": true,
"Body": ".fc-theme-standard td, .fc-theme-standard th {\n border: 1px solid #808080;\n}\n\n.fc .fc-col-header-cell-cushion {\n font-size: 1.5em;\n font-weight:bold;\n}\n\n.fc-v-event .fc-event-title {\n font-size: 1.2em;\n font-weight:bold;\n}\n\n.fc-event {\n border-width: 2px;\n}",
"Id": 1
},
{
"Title": "ローダー",
"All": true,
"Body": ".showVisibility {\n visibility: visible;\n}\n.hideVisibility {\n visibility: hidden;\n}\n\n.showDisplay {\n display: block;\n}\n\n.hideDisplay {\n display: none;\n}\n\n\n.loaderWindow {\n position: absolute;\n top: 0px;\n left: 0px;\n z-index: 99999;\n background-color: #fff;\n opacity: 0.5;\n display: 'block';\n}\n\n.sk-chase {\n width: 100px;\n height: 100px;\n position: relative;\n z-index: 9999;\n top: 50%;\n left: 50%;\n animation: sk-chase 2.5s infinite linear both;\n}\n\n.sk-chase-dot {\n width: 100%;\n height: 100%;\n position: absolute;\n left: 0;\n top: 0;\n animation: sk-chase-dot 2.0s infinite ease-in-out both;\n}\n\n.sk-chase-dot:before {\n content: '';\n display: block;\n width: 25%;\n height: 25%;\n background-color: grey;\n border-radius: 100%;\n animation: sk-chase-dot-before 2.0s infinite ease-in-out both;\n}\n\n.sk-chase-dot:nth-child(1) {\n animation-delay: -1.1s;\n}\n\n.sk-chase-dot:nth-child(2) {\n animation-delay: -1.0s;\n}\n\n.sk-chase-dot:nth-child(3) {\n animation-delay: -0.9s;\n}\n\n.sk-chase-dot:nth-child(4) {\n animation-delay: -0.8s;\n}\n\n.sk-chase-dot:nth-child(5) {\n animation-delay: -0.7s;\n}\n\n.sk-chase-dot:nth-child(6) {\n animation-delay: -0.6s;\n}\n\n.sk-chase-dot:nth-child(1):before {\n animation-delay: -1.1s;\n}\n\n.sk-chase-dot:nth-child(2):before {\n animation-delay: -1.0s;\n}\n\n.sk-chase-dot:nth-child(3):before {\n animation-delay: -0.9s;\n}\n\n.sk-chase-dot:nth-child(4):before {\n animation-delay: -0.8s;\n}\n\n.sk-chase-dot:nth-child(5):before {\n animation-delay: -0.7s;\n}\n\n.sk-chase-dot:nth-child(6):before {\n animation-delay: -0.6s;\n}\n\n@keyframes sk-chase {\n 100% {\n transform: rotate(360deg);\n }\n}\n\n@keyframes sk-chase-dot {\n 80%, 100% {\n transform: rotate(360deg);\n }\n}\n\n@keyframes sk-chase-dot-before {\n 50% {\n transform: scale(0.4);\n }\n\n 100%, 0% {\n transform: scale(1.0);\n }\n}",
"Id": 2
},
{
"Title": "行の高さ",
"All": true,
"Body": ".fc .fc-timegrid-slot {\n height: 2.0em;\n}",
"Id": 3
},
{
"Title": "改ページ",
"All": true,
"Body": ".pagebreak {\n break-after: page;\n}",
"Id": 4
}
],
"Scripts": [
{
"Title": "訪問カレンダー",
"All": true,
"Body": "loadcdn('script', 'https://cdn.jsdelivr.net/npm/rrule@2.6.4/dist/es5/rrule.min.js');\nloadcdn('script', 'https://cdn.jsdelivr.net/npm/fullcalendar-scheduler@6.1.8/index.global.min.js');\nloadcdn('script', 'https://cdn.jsdelivr.net/npm/@fullcalendar/rrule@6.1.8/index.global.min.js');\n\n//本番用\nlet kokyakuTableId = '482703';\nlet resourceTableId = '482697';\nlet reigaiTableId = '482700';\nlet shukaiTableId = '482696';\nlet kobetsuTableId = '482701';\nlet holidayTableId = '482695';\n\nlet apiKey = '6504c8a807677a3a576e10327f3c19876c55736ee45d4a845796b9e7f5e087bfd4bd0d8184863da8cf1733ca635111432ab334aea59102b06a96ee6d2c05190d';\n\nlet patternData = JSON.parse($('#patternData').val()) || [];\nlet categoryData = JSON.parse($('#categoryData').val()) || [];\nlet resourceCount;\n\nconst sleep = (second) => new Promise(resolve => setTimeout(resolve, second * 1000));\n\n////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////\n////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////\nwindow.addEventListener('load', function () {\n $('#NewMenuContainer').hide();\n\n let app = document.getElementById('Application');\n //////////////////////////////////////////////////\n let nowdate = document.createElement('div');\n nowdate.id = 'nowdate';\n //////////////////////////////////////////////////\n let saveDate = new Date();\n saveDate = new Date(saveDate.getFullYear(), saveDate.getMonth(), 1, 0, 0, 0);\n\n ////console.log(Cookies.get('nanairoCalSelectMonth'));\n if (!(Cookies.get('nanairoCalSelectMonth'))) {\n Cookies.set('nanairoCalSelectMonth', saveDate, {\n expires: 90,\n path: ''\n });\n nowdate.setAttribute('nowdate', new Date);\n } else {\n saveDate = new Date(Cookies.get('nanairoCalSelectMonth'));\n nowdate.setAttribute('nowdate', new Date(Cookies.get('nanairoCalSelectMonth')));\n }\n\n //////////////////////////////////////////////////\n let selectMonth = document.createElement('select');\n selectMonth.id = 'selectMonth';\n selectMonth.name = 'selectMonth';\n for (i = -2; i <= 6; i++) {\n let date0 = new Date();\n date0 = new Date(date0.getFullYear(), date0.getMonth(), 1, 0, 0, 0);\n date0.setMonth(date0.getMonth() + i);\n let option = document.createElement('option');\n option.value = date0;\n option.textContent = date0.getFullYear() + '年' + (date0.getMonth() + 1) + '月';\n if (date0.getTime() == saveDate.getTime()) {\n option.setAttribute('selected', 'selected');\n }\n selectMonth.appendChild(option);\n }\n\n ////console.log(selectMonth);\n\n\n //////////////////////////////////////////////////////////////////////////////////\n let buttonArea = document.createElement('div');\n buttonArea.id = 'buttonArea';\n\n let button0 = document.createElement('button');\n button0.type = 'button';\n button0.id = 'button0';\n button0.innerHTML = ' ▶顧客リスト ';\n button0.setAttribute('onclick', 'location.href=\"/pleasanter/items/' + kokyakuTableId + '/index/\"');\n\n buttonArea.append(button0);\n buttonArea.append(selectMonth);\n\n app.innerHTML = '';\n app.appendChild(nowdate);\n app.appendChild(buttonArea);\n\n ///////////////////\n $('#selectMonth').selectmenu({\n width: '150px',\n change: function (event, data) {\n ////console.log(data);\n let selectValue = new Date(data.item.value);\n Cookies.set('nanairoCalSelectMonth', selectValue, {\n expires: 90,\n path: ''\n });\n nowdate.setAttribute('nowdate', selectValue);\n initialize();\n $('.ui-selectmenu-text').css({\n 'font-weight': 'bold',\n 'font-size': '1.5em',\n });\n }\n });\n\n $('#selectMonth-button').css({\n 'margin': '0 5px 5px 0',\n });\n $('.ui-selectmenu-text').css({\n 'font-weight': 'bold',\n 'font-size': '1.5em',\n });\n\n ///////////////////\n $('#button0').css({\n 'margin': '0 5px 5px 0',\n 'font-size': '1.5em'\n });\n $('#button0').button();\n\n ///////////////////\n initialize();\n});\n\nfunction initialize() {\n\n c7s = new care7_Scheduler;\n c7s.createResource();\n c7s.createEvents();\n\n //////////////\n createCalendarContainer();\n\n c7s.createCalendar('cal1', 0);\n c7s.createCalendar('cal2', 1);\n c7s.createCalendar('cal3', 2);\n c7s.createCalendar('cal4', 3);\n c7s.createCalendar('cal5', 4);\n\n let rscCount = c7s.resources.length;\n for (i = 0; i <= 4; i++) {\n $(\"#cal1 th[role='columnheader']\").eq(i).css(\"border-right-width\", \"3px\");\n $(\"#cal2 th[role='columnheader']\").eq(i).css(\"border-right-width\", \"3px\");\n $(\"#cal3 th[role='columnheader']\").eq(i).css(\"border-right-width\", \"3px\");\n $(\"#cal4 th[role='columnheader']\").eq(i).css(\"border-right-width\", \"3px\");\n $(\"#cal5 th[role='columnheader']\").eq(i).css(\"border-right-width\", \"3px\");\n\n $(\"#cal1 th[role='columnheader']\").eq((5 + rscCount - 1) + (i * rscCount)).css(\"border-right-width\", \"3px\");\n $(\"#cal2 th[role='columnheader']\").eq((5 + rscCount - 1) + (i * rscCount)).css(\"border-right-width\", \"3px\");\n $(\"#cal3 th[role='columnheader']\").eq((5 + rscCount - 1) + (i * rscCount)).css(\"border-right-width\", \"3px\");\n $(\"#cal4 th[role='columnheader']\").eq((5 + rscCount - 1) + (i * rscCount)).css(\"border-right-width\", \"3px\");\n $(\"#cal5 th[role='columnheader']\").eq((5 + rscCount - 1) + (i * rscCount)).css(\"border-right-width\", \"3px\");\n\n $(\"#cal1 td[role='gridcell']\").eq(rscCount + (i * rscCount) - 1).css(\"border-right-width\", \"3px\");\n $(\"#cal1 td[role='gridcell']\").eq(rscCount + (i * rscCount) - 1 + (rscCount * 5)).css(\"border-right-width\", \"3px\");\n $(\"#cal2 td[role='gridcell']\").eq(rscCount + (i * rscCount) - 1).css(\"border-right-width\", \"3px\");\n $(\"#cal2 td[role='gridcell']\").eq(rscCount + (i * rscCount) - 1 + (rscCount * 5)).css(\"border-right-width\", \"3px\");\n $(\"#cal3 td[role='gridcell']\").eq(rscCount + (i * rscCount) - 1).css(\"border-right-width\", \"3px\");\n $(\"#cal3 td[role='gridcell']\").eq(rscCount + (i * rscCount) - 1 + (rscCount * 5)).css(\"border-right-width\", \"3px\");\n $(\"#cal4 td[role='gridcell']\").eq(rscCount + (i * rscCount) - 1).css(\"border-right-width\", \"3px\");\n $(\"#cal4 td[role='gridcell']\").eq(rscCount + (i * rscCount) - 1 + (rscCount * 5)).css(\"border-right-width\", \"3px\");\n $(\"#cal5 td[role='gridcell']\").eq(rscCount + (i * rscCount) - 1).css(\"border-right-width\", \"3px\");\n $(\"#cal5 td[role='gridcell']\").eq(rscCount + (i * rscCount) - 1 + (rscCount * 5)).css(\"border-right-width\", \"3px\");\n }\n\n getHolidays(2024);\n\n $(\"td[data-time='12:00:00'],td[data-time='12:15:00'],td[data-time='12:30:00'],td[data-time='12:45:00']\").css({\n \"background-color\": \"lightsteelblue\",\n \"opacity\": \"0.5\"\n });\n\n}\n\n////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////\n\nfunction getHolidays() {\n //日付処理\n //基準日を中心に前後1ヶ月\n let nowdate = new Date(document.getElementById('nowdate').getAttribute('nowdate'));\n let startdate = nowdate;\n startdate.setMonth(startdate.getMonth() - 1);\n startdate.setDate(1);\n startdate.setHours(0);\n startdate.setMinutes(0);\n startdate.setSeconds(0);\n let enddate = new Date(startdate);\n enddate.setMonth(enddate.getMonth() + 3);\n enddate.setMinutes(enddate.getMinutes() - 1);\n let startStr = startdate.getFullYear() + '/'\n + (startdate.getMonth() + 1).toString().padStart(2, '0') + '/'\n + startdate.getDate().toString().padStart(2, '0') + ' 00:00:00';\n\n let endStr = enddate.getFullYear() + '/'\n + (enddate.getMonth() + 1).toString().padStart(2, '0') + '/'\n + enddate.getDate().toString().padStart(2, '0') + ' 00:00:00';\n\n //console.log(startStr);\n //console.log(endStr);\n\n $p.apiGet({\n \"id\": holidayTableId,\n \"async\": false,\n \"data\": {\n \"ApiVersion\": 1.1,\n \"ApiKey\": apiKey,\n \"View\": {\n \"ColumnFilterHash\": {\n \"DateA\": '[\"' + startStr + ',' + endStr + '\"]'\n },\n }\n },\n \"done\": function (data) {\n ////console.log(data.Response.Data);\n $.each(data.Response.Data, function (index, value) {\n let classA = value.ClassHash.ClassA;\n let dateA = new Date(value.DateHash.DateA);\n ////console.log(dateA + \" \" + classA);\n\n let dateStr = dateA.getFullYear() + '-'\n + (dateA.getMonth() + 1).toString().padStart(2, '0') + '-'\n + dateA.getDate().toString().padStart(2, '0');\n\n $('th[data-date=\"' + dateStr + '\"]').css({ 'background-color': 'hotpink' });\n $('td[data-date=\"' + dateStr + '\"]').css({ 'background-color': 'hotpink' });\n\n let dateStr2 = dateA.getFullYear() + '年'\n + (dateA.getMonth() + 1) + '月'\n + dateA.getDate() + '日';\n $('a[aria-label=\"' + dateStr2 + '\"]').after(classA);\n\n });\n\n }\n });\n}\n////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////\nfunction care7_Scheduler() {\n calObj = {};\n this.events = [];\n this.resources = [];\n this.resourceCount;\n this.myCalendar = null;\n}\n\nwindow.addEventListener('beforeprint', (event) => {\n //console.log('Before print');\n event.stopImmediatePropagation();\n event.preventDefault();\n});\n\nwindow.addEventListener('afterprint', (event) => {\n //console.log('After print');\n event.stopImmediatePropagation();\n event.preventDefault();\n});\n\n\n////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////\n//リソース(担当看護師一覧)取得\ncare7_Scheduler.prototype.createResource = function () {\n let resource = [];\n\n $p.apiGet({\n \"id\": resourceTableId,\n \"async\": false,\n \"data\": {\n \"ApiVersion\": 1.1,\n \"ApiKey\": apiKey,\n \"View\": {\n \"ColumnSorterHash\": {\n \"Title\": \"ASC\"\n }\n }\n },\n \"done\": function (data) {\n //console.log(data);\n $.each(data.Response.Data, function (index, value) {\n let member = {\n id: value.ResultId,\n title: value.Title\n }\n resource.push(member);\n });\n resourceCount = data.Response.TotalCount;\n }\n });\n\n this.resources = resource;\n}\n\n////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////\ncare7_Scheduler.prototype.createEvents = function () {\n let eventList = [];\n let exEvent = {};\n let nowdate = new Date(document.getElementById('nowdate').getAttribute('nowdate'));\n let startdate = nowdate;\n startdate.setDate(1);\n startdate.setHours(0);\n startdate.setMinutes(0);\n startdate.setSeconds(0);\n let enddate = new Date(startdate);\n enddate.setMonth(enddate.getMonth() + 1);\n enddate.setMinutes(enddate.getMinutes() - 1);\n\n let startStr = startdate.getFullYear() + '/' + (\"00\" + (startdate.getMonth() + 1)).slice(-2) + '/' + (\"00\" + startdate.getDate()).slice(-2) + ' 00:00:00';\n let endStr = enddate.getFullYear() + '/' + (\"00\" + (enddate.getMonth() + 1)).slice(-2) + '/' + (\"00\" + enddate.getDate()).slice(-2) + ' 00:00:00';\n\n ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////\n //例外予定取得\n $p.apiGet({\n \"id\": reigaiTableId,\n \"async\": false,\n \"data\": {\n \"ApiVersion\": 1.1,\n \"ApiKey\": apiKey,\n \"View\": {\n \"ColumnFilterHash\": {\n \"DateB\": '[\"' + startStr + ',' + endStr + '\"]'\n },\n \"ColumnSorterHash\": {\n \"Title\": \"ASC\"\n }\n }\n },\n \"done\": function (data) {\n //console.log(data.Response.Data);\n $.each(data.Response.Data, function (index, value) {\n if (Array.isArray(exEvent[value.ClassHash.ClassA]) == false) {\n exEvent[value.ClassHash.ClassA] = new Array;\n }\n exEvent[value.ClassHash.ClassA].push(value.DateHash.DateB.split('T')[0]);\n });\n }\n });\n ////console.log(exEvent);\n\n ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////\n //周回予定取得\n $p.apiGet({\n \"id\": shukaiTableId,\n \"async\": false,\n \"data\": {\n \"ApiVersion\": 1.1,\n \"ApiKey\": apiKey,\n \"View\": {\n \"ColumnSorterHash\": {\n \"Title\": \"ASC\"\n }\n }\n },\n \"done\": function (data) {\n //console.log(data.Response.Data);\n $.each(data.Response.Data, function (index, value) {\n let nowdate = new Date(document.getElementById('nowdate').getAttribute('nowdate'));\n let startdate = nowdate;\n startdate.setDate(1);\n startdate.setHours(0);\n startdate.setMinutes(0);\n startdate.setSeconds(0);\n let enddate = new Date(startdate);\n enddate.setMonth(enddate.getMonth() + 1);\n enddate.setMinutes(enddate.getMinutes() - 1);\n\n let flag = 1;\n\n ////console.log(startdate);\n ////console.log(enddate);\n\n let id = value.ResultId;\n let title = value.ClassHash.ClassB;\n let freqId = value.ClassHash.ClassC;\n\n let time = value.ClassHash.ClassE + ':00';\n let duration = value.ClassHash.ClassF;\n let category = value.ClassHash.ClassG;\n\n let date = 1;\n date = value.ClassHash.ClassH; //指定週\n\n\n //開始日よりも月末日があとの場合は除外\n let activeStartTime = '';\n if (value.DateHash.DateE != '1899-12-30T00:00:00') {\n activeStartTime = new Date(value.DateHash.DateE);\n\n if (enddate.getTime() <= activeStartTime.getTime()) {\n //console.log('開始日判定 除外 : ' + title)\n return true;\n }\n }\n\n //終了日よりも月初日のほうが手前の場合除外\n let activeEndTime = '';\n if (value.DateHash.DateF != '1899-12-30T00:00:00') {\n activeEndTime = new Date(value.DateHash.DateF);\n\n if (startdate.getTime() >= activeEndTime.getTime()) {\n //console.log('終了日判定 除外 : ' + title)\n return true;\n }\n }\n\n\n //リソースID変換\n let str = value.ClassHash.ClassV;\n str = str.replaceAll('\"', '');\n str = str.replaceAll('[', '');\n str = str.replaceAll(']', '');\n let resourceIds = new Array;\n resourceIds = str.split(',');\n\n //曜日返還\n str = value.ClassHash.ClassD;\n str = str.replaceAll('\"', '');\n str = str.replaceAll('[', '');\n str = str.replaceAll(']', '');\n let byweekday = new Array;\n byweekday = str.split(',');\n\n let freq = 'weekly';\n let interval = 1;\n let count = 999;\n\n let bysetpos;\n\n if (freqId == 2) { //第1,3週\n freq = 'monthly';\n interval = 1;\n bysetpos = [1, 3];\n } else if (freqId == 3) { //第2,4週\n freq = 'monthly';\n interval = 1;\n bysetpos = [2, 4];\n } else if (freqId == 4) { //毎月\n freq = 'monthly';\n interval = 10;\n bysetpos = [date];\n } else if (freqId == 5) { //奇数月\n if ((startdate.getMonth() + 1) % 2 == 0) { //カレンダー月が偶数の場合はスキップ\n //startdate.setMonth(startdate.getMonth() + 1);\n //console.log('偶数のため除外 : ' + title);\n return true;\n } else {\n //console.log('奇数月 : ' + title);\n }\n freq = 'monthly';\n interval = 10;\n bysetpos = [date];\n } else if (freqId == 6) { //偶数月\n if ((startdate.getMonth() + 1) % 2 != 0) { //カレンダー月が奇数の場合はスキップ\n //startdate.setMonth(startdate.getMonth() + 1);\n //console.log('奇数月のため除外 : ' + title);\n return true;\n } else {\n //console.log('偶数月 : ' + title);\n }\n freq = 'monthly';\n interval = 10;\n bysetpos = [date];\n } else if (freqId >= 7) { //3ヶ月毎1,4,7,10\n let monthList = [];\n\n if (freqId == 7) monthList = [1, 4, 7, 10];\n if (freqId == 8) monthList = [2, 5, 8, 11];\n if (freqId == 9) monthList = [3, 6, 9, 12];\n\n let checkMonth = (startdate.getMonth() + 1);\n if (monthList.includes(checkMonth)) { //カレンダー月がリストに含まれてたら\n freq = 'monthly';\n interval = 10;\n bysetpos = [date];\n //console.log('3ヶ月パターン : ' + freqId + ' : ' + title);\n //console.log(title);\n } else {\n //console.log('該当月ではないため除外 : ' + title);\n return true;\n }\n }\n\n let dtstart = '';\n let until = '';\n\n dtstart = startdate.getFullYear() +\n '-' + (\"00\" + (startdate.getMonth() + 1)).slice(-2) +\n '-' + (\"00\" + startdate.getDate()).slice(-2) +\n 'T' + time;\n\n until = enddate.getFullYear() +\n '-' + (\"00\" + (enddate.getMonth() + 1)).slice(-2) +\n '-' + (\"00\" + enddate.getDate()).slice(-2) +\n 'T' + time;\n\n //ピンポイント備考の取得\n let comments = [];\n for (i = 1; i <= 5; i++) {\n if (value.ClassHash['Class' + i.toString().padStart(3, 0)] != '') {\n comments.push({\n 'commentDate': new Date(value.DateHash['Date' + i.toString().padStart(3, 0)]),\n 'comment': value.ClassHash['Class' + i.toString().padStart(3, 0)]\n })\n }\n }\n\n ////console.log(resourceIds);\n let event = {\n 'id': id,\n 'title': title,\n 'resourceIds': resourceIds,\n 'duration': duration,\n 'textColor': '#000000',\n // borderColor: '#000000',\n 'extendedProps': {\n 'description': value.Body,\n 'category': 'その他',\n 'type': 2,\n 'byweekday': byweekday,\n 'comments': comments,\n },\n 'rrule': {\n 'freq': freq,\n 'interval': interval,\n 'byweekday': byweekday,\n 'dtstart': dtstart,\n 'count': count,\n 'until': until,\n },\n 'exdate': [],\n }\n\n event.extendedProps.category = categoryData[category].name;\n\n switch (freqId) {\n case 2:\n case 3:\n event.rrule.bysetpos = bysetpos;\n break;\n case 4:\n case 5:\n case 6:\n case 7:\n case 8:\n case 9:\n event.extendedProps.type = 3;\n break;\n }\n\n if (freqId == 1) {//毎週\n event.backgroundColor = categoryData[category].bgColor;\n event.textColor = categoryData[category].fontColor;\n event.borderColor = categoryData[category].bgColor;\n } else {//その他\n event.rrule.bysetpos = bysetpos;\n event.backgroundColor = patternData[freqId].bgColor;\n event.textColor = patternData[freqId].fontColor;\n event.borderColor = patternData[freqId].bgColor;\n }\n\n\n //例外予定日処理\n if (Array.isArray(exEvent[id]) == true) {\n for (i = 0; i < exEvent[id].length; i++) {\n exEvent[id][i] = exEvent[id][i] + 'T' + time;\n }\n event.exdate = exEvent[id];\n }\n\n //開始日が月初日よりもあとの場合、月初日から開始日の前日までを例外日に追加\n if (value.DateHash.DateE != '1899-12-30T00:00:00') {\n activeStartTime.setDate(activeStartTime.getDate() - 1);\n if (startdate.getTime() <= activeStartTime.getTime()) {\n //let dates = [];\n let tempDate = new Date(startdate);\n while (tempDate.getTime() <= activeStartTime.getTime()) {\n let dateStr = tempDate.getFullYear() + '-' +\n (tempDate.getMonth() + 1).toString().padStart(2, '0') + '-' +\n tempDate.getDate().toString().padStart(2, '0');\n event.exdate.push(dateStr + 'T' + time);\n tempDate.setDate(tempDate.getDate() + 1);\n }\n //console.log(event.exdate);\n }\n }\n\n //終了日が月末日よりもまえの場合、終了日の翌日から月末日までを例外日に追加\n if (value.DateHash.DateF != '1899-12-30T00:00:00') {\n activeEndTime.setDate(activeEndTime.getDate() + 1);\n if (enddate.getTime() >= activeEndTime.getTime()) {\n //let dates = [];\n let tempDate = new Date(activeEndTime);\n while (tempDate.getTime() <= enddate.getTime()) {\n let dateStr = tempDate.getFullYear() + '-' +\n (tempDate.getMonth() + 1).toString().padStart(2, '0') + '-' +\n tempDate.getDate().toString().padStart(2, '0');\n event.exdate.push(dateStr + 'T' + time);\n tempDate.setDate(tempDate.getDate() + 1);\n }\n }\n //console.log(event.exdate);\n }\n\n eventList.push(event);\n\n });\n\n //console.log(eventList);\n }\n });\n\n ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////\n //個別予定取得\n $p.apiGet({\n \"id\": kobetsuTableId,\n \"async\": false,\n \"data\": {\n \"ApiVersion\": 1.1,\n \"ApiKey\": apiKey,\n \"View\": {\n \"ColumnFilterHash\": {\n \"DateA\": '[\"' + startStr + ',' + endStr + '\"]'\n },\n \"ColumnSorterHash\": {\n \"Title\": \"ASC\"\n }\n }\n },\n \"done\": function (data) {\n //console.log(data.Response.Data);\n $.each(data.Response.Data, function (index, value) {\n let id = value.ResultId;\n let title = value.ClassHash.ClassB;\n let time = value.ClassHash.ClassE + ':00';\n let duration = value.ClassHash.ClassF;\n let category = value.ClassHash.ClassG;\n //リソースID変換\n let str = value.ClassHash.ClassV;\n str = str.replaceAll('\"', '');\n str = str.replaceAll('[', '');\n str = str.replaceAll(']', '');\n let resourceIds = new Array;\n resourceIds = str.split(',');\n let start = new Date(value.DateHash.DateA);\n start.setHours(time.split(':')[0]);\n start.setMinutes(time.split(':')[1]);\n\n let end = new Date(start);\n if (category == '4') {\n end.setHours(end.getHours() + 1);\n end.setMinutes(end.getMinutes());\n } else {\n end.setHours(end.getHours() + Number(duration.split(':')[0]));\n end.setMinutes(end.getMinutes() + Number(duration.split(':')[1]));\n }\n\n let comments = [];\n let commentDate = new Date(start.getFullYear(), start.getMonth(), start.getDate(), 0, 0, 0);\n if (value.ClassHash.Class001 != '') {\n comments.push({\n 'commentDate': commentDate,\n 'comment': value.ClassHash.Class001\n });\n }\n let event = {};\n if (category == 4) {\n event = {\n 'id': id,\n 'title': title,\n 'resourceIds': resourceIds,\n 'start': start,\n 'end': end,\n 'allDay': true,\n 'textColor': '#000000',\n 'borderColor': 'black',\n 'extendedProps': {\n 'description': value.Body,\n 'category': category,\n 'type': 1,\n 'comments': comments,\n }\n }\n } else {\n event = {\n 'id': id,\n 'title': title,\n 'resourceIds': resourceIds,\n 'start': start,\n 'end': end,\n //'textColor': '#000000',\n 'borderColor': 'red',\n 'extendedProps': {\n 'description': value.Body,\n 'category': category,\n 'type': 1,\n 'comments': comments,\n }\n }\n }\n\n event.extendedProps.category = categoryData[category].name;\n event.backgroundColor = categoryData[category].bgColor\n event.textColor = categoryData[category].fontColor;\n\n eventList.push(event);\n\n });\n }\n });\n\n this.events = eventList;\n ////console.log(this.events);\n\n}\n\n////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////\ncare7_Scheduler.prototype.createCalendar = function (calid, num) {\n ////console.log(calid);\n let calendarEl = document.getElementById(calid);\n // let date1 = new Date();\n let date1 = new Date(document.getElementById('nowdate').getAttribute('nowdate'));\n date1.setDate(1);\n let weekDay = date1.getDay();\n\n if (weekDay == 0) {\n date1.setDate(date1.getDate() + 1);\n } else if (weekDay == 6) {\n date1.setDate(date1.getDate() + 2);\n } else {\n date1.setDate(date1.getDate() - weekDay + 1);\n }\n date1.setDate(date1.getDate() + (num * 7));\n\n //let myCalendar = new FullCalendar.Calendar(calendarEl, {\n calObj[calid] = new FullCalendar.Calendar(calendarEl, {\n schedulerLicenseKey: 'CC-Attribution-NonCommercial-NoDerivatives',\n firstDay: 1,\n rerenderDelay: 500,\n droppable: true,\n now: new Date(1900, 1, 1),\n initialDate: date1,\n weekends: false,\n editable: true, //編集機能\n locale: 'ja', //日本語表記\n initialView: 'resourceTimeGridFiveDay',\n headerToolbar: false,\n datesAboveResources: true,\n contentHeight: 'auto',\n allDaySlot: true,\n allDayText: '備考',\n slotDuration: '00:20:00',\n slotLabelInterval: '01:00',\n slotMinTime: '08:00:00',\n slotMaxTime: '17:00:00',\n views: {\n resourceTimeGridFiveDay: {\n type: 'resourceTimeGrid',\n duration: {\n days: 5\n }\n },\n },\n resources: this.resources,\n resourceOrder: 'title',\n //events: this.events,\n events: function (fetchInfo, successCallback, failureCallback) {\n successCallback(c7s.events);\n },\n eventClick: function (info) {\n openEventData(info);\n },\n eventContent: function (eventInfo) {\n ////console.log(eventInfo);\n\n let timetext_ele = document.createElement('div');\n let category_ele = document.createElement('div');\n let length = 10000;\n\n let sHour;\n let sHourStr;\n\n let sMinutes;\n let sMinutesStr\n\n let eHour;\n let eHourStr;\n\n let eMinutes;\n let eMinutesStr;\n\n if (eventInfo.event.extendedProps.category != '備考') {\n sHour = eventInfo.event.start.getHours();\n sHourStr = sHour.toString().padStart(2, '0');\n\n sMinutes = eventInfo.event.start.getMinutes();\n sMinutesStr = sMinutes.toString().padStart(2, '0');\n\n eHour = eventInfo.event.end.getHours();\n eHourStr = eHour.toString().padStart(2, '0');\n\n eMinutes = eventInfo.event.end.getMinutes();\n eMinutesStr = eMinutes.toString().padStart(2, '0');\n\n length = (eHour * 60 + eMinutes) - (sHour * 60 + sMinutes)\n\n timetext_ele.innerHTML = sHourStr + ':' + sMinutesStr + '-' + eHourStr + ':' + eMinutesStr;\n timetext_ele.style.fontSize = '70%';\n category_ele.style.fontSize = '70%';\n category_ele.style.fontWeight = 'bold';\n category_ele.innerHTML = '[' + eventInfo.event.extendedProps.category + ']';\n }\n\n let title_ele = document.createElement('div');\n title_ele.style.fontSize = '120%';\n title_ele.style.fontWeight = 'bold';\n //title_ele.innerHTML = eventInfo.event.title;\n title_ele.innerHTML = eventInfo.event.title.replace(/\\s+/g, '');\n\n let comments_ele = document.createElement('div');\n\n ////ピンポイント備考\n let comments = eventInfo.event.extendedProps.comments;\n if (comments.length) {\n ////console.log(comments);\n let eventDate = new Date(eventInfo.event.start.getFullYear(), eventInfo.event.start.getMonth(), eventInfo.event.start.getDate(), 0, 0, 0);\n for (i = 0; i < comments.length; i++) {\n if ((comments[i].commentDate).getTime() == eventDate.getTime()) {\n ////console.log(comments[i]);\n comments_ele.innerHTML = comments[i].comment;\n\n //コメントがある場合に限り、枠が30分以下の場合、行間を狭める\n if (length <= 30) {\n title_ele.style.fontSize = '100%';\n title_ele.style.lineHeight = '11px';\n timetext_ele.style.lineHeight = '11px';\n category_ele.style.lineHeight = '11px';\n\n }\n\n }\n }\n }\n\n comments_ele.style.fontSize = '70%';\n comments_ele.style.fontWeight = 'bold';\n comments_ele.style.color = 'red';\n comments_ele.style.backgroundColor = 'white';\n comments_ele.style.overflowWrap = 'anywhere';\n comments_ele.style.lineHeight = '11px';\n\n let description_ele = document.createElement('pre');\n description_ele.innerHTML = eventInfo.event.extendedProps.description;\n description_ele.style.fontSize = '70%';\n\n let ele = document.createElement('div');\n ele.appendChild(timetext_ele);\n ele.appendChild(category_ele);\n ele.appendChild(title_ele);\n if (eventInfo.event.extendedProps.category == '備考') {\n ele.appendChild(description_ele);\n }\n ele.appendChild(comments_ele);\n\n let arrayOfDomNodes = [ele];\n return {\n domNodes: arrayOfDomNodes\n }\n },\n ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////\n snapDuration: '00:15:00',\n //イベント移動、リサイズ\n eventResize: function (eventResizeInfo) {\n eventDataUpdate(eventResizeInfo);\n c7s.createEvents();\n calObj.cal1.refetchEvents();\n calObj.cal2.refetchEvents();\n calObj.cal3.refetchEvents();\n calObj.cal4.refetchEvents();\n calObj.cal5.refetchEvents();\n },\n eventDrop: function (eventDropInfo) {\n eventDataUpdate(eventDropInfo);\n c7s.createEvents();\n calObj.cal1.refetchEvents();\n calObj.cal2.refetchEvents();\n calObj.cal3.refetchEvents();\n calObj.cal4.refetchEvents();\n calObj.cal5.refetchEvents();\n },\n eventReceive: function (info) {\n if (info.event.extendedProps.type == 1) {\n eventDataUpdate(info);\n c7s.createEvents();\n }\n info.event.remove();\n calObj.cal1.refetchEvents();\n calObj.cal2.refetchEvents();\n calObj.cal3.refetchEvents();\n calObj.cal4.refetchEvents();\n calObj.cal5.refetchEvents();\n },\n });\n calObj[calid].render();\n ////console.log(calObj[calid].getEvents());\n ////console.log(myCalendar.getEventById(2));\n\n}\n////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////\nfunction eventDataUpdate(info) {\n ////console.log(info);\n let week = ['su', 'mo', 'tu', 'we', 'th', 'fr', 'sa'];\n let type = info.event.extendedProps.type;\n //リソースリスト作成\n let resourceIds = '';\n $.each(info.event._def.resourceIds, function (index, value) {\n if (index == 0) resourceIds += '\"' + value + '\"';\n if (index != 0) resourceIds += ',\"' + value + '\"';\n });\n\n //開始時間算出\n let starttime = info.event.start.getHours().toString().padStart(2, '0') + \":\" +\n info.event.start.getMinutes().toString().padStart(2, '0');\n let startdate = info.event.start.getFullYear() + '/' +\n (info.event.start.getMonth() + 1).toString().padStart(2, '0') + '/' +\n info.event.start.getDate().toString().padStart(2, '0') + ' 00:00:00';\n\n //長さ算出\n let diff = new Date(info.event.end - info.event.start);\n diff.setHours(diff.getHours() - 9);\n let duration = diff.getHours().toString().padStart(2, '0') + ':' +\n diff.getMinutes().toString().padStart(2, '0');\n\n ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////\n //個別予定の更新\n if (type == 1) {\n let eventData = {\n id: info.event.id,\n startdate: startdate,\n starttime: starttime,\n duration: duration,\n }\n\n $p.apiUpdate({\n id: eventData.id,\n data: {\n ApiVersion: 1.0,\n DateHash: {\n DateA: eventData.startdate\n },\n ClassHash: {\n ClassE: eventData.starttime,\n ClassF: eventData.duration,\n ClassV: '[' + resourceIds + ']'\n }\n },\n done: function (data) {\n ////console.log(data);\n },\n fail: function (data) {\n //console.log(data);\n },\n });\n ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////\n //周回予定(週)の更新\n } else if (type == 2 || type == 3) {\n let eventData = {\n id: info.event.id,\n newweekday: week[info.event.start.getDay()],\n oldweekday: week[info.oldEvent.start.getDay()],\n weekList: info.event.extendedProps.byweekday,\n starttime: starttime,\n duration: duration,\n }\n\n eventData.weekList.forEach(function (element, index) {\n if (element == eventData.oldweekday) {\n eventData.weekList[index] = eventData.newweekday;\n }\n });\n let byweekday = '\"' + eventData.weekList.join('\",\"') + '\"';\n ////console.log(eventData);\n\n $p.apiUpdate({\n id: eventData.id,\n data: {\n ApiVersion: 1.0,\n ClassHash: {\n ClassE: eventData.starttime,\n ClassF: eventData.duration,\n ClassD: '[' + byweekday + ']',\n ClassV: '[' + resourceIds + ']'\n }\n },\n done: function (data) {\n ////console.log(data);\n },\n fail: function (data) {\n //console.log(data);\n },\n });\n\n ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////\n //周回予定(月)の更新\n }\n\n}\n\n////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////\n//カレンダー保管コンテナの作成\nfunction createCalendarContainer() {\n let app = document.getElementById('Application');\n\n if ($('#myCalContainer')[0]) {\n $('#myCalContainer').remove();\n }\n let myCalContainer = document.createElement('div');\n\n let cal1 = document.createElement('div');\n let cal2 = document.createElement('div');\n let cal3 = document.createElement('div');\n let cal4 = document.createElement('div');\n let cal5 = document.createElement('div');\n\n cal1.style.backgroundColor = '#e6e6fa';\n cal2.style.backgroundColor = '#ffffe0';\n cal3.style.backgroundColor = '#e0ffff';\n cal4.style.backgroundColor = '#ffb6c1';\n cal5.style.backgroundColor = '#dcdcdc';\n\n myCalContainer.id = 'myCalContainer';\n\n //myCalContainer.style.width = '2200px';\n let containerWidth = (resourceCount * 80) * 5 + 100;\n myCalContainer.style.width = containerWidth + 'px';\n\n myCalContainer.style.float = 'left';\n myCalContainer.style.padding = '0px';\n myCalContainer.style.margin = '0px';\n\n cal1.id = 'cal1';\n cal2.id = 'cal2';\n cal3.id = 'cal3';\n cal4.id = 'cal4';\n cal5.id = 'cal5';\n\n let pageBreak1 = document.createElement('div');\n pageBreak1.classList.add('pagebreak');\n let pageBreak2 = document.createElement('div');\n pageBreak2.classList.add('pagebreak');\n\n myCalContainer.appendChild(cal1);\n myCalContainer.appendChild(cal2);\n myCalContainer.appendChild(pageBreak1);\n myCalContainer.appendChild(cal3);\n myCalContainer.appendChild(cal4);\n myCalContainer.appendChild(pageBreak2);\n myCalContainer.appendChild(cal5);\n\n // app.innerHTML = '';\n // app.appendChild(buttonArea);\n app.appendChild(myCalContainer);\n\n $('#Footer').css(\"display\", 'none');\n\n}\n\n////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////\n//イベント編集画面を開く\n\nfunction openEventData(info) {\n let windowName = 'Care7EventData';\n let url = 'https://' + document.domain + '/pleasanter/items/' + info.event.id;\n let option = 'width=1100px,height=800px,scrollbars = 0';\n window.open(url, windowName, option);\n\n}\n",
"Id": 1
}
],
"Htmls": [
{
"Title": "外部ライブラリ",
"PositionType": 1000,
"All": true,
"Disabled": true,
"Body": "<script src=\"https://cdn.jsdelivr.net/npm/rrule@2.8.1/dist/es5/rrule.min.js\"></script>\n<script src=\"https://cdn.jsdelivr.net/npm/fullcalendar-scheduler@6.1.8/index.global.min.js\"></script>\n<script src=\"https://cdn.jsdelivr.net/npm/@fullcalendar/rrule@6.1.8/index.global.min.js\"></script>\n",
"Id": 1
}
],
"ServerScripts": [
{
"Title": "マスタデータ取得",
"Name": "",
"BeforeOpeningPage": true,
"Body": "try {\n //パターンデータ取得\n getPatternTable();\n\n //カテゴリデータ取得\n getCategoryTable();\n\n\n} catch (error) {\n context.Log(error);\n}\n\n//パターンデータ取得\nfunction getPatternTable() {\n //パターンデータを取得\n let data = {\n \"View\": {\n \"ColumnSorterHash\": {\n \"ClassA\": \"asc\"\n }\n }\n }\n\n let results = items.Get(482692, JSON.stringify(data));\n if (results.Length === 0) {\n context.Log('パターンデータが見つかりませんでした 1');\n return;\n }\n\n let patternData = {};\n let count = 0;\n for (let item of results) {\n const code = item.ClassA;\n const name = item.ClassB;\n const color = item.ClassC;\n let bgColor;\n let fontColor;\n if (color) {\n bgColor = color.split('-')[0];\n fontColor = color.split('-')[1];\n }\n\n patternData[code] = {\n \"code\": code,\n \"name\": name,\n \"bgColor\": bgColor,\n \"fontColor\": fontColor\n }\n\n count++;\n }\n\n //取得したパターンデータをhiddenに格納\n if (count > 0) {\n hidden.Add('patternData', JSON.stringify(patternData));\n } else {\n context.Log('パターンデータが見つかりませんでした 2');\n }\n\n}\n\n//カテゴリデータ取得\nfunction getCategoryTable() {\n //カテゴリデータを取得\n let data = {\n \"View\": {\n \"ColumnSorterHash\": {\n \"ClassA\": \"asc\"\n }\n }\n }\n\n let results = items.Get(482694, JSON.stringify(data));\n if (results.Length === 0) {\n context.Log('カテゴリデータが見つかりませんでした 1');\n return;\n }\n\n let categoryData = {};\n let count = 0;\n for (let item of results) {\n const code = item.ClassA;\n const name = item.ClassB;\n const color = item.ClassC;\n let bgColor;\n let fontColor;\n if (color) {\n bgColor = color.split('-')[0];\n fontColor = color.split('-')[1];\n }\n\n categoryData[code] = {\n \"code\": code,\n \"name\": name,\n \"bgColor\": bgColor,\n \"fontColor\": fontColor\n }\n\n count++;\n }\n\n //取得したカテゴリデータをhiddenに格納\n if (count > 0) {\n hidden.Add('categoryData', JSON.stringify(categoryData));\n } else {\n context.Log('カテゴリデータが見つかりませんでした 2');\n }\n\n}",
"Id": 1
}
],
"EnableCalendar": false,
"EnableCrosstab": false,
"EnableTimeSeries": false,
"EnableAnaly": false,
"EnableKamban": false,
"EnableImageLib": false,
"NoDisplayIfReadOnly": false,
"NotInheritPermissionsWhenCreatingSite": false
},
"Publish": false,
"DisableCrossSearch": false,
"Comments": []
},
{
"TenantId": 1,
"SiteId": 482695,
"Title": "祝日・休日",
"SiteName": "",
"SiteGroupName": "",
"Body": "",
"GridGuide": "一般的な国民の祝日および年末29日31日年始1日3日を登録。\nその他、任意の休みの日は手動で新規作成して登録すること。",
"EditorGuide": "一般的な国民の祝日および年末29日31日年始1日3日を登録。\nその他、任意の休みの日は手動で新規作成して登録すること。",
"CalendarGuide": "",
"CrosstabGuide": "",
"GanttGuide": "",
"BurnDownGuide": "",
"TimeSeriesGuide": "",
"AnalyGuide": "",
"KambanGuide": "",
"ImageLibGuide": "",
"ReferenceType": "Results",
"ParentId": 482691,
"InheritPermission": 482691,
"SiteSettings": {
"Version": 1.017,
"ReferenceType": "Results",
"GridView": 1,
"GridColumns": [
"ResultId",
"DateA",
"ClassA",
"UpdatedTime"
],
"EditorColumnHash": {
"General": [
"ResultId",
"DateA",
"ClassA"
]
},
"Columns": [
{
"ColumnName": "DateA",
"LabelText": "日付",
"NoWrap": true
},
{
"ColumnName": "ClassA",
"LabelText": "祝休日",
"NoWrap": true
}
],
"ViewLatestId": 1,
"Views": [
{
"Id": 1,
"Name": "既定のビュ―",
"DefaultMode": "Index",
"ColumnSorterHash": {
"DateA": "asc"
},
"ApiColumnKeyDisplayType": 0,
"ApiColumnValueDisplayType": 0,
"CalendarSiteId": 0,
"CalendarTimePeriod": "Monthly",
"CalendarFromTo": "DateA",
"CrosstabGroupByX": "DateA",
"CrosstabGroupByY": "Columns",
"CrosstabAggregateType": "Total",
"CrosstabTimePeriod": "Monthly",
"KambanAggregateType": "Count",
"ApiDataType": 0
}
],
"NoDisplayIfReadOnly": false,
"NotInheritPermissionsWhenCreatingSite": false
},
"Publish": false,
"DisableCrossSearch": false,
"Comments": []
},
{
"TenantId": 1,
"SiteId": 482696,
"Title": "周回予定",
"SiteName": "",
"SiteGroupName": "",
"Body": "",
"GridGuide": "",
"EditorGuide": "",
"CalendarGuide": "",
"CrosstabGuide": "",
"GanttGuide": "",
"BurnDownGuide": "",
"TimeSeriesGuide": "",
"AnalyGuide": "",
"KambanGuide": "",
"ImageLibGuide": "",
"ReferenceType": "Results",
"ParentId": 482691,
"InheritPermission": 482691,
"SiteSettings": {
"Version": 1.017,
"ReferenceType": "Results",
"GridColumns": [
"ResultId",
"Title",
"Class010",
"ClassH",
"ClassD",
"ClassE",
"ClassF",
"Class011",
"ClassV",
"Updator",
"UpdatedTime"
],
"FilterColumns": [
"Status",
"ClassA",
"ClassC",
"ClassD",
"ClassE",
"ClassF",
"ClassG",
"ClassH",
"ClassV"
],
"EditorColumnHash": {
"General": [
"Title",
"ClassA",
"ClassB",
"Class010",
"ClassC",
"ClassH",
"ClassD",
"ClassE",
"NumA",
"NumB",
"ClassF",
"ClassV",
"Class011",
"ClassG",
"Body",
"DateE",
"DateF",
"_Section-1",
"Date001",
"Class001",
"Date002",
"Class002",
"Date003",
"Class003",
"Date004",
"Class004",
"Date005",
"Class005",
"_Links-482703",
"_Links-482700",
"Comments"
]
},
"SectionLatestId": 1,
"Sections": [
{
"Id": 1,
"LabelText": "個別コメント(指定した日付にだけコメントを追加)",
"AllowExpand": true,
"Expand": true
}
],
"TitleColumns": [
"ClassA",
"Class010"
],
"LinkColumns": [
"ResultId",
"ClassC",
"ClassH",
"ClassD",
"ClassE",
"ClassF",
"ClassG",
"ClassV",
"Updator",
"UpdatedTime"
],
"Columns": [
{
"ColumnName": "ClassA",
"LabelText": "顧客名",
"ChoicesText": "[\n {\n \"SiteId\": 482703,\n \"Lookups\": [\n {\n \"From\": \"ClassA\",\n \"To\": \"ClassB\"\n }\n ]\n }\n]",
"UseSearch": true,
"NoWrap": true,
"SearchType": "PartialMatch"
},
{
"ColumnName": "ClassC",
"LabelText": "パターンコード",
"DefaultInput": "1",
"Hide": true
},
{
"ColumnName": "ClassD",
"LabelText": "曜日",
"ChoicesText": "mo,月\ntu,火\nwe,水\nth,木\nfr,金\nsa,土\nsu,日",
"MultipleSelections": true,
"NoWrap": true,
"ValidateRequired": true
},
{
"ColumnName": "ClassE",
"LabelText": "時間",
"NoWrap": true,
"Hide": true,
"ValidateRequired": true
},
{
"ColumnName": "ClassF",
"LabelText": "枠数",
"ChoicesText": "00:20\n00:40\n01:00",
"DefaultInput": "00:30",
"ValidateRequired": true,
"SearchType": "PartialMatch"
},
{
"ColumnName": "ClassV",
"LabelText": "担当",
"ChoicesText": "[[482697]]",
"MultipleSelections": true,
"NoWrap": true,
"ValidateRequired": true,
"Link": true
},
{
"ColumnName": "Body",
"LabelText": "内容・備考"
},
{
"ColumnName": "ClassG",
"LabelText": "カテゴリコード",
"DefaultInput": "1",
"Hide": true
},
{
"ColumnName": "ClassH",
"LabelText": "指定週",
"Description": "毎月、奇数月、偶数月パターンのときのみ参照",
"ChoicesText": "1\n2\n3\n4\n5",
"SearchType": "PartialMatch"
},
{
"ColumnName": "DateE",
"LabelText": "開始日",
"Description": "月初指定。指定月以降に有効。"
},
{
"ColumnName": "DateF",
"LabelText": "終了日",
"Description": "末日指定。指定月前に有効。"
},
{
"ColumnName": "Class001",
"LabelText": "コメント1",
"MaxLength": 20.0,
"FieldCss": "field-wide"
},
{
"ColumnName": "Class002",
"LabelText": "コメント2",
"MaxLength": 20.0,
"FieldCss": "field-wide"
},
{
"ColumnName": "Class003",
"LabelText": "コメント3",
"MaxLength": 20.0,
"FieldCss": "field-wide"
},
{
"ColumnName": "Class004",
"LabelText": "コメント4",
"MaxLength": 20.0,
"FieldCss": "field-wide"
},
{
"ColumnName": "Class005",
"LabelText": "コメント5",
"MaxLength": 20.0,
"FieldCss": "field-wide"
},
{
"ColumnName": "Date001",
"LabelText": "日付1"
},
{
"ColumnName": "Date002",
"LabelText": "日付2"
},
{
"ColumnName": "Date003",
"LabelText": "日付3"
},
{
"ColumnName": "Date004",
"LabelText": "日付4"
},
{
"ColumnName": "Date005",
"LabelText": "日付5"
},
{
"ColumnName": "Class010",
"LabelText": "パターン",
"ChoicesText": "[\n {\n \"SiteId\": 482692,\n \"View\": {\n \"ColumnSorterHash\": {\n \"ClassA\": \"asc\"\n }\n },\n \"Lookups\": [\n {\n \"From\": \"ClassA\",\n \"To\": \"ClassC\"\n }\n ]\n }\n]",
"NotInsertBlankChoice": true,
"NoWrap": true,
"ValidateRequired": true,
"AutoPostBack": true,
"ColumnsReturnedWhenAutomaticPostback": "ClassC",
"SearchType": "PartialMatch"
},
{
"ColumnName": "Class011",
"LabelText": "カテゴリ",
"ChoicesText": "[\n {\n \"SiteId\": 482694,\n \"View\": {\n \"ColumnSorterHash\": {\n \"ClassA\": \"asc\"\n }\n },\n \"Lookups\": [\n {\n \"From\": \"ClassA\",\n \"To\": \"ClassG\"\n }\n ]\n }\n]",
"NotInsertBlankChoice": true,
"ValidateRequired": true,
"AutoPostBack": true,
"ColumnsReturnedWhenAutomaticPostback": "ClassG",
"SearchType": "PartialMatch"
},
{
"ColumnName": "NumA",
"LabelText": "開始・時",
"DefaultInput": "8",
"ControlType": "Spinner",
"NoWrap": true,
"Min": 8.0,
"Max": 17.0
},
{
"ColumnName": "NumB",
"LabelText": "分",
"DefaultInput": "0",
"ControlType": "Spinner",
"Min": 0.0,
"Max": 55.0,
"Step": 5.0
}
],
"Links": [
{
"ColumnName": "ClassA",
"SiteId": 482703,
"Lookups": [
{
"From": "ClassA",
"To": "ClassB"
}
],
"JsonFormat": true
},
{
"ColumnName": "ClassV",
"SiteId": 482697
},
{
"ColumnName": "Class010",
"SiteId": 482692,
"View": {
"Id": 0,
"ColumnSorterHash": {
"ClassA": "asc"
},
"ApiColumnKeyDisplayType": 0,
"ApiColumnValueDisplayType": 0,
"CalendarSiteId": 0,
"ApiDataType": 0
},
"Lookups": [
{
"From": "ClassA",
"To": "ClassC"
}
],
"JsonFormat": true
},
{
"ColumnName": "Class011",
"SiteId": 482694,
"View": {
"Id": 0,
"ColumnSorterHash": {
"ClassA": "asc"
},
"ApiColumnKeyDisplayType": 0,
"ApiColumnValueDisplayType": 0,
"CalendarSiteId": 0,
"ApiDataType": 0
},
"Lookups": [
{
"From": "ClassA",
"To": "ClassG"
}
],
"JsonFormat": true
}
],
"Styles": [
{
"Title": "css",
"New": true,
"Edit": true,
"Body": "#Results_NumAField {\n width: 200px;\n}\n\n#Results_NumBField {\n width: 140px;\n\n .field-label {\n width: 30px;\n margin-right: -30px;\n }\n\n .field-control>.container-normal {\n margin-left: 30px;\n }\n}",
"Id": 1
}
],
"Scripts": [
{
"Title": "カレンダー更新",
"New": true,
"Edit": true,
"Body": "$p.events.after_send = function(args) {\n // window.opener.location.reload()\n window.opener.c7s.createEvents();\n window.opener.calObj.cal1.refetchEvents();\n window.opener.calObj.cal2.refetchEvents();\n window.opener.calObj.cal3.refetchEvents();\n window.opener.calObj.cal4.refetchEvents();\n window.opener.calObj.cal5.refetchEvents();\n}\n",
"Id": 1
},
{
"Title": "開始日終了日調整",
"New": true,
"Edit": true,
"Body": "/*$p.on('change', 'DateE', function () {\n if ($('#Results_DateE').val() != '') {\n console.log('DateE Change');\n let dateE = new Date($('#Results_DateE').val());\n dateE.setDate(1);\n let dateEstr = dateE.getFullYear() +\n '/' + (dateE.getMonth() + 1).toString().padStart(2, '0') +\n '/' + dateE.getDate().toString().padStart(2, '0');\n $p.set($('#Results_DateE'), dateEstr);\n }\n\n});\n\n$p.on('change', 'DateF', function () {\n if ($('#Results_DateF').val() != '') {\n console.log('DateF Change');\n let dateF = new Date($('#Results_DateF').val());\n dateF.setMonth(dateF.getMonth() + 1, 0);\n let dateFstr = dateF.getFullYear() +\n '/' + (dateF.getMonth() + 1).toString().padStart(2, '0') +\n '/' + dateF.getDate().toString().padStart(2, '0');\n $p.set($('#Results_DateF'), dateFstr);\n }\n\n});\n*/\n$p.events.before_validate = function (args) {\n\n let numA = $('#Results_NumA').val();\n let numB = $('#Results_NumB').val();\n numA = numA.toString().padStart(2, '0');\n numB = numB.toString().padStart(2, '0');\n\n let timeE = numA + ':' + numB;\n\n $p.set($('#Results_ClassE'), timeE);\n\n //処理内容\n\n let dateE = '';\n let dateF = '';\n\n if ($('#Results_DateE').val() != '' && $('#Results_DateF').val()) {\n dateE = new Date($('#Results_DateE').val());\n dateF = new Date($('#Results_DateF').val());\n\n if (dateE.getTime() >= dateF.getTime()) {\n alert(\"終了日は開始日よりも後に設定してください\");\n return false;\n }\n }\n\n\n}",
"Id": 2
}
],
"TitleSeparator": "■周回予定■",
"NoDisplayIfReadOnly": false,
"NotInheritPermissionsWhenCreatingSite": false
},
"Publish": false,
"DisableCrossSearch": false,
"Comments": []
},
{
"TenantId": 1,
"SiteId": 482698,
"Title": "病院リスト",
"SiteName": "",
"SiteGroupName": "",
"Body": "",
"GridGuide": "",
"EditorGuide": "",
"CalendarGuide": "",
"CrosstabGuide": "",
"GanttGuide": "",
"BurnDownGuide": "",
"TimeSeriesGuide": "",
"AnalyGuide": "",
"KambanGuide": "",
"ImageLibGuide": "",
"ReferenceType": "Results",
"ParentId": 482691,
"InheritPermission": 482691,
"SiteSettings": {
"Version": 1.017,
"ReferenceType": "Results",
"GridColumns": [
"ResultId",
"ClassA",
"ClassB",
"ClassC",
"ClassD",
"ClassE",
"Updator",
"UpdatedTime"
],
"EditorColumnHash": {
"General": [
"ResultId",
"Title",
"ClassA",
"ClassB",
"ClassC",
"ClassD",
"ClassE",
"Body",
"Comments"
]
},
"TitleColumns": [
"ClassA"
],
"Columns": [
{
"ColumnName": "ClassA",
"LabelText": "病院名",
"FieldCss": "field-wide"
},
{
"ColumnName": "ClassB",
"LabelText": "郵便番号",
"NoWrap": true
},
{
"ColumnName": "ClassC",
"LabelText": "住所",
"FieldCss": "field-wide"
},
{
"ColumnName": "ClassD",
"LabelText": "電話番号",
"NoWrap": true
},
{
"ColumnName": "ClassE",
"LabelText": "FAX番号",
"NoWrap": true
},
{
"ColumnName": "Body",
"LabelText": "備考"
}
],
"TitleSeparator": "",
"NoDisplayIfReadOnly": false,
"NotInheritPermissionsWhenCreatingSite": false
},
"Publish": false,
"DisableCrossSearch": false,
"Comments": []
},
{
"TenantId": 1,
"SiteId": 482699,
"Title": "主治医リスト",
"SiteName": "",
"SiteGroupName": "",
"Body": "",
"GridGuide": "",
"EditorGuide": "",
"CalendarGuide": "",
"CrosstabGuide": "",
"GanttGuide": "",
"BurnDownGuide": "",
"TimeSeriesGuide": "",
"AnalyGuide": "",
"KambanGuide": "",
"ImageLibGuide": "",
"ReferenceType": "Results",
"ParentId": 482691,
"InheritPermission": 482691,
"SiteSettings": {
"Version": 1.017,
"ReferenceType": "Results",
"GridColumns": [
"ResultId",
"ClassA",
"ClassB",
"ClassC",
"ClassD",
"ClassE",
"Updator",
"UpdatedTime"
],
"EditorColumnHash": {
"General": [
"ResultId",
"Title",
"ClassA",
"ClassB",
"ClassC",
"ClassD",
"ClassE"
]
},
"TitleColumns": [
"ClassA",
"ClassB",
"ClassC"
],
"Columns": [
{
"ColumnName": "ClassA",
"LabelText": "病院名",
"ChoicesText": "[[482698]]",
"UseSearch": true,
"ValidateRequired": true,
"Link": true,
"SearchType": "PartialMatch"
},
{
"ColumnName": "ClassB",
"LabelText": "姓",
"ValidateRequired": true
},
{
"ColumnName": "ClassC",
"LabelText": "名"
},
{
"ColumnName": "ClassD",
"LabelText": "姓カナ",
"NoWrap": true
},
{
"ColumnName": "ClassE",
"LabelText": "名カナ"
}
],
"Links": [
{
"ColumnName": "ClassA",
"SiteId": 482698
}
],
"TitleSeparator": " ",
"NoDisplayIfReadOnly": false,
"NotInheritPermissionsWhenCreatingSite": false
},
"Publish": false,
"DisableCrossSearch": false,
"Comments": []
},
{
"TenantId": 1,
"SiteId": 482697,
"Title": "担当一覧",
"SiteName": "",
"SiteGroupName": "",
"Body": "",
"GridGuide": "",
"EditorGuide": "",
"CalendarGuide": "",
"CrosstabGuide": "",
"GanttGuide": "",
"BurnDownGuide": "",
"TimeSeriesGuide": "",
"AnalyGuide": "",
"KambanGuide": "",
"ImageLibGuide": "",
"ReferenceType": "Results",
"ParentId": 482691,
"InheritPermission": 482691,
"SiteSettings": {
"Version": 1.017,
"ReferenceType": "Results",
"GridColumns": [
"ResultId",
"TitleBody",
"Comments",
"Manager",
"Owner",
"Updator",
"UpdatedTime"
],
"EditorColumnHash": {
"General": [
"ResultId",
"Ver",
"Title",
"Body",
"Comments"
]
},
"NoDisplayIfReadOnly": false,
"NotInheritPermissionsWhenCreatingSite": false
},
"Publish": false,
"DisableCrossSearch": false,
"Comments": []
},
{
"TenantId": 1,
"SiteId": 482701,
"Title": "個別予定",
"SiteName": "",
"SiteGroupName": "",
"Body": "",
"GridGuide": "",
"EditorGuide": "",
"CalendarGuide": "",
"CrosstabGuide": "",
"GanttGuide": "",
"BurnDownGuide": "",
"TimeSeriesGuide": "",
"AnalyGuide": "",
"KambanGuide": "",
"ImageLibGuide": "",
"ReferenceType": "Results",
"ParentId": 482691,
"InheritPermission": 482691,
"SiteSettings": {
"Version": 1.017,
"ReferenceType": "Results",
"GridColumns": [
"ResultId",
"TitleBody",
"ClassE",
"ClassF",
"ClassV",
"Class011",
"Updator",
"UpdatedTime"
],
"EditorColumnHash": {
"General": [
"Title",
"ClassA",
"ClassB",
"DateA",
"Class011",
"ClassG",
"ClassE",
"CheckA",
"NumA",
"NumB",
"ClassF",
"ClassV",
"Body",
"Class001",
"_Links-482703",
"Comments"
]
},
"TitleColumns": [
"ClassB",
"DateA"
],
"LinkColumns": [
"ResultId",
"DateA",
"ClassE",
"ClassF",
"ClassG",
"ClassV",
"Body",
"Updator",
"UpdatedTime"
],
"Columns": [
{
"ColumnName": "ClassA",
"LabelText": "顧客選択",
"ChoicesText": "[\n {\n \"SiteId\": 482703,\n \"Lookups\": [\n {\n \"From\": \"ClassA\",\n \"To\": \"ClassB\"\n }\n ]\n }\n]",
"AutoPostBack": true,
"ColumnsReturnedWhenAutomaticPostback": "ClassB",
"FieldCss": "field-wide",
"SearchType": "PartialMatch"
},
{
"ColumnName": "ClassF",
"LabelText": "枠数",
"ChoicesText": "00:00\n00:20\n00:40\n01:00",
"ValidateRequired": true,
"SearchType": "PartialMatch"
},
{
"ColumnName": "ClassE",
"LabelText": "時間",
"NoWrap": true,
"Hide": true,
"ValidateRequired": true
},
{
"ColumnName": "DateA",
"LabelText": "訪問日",
"NoWrap": true,
"ValidateRequired": true
},
{
"ColumnName": "ClassB",
"LabelText": "要件名",
"FieldCss": "field-wide"
},
{
"ColumnName": "ClassV",
"LabelText": "担当",
"ChoicesText": "[[482697]]",
"MultipleSelections": true,
"NoWrap": true,
"ValidateRequired": true,
"Link": true
},
{
"ColumnName": "ClassG",
"LabelText": "カテゴリコード",
"Hide": true
},
{
"ColumnName": "DateE",
"LabelText": "開始日",
"Description": "指定日付以降に有効となります"
},
{
"ColumnName": "DateF",
"LabelText": "終了日",
"Description": "指定日付まで有効となります"
},
{
"ColumnName": "Class001",
"LabelText": "コメント",
"MaxLength": 20.0,
"FieldCss": "field-wide"
},
{
"ColumnName": "Class011",
"LabelText": "カテゴリ",
"ChoicesText": "[\n {\n \"SiteId\": 482694,\n \"View\": {\n \"ColumnSorterHash\": {\n \"ClassA\": \"asc\"\n }\n },\n \"Lookups\": [\n {\n \"From\": \"ClassA\",\n \"To\": \"ClassG\"\n }\n ]\n }\n]",
"NoWrap": true,
"ValidateRequired": true,
"AutoPostBack": true,
"ColumnsReturnedWhenAutomaticPostback": "ClassG",
"SearchType": "PartialMatch"
},
{
"ColumnName": "CheckA",
"LabelText": "備考フラグ"
},
{
"ColumnName": "NumA",
"LabelText": "開始・時",
"ControlType": "Spinner",
"Min": 8.0,
"Max": 17.0
},
{
"ColumnName": "NumB",
"LabelText": "分",
"ControlType": "Spinner",
"Min": 0.0,
"Max": 55.0,
"Step": 5.0
}
],
"Links": [
{
"ColumnName": "ClassA",
"SiteId": 482703,
"Lookups": [
{
"From": "ClassA",
"To": "ClassB"
}
],
"JsonFormat": true
},
{
"ColumnName": "ClassV",
"SiteId": 482697
},
{
"ColumnName": "Class011",
"SiteId": 482694,
"View": {
"Id": 0,
"ColumnSorterHash": {
"ClassA": "asc"
},
"ApiColumnKeyDisplayType": 0,
"ApiColumnValueDisplayType": 0,
"CalendarSiteId": 0,
"ApiDataType": 0
},
"Lookups": [
{
"From": "ClassA",
"To": "ClassG"
}
],
"JsonFormat": true
}
],
"Styles": [
{
"Title": "code-readonly",
"All": true,
"Body": ".code-readonly {\n\tpointer-events: none;\n\tcolor: #000000;\n\tbackground-color: #f5f5f5;\n\tfont-weight: normal;\n\tdisplay: block;\n}\n\n\n#Results_NumAField {\n width: 200px;\n}\n\n#Results_NumBField {\n width: 140px;\n\n .field-label {\n width: 30px;\n margin-right: -30px;\n }\n\n .field-control>.container-normal {\n margin-left: 30px;\n }\n}",
"Id": 1
}
],
"Scripts": [
{
"Title": "個別予定js",
"New": true,
"Edit": true,
"Body": "$p.events.on_editor_load = function () {\n /*\n let classG = $('#Results_ClassG').val();\n if (classG == 4) {\n $p.set($('#Results_ClassE'), '00:00');\n $p.set($('#Results_ClassF'), '00:00');\n\n //$(\"#Results_ClassE\").addClass(\"code-readonly\");\n //$(\"#Results_ClassF\").addClass(\"code-readonly\");\n\n }\n */\n\n}\n\n$p.events.after_send = function (args) {\n // window.opener.location.reload()\n window.opener.c7s.createEvents();\n window.opener.calObj.cal1.refetchEvents();\n window.opener.calObj.cal2.refetchEvents();\n window.opener.calObj.cal3.refetchEvents();\n window.opener.calObj.cal4.refetchEvents();\n window.opener.calObj.cal5.refetchEvents();\n}\n\n$p.events.before_validate = function (args) {\n /*\n let classE = $('#Results_ClassE').val();\n let classF = $('#Results_ClassF').val();\n let classG = $('#Results_ClassG').val();\n\n if (classG != 4) {\n if (classE == '00:00' || classF == '00:00') {\n alert('時間または枠数の「00:00」は\\nカテゴリ[備考]専用です');\n return false;\n } else {\n return true;\n }\n } else {\n $p.set($('#Results_ClassE'), '00:00');\n $p.set($('#Results_ClassF'), '00:00');\n return true\n }\n */\n\n if ($('#Results_CheckA').prop('checked')) {\n $p.set($('#Results_ClassE'), '00:00');\n $p.set($('#Results_ClassF'), '00:00');\n return true;\n } else {\n let numA = $('#Results_NumA').val();\n let numB = $('#Results_NumB').val();\n numA = numA.toString().padStart(2, '0');\n numB = numB.toString().padStart(2, '0');\n\n let timeE = numA + ':' + numB;\n\n $p.set($('#Results_ClassE'), timeE);\n }\n\n}\n\n/*\n$p.on('change', 'Class011', function () {\n let classG = $('#Results_ClassG').val();\n if (classG == 4) {\n $p.set($('#Results_ClassE'), '00:00');\n $p.set($('#Results_ClassF'), '00:00');\n\n //$(\"#Results_ClassE\").addClass(\"code-readonly\");\n //$(\"#Results_ClassF\").addClass(\"code-readonly\");\n\n\n } else {\n $p.set($('#Results_ClassE'), '');\n $p.set($('#Results_ClassF'), '');\n\n //$(\"#Results_ClassE\").removeClass(\"code-readonly\");\n //$(\"#Results_ClassF\").removeClass(\"code-readonly\");\n }\n});\n*/",
"Id": 1
}
],
"TitleSeparator": "■個別予定日■",
"NoDisplayIfReadOnly": false,
"NotInheritPermissionsWhenCreatingSite": false
},
"Publish": false,
"DisableCrossSearch": false,
"Comments": []
},
{
"TenantId": 1,
"SiteId": 482703,
"Title": "顧客リスト",
"SiteName": "",
"SiteGroupName": "",
"Body": "",
"GridGuide": "[md]\n### [リハカレンダー](https://nextoffice.next-hd.co.jp/pleasanter/items/482693/index) を開く",
"EditorGuide": "[md]\n### [リハカレンダー](https://nextoffice.next-hd.co.jp/pleasanter/items/482693/index) を開く",
"CalendarGuide": "",
"CrosstabGuide": "",
"GanttGuide": "",
"BurnDownGuide": "",
"TimeSeriesGuide": "",
"AnalyGuide": "",
"KambanGuide": "",
"ImageLibGuide": "",
"ReferenceType": "Results",
"ParentId": 482691,
"InheritPermission": 482691,
"SiteSettings": {
"Version": 1.017,
"ReferenceType": "Results",
"GridView": 2,
"GridColumns": [
"ResultId",
"Title",
"ClassC",
"ClassH",
"ClassD",
"DateA",
"ClassE",
"ClassF",
"ClassV",
"ClassG",
"DateB",
"UpdatedTime"
],
"EditorColumnHash": {
"General": [
"ResultId",
"Title",
"ClassB",
"ClassA",
"Body",
"ClassC",
"ClassH",
"ClassD",
"ClassE",
"ClassF",
"ClassV",
"ClassG",
"DateA",
"DateB",
"ClassM",
"ClassN"
]
},
"TitleColumns": [
"ClassB",
"ClassA"
],
"LinkColumns": [
"ResultId",
"Title",
"Body",
"Updator",
"UpdatedTime"
],
"Columns": [
{
"ColumnName": "ClassA",
"LabelText": "顧客名",
"NoWrap": true
},
{
"ColumnName": "ClassB",
"LabelText": "グループ",
"ChoicesText": "あ\nい\nう\nえ\nお\nか\nき\nく\nけ\nこ\nさ\nし\nす\nせ\nそ\nた\nち\nつ\nて\nと\nな\nに\nぬ\nね\nの\nは\nひ\nふ\nへ\nほ\nま\nみ\nむ\nめ\nも\nや\nゆ\nよ\nら\nり\nる\nれ\nろ\nわ",
"NoWrap": true,
"SearchType": "PartialMatch"
},
{
"ColumnName": "ClassC",
"LabelText": "パターン",
"ChoicesText": "1,毎週\n2,隔週1\n3,隔週2\n4,毎月\n5,奇数月\n6,偶数月",
"Hide": true,
"SearchType": "PartialMatch"
},
{
"ColumnName": "ClassD",
"LabelText": "曜日",
"ChoicesText": "mo,月\ntu,火\nwe,水\nth,木\nfr,金\nsa,土\nsu,日",
"MultipleSelections": true,
"Hide": true
},
{
"ColumnName": "ClassE",
"LabelText": "時間",
"ChoicesText": "08:30\n08:45\n09:00\n09:15\n09:30\n09:45\n10:00\n10:15\n10:30\n10:45\n11:00\n11:15\n11:30\n11:45\n12:00\n12:15\n12:30\n12:45\n13:00\n13:15\n13:30\n13:45\n14:00\n14:15\n14:30\n14:45\n15:00\n15:15\n15:30\n15:45\n16:00\n16:15\n16:30\n16:45\n17:00",
"Hide": true,
"SearchType": "PartialMatch"
},
{
"ColumnName": "ClassF",
"LabelText": "枠数",
"ChoicesText": "00:15\n00:30\n00:45\n01:00\n01:15\n01:30\n01:45\n02:00\n02:15\n02:30\n02:45\n03:00\n03:15\n03:30\n03:45\n04:00",
"Hide": true,
"SearchType": "PartialMatch"
},
{
"ColumnName": "ClassV",
"LabelText": "担当",
"ChoicesText": "[[482697]]",
"MultipleSelections": true,
"Hide": true,
"Link": true
},
{
"ColumnName": "ClassG",
"LabelText": "カテゴリ",
"ChoicesText": "[\n {\n \"SiteId\": 482694,\n \"View\": {\n \"ColumnSorterHash\": {\n \"ClassA\": \"asc\"\n }\n },\n \"Lookups\": [\n {\n \"From\": \"ClassA\",\n \"To\": \"ClassG\"\n }\n ]\n }\n]",
"Hide": true,
"SearchType": "PartialMatch"
},
{
"ColumnName": "DateA",
"LabelText": "訪問日",
"Hide": true
},
{
"ColumnName": "DateB",
"LabelText": "例外予定日",
"Hide": true
},
{
"ColumnName": "ClassH",
"LabelText": "指定週",
"ChoicesText": "1\n2\n3\n4\n5",
"Hide": true,
"SearchType": "PartialMatch"
},
{
"ColumnName": "ClassM",
"LabelText": "病院",
"ChoicesText": "[[482698]]",
"NoWrap": true,
"FieldCss": "field-wide",
"Link": true,
"SearchType": "PartialMatch"
},
{
"ColumnName": "ClassN",
"LabelText": "主治医",
"NoWrap": true
}
],
"Links": [
{
"ColumnName": "ClassV",
"SiteId": 482697
},
{
"ColumnName": "ClassM",
"SiteId": 482698
},
{
"ColumnName": "ClassG",
"SiteId": 482694,
"View": {
"Id": 0,
"ColumnSorterHash": {
"ClassA": "asc"
},
"ApiColumnKeyDisplayType": 0,
"ApiColumnValueDisplayType": 0,
"CalendarSiteId": 0,
"ApiDataType": 0
},
"Lookups": [
{
"From": "ClassA",
"To": "ClassG"
}
],
"JsonFormat": true
}
],
"ViewLatestId": 3,
"Views": [
{
"Id": 2,
"Name": "既定のビュ―",
"DefaultMode": "Index",
"ColumnSorterHash": {
"Title": "asc"
},
"ApiColumnKeyDisplayType": 0,
"ApiColumnValueDisplayType": 0,
"CalendarSiteId": 0,
"CalendarTimePeriod": "Monthly",
"CalendarFromTo": "DateA",
"CrosstabGroupByX": "ClassB",
"CrosstabGroupByY": "ClassB",
"CrosstabAggregateType": "Total",
"CrosstabTimePeriod": "Monthly",
"KambanAggregateType": "Count",
"ApiDataType": 0
},
{
"Id": 3,
"Name": "顧客リスト",
"GridColumns": [
"ResultId",
"Title",
"ClassM",
"ClassN",
"Updator",
"UpdatedTime"
],
"ApiColumnKeyDisplayType": 0,
"ApiColumnValueDisplayType": 0,
"CalendarSiteId": 0,
"CalendarTimePeriod": "Monthly",
"CalendarFromTo": "DateA",
"CrosstabGroupByX": "ClassB",
"CrosstabGroupByY": "ClassB",
"CrosstabAggregateType": "Total",
"CrosstabTimePeriod": "Monthly",
"ApiDataType": 0
}
],
"Styles": [
{
"Title": "レコード色変更",
"Index": true,
"Body": "/*個別予定カラー 黄色*/\n.colorChange1 {\n background-color: #ffffe0;\n}\n\n/*周回予定予定カラー 黄色*/\n.colorChange2 {\n background-color: #90ee90;\n}\n\n.colorChange3 {\n background-color: #add8e6;\n}\n",
"Id": 2
}
],
"ServerScripts": [
{
"Title": "レコード色変更",
"Name": "",
"BeforeOpeningRow": true,
"Body": "try {\n let date = new Date(1900,1,1);\n if (model.DateA > date) {\n model.ExtendedRowCss = 'colorChange1';\n } else if (model.ClassC != \"\") {\n model.ExtendedRowCss = 'colorChange2';\n }else if (model.DateB > date){\n model.ExtendedRowCss = 'colorChange3';\n }\n} catch (e) {\n context.Log(e.stack);\n}",
"Id": 1
}
],
"RelatingColumns": [
{
"Title": "病院-主治医",
"Columns": [
"ClassM",
"ClassN"
],
"Id": 1
}
],
"TitleSeparator": "-",
"IntegratedSites": [
"482696",
"482701",
"482700"
],
"NoDisplayIfReadOnly": false,
"NotInheritPermissionsWhenCreatingSite": false
},
"Publish": false,
"DisableCrossSearch": false,
"Comments": []
},
{
"TenantId": 1,
"SiteId": 482702,
"Title": "顧客リストのみ",
"SiteName": "",
"SiteGroupName": "",
"Body": "",
"GridGuide": "",
"EditorGuide": "",
"CalendarGuide": "",
"CrosstabGuide": "",
"GanttGuide": "",
"BurnDownGuide": "",
"TimeSeriesGuide": "",
"AnalyGuide": "",
"KambanGuide": "",
"ImageLibGuide": "",
"ReferenceType": "Results",
"ParentId": 482691,
"InheritPermission": 482691,
"SiteSettings": {
"Version": 1.017,
"ReferenceType": "Results",
"GridView": 2,
"GridColumns": [
"ResultId",
"Title",
"ClassM",
"ClassN",
"Updator",
"UpdatedTime"
],
"EditorColumnHash": {
"General": [
"ResultId",
"Title",
"ClassB",
"ClassA",
"Body",
"ClassC",
"ClassH",
"ClassD",
"ClassE",
"ClassF",
"ClassV",
"ClassG",
"DateA",
"DateB",
"ClassM",
"ClassN"
]
},
"TitleColumns": [
"ClassB",
"ClassA"
],
"LinkColumns": [
"ResultId",
"Title",
"Body",
"Updator",
"UpdatedTime"
],
"Columns": [
{
"ColumnName": "ClassA",
"LabelText": "顧客名",
"NoWrap": true
},
{
"ColumnName": "ClassB",
"LabelText": "グループ",
"ChoicesText": "あ\nい\nう\nえ\nお\nか\nき\nく\nけ\nこ\nさ\nし\nす\nせ\nそ\nた\nち\nつ\nて\nと\nな\nに\nぬ\nね\nの\nは\nひ\nふ\nへ\nほ\nま\nみ\nむ\nめ\nも\nや\nゆ\nよ\nら\nり\nる\nれ\nろ\nわ",
"NoWrap": true,
"SearchType": "PartialMatch"
},
{
"ColumnName": "ClassC",
"LabelText": "パターン",
"ChoicesText": "1,毎週\n2,隔週1\n3,隔週2\n4,毎月\n5,奇数月\n6,偶数月",
"Hide": true,
"SearchType": "PartialMatch"
},
{
"ColumnName": "ClassD",
"LabelText": "曜日",
"ChoicesText": "mo,月\ntu,火\nwe,水\nth,木\nfr,金\nsa,土\nsu,日",
"MultipleSelections": true,
"Hide": true
},
{
"ColumnName": "ClassE",
"LabelText": "時間",
"ChoicesText": "08:30\n08:45\n09:00\n09:15\n09:30\n09:45\n10:00\n10:15\n10:30\n10:45\n11:00\n11:15\n11:30\n11:45\n12:00\n12:15\n12:30\n12:45\n13:00\n13:15\n13:30\n13:45\n14:00\n14:15\n14:30\n14:45\n15:00\n15:15\n15:30\n15:45\n16:00\n16:15\n16:30\n16:45\n17:00",
"Hide": true,
"SearchType": "PartialMatch"
},
{
"ColumnName": "ClassF",
"LabelText": "枠数",
"ChoicesText": "00:15\n00:30\n00:45\n01:00\n01:15\n01:30\n01:45\n02:00\n02:15\n02:30\n02:45\n03:00\n03:15\n03:30\n03:45\n04:00",
"Hide": true,
"SearchType": "PartialMatch"
},
{
"ColumnName": "ClassV",
"LabelText": "担当",
"ChoicesText": "[[482697]]",
"MultipleSelections": true,
"Hide": true,
"Link": true
},
{
"ColumnName": "ClassG",
"LabelText": "カテゴリ",
"ChoicesText": "1,介護\n2,医療\n3,その他",
"Hide": true,
"SearchType": "PartialMatch"
},
{
"ColumnName": "DateA",
"LabelText": "訪問日",
"Hide": true
},
{
"ColumnName": "DateB",
"LabelText": "例外予定日",
"Hide": true
},
{
"ColumnName": "ClassH",
"LabelText": "指定週",
"ChoicesText": "1\n2\n3\n4\n5",
"Hide": true,
"SearchType": "PartialMatch"
},
{
"ColumnName": "ClassM",
"LabelText": "病院",
"ChoicesText": "[[482698]]",
"NoWrap": true,
"FieldCss": "field-wide",
"Link": true,
"SearchType": "PartialMatch"
},
{
"ColumnName": "ClassN",
"LabelText": "主治医",
"NoWrap": true
}
],
"Links": [
{
"ColumnName": "ClassV",
"SiteId": 482697
},
{
"ColumnName": "ClassM",
"SiteId": 482698
}
],
"ViewLatestId": 3,
"Styles": [
{
"Title": "レコード色変更",
"Index": true,
"Disabled": true,
"Body": "/*個別予定カラー 黄色*/\n.colorChange1 {\n background-color: #ffffe0;\n}\n\n/*周回予定予定カラー 黄色*/\n.colorChange2 {\n background-color: #90ee90;\n}\n\n.colorChange3 {\n background-color: #add8e6;\n}\n",
"Id": 2
}
],
"ServerScripts": [
{
"Title": "レコード色変更",
"Name": "",
"BeforeOpeningRow": true,
"Body": "try {\n let date = new Date(1900,1,1);\n if (model.DateA > date) {\n model.ExtendedRowCss = 'colorChange1';\n } else if (model.ClassC != \"\") {\n model.ExtendedRowCss = 'colorChange2';\n }else if (model.DateB > date){\n model.ExtendedRowCss = 'colorChange3';\n }\n} catch (e) {\n context.Log(e.stack);\n}",
"Id": 1
}
],
"RelatingColumns": [
{
"Title": "病院-主治医",
"Columns": [
"ClassM",
"ClassN"
],
"Id": 1
}
],
"TitleSeparator": "-",
"IntegratedSites": [
"482703"
],
"NoDisplayIfReadOnly": false,
"NotInheritPermissionsWhenCreatingSite": false
},
"Publish": false,
"DisableCrossSearch": false,
"Comments": []
}
],
"Data": [],
"Permissions": [
{
"SiteId": 482691,
"Permissions": [
{
"ReferenceId": 482691,
"DeptId": 0,
"GroupId": 0,
"UserId": 460,
"PermissionType": 511
},
{
"ReferenceId": 482691,
"DeptId": 0,
"GroupId": 18,
"UserId": 0,
"PermissionType": 15
},
{
"ReferenceId": 482691,
"DeptId": 1,
"GroupId": 0,
"UserId": 0,
"PermissionType": 15
}
]
},
{
"SiteId": 482700,
"Permissions": []
},
{
"SiteId": 482692,
"Permissions": []
},
{
"SiteId": 482694,
"Permissions": []
},
{
"SiteId": 482693,
"Permissions": []
},
{
"SiteId": 482695,
"Permissions": []
},
{
"SiteId": 482696,
"Permissions": []
},
{
"SiteId": 482698,
"Permissions": []
},
{
"SiteId": 482699,
"Permissions": []
},
{
"SiteId": 482697,
"Permissions": []
},
{
"SiteId": 482701,
"Permissions": []
},
{
"SiteId": 482703,
"Permissions": []
},
{
"SiteId": 482702,
"Permissions": []
}
],
"PermissionIdList": {
"DeptIdList": [
{
"DeptId": 1,
"DeptCode": "10000",
"DeptName": "役員"
}
],
"GroupIdList": [
{
"GroupId": 18,
"GroupName": "ケアセブン"
}
],
"UserIdList": [
{
"UserId": 460,
"LoginId": "ntkco12216",
"UserCode": "",
"Name": "野木 健一郎"
}
]
}
}