Changes for page 新しい学校ページを作成
Last modified by Super Admin on 2026/03/22 00:39
From version
27.1
edited by Super Admin
on 2026/03/12 12:20
on 2026/03/12 12:20
Change comment:
There is no comment for this version
To version
19.1
edited by Super Admin
on 2026/03/08 23:59
on 2026/03/08 23:59
Change comment:
There is no comment for this version
Summary
Details
- Page properties
-
- Content
-
... ... @@ -24,32 +24,9 @@ 24 24 #if($xwiki.exists($targetPage)) 25 25 {{error}}この学校のページは既に存在します。[[既存のページを開く>>$targetPage]]{{/error}} 26 26 #else 27 - ## ページをプログラム的に作成 28 - #set($newDoc = $xwiki.getDocument($targetPage)) 29 - ## SchoolTemplateのコンテンツを参照として設定(テンプレートの include) 30 - ## author="target" により、SchoolTemplateの作者(superadmin)の権限でVelocityを実行 31 - ## これがないと学校ページの作者(一般ユーザー)のscript権限が必要になりエラーになる 32 - $newDoc.setContent('{{include reference="SeitokaiCode.SchoolTemplate" author="target" /}}') 33 - $newDoc.setTitle($schoolName) 34 - $newDoc.setParent('Schools.WebHome') 35 - ## SchoolClassオブジェクトを追加して初期値を設定 36 - #set($objNum = $newDoc.createNewObject('SeitokaiCode.SchoolClass')) 37 - #set($newObj = $newDoc.getObject('SeitokaiCode.SchoolClass', $objNum)) 38 - $newObj.set('schoolCode', $schoolCode) 39 - $newObj.set('schoolName', $schoolName) 40 - ## 現在の年度を初期値として設定(4月始まり) 41 - #set($now = $datetool.date) 42 - #set($currentYear = $datetool.format('yyyy', $now)) 43 - #set($currentMonth = $mathtool.toInteger($datetool.format('MM', $now))) 44 - #if($currentMonth >= 4) 45 - #set($fiscalYear = $currentYear) 46 - #else 47 - #set($fiscalYear = $mathtool.sub($mathtool.toInteger($currentYear), 1).toString()) 48 - #end 49 - $newObj.set('fiscalYear', $fiscalYear) 50 - $newDoc.saveWithProgrammingRights('学校ページを新規作成') 51 - ## 作成後にビューにリダイレクト 52 - $response.sendRedirect($xwiki.getURL($targetPage, 'view')) 27 + ## ページを作成して学校テンプレートを適用 28 + $response.sendRedirect($xwiki.getURL("Schools.${schoolCode}.WebHome", 'edit', 29 + "template=SeitokaiCode.SchoolTemplate&schoolCode=${schoolCode}&schoolName=${escapetool.url($schoolName)}")) 53 53 #end 54 54 #else 55 55 ... ... @@ -118,13 +118,6 @@ 118 118 119 119 <script> 120 120 (function() { 121 - // XSSエスケープ関数 122 - function escapeHtml(s) { 123 - var div = document.createElement('div'); 124 - div.appendChild(document.createTextNode(s)); 125 - return div.innerHTML; 126 - } 127 - 128 128 // 学校マスターデータをJSON APIから取得 129 129 var schools = []; 130 130 var schoolsLoaded = false; ... ... @@ -168,11 +168,11 @@ 168 168 var li = document.createElement('li'); 169 169 li.className = 'search-result-item'; 170 170 li.innerHTML = 171 - '<div class="search-result-name">' + escapeHtml(s.name)+ '</div>' +141 + '<div class="search-result-name">' + s.name + '</div>' + 172 172 '<div class="search-result-info">' + 173 - escapeHtml(s.pref)+ ' ' +escapeHtml(s.city)+ ' ・ ' +escapeHtml(s.type)+ '(' +escapeHtml(s.est)+ ')' +143 + s.pref + ' ' + s.city + ' ・ ' + s.type + '(' + s.est + ')' + 174 174 '</div>' + 175 - '<div class="search-result-code">' + escapeHtml(s.code)+ '</div>';145 + '<div class="search-result-code">' + s.code + '</div>'; 176 176 li.onclick = function() { selectSchool(s); }; 177 177 resultsList.appendChild(li); 178 178 }); ... ... @@ -204,7 +204,7 @@ 204 204 // 既存ページあり 205 205 document.getElementById('duplicateWarning').style.display = 'block'; 206 206 document.getElementById('duplicateLink').href = 207 - '/bin/Schools/' + school.code + '/'; 177 + '/bin/view/Schools/' + school.code + '/'; 208 208 document.getElementById('submitArea').style.display = 'none'; 209 209 } else { 210 210 // 新規作成OK