diff --git a/plugins/bc-admin-third/src/bc_custom_content/js/admin/custom_entries/form.js b/plugins/bc-admin-third/src/bc_custom_content/js/admin/custom_entries/form.js index 468051fd3d..ee8c49a7b0 100644 --- a/plugins/bc-admin-third/src/bc_custom_content/js/admin/custom_entries/form.js +++ b/plugins/bc-admin-third/src/bc_custom_content/js/admin/custom_entries/form.js @@ -43,7 +43,13 @@ const customEntriesForm = { window.open('', 'preview'); const form = $(this).parents('form'); const action = form.attr('action'); - const previewUrl = $.bcUtil.adminBaseUrl + 'baser-core/preview/view?url=' + customEntriesForm.fullUrl + '&preview=default'; + + var previewMode = '&preview=default'; + if ($("#ContentPreviewMode").val() == 'draft') { + previewMode = '&preview=draft'; + } + + const previewUrl = $.bcUtil.adminBaseUrl + 'baser-core/preview/view?url=' + customEntriesForm.fullUrl + previewMode; const tokenUrl = $.bcUtil.baseUrl + '/baser-core/bc_form/get_token?requestview=false' form.attr('target', 'preview').attr('action', previewUrl).submit(); form.attr('target', '_self').attr('action', action); diff --git a/plugins/bc-admin-third/webroot/bc_custom_content/js/admin/custom_entries/form.bundle.js b/plugins/bc-admin-third/webroot/bc_custom_content/js/admin/custom_entries/form.bundle.js index 2b2f9a0c91..a9957f687c 100644 --- a/plugins/bc-admin-third/webroot/bc_custom_content/js/admin/custom_entries/form.bundle.js +++ b/plugins/bc-admin-third/webroot/bc_custom_content/js/admin/custom_entries/form.bundle.js @@ -8,5 +8,5 @@ * @since 5.0.0 * @license https://basercms.net/license/index.html MIT License */ -var t={fullUrl:null,mounted:function(){this.fullUrl=$("#AdminCustomEntriesFormScript").attr("data-fullUrl"),this.registerEvents()},registerEvents:function(){$("#BtnPreview").click(this.preview),$("#BtnAddLoop").click(this.addLoop),$(".btn-delete-loop").click(t.deleteLoop)},preview:function(){window.open("","preview");var e=$(this).parents("form"),r=e.attr("action"),i=$.bcUtil.adminBaseUrl+"baser-core/preview/view?url="+t.fullUrl+"&preview=default",a=$.bcUtil.baseUrl+"/baser-core/bc_form/get_token?requestview=false";return e.attr("target","preview").attr("action",i).submit(),e.attr("target","_self").attr("action",r),$.get(a,(function(t){$('input[name="_csrfToken"]').val(t)})),!1},addLoop:function(){var e=$(this).attr("data-src"),r=$(this).attr("data-count"),i=$("#BcCcLoopSrc"+e).clone();i.find("input, select, textarea, hidden").each((function(){$(this).attr("name",$(this).attr("name").replace("__loop-src__",r)),void 0!==$(this).attr("id")&&$(this).attr("id",$(this).attr("id").replace("loop-src",r))})),i.find("label").each((function(){$(this).attr("for",$(this).attr("for").replace("loop-src",r))}));var a="BcCcLoop"+e+"-"+r;i.attr("id",a),i.find(".btn-delete-loop").each((function(){$(this).attr("data-delete-target",a),$(this).click(t.deleteLoop)})),$("#loop-"+e).append(i),i.slideDown(150),$(this).attr("data-count",Number(r)+1),$("#"+a+" .bca-text-counter-value").remove(),$.bcUtil.setUpTextCounter("#"+a+" .bca-text-counter")},deleteLoop:function(){confirm("ループブロックを削除します。本当によろしいですか?")&&$("#"+$(this).attr("data-delete-target")).slideUp(150,(function(){$(this).remove()}))}};t.mounted()})(); +var t={fullUrl:null,mounted:function(){this.fullUrl=$("#AdminCustomEntriesFormScript").attr("data-fullUrl"),this.registerEvents()},registerEvents:function(){$("#BtnPreview").click(this.preview),$("#BtnAddLoop").click(this.addLoop),$(".btn-delete-loop").click(t.deleteLoop)},preview:function(){window.open("","preview");var e=$(this).parents("form"),r=e.attr("action"),a="&preview=default";"draft"==$("#ContentPreviewMode").val()&&(a="&preview=draft");var i=$.bcUtil.adminBaseUrl+"baser-core/preview/view?url="+t.fullUrl+a,o=$.bcUtil.baseUrl+"/baser-core/bc_form/get_token?requestview=false";return e.attr("target","preview").attr("action",i).submit(),e.attr("target","_self").attr("action",r),$.get(o,(function(t){$('input[name="_csrfToken"]').val(t)})),!1},addLoop:function(){var e=$(this).attr("data-src"),r=$(this).attr("data-count"),a=$("#BcCcLoopSrc"+e).clone();a.find("input, select, textarea, hidden").each((function(){$(this).attr("name",$(this).attr("name").replace("__loop-src__",r)),void 0!==$(this).attr("id")&&$(this).attr("id",$(this).attr("id").replace("loop-src",r))})),a.find("label").each((function(){$(this).attr("for",$(this).attr("for").replace("loop-src",r))}));var i="BcCcLoop"+e+"-"+r;a.attr("id",i),a.find(".btn-delete-loop").each((function(){$(this).attr("data-delete-target",i),$(this).click(t.deleteLoop)})),$("#loop-"+e).append(a),a.slideDown(150),$(this).attr("data-count",Number(r)+1),$("#"+i+" .bca-text-counter-value").remove(),$.bcUtil.setUpTextCounter("#"+i+" .bca-text-counter")},deleteLoop:function(){confirm("ループブロックを削除します。本当によろしいですか?")&&$("#"+$(this).attr("data-delete-target")).slideUp(150,(function(){$(this).remove()}))}};t.mounted()})(); //# sourceMappingURL=form.bundle.js.map \ No newline at end of file diff --git a/plugins/bc-admin-third/webroot/bc_custom_content/js/admin/custom_entries/form.bundle.js.map b/plugins/bc-admin-third/webroot/bc_custom_content/js/admin/custom_entries/form.bundle.js.map index 100ec71a6e..6a45b49142 100644 --- a/plugins/bc-admin-third/webroot/bc_custom_content/js/admin/custom_entries/form.bundle.js.map +++ b/plugins/bc-admin-third/webroot/bc_custom_content/js/admin/custom_entries/form.bundle.js.map @@ -1 +1 @@ -{"version":3,"file":"bc_custom_content/js/admin/custom_entries/form.bundle.js","mappings":";;;;;;;;;;AAaA,IAAMA,EAAoB,CAKtBC,QAAS,KAKTC,QAAO,WACHC,KAAKF,QAAUG,EAAE,iCAAiCC,KAAK,gBACvDF,KAAKG,gBACT,EAKAA,eAAc,WACVF,EAAE,eAAeG,MAAMJ,KAAKK,SAC5BJ,EAAE,eAAeG,MAAMJ,KAAKM,SAC5BL,EAAE,oBAAoBG,MAAMP,EAAkBU,WAClD,EAMAF,QAAO,WACHG,OAAOC,KAAK,GAAI,WAChB,IAAMC,EAAOT,EAAED,MAAMW,QAAQ,QACvBC,EAASF,EAAKR,KAAK,UACnBW,EAAaZ,EAAEa,OAAOC,aAAe,+BAAiClB,EAAkBC,QAAU,mBAClGkB,EAAWf,EAAEa,OAAOG,QAAU,kDAOpC,OANAP,EAAKR,KAAK,SAAU,WAAWA,KAAK,SAAUW,GAAYK,SAC1DR,EAAKR,KAAK,SAAU,SAASA,KAAK,SAAUU,GAE5CX,EAAEkB,IAAIH,GAAU,SAAUI,GACtBnB,EAAE,4BAA4BoB,IAAID,EACtC,KACO,CACX,EAKAd,QAAO,WACH,IAAIgB,EAAerB,EAAED,MAAME,KAAK,YAC5BqB,EAAQtB,EAAED,MAAME,KAAK,cACrBsB,EAAQvB,EAAE,eAAiBqB,GAAcE,QAE7CA,EAAMC,KAAK,mCAAmCC,MAAK,WAC/CzB,EAAED,MAAME,KAAK,OAAQD,EAAED,MAAME,KAAK,QAAQyB,QAAQ,eAAgBJ,SACxCK,IAAvB3B,EAAED,MAAME,KAAK,OACZD,EAAED,MAAME,KAAK,KAAMD,EAAED,MAAME,KAAK,MAAMyB,QAAQ,WAAYJ,GAElE,IAGAC,EAAMC,KAAK,SAASC,MAAK,WACrBzB,EAAED,MAAME,KAAK,MAAOD,EAAED,MAAME,KAAK,OAAOyB,QAAQ,WAAYJ,GAChE,IAEA,IAAMM,EAAK,WAAaP,EAAe,IAAMC,EAC7CC,EAAMtB,KAAK,KAAM2B,GACjBL,EAAMC,KAAK,oBAAoBC,MAAK,WAChCzB,EAAED,MAAME,KAAK,qBAAsB2B,GACnC5B,EAAED,MAAMI,MAAMP,EAAkBU,WACpC,IAEAN,EAAE,SAAWqB,GAAcQ,OAAON,GAClCA,EAAMO,UAAU,KAChB9B,EAAED,MAAME,KAAK,aAAc8B,OAAOT,GAAS,GAE3CtB,EAAE,IAAM4B,EAAK,4BAA4BI,SACzChC,EAAEa,OAAOoB,iBAAiB,IAAML,EAAK,qBACzC,EAKAtB,WAAU,WACD4B,QAAQ,8BAGblC,EAAE,IAAMA,EAAED,MAAME,KAAK,uBAAuBkC,QAAQ,KAAK,WACrDnC,EAAED,MAAMiC,QACZ,GACJ,GAIJpC,EAAkBE,S","sources":["webpack://bc-admin-third/./src/bc_custom_content/js/admin/custom_entries/form.js"],"sourcesContent":["/**\n * baserCMS : Based Website Development Project \n * Copyright (c) NPO baser foundation \n *\n * @copyright Copyright (c) NPO baser foundation\n * @link https://basercms.net baserCMS Project\n * @since 5.0.0\n * @license https://basercms.net/license/index.html MIT License\n */\n\n/**\n * Custom Entries Form\n */\nconst customEntriesForm = {\n\n /**\n * フルURL\n */\n fullUrl: null,\n\n /**\n * 初期化\n */\n mounted() {\n this.fullUrl = $(\"#AdminCustomEntriesFormScript\").attr('data-fullUrl');\n this.registerEvents();\n },\n\n /**\n * イベント登録\n */\n registerEvents() {\n $(\"#BtnPreview\").click(this.preview);\n $(\"#BtnAddLoop\").click(this.addLoop);\n $(\".btn-delete-loop\").click(customEntriesForm.deleteLoop);\n },\n\n /**\n * プレビュー\n * @returns {boolean}\n */\n preview() {\n window.open('', 'preview');\n const form = $(this).parents('form');\n const action = form.attr('action');\n const previewUrl = $.bcUtil.adminBaseUrl + 'baser-core/preview/view?url=' + customEntriesForm.fullUrl + '&preview=default';\n const tokenUrl = $.bcUtil.baseUrl + '/baser-core/bc_form/get_token?requestview=false'\n form.attr('target', 'preview').attr('action', previewUrl).submit();\n form.attr('target', '_self').attr('action', action);\n\n $.get(tokenUrl, function (result) {\n $('input[name=\"_csrfToken\"]').val(result);\n });\n return false;\n },\n\n /**\n * ループを追加する\n */\n addLoop() {\n var srcFieldName = $(this).attr('data-src');\n var count = $(this).attr('data-count');\n var clone = $(\"#BcCcLoopSrc\" + srcFieldName).clone();\n\n clone.find('input, select, textarea, hidden').each(function () {\n $(this).attr('name', $(this).attr('name').replace('__loop-src__', count));\n if($(this).attr('id') !== undefined) {\n $(this).attr('id', $(this).attr('id').replace('loop-src', count));\n }\n });\n\n // label for属性もループ番号に変更\n clone.find('label').each(function () {\n $(this).attr('for', $(this).attr('for').replace('loop-src', count));\n });\n\n const id = \"BcCcLoop\" + srcFieldName + '-' + count;\n clone.attr('id', id);\n clone.find('.btn-delete-loop').each(function () {\n $(this).attr('data-delete-target', id);\n $(this).click(customEntriesForm.deleteLoop);\n });\n\n $(\"#loop-\" + srcFieldName).append(clone);\n clone.slideDown(150);\n $(this).attr('data-count', Number(count) + 1);\n\n $(\"#\" + id + \" .bca-text-counter-value\").remove();\n $.bcUtil.setUpTextCounter(\"#\" + id + ' .bca-text-counter');\n },\n\n /**\n * ループを削除する\n */\n deleteLoop() {\n if (!confirm('ループブロックを削除します。本当によろしいですか?')) {\n return;\n }\n $(\"#\" + $(this).attr('data-delete-target')).slideUp(150, function () {\n $(this).remove();\n });\n }\n\n}\n\ncustomEntriesForm.mounted();\n\n"],"names":["customEntriesForm","fullUrl","mounted","this","$","attr","registerEvents","click","preview","addLoop","deleteLoop","window","open","form","parents","action","previewUrl","bcUtil","adminBaseUrl","tokenUrl","baseUrl","submit","get","result","val","srcFieldName","count","clone","find","each","replace","undefined","id","append","slideDown","Number","remove","setUpTextCounter","confirm","slideUp"],"sourceRoot":""} \ No newline at end of file +{"version":3,"file":"bc_custom_content/js/admin/custom_entries/form.bundle.js","mappings":";;;;;;;;;;AAaA,IAAMA,EAAoB,CAKtBC,QAAS,KAKTC,QAAO,WACHC,KAAKF,QAAUG,EAAE,iCAAiCC,KAAK,gBACvDF,KAAKG,gBACT,EAKAA,eAAc,WACVF,EAAE,eAAeG,MAAMJ,KAAKK,SAC5BJ,EAAE,eAAeG,MAAMJ,KAAKM,SAC5BL,EAAE,oBAAoBG,MAAMP,EAAkBU,WAClD,EAMAF,QAAO,WACHG,OAAOC,KAAK,GAAI,WAChB,IAAMC,EAAOT,EAAED,MAAMW,QAAQ,QACvBC,EAASF,EAAKR,KAAK,UAErBW,EAAe,mBACmB,SAAlCZ,EAAE,uBAAuBa,QACzBD,EAAc,kBAGlB,IAAME,EAAad,EAAEe,OAAOC,aAAe,+BAAiCpB,EAAkBC,QAAUe,EAClGK,EAAWjB,EAAEe,OAAOG,QAAU,kDAOpC,OANAT,EAAKR,KAAK,SAAU,WAAWA,KAAK,SAAUa,GAAYK,SAC1DV,EAAKR,KAAK,SAAU,SAASA,KAAK,SAAUU,GAE5CX,EAAEoB,IAAIH,GAAU,SAAUI,GACtBrB,EAAE,4BAA4Ba,IAAIQ,EACtC,KACO,CACX,EAKAhB,QAAO,WACH,IAAIiB,EAAetB,EAAED,MAAME,KAAK,YAC5BsB,EAAQvB,EAAED,MAAME,KAAK,cACrBuB,EAAQxB,EAAE,eAAiBsB,GAAcE,QAE7CA,EAAMC,KAAK,mCAAmCC,MAAK,WAC/C1B,EAAED,MAAME,KAAK,OAAQD,EAAED,MAAME,KAAK,QAAQ0B,QAAQ,eAAgBJ,SACxCK,IAAvB5B,EAAED,MAAME,KAAK,OACZD,EAAED,MAAME,KAAK,KAAMD,EAAED,MAAME,KAAK,MAAM0B,QAAQ,WAAYJ,GAElE,IAGAC,EAAMC,KAAK,SAASC,MAAK,WACrB1B,EAAED,MAAME,KAAK,MAAOD,EAAED,MAAME,KAAK,OAAO0B,QAAQ,WAAYJ,GAChE,IAEA,IAAMM,EAAK,WAAaP,EAAe,IAAMC,EAC7CC,EAAMvB,KAAK,KAAM4B,GACjBL,EAAMC,KAAK,oBAAoBC,MAAK,WAChC1B,EAAED,MAAME,KAAK,qBAAsB4B,GACnC7B,EAAED,MAAMI,MAAMP,EAAkBU,WACpC,IAEAN,EAAE,SAAWsB,GAAcQ,OAAON,GAClCA,EAAMO,UAAU,KAChB/B,EAAED,MAAME,KAAK,aAAc+B,OAAOT,GAAS,GAE3CvB,EAAE,IAAM6B,EAAK,4BAA4BI,SACzCjC,EAAEe,OAAOmB,iBAAiB,IAAML,EAAK,qBACzC,EAKAvB,WAAU,WACD6B,QAAQ,8BAGbnC,EAAE,IAAMA,EAAED,MAAME,KAAK,uBAAuBmC,QAAQ,KAAK,WACrDpC,EAAED,MAAMkC,QACZ,GACJ,GAIJrC,EAAkBE,S","sources":["webpack://bc-admin-third/./src/bc_custom_content/js/admin/custom_entries/form.js"],"sourcesContent":["/**\n * baserCMS : Based Website Development Project \n * Copyright (c) NPO baser foundation \n *\n * @copyright Copyright (c) NPO baser foundation\n * @link https://basercms.net baserCMS Project\n * @since 5.0.0\n * @license https://basercms.net/license/index.html MIT License\n */\n\n/**\n * Custom Entries Form\n */\nconst customEntriesForm = {\n\n /**\n * フルURL\n */\n fullUrl: null,\n\n /**\n * 初期化\n */\n mounted() {\n this.fullUrl = $(\"#AdminCustomEntriesFormScript\").attr('data-fullUrl');\n this.registerEvents();\n },\n\n /**\n * イベント登録\n */\n registerEvents() {\n $(\"#BtnPreview\").click(this.preview);\n $(\"#BtnAddLoop\").click(this.addLoop);\n $(\".btn-delete-loop\").click(customEntriesForm.deleteLoop);\n },\n\n /**\n * プレビュー\n * @returns {boolean}\n */\n preview() {\n window.open('', 'preview');\n const form = $(this).parents('form');\n const action = form.attr('action');\n\n var previewMode = '&preview=default';\n if ($(\"#ContentPreviewMode\").val() == 'draft') {\n previewMode = '&preview=draft';\n }\n\n const previewUrl = $.bcUtil.adminBaseUrl + 'baser-core/preview/view?url=' + customEntriesForm.fullUrl + previewMode;\n const tokenUrl = $.bcUtil.baseUrl + '/baser-core/bc_form/get_token?requestview=false'\n form.attr('target', 'preview').attr('action', previewUrl).submit();\n form.attr('target', '_self').attr('action', action);\n\n $.get(tokenUrl, function (result) {\n $('input[name=\"_csrfToken\"]').val(result);\n });\n return false;\n },\n\n /**\n * ループを追加する\n */\n addLoop() {\n var srcFieldName = $(this).attr('data-src');\n var count = $(this).attr('data-count');\n var clone = $(\"#BcCcLoopSrc\" + srcFieldName).clone();\n\n clone.find('input, select, textarea, hidden').each(function () {\n $(this).attr('name', $(this).attr('name').replace('__loop-src__', count));\n if($(this).attr('id') !== undefined) {\n $(this).attr('id', $(this).attr('id').replace('loop-src', count));\n }\n });\n\n // label for属性もループ番号に変更\n clone.find('label').each(function () {\n $(this).attr('for', $(this).attr('for').replace('loop-src', count));\n });\n\n const id = \"BcCcLoop\" + srcFieldName + '-' + count;\n clone.attr('id', id);\n clone.find('.btn-delete-loop').each(function () {\n $(this).attr('data-delete-target', id);\n $(this).click(customEntriesForm.deleteLoop);\n });\n\n $(\"#loop-\" + srcFieldName).append(clone);\n clone.slideDown(150);\n $(this).attr('data-count', Number(count) + 1);\n\n $(\"#\" + id + \" .bca-text-counter-value\").remove();\n $.bcUtil.setUpTextCounter(\"#\" + id + ' .bca-text-counter');\n },\n\n /**\n * ループを削除する\n */\n deleteLoop() {\n if (!confirm('ループブロックを削除します。本当によろしいですか?')) {\n return;\n }\n $(\"#\" + $(this).attr('data-delete-target')).slideUp(150, function () {\n $(this).remove();\n });\n }\n\n}\n\ncustomEntriesForm.mounted();\n\n"],"names":["customEntriesForm","fullUrl","mounted","this","$","attr","registerEvents","click","preview","addLoop","deleteLoop","window","open","form","parents","action","previewMode","val","previewUrl","bcUtil","adminBaseUrl","tokenUrl","baseUrl","submit","get","result","srcFieldName","count","clone","find","each","replace","undefined","id","append","slideDown","Number","remove","setUpTextCounter","confirm","slideUp"],"sourceRoot":""} \ No newline at end of file diff --git a/plugins/bc-custom-content/src/Service/Front/CustomContentFrontService.php b/plugins/bc-custom-content/src/Service/Front/CustomContentFrontService.php index 464f0fe38d..309575fb9a 100644 --- a/plugins/bc-custom-content/src/Service/Front/CustomContentFrontService.php +++ b/plugins/bc-custom-content/src/Service/Front/CustomContentFrontService.php @@ -371,6 +371,18 @@ public function setupPreviewForView(Controller $controller): void BcUtil::onEvent($customEntriesTable->getEventManager(), 'Model.beforeMarshal', $events); $entity = $customEntriesTable->decodeRow($entity); + + if ($request->getQuery('preview') === 'draft') { + $customFields = $customEntriesTable->links; + foreach ($customFields as $customField) { + if ($customField->custom_field->type !== 'CuCcBurgerEditor') { + continue; + } + $name = $customField->name; + $entity->$name = $entity->detail_draft; + } + } + $controller->set(['customEntry' => $entity]); // テンプレートの変更