Skip to content
Open
Show file tree
Hide file tree
Changes from 2 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` ファイルのファイル名の先頭にはアドオン名を書きます。

利用者用設定画面の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