소스 검색

improve error message when api error occured by rename/duplicate/unportalize

Yuki Takei 7 년 전
부모
커밋
1ae951c197

+ 5 - 0
resource/locales/en-US/translation.json

@@ -174,6 +174,11 @@
       }
   },
 
+  "page_api_error": {
+    "notfound_or_forbidden": "Original page is not found or forbidden.",
+    "already_exists": "New page is already exists."
+  },
+
   "modal_rename": {
     "label": {
       "Rename page": "Rename page",

+ 4 - 2
resource/locales/ja/translation.json

@@ -190,8 +190,10 @@
       }
   },
 
-
-
+  "page_api_error": {
+    "notfound_or_forbidden": "元のページが見つからないか、アクセス権がありません。",
+    "already_exists": "新しいページが既に存在しています。"
+  },
 
   "modal_rename": {
     "label": {

+ 11 - 8
src/client/js/legacy/crowi.js

@@ -351,7 +351,7 @@ $(function() {
   // rename/unportalize
   $('#renamePage, #unportalize').on('shown.bs.modal', function(e) {
     $('#renamePage #newPageName').focus();
-    $('#renamePage .msg-already-exists, #unportalize .msg-already-exists').hide();
+    $('#renamePage .msg, #unportalize .msg').hide();
   });
   $('#renamePageForm, #unportalize-form').submit(function(e) {
     // create name-value map
@@ -369,9 +369,9 @@ $(function() {
       dataType: 'json'
     })
     .done(function(res) {
+      // error
       if (!res.ok) {
-        // if already exists
-        $('#renamePage .msg-already-exists, #unportalize .msg-already-exists').show();
+        $(`#renamePage .msg-${res.code}, #unportalize .msg-${res.code}`).show();
         $('#renamePage #linkToNewPage, #unportalize #linkToNewPage').html(`
           <a href="${nameValueMap.new_path}">${nameValueMap.new_path} <i class="icon-login"></i></a>
         `);
@@ -388,7 +388,7 @@ $(function() {
   // duplicate
   $('#duplicatePage').on('shown.bs.modal', function(e) {
     $('#duplicatePage #duplicatePageName').focus();
-    $('#duplicatePage .msg-already-exists').hide();
+    $('#duplicatePage .msg').hide();
   });
   $('#duplicatePageForm, #unportalize-form').submit(function(e) {
     // create name-value map
@@ -403,9 +403,9 @@ $(function() {
       data: $(this).serialize(),
       dataType: 'json'
     }).done(function(res) {
+      // error
       if (!res.ok) {
-        // if already exists
-        $('#duplicatePage .msg-already-exists').show();
+        $(`#duplicatePage .msg-${res.code}`).show();
         $('#duplicatePage #linkToNewPage').html(`
           <a href="${nameValueMap.new_path}">${nameValueMap.new_path} <i class="icon-login"></i></a>
         `);
@@ -420,6 +420,9 @@ $(function() {
   });
 
   // delete
+  $('#deletePage').on('shown.bs.modal', function(e) {
+    $('#deletePage .msg').hide();
+  });
   $('#delete-page-form').submit(function(e) {
     $.ajax({
       type: 'POST',
@@ -427,9 +430,9 @@ $(function() {
       data: $('#delete-page-form').serialize(),
       dataType: 'json'
     }).done(function(res) {
+      // error
       if (!res.ok) {
-        $('#delete-errors').html('<i class="fa fa-times-circle"></i> ' + res.error);
-        $('#delete-errors').addClass('alert-danger');
+        $(`#deletePage .msg-${res.code}`).show();
       }
       else {
         const page = res.page;

+ 6 - 3
src/server/views/modal/duplicate.html

@@ -24,10 +24,13 @@
         <div class="modal-footer">
           <div class="d-flex justify-content-between">
             <p>
-              <span class="text-danger msg-already-exists">
-                <strong><i class="icon-fw icon-ban"></i>{{ t('Page is already exists.') }}</strong>
+              <span class="text-danger msg msg-notfound_or_forbidden">
+                <strong><i class="icon-fw icon-ban"></i>{{ t('Original page is not found or forbidden.') }}</strong>
+              </span>
+              <span class="text-danger msg msg-already_exists">
+                <strong><i class="icon-fw icon-ban"></i>{{ t('New page path is already exists.') }}</strong>
+                <small id="linkToNewPage"></small>
               </span>
-              <small id="linkToNewPage" class="msg-already-exists"></small>
             </p>
             <div>
               <input type="hidden" name="_csrf" value="{{ csrf() }}">

+ 27 - 31
src/server/views/modal/rename.html

@@ -9,44 +9,40 @@
           <div class="modal-title">{{ t('Rename page') }}</div>
         </div>
         <div class="modal-body">
-            <div class="form-group">
-              <label for="">{{ t('Current page name') }}</label><br>
-              <code>{{ page.path }}</code>
-            </div>
-            <div class="form-group">
-              <label for="newPageName">{{ t('New page name') }}</label><br>
-              <div class="input-group">
-                <span class="input-group-addon">{{ config.crowi['app:siteUrl:fixed'] }}</span>
-                <input type="text" class="form-control" name="new_path" id="newPageName" value="{{ page.path }}">
-              </div>
+          <div class="form-group">
+            <label for="">{{ t('Current page name') }}</label><br>
+            <code>{{ page.path }}</code>
+          </div>
+          <div class="form-group">
+            <label for="newPageName">{{ t('New page name') }}</label><br>
+            <div class="input-group">
+              <span class="input-group-addon">{{ config.crowi['app:siteUrl:fixed'] }}</span>
+              <input type="text" class="form-control" name="new_path" id="newPageName" value="{{ page.path }}">
             </div>
-            <div class="checkbox checkbox-info">
-              <input name="move_recursively" id="cbRecursively" value="1" type="checkbox" checked>
-              <label for="cbRecursively">{{ t('modal_rename.label.Move recursively') }}</label>
-              <p class="help-block"> {{ t('modal_rename.help.recursive', page.path) }}
+          </div>
+          <div class="checkbox checkbox-warning">
+            <input name="move_recursively" id="cbRecursively" value="1" type="checkbox" checked>
+            <label for="cbRecursively">{{ t('modal_rename.label.Move recursively') }}</label>
+            <p class="help-block"> {{ t('modal_rename.help.recursive', page.path) }}
+            </p>
+          </div>
+          <div class="checkbox checkbox-info">
+            <input name="create_redirect" id="cbRedirect" value="1"  type="checkbox">
+              <label for="cbRedirect">{{ t('modal_rename.label.Redirect') }}</label>
+              <p class="help-block"> {{ t('modal_rename.help.redirect', page.path) }}
               </p>
-            </div>
-            <div class="checkbox checkbox-info">
-              <input name="create_redirect" id="cbRedirect" value="1"  type="checkbox">
-               <label for="cbRedirect">{{ t('modal_rename.label.Redirect') }}</label>
-               <p class="help-block"> {{ t('modal_rename.help.redirect', page.path) }}
-               </p>
-            </div>
-            {# <div class="checkbox"> #}
-            {#    <label> #}
-            {#      <input name="moveUnderTrees" value="1" type="checkbox"> 下層ページも全部移動する #}
-            {#    </label> #}
-            {#    <p class="help-block">チェックを入れると、<code>{{ page.path }}</code>以下の階層以下もすべて移動します。</p> #}
-            {#    <p class="help-block">例: <code>/hoge/fuga/move</code> を <code>/foo/bar/move</code> に移動すると、<code>/hoge/fuga/move/page1</code> も <code>/foo/bar/move/page1</code> に。</p> #}
-            {# </div> #}
+          </div>
         </div>
         <div class="modal-footer">
           <div class="d-flex justify-content-between">
             <p>
-              <span class="text-danger msg-already-exists">
-                <strong><i class="icon-fw icon-ban"></i>{{ t('Page is already exists.') }}</strong>
+              <span class="text-danger msg msg-notfound_or_forbidden">
+                <strong><i class="icon-fw icon-ban"></i>{{ t('page_api_error.notfound_or_forbidden') }}</strong>
+              </span>
+              <span class="text-danger msg msg-already_exists">
+                <strong><i class="icon-fw icon-ban"></i>{{ t('page_api_error.already_exists') }}</strong>
+                <small id="linkToNewPage"></small>
               </span>
-              <small id="linkToNewPage" class="msg-already-exists"></small>
             </p>
             <div>
               <input type="hidden" name="_csrf" value="{{ csrf() }}">

+ 6 - 3
src/server/views/modal/unportalize.html

@@ -34,10 +34,13 @@
         <div class="modal-footer">
           <div class="d-flex justify-content-between">
             <p>
-              <span class="text-danger msg-already-exists">
-                <strong><i class="icon-fw icon-ban"></i>{{ t('Page is already exists.') }}</strong>
+              <span class="text-danger msg msg-notfound_or_forbidden">
+                <strong><i class="icon-fw icon-ban"></i>{{ t('Original page is not found or forbidden.') }}</strong>
+              </span>
+              <span class="text-danger msg msg-already_exists">
+                <strong><i class="icon-fw icon-ban"></i>{{ t('New page path is already exists.') }}</strong>
+                <small id="linkToNewPage"></small>
               </span>
-              <small id="linkToNewPage" class="msg-already-exists"></small>
             </p>
             <div>
               <input type="hidden" name="_csrf" value="{{ csrf() }}">