From 7ac34c1a26ab32a2dedf995a0f2fe2b0cc629fd5 Mon Sep 17 00:00:00 2001 From: shun-nakazawa Date: Tue, 24 Oct 2023 11:39:21 +0900 Subject: [PATCH 1/3] add addon prefix to mako files of StorageAddon --- StorageAddon/README.md | 16 +++++++++------- StorageAddon/osf.io/addon/apps.py | 4 ++-- ...modal.mako => myminio_credentials_modal.mako} | 0 ..._settings.mako => myminio_node_settings.mako} | 2 +- ..._settings.mako => myminio_user_settings.mako} | 2 +- 5 files changed, 13 insertions(+), 11 deletions(-) rename StorageAddon/osf.io/addon/templates/{credentials_modal.mako => myminio_credentials_modal.mako} (100%) rename StorageAddon/osf.io/addon/templates/{node_settings.mako => myminio_node_settings.mako} (98%) rename StorageAddon/osf.io/addon/templates/{user_settings.mako => myminio_user_settings.mako} (97%) diff --git a/StorageAddon/README.md b/StorageAddon/README.md index 8f52bc3..201eafa 100644 --- a/StorageAddon/README.md +++ b/StorageAddon/README.md @@ -51,9 +51,9 @@ Addonによりユーザからの認証情報の受領や各種設定を行い、 │   ├── node-cfg.js ... Node設定のエントリとなるJavaScriptファイル │   └── user-cfg.js ... (*) User設定のエントリとなるJavaScriptファイル ├── templates ... テンプレートディレクトリ -│   ├── credentials_modal.mako ... (*) 認証情報の設定用ダイアログ -│   ├── node_settings.mako ... Node設定パネル -│   └── user_settings.mako ... (*) User設定パネル +│   ├── <アドオン名>_credentials_modal.mako ... (*) 認証情報の設定用ダイアログ +│   ├── <アドオン名>_node_settings.mako ... Node設定パネル +│   └── <アドオン名>_user_settings.mako ... (*) User設定パネル ├── tests ... テストコード │   ├── __init__.py │   ├── conftest.py @@ -150,12 +150,14 @@ My MinIOアドオンの場合は、以下のように定義します。 ### フレームワークによって提供されるView -アドオンが持つ利用者用設定画面(`user_settings.mako`)とプロジェクト用設定画面(`node_settings.mako`)のテンプレートをそれぞれ定義します。認証情報の設定用ダイアログ(`credentials_modal.mako`)はどちらの画面でも利用するので、別のファイルで定義し、それぞれから参照します。 +アドオンが持つ利用者用設定画面(`<アドオン名>_user_settings.mako`)とプロジェクト用設定画面(`<アドオン名>_node_settings.mako`)のテンプレートをそれぞれ定義します。認証情報の設定用ダイアログ(`<アドオン名>_credentials_modal.mako`)はどちらの画面でも利用するので、別のファイルで定義し、それぞれから参照します。 My MinIOアドオンの場合は、以下のように定義します。 -- [user_settings.mako](osf.io/addon/templates/user_settings.mako) -- [node_settings.mako](osf.io/addon/templates/node_settings.mako) -- [credentials_modal.mako](osf.io/addon/templates/credentials_modal.mako) +- [myminio_user_settings.mako](osf.io/addon/templates/myminio_user_settings.mako) +- [myminio_node_settings.mako](osf.io/addon/templates/myminio_node_settings.mako) +- [myminio_credentials_modal.mako](osf.io/addon/templates/myminio_credentials_modal.mako) + +※ `mako` ファイルのファイル名の先頭にはアドオン名を書きます。 利用者用設定画面のJavaScriptファイル(`user-cfg.js`, `myminioUserConfig.js`)と、プロジェクト用設定画面のJavaScriptファイル(`node-cfg.js`, `myminioNodeConfig.js`)をそれぞれ定義します。今回は、エントリとなるJavaScriptファイル(`*-cfg.js`)と定義ファイル(`myminio*Config.js`)を分けましたが、スケルトン アドオンのように `*-cfg.js` に定義を書いても構いません。 My MinIOアドオンの場合は、以下のように定義します。 diff --git a/StorageAddon/osf.io/addon/apps.py b/StorageAddon/osf.io/addon/apps.py index 7b9dc03..d5841b5 100644 --- a/StorageAddon/osf.io/addon/apps.py +++ b/StorageAddon/osf.io/addon/apps.py @@ -28,8 +28,8 @@ class MyMinIOAddonAppConfig(BaseAddonAppConfig): max_file_size = settings.MAX_FILE_SIZE - node_settings_template = os.path.join(TEMPLATE_PATH, 'node_settings.mako') - user_settings_template = os.path.join(TEMPLATE_PATH, 'user_settings.mako') + node_settings_template = os.path.join(TEMPLATE_PATH, 'myminio_node_settings.mako') + user_settings_template = os.path.join(TEMPLATE_PATH, 'myminio_user_settings.mako') BUCKET_LINKED = 'myminio_bucket_linked' BUCKET_UNLINKED = 'myminio_bucket_unlinked' diff --git a/StorageAddon/osf.io/addon/templates/credentials_modal.mako b/StorageAddon/osf.io/addon/templates/myminio_credentials_modal.mako similarity index 100% rename from StorageAddon/osf.io/addon/templates/credentials_modal.mako rename to StorageAddon/osf.io/addon/templates/myminio_credentials_modal.mako diff --git a/StorageAddon/osf.io/addon/templates/node_settings.mako b/StorageAddon/osf.io/addon/templates/myminio_node_settings.mako similarity index 98% rename from StorageAddon/osf.io/addon/templates/node_settings.mako rename to StorageAddon/osf.io/addon/templates/myminio_node_settings.mako index d10f294..75b6326 100644 --- a/StorageAddon/osf.io/addon/templates/node_settings.mako +++ b/StorageAddon/osf.io/addon/templates/myminio_node_settings.mako @@ -1,7 +1,7 @@
- <%include file="credentials_modal.mako"/> + <%include file="myminio_credentials_modal.mako"/>

