Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion ScreenExpansion/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
2 changes: 1 addition & 1 deletion ScreenExpansion/osf.io/addon/apps.py
Original file line number Diff line number Diff line change
Expand Up @@ -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):
Expand Down
10 changes: 5 additions & 5 deletions Skelton/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down Expand Up @@ -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ディレクトリにて定義することができます。

Expand Down Expand Up @@ -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)

Expand Down
2 changes: 1 addition & 1 deletion Skelton/addon/apps.py
Original file line number Diff line number Diff line change
Expand Up @@ -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):
Expand Down
16 changes: 9 additions & 7 deletions StorageAddon/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down Expand Up @@ -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` ファイルのファイル名の先頭にはアドオン名を書きます。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アドオンの場合は、以下のように定義します。
Expand Down
4 changes: 2 additions & 2 deletions StorageAddon/osf.io/addon/apps.py
Original file line number Diff line number Diff line change
Expand Up @@ -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'
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
<div id="${addon_short_name}Scope" class="scripted">

<!-- Add credentials modal -->
<%include file="credentials_modal.mako"/>
<%include file="myminio_credentials_modal.mako"/>

<h4 class="addon-title">
<img class="addon-icon" src=${addon_icon_url}>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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"/>

<h4 class="addon-title">
<img class="addon-icon" src=${addon_icon_url}>
Expand Down