diff --git a/ecs/jskult-webapp/src/static/css/bioStyle.css b/ecs/jskult-webapp/src/static/css/bioStyle.css
index 55fea870..1314057c 100644
--- a/ecs/jskult-webapp/src/static/css/bioStyle.css
+++ b/ecs/jskult-webapp/src/static/css/bioStyle.css
@@ -317,25 +317,3 @@ table.tablesorter thead tr .headerSortDown {
table.tablesorter thead tr .headerSortDown, table.tablesorter thead tr .headerSortUp {
background-color: #8dbdd8;
}
-
-#loading {
- z-index: 10000;
- position: fixed;
- top: 0;
- left: 0;
- width: 100%;
- height: 100%;
- background-color: #FFF;
- overflow-x: hidden;
- overflow-y: auto;
- outline: 0;
- text-align: center;
- display: none;
- opacity: 0.7;
-}
-
-#loading_content {
- position: absolute;
- top: 50%;
- left: 50%;
-}
\ No newline at end of file
diff --git a/ecs/jskult-webapp/src/static/css/loading.css b/ecs/jskult-webapp/src/static/css/loading.css
new file mode 100644
index 00000000..8f081d29
--- /dev/null
+++ b/ecs/jskult-webapp/src/static/css/loading.css
@@ -0,0 +1,21 @@
+._loading {
+ z-index: 10000;
+ position: fixed;
+ top: 0;
+ left: 0;
+ width: 100%;
+ height: 100%;
+ background-color: #FFF;
+ overflow-x: hidden;
+ overflow-y: auto;
+ outline: 0;
+ text-align: center;
+ display: none;
+ opacity: 0.7;
+}
+
+._loading_content {
+ position: absolute;
+ top: 50%;
+ left: 50%;
+}
diff --git a/ecs/jskult-webapp/src/static/function/businessLogicScript.js b/ecs/jskult-webapp/src/static/function/businessLogicScript.js
index 56d971e4..a77bb2e9 100644
--- a/ecs/jskult-webapp/src/static/function/businessLogicScript.js
+++ b/ecs/jskult-webapp/src/static/function/businessLogicScript.js
@@ -1,8 +1,75 @@
+// ローディング
+
+/**
+ * ローディングクラス
+ * @param {string} loading_elem_id ローディングのHTML要素
+ */
+class Loading {
+ constructor(loadingElemId = '_loading') {
+ this.loadingElemId = loadingElemId;
+ // ロード中かどうか
+ this.isLoading = false;
+ }
+
+ /**
+ * ローディングを開始する。
+ * 開始済みの場合と、ローディングの要素が見つからない場合は何もしない。
+ */
+ start() {
+ if (this.isLoading)
+ return;
+
+ const loadingElem = document.getElementById(this.loadingElemId);
+
+ if (loadingElem) {
+ this.isLoading = true;
+ loadingElem.style.display = 'block';
+ }
+ }
+
+ /**
+ * ローディングを停止する。
+ * 開始されていない場合と、ローディングの要素が見つからない場合は何もしない。
+ */
+ stop() {
+ if (!this.isLoading)
+ return;
+
+ const loadingElem = document.getElementById(this.loadingElemId);
+
+ if (loadingElem) {
+ this.isLoading = false;
+ loadingElem.style.display = 'none';
+ }
+ }
+}
+
+
+/**
+ * ローダーを表示する
+ * @param {string} loadingElemId ローディング要素のID
+ */
+function showLoading(loadingElemId = '_loading') {
+ const loading = new Loading(loadingElemId);
+ loading.start();
+}
+
+// 汎用画面遷移
+
+function transitionTo(link){
+ // ローディング表示
+ showLoading();
+ location.href = link;
+ return false;
+}
+
// 検索フォーム
// 戻るボタンの関数
// 機能概要:メニュー画面に遷移する
function backToMenu(){
+ // ローディング表示
+ showLoading();
location.href = "/menu/";
}
@@ -224,8 +291,10 @@ function checkNumberOnlyForm($this)
// メニューへボタンの関数
// 機能概要:マスターメンテメニュー画面に遷移する
-function backToMainteMenu(){
+function backToMainteMenu(loadingElemId = '_loading'){
sessionStorage.clear();
+ // ローディング表示
+ showLoading(loadingElemId);
location.href = "/masterMainte/masterMainteMenu";
}
diff --git a/ecs/jskult-webapp/src/templates/_header.html b/ecs/jskult-webapp/src/templates/_header.html
index 01a1521a..c2476734 100644
--- a/ecs/jskult-webapp/src/templates/_header.html
+++ b/ecs/jskult-webapp/src/templates/_header.html
@@ -8,6 +8,7 @@
+
diff --git a/ecs/jskult-webapp/src/templates/_loading.html b/ecs/jskult-webapp/src/templates/_loading.html
new file mode 100644
index 00000000..437c7e50
--- /dev/null
+++ b/ecs/jskult-webapp/src/templates/_loading.html
@@ -0,0 +1,5 @@
+