diff --git a/StorageAddon/osf.io/addon/templates/user_settings.mako b/StorageAddon/osf.io/addon/templates/myminio_user_settings.mako similarity index 97% rename from StorageAddon/osf.io/addon/templates/user_settings.mako rename to StorageAddon/osf.io/addon/templates/myminio_user_settings.mako index 49a00ca..b2d2c84 100644 --- a/StorageAddon/osf.io/addon/templates/user_settings.mako +++ b/StorageAddon/osf.io/addon/templates/myminio_user_settings.mako @@ -3,7 +3,7 @@ data-addon-short-name="${ addon_short_name }" data-addon-name="${ addon_full_name }"> - <%include file="credentials_modal.mako"/> + <%include file="myminio_credentials_modal.mako"/>

From 69dde5c3c65592eded0bc89a7daef2672c027aa1 Mon Sep 17 00:00:00 2001 From: shun-nakazawa Date: Tue, 24 Oct 2023 12:36:45 +0900 Subject: [PATCH 2/3] add addon prefix to mako files of Skelton and ScreenExpansion --- ScreenExpansion/README.md | 2 +- ScreenExpansion/osf.io/addon/apps.py | 2 +- ...{node_settings.mako => myscreen_node_settings.mako} | 0 Skelton/README.md | 10 +++++----- Skelton/addon/apps.py | 2 +- ...node_settings.mako => myskelton_node_settings.mako} | 0 6 files changed, 8 insertions(+), 8 deletions(-) rename ScreenExpansion/osf.io/addon/templates/{node_settings.mako => myscreen_node_settings.mako} (100%) rename Skelton/addon/templates/{node_settings.mako => myskelton_node_settings.mako} (100%) diff --git a/ScreenExpansion/README.md b/ScreenExpansion/README.md index 52df936..5199f3c 100644 --- a/ScreenExpansion/README.md +++ b/ScreenExpansion/README.md @@ -48,7 +48,7 @@ ember-osf-webは、 [Ember.js](https://www.emberjs.com) をベースとしたOSF │   ├── node-cfg.js ... Node設定のエントリとなるJavaScriptファイル │   └── widget-cfg.js ... (*) ウィジェットのJavaScriptファイル ├── templates ... テンプレートディレクトリ -│   └── node_settings.mako ... Node設定パネル +│   └── <アドオン名>_node_settings.mako ... Node設定パネル ├── tests ... テストコード │   ├── __init__.py │   ├── conftest.py diff --git a/ScreenExpansion/osf.io/addon/apps.py b/ScreenExpansion/osf.io/addon/apps.py index 41e320e..4d65f1e 100644 --- a/ScreenExpansion/osf.io/addon/apps.py +++ b/ScreenExpansion/osf.io/addon/apps.py @@ -34,7 +34,7 @@ class AddonAppConfig(BaseAddonAppConfig): categories = ['other'] - node_settings_template = os.path.join(TEMPLATE_PATH, 'node_settings.mako') + node_settings_template = os.path.join(TEMPLATE_PATH, 'myscreen_node_settings.mako') @property def routes(self): diff --git a/ScreenExpansion/osf.io/addon/templates/node_settings.mako b/ScreenExpansion/osf.io/addon/templates/myscreen_node_settings.mako similarity index 100% rename from ScreenExpansion/osf.io/addon/templates/node_settings.mako rename to ScreenExpansion/osf.io/addon/templates/myscreen_node_settings.mako diff --git a/Skelton/README.md b/Skelton/README.md index d854a97..0fc9979 100644 --- a/Skelton/README.md +++ b/Skelton/README.md @@ -41,7 +41,7 @@ RDMにおいてアドオンは[Django](https://www.djangoproject.com/)アプリ │ ├── comicon.png ... アドオンのアイコン │ └── node-cfg.js ... Node設定を定義するJavaScriptファイル ├── templates ... テンプレートディレクトリ -│ └── node_settings.mako ... Node設定パネル +│ └── <アドオン名>_node_settings.mako ... Node設定パネル ├── tests ... テストコード │ ├── conftest.py │ ├── factories.py @@ -100,10 +100,10 @@ Routesは以下のようにパスとMethod(GET, POST, PUT, DELETE, ...)と、そ Routes, Viewsを使うことでさまざまなAPIやインタフェースを定義することができますが、アドオンが持つ利用者用設定画面(認証情報の入力画面)とプロジェクト用設定画面(プロジェクトでアドオンを有効化した場合の設定画面)はフレームワークによってあらかじめテンプレート化されています。 -- [node_settings.mako](addon/templates/node_settings.mako) +- [<アドオン名>_node_settings.mako](addon/templates/myskelton_node_settings.mako) - -このファイルは、テンプレート言語 [mako](https://www.makotemplates.org/) で記述されます。 +このファイルは、テンプレート言語 [mako](https://www.makotemplates.org/) で記述されます。 +`mako` ファイルのファイル名の先頭にはアドオン名を書きます。 テンプレートを動的に操作するためのJavaScriptのライブラリにはKnockout.jsを利用することができます。JavaScriptコードについては、アドオンのstaticディレクトリにて定義することができます。 @@ -302,7 +302,7 @@ $ docker-compose restart assets web api 1. My Skeltonアドオンを有効化する ![Enable Addon](images/enable-addon.png) -これで、`node_settings.mako`で定義したNode設定画面が現れます。テキストボックスに入力した値が `param_1` プロパティに反映される様子が確認できるはずです。 +これで、`myskelton_node_settings.mako`で定義したNode設定画面が現れます。テキストボックスに入力した値が `param_1` プロパティに反映される様子が確認できるはずです。 ![Addon](images/enabled-addon.png) diff --git a/Skelton/addon/apps.py b/Skelton/addon/apps.py index 1264d2e..064c7eb 100644 --- a/Skelton/addon/apps.py +++ b/Skelton/addon/apps.py @@ -35,7 +35,7 @@ class AddonAppConfig(BaseAddonAppConfig): include_css = {} - node_settings_template = os.path.join(TEMPLATE_PATH, 'node_settings.mako') + node_settings_template = os.path.join(TEMPLATE_PATH, 'myskelton_node_settings.mako') @property def routes(self): diff --git a/Skelton/addon/templates/node_settings.mako b/Skelton/addon/templates/myskelton_node_settings.mako similarity index 100% rename from Skelton/addon/templates/node_settings.mako rename to Skelton/addon/templates/myskelton_node_settings.mako From 1c8626b17bdaa0fb1731223fafb9801bbaeb2962 Mon Sep 17 00:00:00 2001 From: shun-nakazawa <43743042+shun-nakazawa@users.noreply.github.com> Date: Thu, 19 Dec 2024 21:57:54 +0900 Subject: [PATCH 3/3] Update StorageAddon/README.md for mako cache --- StorageAddon/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/StorageAddon/README.md b/StorageAddon/README.md index 201eafa..b9c4453 100644 --- a/StorageAddon/README.md +++ b/StorageAddon/README.md @@ -157,7 +157,7 @@ My MinIOアドオンの場合は、以下のように定義します。 - [myminio_node_settings.mako](osf.io/addon/templates/myminio_node_settings.mako) - [myminio_credentials_modal.mako](osf.io/addon/templates/myminio_credentials_modal.mako) -※ `mako` ファイルのファイル名の先頭にはアドオン名を書きます。 +> `mako` ファイルのファイル名の先頭にはアドオン名を書きます。RDMの動作モードによっては、makoのテンプレートがファイル名によってキャッシュされてしまうため、`user_settings.mako` のような同一名称のファイルが複数あると予期しない動作になりうるためです。 利用者用設定画面のJavaScriptファイル(`user-cfg.js`, `myminioUserConfig.js`)と、プロジェクト用設定画面のJavaScriptファイル(`node-cfg.js`, `myminioNodeConfig.js`)をそれぞれ定義します。今回は、エントリとなるJavaScriptファイル(`*-cfg.js`)と定義ファイル(`myminio*Config.js`)を分けましたが、スケルトン アドオンのように `*-cfg.js` に定義を書いても構いません。 My MinIOアドオンの場合は、以下のように定義します。