Changes for page 新しい学校ページを作成
Last modified by Super Admin on 2026/03/22 00:39
From version
35.1
edited by Super Admin
on 2026/03/18 20:38
on 2026/03/18 20:38
Change comment:
There is no comment for this version
To version
34.1
edited by Super Admin
on 2026/03/18 09:18
on 2026/03/18 09:18
Change comment:
There is no comment for this version
Summary
Details
- Page properties
-
- Content
-
... ... @@ -108,16 +108,6 @@ 108 108 <div style="margin-top:6px;"><a id="duplicateLink" href="#">既存のページを開く →</a></div> 109 109 </div> 110 110 111 - <!-- 関連校チェック結果 --> 112 - <div id="affiliatedNotice" class="form-message form-message-info" style="display:none;"> 113 - <svg class="ico" viewBox="0 0 24 24"><path d="M2 20h20"/><path d="M5 20V10l7-5 7 5v10"/><path d="M9 20v-5h6v5"/></svg> 114 - <div> 115 - <strong>この学校は関連校(中高一貫校)として登録されています</strong> 116 - <p style="margin:4px 0 0" id="affiliatedNoticeText"></p> 117 - <p style="margin:4px 0 0;font-size:0.85em;color:var(--text-light)">別のページとして作成することもできますが、情報が分散する可能性があります。</p> 118 - </div> 119 - </div> 120 - 121 121 <!-- 作成ボタン --> 122 122 <div id="submitArea" style="display:none;"> 123 123 <div class="create-ready-box"> ... ... @@ -217,49 +217,24 @@ 217 217 218 218 // 重複チェック(XWikiにページが存在するか確認) 219 219 var targetPage = 'Schools.' + school.code + '.WebHome'; 220 - var duplicateCheck = fetch(restBase + '/spaces/Schools/spaces/' + school.code + '/pages/WebHome') 221 - .then(function(r) { return r.ok; }) 222 - .catch(function() { return false; }); 223 - 224 - // 関連校チェック(他校の関連校として登録されているか確認) 225 - var affCheckUrl = restBase + '/query?q=' + 226 - encodeURIComponent("select doc.fullName, school.affiliatedSchoolName from Document doc, doc.object(SeitokaiCode.SchoolClass) school where school.affiliatedSchoolCode = :code") + 227 - '&type=hql&queryFilters=unique¶meters=code:' + encodeURIComponent(school.code); 228 - var affiliatedCheck = fetch(affCheckUrl, { headers: { 'Accept': 'application/json' } }) 229 - .then(function(r) { return r.ok ? r.json() : []; }) 230 - .catch(function() { return []; }); 231 - 232 - Promise.all([duplicateCheck, affiliatedCheck]).then(function(results) { 233 - var isDuplicate = results[0]; 234 - var affResults = results[1]; 235 - var affNotice = document.getElementById('affiliatedNotice'); 236 - 237 - if (isDuplicate) { 238 - document.getElementById('duplicateWarning').style.display = 'block'; 239 - document.getElementById('duplicateLink').href = 240 - '$request.contextPath/bin/Schools/' + school.code + '/'; 241 - document.getElementById('submitArea').style.display = 'none'; 242 - } else { 243 - document.getElementById('duplicateWarning').style.display = 'none'; 244 - document.getElementById('submitArea').style.display = 'block'; 245 - } 246 - 247 - // 関連校として登録されている場合 248 - if (affResults && affResults.length > 0) { 249 - var mainPageRef = affResults[0]; 250 - var mainCode = ''; 251 - if (typeof mainPageRef === 'string' && mainPageRef.indexOf('Schools.') === 0) { 252 - mainCode = mainPageRef.split('.')[1]; 210 + fetch(restBase + '/spaces/Schools/spaces/' + school.code + '/pages/WebHome') 211 + .then(function(r) { 212 + if (r.ok) { 213 + // 既存ページあり 214 + document.getElementById('duplicateWarning').style.display = 'block'; 215 + document.getElementById('duplicateLink').href = 216 + '$request.contextPath/bin/Schools/' + school.code + '/'; 217 + document.getElementById('submitArea').style.display = 'none'; 218 + } else { 219 + // 新規作成OK 220 + document.getElementById('duplicateWarning').style.display = 'none'; 221 + document.getElementById('submitArea').style.display = 'block'; 253 253 } 254 - var linkHref = mainCode ? ('$request.contextPath/bin/Schools/' + mainCode + '/') : '#'; 255 - document.getElementById('affiliatedNoticeText').innerHTML = 256 - '別の学校ページに中高一貫校の関連校として統合されています。' + 257 - '<a href="' + escapeHtml(linkHref) + '">統合先のページへ移動する →</a>'; 258 - affNotice.style.display = 'flex'; 259 - } else { 260 - affNotice.style.display = 'none'; 261 - } 262 - }); 223 + }) 224 + .catch(function() { 225 + // APIエラー時は作成を許可(サーバー側で重複チェックもある) 226 + document.getElementById('submitArea').style.display = 'block'; 227 + }); 263 263 }; 264 264 265 265 window.clearSelection = function() { ... ... @@ -267,7 +267,6 @@ 267 267 document.getElementById('schoolName').value = ''; 268 268 document.getElementById('selectedSchoolArea').style.display = 'none'; 269 269 document.getElementById('duplicateWarning').style.display = 'none'; 270 - document.getElementById('affiliatedNotice').style.display = 'none'; 271 271 document.getElementById('submitArea').style.display = 'none'; 272 272 document.getElementById('searchHint').style.display = ''; 273 273 input.style.display = '';