diff --git a/api/acquiring_application.yaml b/api/acquiring_application.yaml new file mode 100644 index 00000000..a7189693 --- /dev/null +++ b/api/acquiring_application.yaml @@ -0,0 +1,1239 @@ +openapi: 3.0.3 +info: + title: 利用申請を行うのためのWEB API + version: "1.0" +tags: + - name: files + description: ファイル情報 + - name: workflow + description: ワークフロー +paths: + /api/{version}/records/{pid}/files/{filename}/terms: + get: + tags: + - files + summary: 利用規約取得 + description: |- + 指定したファイルの利用規約取得 + |ロール|動作| + |----|----| + |システム管理者|使用可能| + |リポジトリ管理者|使用可能| + |コミュニティ管理者|使用可能| + |登録ユーザー|使用可能| + |一般ユーザー|使用可能| + |ゲストユーザー|使用可能| + parameters: + - name: version + in: path + description: このAPIのバージョン情報 + required: true + schema: + type: string + example: v1 + - name: pid + in: path + description: レコードを一意に識別するID + required: true + schema: + type: integer + example: 1 + - name: filename + in: path + description: ファイル名 + required: true + schema: + type: string + example: main.pdf + - name: Authorization + in: header + description: 認可情報 + schema: + type: string + example: Bearer アクセストークン + - name: If-None-Match + in: header + description: 1回目のレスポンスヘッダーETagに設定された値 + schema: + type: string + - name: Accept-Language + in: header + description: 言語 + schema: + type: string + default: en + - name: pretty + in: query + description: レスポンスの整形 + schema: + type: boolean + default: false + responses: + "200": + description: 取得成功 + headers: + Etag: + description: 利用規約内容を示すハッシュ値 + schema: + type: string + content: + application/json: + schema: + type: object + properties: + text: + description: 利用規約テキスト + type: string + Etag: + description: 利用規約内容を示すハッシュ値 + type: string + "401": + description: OAuth2認証失敗 + content: + application/json: + schema: + $ref: "#/components/schemas/ErrorBody" + "404": + description: |- + 存在しない + ・アイテムが存在しない + ・ファイルが存在しない + content: + application/json: + schema: + $ref: "#/components/schemas/ErrorBody" + "429": + description: |- + リクエスト制限 + ・リミットレートを超えてアクセスされた + content: + application/json: + schema: + $ref: "#/components/schemas/ErrorBody" + security: + - OAuth2: ["user:activity"] + + /api/{version}/records/{pid}/files/{filename}/application: + post: + tags: + - files + summary: 利用申請開始API + description: |- + 制限公開ファイルの利用申請を開始し、アクティビティ作成を行う + |ロール|動作| + |----|----| + |システム管理者|使用可能| + |リポジトリ管理者|使用可能| + |コミュニティ管理者|使用可能| + |登録ユーザー|使用可能| + |一般ユーザー|使用可能| + |ゲストユーザー|使用可能| + parameters: + - name: version + in: path + description: このAPIのバージョン情報 + required: true + schema: + type: string + example: v1 + - name: pid + in: path + description: レコードを一意に識別するID + required: true + schema: + type: integer + example: 1 + - name: filename + in: path + description: ファイル名 + required: true + schema: + type: string + example: main.pdf + - name: Authorization + in: header + description: 認可情報 + schema: + type: string + example: Bearer アクセストークン + - name: Accept-Language + in: header + description: 言語 + schema: + type: string + default: en + - name: pretty + in: query + description: レスポンスの整形 + schema: + type: boolean + default: false + - name: terms_token + in: query + description: 利用規約取得APIのEtagに設定された値 + schema: + type: string + - name: mail + in: query + description: ユーザのメールアドレス(ゲストユーザの場合のみ) + schema: + type: string + responses: + "200": + description: アクティビティ作成成功 + content: + application/json: + schema: + type: object + properties: + activity_id: + type: string + description: アクティビティID + example: A-20230803-00001 + activity_url: + type: string + description: アクティビティURL(UIアクセス用) + example: https://192.168.56.101/workflow/activity/guest-user/main.pdf?token=QS0yMDIzMDgwMy0wMDAwMSAyMDIzLTA4LTAzIGF0c3VzaGkuc3V6dWtpQGl2aXMuY28uanAgMkEyM0RFMEY1ODI0QjU2RQ==", + item_type_schema: + type: object + description: ItemRegistrationの入力項目(アイテムタイプスキーマ) + example: { + "$schema": "http://json-schema.org/draft-04/schema#", + "description": "", + "properties": { + "item_1616221831877": { + "properties": { + "subitem_restricted_access_dataset_usage": { + "format": "text", + "title": "Dataset Usage", + "title_i18n": { + "en": "Dataset Usage", + "ja": "データ名" + }, + "title_i18n_temp": { + "en": "Dataset Usage", + "ja": "データ名" + }, + "type": "string" + } + }, + "title": "Dataset Usage", + "type": "object" + }, + "item_1616221851421": { + "properties": { + "subitem_affiliated_division/department": { + "format": "text", + "title": "Affiliated Division/Department", + "title_i18n": { + "en": "Affiliated Division/Department", + "ja": "所属部局・部署" + }, + "title_i18n_temp": { + "en": "Affiliated Division/Department", + "ja": "所属部局・部署" + }, + "type": "string" + }, + "subitem_fullname": { + "format": "text", + "title": "Name", + "title_i18n": { + "en": "Name", + "ja": "名前" + }, + "title_i18n_temp": { + "en": "Name", + "ja": "名前" + }, + "type": "string" + }, + "subitem_mail_address": { + "format": "text", + "title": "Mail Address", + "title_i18n": { + "en": "Mail Address", + "ja": "メールアドレス" + }, + "title_i18n_temp": { + "en": "Mail Address", + "ja": "メールアドレス" + }, + "type": "string" + }, + "subitem_phone_number": { + "format": "text", + "title": "Phone Number", + "title_i18n": { + "en": "Phone Number", + "ja": "電話番号" + }, + "title_i18n_temp": { + "en": "Phone Number", + "ja": "電話番号" + }, + "type": "string" + }, + "subitem_position": { + "currentEnum": [], + "format": "select", + "title": "Position", + "type": [ + "null", + "string" + ] + }, + "subitem_position(others)": { + "format": "text", + "title": "Position(Others)", + "title_i18n": { + "en": "Position(Others)", + "ja": "役職(その他)" + }, + "title_i18n_temp": { + "en": "Position(Others)", + "ja": "役職(その他)" + }, + "type": "string" + }, + "subitem_university/institution": { + "format": "text", + "title": "University/Institution", + "title_i18n": { + "en": "University/Institution", + "ja": "所属大学・機関" + }, + "title_i18n_temp": { + "en": "University/Institution", + "ja": "所属大学・機関" + }, + "type": "string" + } + }, + "title": "Applicant", + "type": "object" + }, + "item_1616221894659": { + "items": { + "properties": { + "subitem_restricted_access_institution_name": { + "format": "text", + "title": "Institution Name", + "title_i18n": { + "en": "Institution Name", + "ja": "所属学会名" + }, + "title_i18n_temp": { + "en": "Institution Name", + "ja": "所属学会名" + }, + "type": "string" + }, + "subitem_restricted_access_institution_position": { + "currentEnum": [], + "format": "select", + "title": "Institution Position", + "type": [ + "null", + "string" + ] + } + }, + "type": "object" + }, + "maxItems": 9999, + "minItems": 1, + "title": "Applicant Affiliated Institution", + "type": "array" + }, + "item_1616221921931": { + "properties": { + "subitem_restricted_access_usage_report_id": { + "format": "text", + "title": "Usage Report ID", + "title_i18n": { + "en": "Usage Report ID", + "ja": "利用報告ID " + }, + "title_i18n_temp": { + "en": "Usage Report ID", + "ja": "利用報告ID " + }, + "type": "string" + } + }, + "title": "Usage Report ID", + "type": "object" + }, + "item_1616221941275": { + "properties": { + "subitem_restricted_access_research_title": { + "format": "text", + "title": "Research Title", + "title_i18n": { + "en": "Research Title", + "ja": "研究題目" + }, + "title_i18n_temp": { + "en": "Research Title", + "ja": "研究題目" + }, + "type": "string" + } + }, + "title": "Research Title", + "type": "object" + }, + "item_1616221960771": { + "properties": { + "subitem_restricted_access_research_plan": { + "format": "textarea", + "title": "Research Plan", + "title_i18n": { + "en": "Research Plan", + "ja": "研究計画" + }, + "title_i18n_temp": { + "en": "Research Plan", + "ja": "研究計画" + }, + "type": "string" + }, + "subitem_restricted_access_research_plan_type": { + "currentEnum": [ + "Abstract" + ], + "default": "Abstract", + "enum": [ + null, + "Abstract" + ], + "format": "select", + "title": "Research Plan Type", + "type": [ + "null", + "string" + ] + } + }, + "title": "Research Plan", + "type": "object" + }, + "item_1616221987611": { + "items": { + "properties": { + "accessrole": { + "enum": [ + "open_access", + "open_date", + "open_login", + "open_no" + ], + "format": "radios", + "title": "アクセス", + "type": [ + "null", + "string" + ] + }, + "date": { + "format": "array", + "items": { + "format": "object", + "properties": { + "dateType": { + "currentEnum": [], + "format": "select", + "title": "日付タイプ", + "type": [ + "null", + "string" + ] + }, + "dateValue": { + "format": "datetime", + "title": "日付", + "title_i18n": { + "en": "", + "ja": "" + }, + "type": "string" + } + }, + "type": "object" + }, + "title": "オープンアクセスの日付", + "type": "array" + }, + "displaytype": { + "currentEnum": [ + "detail", + "simple", + "preview" + ], + "enum": [ + null, + "detail", + "simple", + "preview" + ], + "format": "select", + "title": "表示形式", + "type": [ + "null", + "string" + ] + }, + "fileDate": { + "format": "array", + "items": { + "format": "object", + "properties": { + "fileDateType": { + "currentEnum": [ + "Accepted", + "Collected", + "Copyrighted", + "Issued", + "Submitted", + "Updated", + "Valid" + ], + "enum": [ + null, + "Accepted", + "Collected", + "Copyrighted", + "Issued", + "Submitted", + "Updated", + "Valid" + ], + "format": "select", + "title": "日付タイプ", + "type": [ + "null", + "string" + ] + }, + "fileDateValue": { + "format": "datetime", + "title": "日付", + "title_i18n": { + "en": "Date", + "ja": "日付" + }, + "title_i18n_temp": { + "en": "Date", + "ja": "日付" + }, + "type": "string" + } + }, + "type": "object" + }, + "title": "日付", + "type": "array" + }, + "filename": { + "format": "text", + "title": "表示名", + "title_i18n": { + "en": "FileName", + "ja": "表示名" + }, + "title_i18n_temp": { + "en": "FileName", + "ja": "表示名" + }, + "type": [ + "null", + "string" + ] + }, + "filesize": { + "format": "array", + "items": { + "format": "object", + "properties": { + "value": { + "format": "text", + "title": "サイズ", + "title_i18n": { + "en": "Size", + "ja": "サイズ" + }, + "title_i18n_temp": { + "en": "Size", + "ja": "サイズ" + }, + "type": "string" + } + }, + "type": "object" + }, + "title": "サイズ", + "type": "array" + }, + "format": { + "format": "text", + "title": "フォーマット", + "title_i18n": { + "en": "Format", + "ja": "フォーマット" + }, + "title_i18n_temp": { + "en": "Format", + "ja": "フォーマット" + }, + "type": "string" + }, + "groups": { + "currentEnum": [], + "format": "select", + "title": "グループ", + "type": [ + "null", + "string" + ] + }, + "licensefree": { + "format": "textarea", + "title": "自由ライセンス", + "title_i18n": { + "en": "自由ライセンス", + "ja": "自由ライセンス" + }, + "type": "string" + }, + "licensetype": { + "currentEnum": [], + "format": "select", + "title": "ライセンス", + "type": [ + "null", + "string" + ] + }, + "url": { + "format": "object", + "properties": { + "label": { + "format": "text", + "title": "ラベル", + "title_i18n": { + "en": "Label", + "ja": "ラベル" + }, + "title_i18n_temp": { + "en": "Label", + "ja": "ラベル" + }, + "type": "string" + }, + "objectType": { + "currentEnum": [ + "abstract", + "dataset", + "fulltext", + "software", + "summary", + "thumbnail", + "other" + ], + "enum": [ + null, + "abstract", + "dataset", + "fulltext", + "software", + "summary", + "thumbnail", + "other" + ], + "format": "select", + "title": "オブジェクトタイプ", + "type": [ + "null", + "string" + ] + }, + "url": { + "format": "text", + "title": "本文URL", + "title_i18n": { + "en": "Text URL", + "ja": "本文URL" + }, + "title_i18n_temp": { + "en": "Text URL", + "ja": "本文URL" + }, + "type": "string" + } + }, + "title": "本文URL", + "type": "object" + }, + "version": { + "format": "text", + "title": "バージョン情報", + "title_i18n": { + "en": "Version Information", + "ja": "バージョン情報" + }, + "title_i18n_temp": { + "en": "Version Information", + "ja": "バージョン情報" + }, + "type": "string" + } + }, + "type": "object" + }, + "maxItems": 9999, + "minItems": 1, + "title": "Co-user List", + "type": "array" + }, + "item_1616222047122": { + "properties": { + "subitem_restricted_access_wf_issued_date": { + "format": "datetime", + "title": "WF Issued Date", + "title_i18n": { + "en": "WF Issued Date", + "ja": "WF起票日" + }, + "title_i18n_temp": { + "en": "WF Issued Date", + "ja": "WF起票日" + }, + "type": "string" + }, + "subitem_restricted_access_wf_issued_date_type": { + "currentEnum": [ + "Created" + ], + "default": "Created", + "enum": [ + null, + "Created" + ], + "format": "select", + "title": "WF Issued Date Type", + "type": [ + "null", + "string" + ] + } + }, + "title": "WF Issued Date", + "type": "object" + }, + "item_1616222067301": { + "properties": { + "subitem_restricted_access_application_date": { + "format": "datetime", + "title": "Application Date", + "title_i18n": { + "en": "Application Date", + "ja": "申請日" + }, + "title_i18n_temp": { + "en": "Application Date", + "ja": "申請日" + }, + "type": "string" + }, + "subitem_restricted_access_application_date_type": { + "currentEnum": [ + "Issued" + ], + "default": "Issued", + "enum": [ + null, + "Issued" + ], + "format": "select", + "title": "Application Date Type", + "type": [ + "null", + "string" + ] + } + }, + "title": "Application Date", + "type": "object" + }, + "item_1616222093486": { + "properties": { + "subitem_restricted_access_approval_date": { + "format": "datetime", + "title": "Approval Date", + "title_i18n": { + "en": "Approval Date", + "ja": "承認日" + }, + "title_i18n_temp": { + "en": "Approval Date", + "ja": "承認日" + }, + "type": "string" + }, + "subitem_restricted_access_approval_date_type": { + "currentEnum": [ + "Accepted" + ], + "default": "Accepted", + "enum": [ + null, + "Accepted" + ], + "format": "select", + "title": "Approval Date Type", + "type": [ + "null", + "string" + ] + } + }, + "title": "Approval Date", + "type": "object" + }, + "item_1616222117209": { + "properties": { + "subitem_restricted_access_item_title": { + "format": "text", + "title": "Item Title", + "title_i18n": { + "en": "Item Title", + "ja": "アイテムタイトル" + }, + "title_i18n_temp": { + "en": "Item Title", + "ja": "アイテムタイトル" + }, + "type": "string" + } + }, + "title": "Item Title", + "type": "object" + }, + "pubdate": { + "format": "datetime", + "title": "PubDate", + "type": "string" + }, + "system_file": { + "format": "object", + "properties": { + "subitem_systemfile_datetime": { + "format": "array", + "items": { + "format": "object", + "properties": { + "subitem_systemfile_datetime_date": { + "format": "datetime", + "title": "SYSTEMFILE DateTime Date", + "type": "string" + }, + "subitem_systemfile_datetime_type": { + "enum": [ + "Accepted", + "Available", + "Collected", + "Copyrighted", + "Created", + "Issued", + "Submitted", + "Updated", + "Valid" + ], + "format": "select", + "title": "SYSTEMFILE DateTime Type", + "type": "string" + } + }, + "type": "object" + }, + "title": "SYSTEMFILE DateTime", + "type": "array" + }, + "subitem_systemfile_filename": { + "format": "array", + "items": { + "format": "object", + "properties": { + "subitem_systemfile_filename_label": { + "format": "text", + "title": "SYSTEMFILE Filename Label", + "type": "string" + }, + "subitem_systemfile_filename_type": { + "enum": [ + "Abstract", + "Fulltext", + "Summary", + "Thumbnail", + "Other" + ], + "format": "select", + "title": "SYSTEMFILE Filename Type", + "type": "string" + }, + "subitem_systemfile_filename_uri": { + "format": "text", + "title": "SYSTEMFILE Filename URI", + "type": "string" + } + }, + "type": "object" + }, + "title": "SYSTEMFILE Filename", + "type": "array" + }, + "subitem_systemfile_mimetype": { + "format": "text", + "title": "SYSTEMFILE MimeType", + "type": "string" + }, + "subitem_systemfile_size": { + "format": "text", + "title": "SYSTEMFILE Size", + "type": "string" + }, + "subitem_systemfile_version": { + "format": "text", + "title": "SYSTEMFILE Version", + "type": "string" + } + }, + "system_prop": true, + "title": "File Information", + "type": "object" + }, + "system_identifier_doi": { + "format": "object", + "properties": { + "subitem_systemidt_identifier": { + "format": "text", + "title": "SYSTEMIDT Identifier", + "type": "string" + }, + "subitem_systemidt_identifier_type": { + "enum": [ + "DOI", + "HDL", + "URI" + ], + "format": "select", + "title": "SYSTEMIDT Identifier Type", + "type": "string" + } + }, + "system_prop": true, + "title": "Persistent Identifier(DOI)", + "type": "object" + }, + "system_identifier_hdl": { + "format": "object", + "properties": { + "subitem_systemidt_identifier": { + "format": "text", + "title": "SYSTEMIDT Identifier", + "type": "string" + }, + "subitem_systemidt_identifier_type": { + "enum": [ + "DOI", + "HDL", + "URI" + ], + "format": "select", + "title": "SYSTEMIDT Identifier Type", + "type": "string" + } + }, + "system_prop": true, + "title": "Persistent Identifier(HDL)", + "type": "object" + }, + "system_identifier_uri": { + "format": "object", + "properties": { + "subitem_systemidt_identifier": { + "format": "text", + "title": "SYSTEMIDT Identifier", + "type": "string" + }, + "subitem_systemidt_identifier_type": { + "enum": [ + "DOI", + "HDL", + "URI" + ], + "format": "select", + "title": "SYSTEMIDT Identifier Type", + "type": "string" + } + }, + "system_prop": true, + "title": "Persistent Identifier(URI)", + "type": "object" + } + }, + "required": [ + "pubdate" + ], + "type": "object" + } + token: + type: string + description: アクティビティへのアクセスに必要なtoken(ゲストユーザの場合のみ) + example: QS0yMDIzMDgwMy0wMDAwMSAyMDIzLTA4LTAzIGF0c3VzaGkuc3V6dWtpQGl2aXMuY28uanAgMkEyM0RFMEY1ODI0QjU2RQ== + "400": + description: |- + リクエスト形式不正 + ・ゲストユーザの場合にメールアドレスがない + ・メールアドレス形式が不正 + ・terms_tokenが一致しない + content: + application/json: + schema: + $ref: "#/components/schemas/ErrorBody" + "401": + description: OAuth2認証失敗 + content: + application/json: + schema: + $ref: "#/components/schemas/ErrorBody" + "403": + description: |- + 権限エラー + ・ユーザロールに該当するワークフローが設定されていない + content: + application/json: + schema: + $ref: "#/components/schemas/ErrorBody" + "404": + description: |- + 存在しない + ・アイテムが存在しない + ・ファイルが存在しない + ・ワークフローが存在しない + content: + application/json: + schema: + $ref: "#/components/schemas/ErrorBody" + "429": + description: |- + リクエスト制限 + ・リミットレートを超えてアクセスされた + content: + application/json: + schema: + $ref: "#/components/schemas/ErrorBody" + security: + - OAuth2: ["user:activity"] + + /api/{version}/workflow/activities/{activity_id}/application: + post: + tags: + - workflow + summary: 利用申請API + description: |- + 制限公開ファイルの利用申請のワークフローにおける申請内容の登録を行う + |ロール|動作| + |----|----| + |システム管理者|使用可能| + |リポジトリ管理者|使用可能| + |コミュニティ管理者|使用可能| + |登録ユーザー|使用可能| + |一般ユーザー|使用可能| + |ゲストユーザー|使用可能| + parameters: + - name: version + in: path + description: このAPIのバージョン情報 + required: true + schema: + type: string + example: v1 + - name: activity_id + in: path + description: アクティビティを一意に識別するID + required: true + schema: + type: string + example: "A-20230803-00001" + - name: Authorization + in: header + description: 認可情報 + schema: + type: string + example: Bearer アクセストークン + - name: Accept-Language + in: header + description: 言語 + schema: + type: string + default: en + - name: pretty + in: query + description: レスポンスの整形 + schema: + type: boolean + default: false + - name: index_ids + in: query + description: アイテムの登録先インデックスID(カンマ区切りで複数インデックス指定可) + schema: + type: string + example: "101,22" + - name: token + in: query + description: アクティビティへのアクセスに必要なtoken(ゲストユーザの場合のみ) + schema: + type: string + requestBody: + description: + ItemRegistration入力項目 + required: true + content: + application/json: + schema: + type: object + example: + item_1616221831877: + subitem_restricted_access_dataset_usage: Sample Data Set + item_1616221851421: + subitem_restricted_access_name: 徳川家康 + subitem_restricted_access_mail_address: ieyasu.tokugawa@example.org + item_1616221894659: + - subitem_restricted_access_institution_name: 戦国学会 + subitem_restricted_access_institution_position: 理事・役員 + - subitem_restricted_access_institution_name: 江戸学会 + subitem_restricted_access_institution_position: 会長 + item_1616221941275: + subitem_restricted_access_research_title: 幕府運営に関する研究 + item_1616222047122: + subitem_restricted_access_wf_issued_date: "2023-07-18" + subitem_restricted_access_wf_issued_date_type: Created + + responses: + "200": + description: メタデータ登録成功 + content: + application/json: + schema: + type: object + properties: + action_info: + description: アクション情報 + type: object + properties: + action_id: + description: アクションID(ItemRegistrationアクションは3固定) + type: integer + example: 3 + action_date: + description: 更新日 + type: string + example: "2023/7/1 14:00:00.000" + action_user: + description: 更新者のID + type: integer + example: 1 + action_status: + description: 更新結果のステータス(入力項目の登録成功:F) + type: string + example: F + action_comment: + description: コメント(本APIでの登録時はnull固定) + type: string + example: null + registerd_data: + description: 申請内容(records_metadataに保存された内容) + type: object + example: + metainfo: + $schema: "40010" + created_by: 1 + deleted_items: [] + edit_mode: "keep" + id: "19" + item_1616221831877: + subitem_restricted_access_dataset_usage: Sample Data Set + item_1616221851421: + - subitem_restricted_access_name: "徳川家康" + subitem_restricted_access_mail_address: "ieyasu.tokugawa@example.org" + endpoints: + initialization: "/api/deposits/redirect/19.0" + "400": + description: |- + リクエスト形式不正
+ ・アクティビティの現在のアクションがItemRegistrationでない
+ ・tokenが不正な値である
+ ・ゲストアクティビティの有効期限が切れている
+ ・ItemRegistrationの必須項目の値が不足している
+ content: + application/json: + schema: + $ref: "#/components/schemas/ErrorBody" + "401": + description: OAuth2認証失敗 + content: + application/json: + schema: + $ref: "#/components/schemas/ErrorBody" + "403": + description: |- + 権限エラー
+ ・ユーザーにアクション実行権限がない + content: + application/json: + schema: + $ref: "#/components/schemas/ErrorBody" + "404": + description: |- + 存在しない
+ ・アクティビティが存在しない
+ ・アイテムが存在しない
+ ・ファイルが存在しない
+ ・インデックスが存在しない + content: + application/json: + schema: + $ref: "#/components/schemas/ErrorBody" + "429": + description: |- + リクエスト制限
+ ・リミットレートを超えてアクセスされた + content: + application/json: + schema: + $ref: "#/components/schemas/ErrorBody" + security: + - OAuth2: ["user:activity"] + +components: + schemas: + ErrorBody: + type: object + properties: + status: + description: HTTPステータスコード + type: string + message: + description: エラーメッセージ + type: string + securitySchemes: + OAuth2: + type: oauth2 + flows: + authorizationCode: + authorizationUrl: https://example.com/oauth/authorize + tokenUrl: https://example.com/oauth/token + scopes: + "user:activity": Allow create Workflow Activity diff --git a/api/activity_list.yaml b/api/activity_list.yaml new file mode 100644 index 00000000..bd8ed4d6 --- /dev/null +++ b/api/activity_list.yaml @@ -0,0 +1,182 @@ +openapi: 3.0.3 +info: + title: WEKO3制限公開機能のセルフアーカイブ対応のための改修 API + version: "0.0.1" +tags: + - name: アクティビティ一覧取得 +paths: + /api/{version}/workflow/activities: + get: + tags: + - アクティビティ一覧取得 + description: |- + システム管理者、リポジトリ管理者は全ユーザーのアクティビティ一覧を取得する。
+ コミュニティ管理者、登録ユーザーは自身が担当するアクティビティ一覧を取得する。 + |ロール|動作| + |----|----| + |システム管理者|使用可能(全ユーザーのアクティビティを取得)| + |リポジトリ管理者|使用可能(全ユーザーのアクティビティを取得)| + |コミュニティ管理者|使用可能(自身が担当するアクティビティを取得)| + |登録ユーザー|使用可能(自身が担当するアクティビティを取得)| + |一般ユーザー|使用不可能| + |ゲストユーザー|使用不可能| + parameters: + - name: version + in: path + description: このAPIのバージョン情報 + required: true + schema: + type: string + example: v1 + - name: Accept-Language + in: header + description: 表示する言語の指定 + schema: + type: string + default: en + - name: Authorization + in: header + description: Bearer アクセストークン + schema: + type: string + example: token + - name: If-None-Match + in: header + description: 初回リクエスト時のレスポンスヘッダーに設定されているETagの値 + schema: + type: string + - name: status + in: query + description: アクティビティ状態 + schema: + type: string + enum: [all, wait, todo] + default: todo + - name: limit + in: query + description: 取得するデータ件数 + schema: + type: integer + default: 20 + - name: page + in: query + description: 取得可能なデータ総数をlimitの数値で分割した際の取得するページ + schema: + type: integer + default: 1 + - name: pretty + in: query + description: レスポンス整形フラグ + schema: + type: boolean + default: false + responses: + "200": + description: 取得成功 + content: + application/json: + schema: + $ref: "#/components/schemas/ResponseBody" + "400": + description: リクエストパラメータ不正 + content: + application/json: + schema: + $ref: "#/components/schemas/ErrorBody" + "401": + description: 認証不正 + content: + application/json: + schema: + $ref: "#/components/schemas/ErrorBody" + "403": + description: ロール不正 + content: + application/json: + schema: + $ref: "#/components/schemas/ErrorBody" + security: + - OAuth2: ["user:activity"] + +components: + schemas: + ResponseBody: + type: object + properties: + total: + type: integer + description: 指定したアクティビティ状態の取得可能総数 + example: 100 + condition: + type: object + properties: + status: + type: string + description: 取得したアクティビティの状態 + example: todo + limit: + type: integer + description: 取得したデータ件数 + example: 20 + page: + type: integer + description: 取得したページ + example: 1 + activities: + type: array + items: + type: object + $ref: "#/components/schemas/ActivityObject" + ErrorBody: + type: object + properties: + code: + type: string + description: エラーコード + message: + type: string + description: エラーメッセージ + ActivityObject: + type: object + properties: + created: + type: string + description: 作成日 + example: "2023-01-01 00:00:00" + updated: + type: string + description: 更新日 + example: "2023-12-31 00:00:00" + activity_id: + type: string + description: アクティビティID + example: A-20230101-00001 + item_name: + type: string + description: アイテム名 + example: メタボリックシンドロームモデルマウスの... + workflow_type: + type: string + description: ワークフロー種別 + example: 利用報告 + action: + type: string + description: アクティビティの工程 + example: Approval + status: + type: string + description: アクティビティの状態 + example: Doing + user: + type: string + description: ユーザー + example: abc@sample.co.jp + securitySchemes: + OAuth2: + type: oauth2 + flows: + authorizationCode: + authorizationUrl: https://example.com/oauth/authorize + tokenUrl: https://example.com/oauth/token + scopes: + "user:activity": Allow create Workflow Activity diff --git a/api/application_decision.yaml b/api/application_decision.yaml new file mode 100644 index 00000000..316c4d09 --- /dev/null +++ b/api/application_decision.yaml @@ -0,0 +1,110 @@ +openapi: 3.0.3 +info: + title: 制限公開機能のためのWEB API + version: "1.0" +tags: + - name: items + description: アイテム情報 +paths: + /api/{version}/records/{pid}/need-restricted-access: + get: + tags: + - items + summary: 利用申請が必要かどうかを判断するAPI + description: |- + 当該アイテムのコンテンツダウンロードに利用申請が必要かどうかを判断する。 + |アクセス|ユーザー|利用申請|判定結果| + |----|----|----|----| + |利用申請以外|-|-|不要| + |利用申請|管理者|-|不要| + |利用申請|登録ユーザー|-|不要| + |利用申請|その他|申請、承認済み|不要| + |利用申請|その他|未承認|必要| + |利用申請|その他|未申請|必要| + |利用申請|その他|申請権限なし|必要| + parameters: + - name: version + in: path + description: このAPIのバージョン情報 + required: true + schema: + type: string + example: v1 + - name: pid + in: path + description: アイテムを一意に識別するID + required: true + schema: + type: number + example: 1 + - name: Authorization + in: header + description: |- + 認可情報 + 指定なしの場合は未ログインユーザーで実行されたと判断する。 + schema: + type: string + example: Bearer アクセストークン + responses: + "200": + description: |- + 処理成功 + ファイルごとに利用申請が必要かどうかの情報を返す。 + content: + application/json: + schema: + $ref: "#/components/schemas/RestrictedAccessInfo" + "401": + description: OAuth2認証失敗 + content: + application/json: + schema: + $ref: "#/components/schemas/ErrorBody" + "404": + description: |- + 存在しない + ・アイテムが存在しない + content: + application/json: + schema: + $ref: "#/components/schemas/ErrorBody" + security: + - OAuth2: ["item:read"] + +components: + schemas: + RestrictedAccessInfo: + type: object + properties: + files: + description: ファイルごとの情報 + type: array + items: + type: object + properties: + filename: + description: ファイル名 + type: string + example: File.pdf + need_restricted_access: + description: 利用申請が必要かどうか + type: boolean + example: true + ErrorBody: + type: object + properties: + status: + description: HTTPステータスコード + type: string + message: + description: エラーメッセージ + type: string + securitySchemes: + OAuth2: + type: oauth2 + flows: + authorizationCode: + authorizationUrl: https://example.com/oauth/authorize + tokenUrl: https://example.com/oauth/token + scopes: + "item:read": Grants access to read item diff --git a/api/approval_activity.yaml b/api/approval_activity.yaml new file mode 100644 index 00000000..35ce9498 --- /dev/null +++ b/api/approval_activity.yaml @@ -0,0 +1,203 @@ +openapi: 3.0.3 +info: + title: 制限公開機能のためのWEB API + version: "1.0" +tags: + - name: workflow + description: ワークフロー +paths: + /api/{version}/workflow/activities/{activity_id}/approve: + post: + tags: + - workflow + summary: 承認API + description: アクティビティの承認を行う。 + parameters: + - name: version + in: path + description: このAPIのバージョン情報 + required: true + schema: + type: string + example: v1 + - name: activity_id + in: path + description: アクティビティID + required: true + schema: + type: string + example: A-20230101-00001 + - name: Authorization + in: header + description: 認可情報 + required: true + schema: + type: string + example: Bearer アクセストークン + responses: + "200": + description: 承認成功 + content: + application/json: + schema: + $ref: "#/components/schemas/SuccessBody" + "400": + description: |- + リクエスト不正 + ・次のアクションが承認ではない + content: + application/json: + schema: + $ref: "#/components/schemas/ErrorBody" + "401": + description: OAuth2認証失敗 + content: + application/json: + schema: + $ref: "#/components/schemas/ErrorBody" + "403": + description: |- + 権限なし + ・ユーザーが承認権限を持っていない + content: + application/json: + schema: + $ref: "#/components/schemas/ErrorBody" + "404": + description: |- + 存在しない + ・アクティビティが存在しない + content: + application/json: + schema: + $ref: "#/components/schemas/ErrorBody" + security: + - OAuth2: ["workflow:approve"] + + /api/{version}/workflow/activities/{activity_id}/throw-out: + post: + tags: + - workflow + summary: 却下API + description: アクティビティの却下を行う。 + parameters: + - name: version + in: path + description: このAPIのバージョン情報 + required: true + schema: + type: string + example: v1 + - name: activity_id + in: path + description: アクティビティID + required: true + schema: + type: string + example: A-20230101-00001 + - name: Authorization + in: header + description: 認可情報 + required: true + schema: + type: string + example: Bearer アクセストークン + responses: + "200": + description: 却下成功 + content: + application/json: + schema: + $ref: "#/components/schemas/SuccessBody" + "400": + description: |- + リクエスト不正 + ・次のアクションが承認ではない + content: + application/json: + schema: + $ref: "#/components/schemas/ErrorBody" + "401": + description: OAuth2認証失敗 + content: + application/json: + schema: + $ref: "#/components/schemas/ErrorBody" + "403": + description: |- + アクセス権限なし + ・ユーザーが承認権限を持っていない + content: + application/json: + schema: + $ref: "#/components/schemas/ErrorBody" + "404": + description: |- + 存在しない + ・アクティビティが存在しない + content: + application/json: + schema: + $ref: "#/components/schemas/ErrorBody" + security: + - OAuth2: ["workflow:approve"] + +components: + schemas: + SuccessBody: + type: object + properties: + next_action: + description: 承認/却下後のアクション + type: object + properties: + id: + description: アクションID + type: integer + example: 2 + endpoint: + description: エンドポイント + type: string + example: "end_action" + action_info: + description: アクション情報 + type: object + properties: + action_id: + description: アクションID(承認アクションは4固定) + type: integer + example: 4 + action_date: + description: 更新日 + type: string + example: "2023/7/1 14:00:00.000" + action_user: + description: 更新者のID + type: integer + example: 1 + action_status: + description: 更新結果のステータス(承認:F、却下:T) + type: string + example: F + action_comment: + description: コメント(承認アクションはnull固定) + type: string + example: null + ErrorBody: + type: object + properties: + status: + description: HTTPステータスコード + type: string + message: + description: エラーメッセージ + type: string + securitySchemes: + OAuth2: + type: oauth2 + flows: + authorizationCode: + authorizationUrl: https://example.com/oauth/authorize + tokenUrl: https://example.com/oauth/token + scopes: + "workflow:approve": Grants access to approve workflow diff --git a/api/author_rest_api.yaml b/api/author_rest_api.yaml new file mode 100644 index 00000000..da54fa69 --- /dev/null +++ b/api/author_rest_api.yaml @@ -0,0 +1,453 @@ +openapi: 3.0.3 +info: + title: 著者DBを操作するためのWEB API + version: "1.0" +tags: + - name: author + description: 著者DB操作 + +paths: + /api/{version}/authors: + get: + tags: + - author + summary: 著者DB検索 + description: | + 指定された検索キーで著者DBを検索する。 + |ロール|動作| + |----|----| + |システム管理者|著者DBを検索可能| + |リポジトリ管理者|著者DBを検索可能| + |コミュニティ管理者|著者DBを検索可能| + |登録ユーザー|著者DBを検索不可| + |一般ユーザー|著者DBを検索不可| + |ゲストユーザー|著者DBを検索不可| + parameters: + - name: version + in: path + required: true + schema: + type: string + description: APIのバージョン + - name: fullname + in: query + schema: + type: string + description: 著者姓名 + - name: firstname + in: query + schema: + type: string + description: 著者名 + - name: familyname + in: query + schema: + type: string + description: 著者姓 + - name: idtype + in: query + schema: + type: string + description: 著者識別子の種類 + - name: authorid + in: query + schema: + type: string + description: 著者識別子 + - name: communityid + in: query + schema: + type: string + description: コミュニティID + - name: Authorization + in: header + schema: + type: string + description: Bearer アクセストークン + responses: + '200': + description: 正常終了 + content: + application/json: + schema: + $ref: '#/components/schemas/AuthorsResponse' + '400': + description: リクエストに不備がある + content: + application/json: + schema: + $ref: "#/components/schemas/ErrorBody" + '401': + description: OAuth2認証失敗 + content: + application/json: + schema: + $ref: "#/components/schemas/ErrorBody" + '403': + description: 該当ユーザに必要なロールが付与されていない + content: + application/json: + schema: + $ref: "#/components/schemas/ErrorBody" + '500': + description: 内部のエラー + content: + application/json: + schema: + $ref: "#/components/schemas/ErrorBody" + + post: + tags: + - author + summary: 著者DB著者登録 + description: | + 渡された内容で著者を登録する。 + |ロール|動作| + |----|----| + |システム管理者|著者を登録可能| + |リポジトリ管理者|著者を登録可能| + |コミュニティ管理者|著者を登録可能| + |登録ユーザー|著者を登録不可| + |一般ユーザー|著者を登録不可| + |ゲストユーザー|著者を登録不可| + parameters: + - name: version + in: path + required: true + schema: + type: string + description: APIのバージョン + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/AuthorRequest' + responses: + '200': + description: 正常終了 + content: + application/json: + schema: + $ref: '#/components/schemas/AuthorCreateResponse' + '400': + description: リクエストに不備がある + content: + application/json: + schema: + $ref: "#/components/schemas/ErrorBody" + '401': + description: OAuth2認証失敗 + content: + application/json: + schema: + $ref: "#/components/schemas/ErrorBody" + '403': + description: 該当ユーザに必要なロールが付与されていない + content: + application/json: + schema: + $ref: "#/components/schemas/ErrorBody" + '500': + description: 内部のエラー + content: + application/json: + schema: + $ref: "#/components/schemas/ErrorBody" + + /api/{version}/authors/{identifier}: + put: + tags: + - author + summary: 著者DB著者変更 + description: | + 指定された著者の情報を送られてきた情報で置き換える。 + |ロール|動作| + |----|----| + |システム管理者|著者を変更可能| + |リポジトリ管理者|著者を変更可能| + |コミュニティ管理者|著者を変更可能| + |登録ユーザー|著者を変更不可| + |一般ユーザー|著者を変更不可| + |ゲストユーザー|著者を変更不可| + parameters: + - name: version + in: path + required: true + schema: + type: string + description: APIのバージョン + - name: identifier + in: path + required: true + schema: + type: string + description: 著者の識別子(ElasticSearchのuuidまたはauthorsテーブルのid) + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/AuthorUpdateRequest' + responses: + '200': + description: 正常終了 + content: + application/json: + schema: + $ref: '#/components/schemas/AuthorUpdateResponse' + '400': + description: リクエストに不備がある + content: + application/json: + schema: + $ref: "#/components/schemas/ErrorBody" + '401': + description: OAuth2認証失敗 + content: + application/json: + schema: + $ref: "#/components/schemas/ErrorBody" + '403': + description: 該当ユーザに必要なロールが付与されていない + content: + application/json: + schema: + $ref: "#/components/schemas/ErrorBody" + '404': + description: 指定された著者が存在しない + content: + application/json: + schema: + $ref: "#/components/schemas/ErrorBody" + '500': + description: 内部のエラー + content: + application/json: + schema: + $ref: "#/components/schemas/ErrorBody" + + delete: + tags: + - author + summary: 著者DB著者削除 + description: | + 指定された著者情報を削除する。 + |ロール|動作| + |----|----| + |システム管理者|著者を削除可能| + |リポジトリ管理者|著者を削除可能| + |コミュニティ管理者|著者を削除可能| + |登録ユーザー|著者を削除不可| + |一般ユーザー|著者を削除不可| + |ゲストユーザー|著者を削除不可| + parameters: + - name: version + in: path + required: true + schema: + type: string + description: APIのバージョン + - name: identifier + in: path + required: true + schema: + type: string + description: 著者の識別子(ElasticSearchのuuidまたはauthorsテーブルのid) + responses: + '200': + description: 正常終了 + '400': + description: リクエストに不備がある + content: + application/json: + schema: + $ref: "#/components/schemas/ErrorBody" + '401': + description: OAuth2認証失敗 + content: + application/json: + schema: + $ref: "#/components/schemas/ErrorBody" + '403': + description: 該当ユーザに必要なロールが付与されていない + content: + application/json: + schema: + $ref: "#/components/schemas/ErrorBody" + '404': + description: 指定された著者が存在しない + content: + application/json: + schema: + $ref: "#/components/schemas/ErrorBody" + '500': + description: 内部のエラー + content: + application/json: + schema: + $ref: "#/components/schemas/ErrorBody" + +components: + schemas: + ErrorBody: + type: object + properties: + code: + type: string + description: エラーコード + message: + type: string + description: エラーメッセージ + AuthorsResponse: + type: object + properties: + authors: + type: array + items: + $ref: '#/components/schemas/Author' + AuthorRequest: + type: object + properties: + author: + $ref: '#/components/schemas/Author' + AuthorUpdateRequest: + type: object + properties: + force_change: + type: boolean + description: 著者名の変更をアイテムに反映するかどうか + author: + $ref: '#/components/schemas/Author' + AuthorCreateResponse: + type: object + properties: + author: + allOf: + - type: object + - description: 登録された著者情報 + - $ref: '#/components/schemas/Author' + message: + type: string + description: 登録結果メッセージ + example: Author successfully registered. + AuthorUpdateResponse: + type: object + properties: + author: + allOf: + - type: object + - description: 更新された著者情報 + - $ref: '#/components/schemas/Author' + message: + type: string + description: 更新結果メッセージ + example: Author successfully updated. + Author: + type: object + properties: + emailInfo: + type: array + items: + type: object + properties: + email: + type: string + description: 著者のメールアドレス + authorIdInfo: + type: array + items: + type: object + properties: + idType: + type: string + description: 著者識別子の種類(例:weko, orcid) + authorId: + type: string + description: 著者識別子 + authorIdShowFlg: + type: boolean + description: 外部著者IDを自動入力するかどうか + authorNameInfo: + type: array + items: + type: object + properties: + language: + type: string + description: 著者姓名の記述言語(例:ja, en) + firstName: + type: string + description: 著者名 + familyName: + type: string + description: 著者姓 + nameFormat: + type: string + description: 著者名と著者姓の組み合わせ方 + nameShowFlg: + type: boolean + description: 氏名が自動入力されるかどうか + affiliationInfo: + type: array + items: + type: object + properties: + identifierInfo: + type: array + items: + type: object + properties: + affiliationId: + type: string + description: 所属機関識別子 + affiliationIdType: + type: string + description: 所属機関識別子の種類(例:ISNI, ROR) + identifierShowFlg: + type: boolean + description: 所属機関識別子が自動入力されるかどうか + affiliationNameInfo: + type: array + items: + type: object + properties: + affiliationName: + type: string + description: 所属機関名 + affiliationNameLang: + type: string + description: 所属機関の記述言語(例:ja, en) + affiliationNameShowFlg: + type: boolean + description: 所属機関名が自動入力されるかどうか + affiliationPeriodInfo: + type: array + items: + type: object + properties: + periodStart: + type: string + format: date + description: 所属開始日(yyyy-MM-dd形式) + periodEnd: + type: string + format: date + description: 所属終了日(yyyy-MM-dd形式) + communityIds: + type: array + items: + type: string + description: 著者が所属するコミュニティIDのリスト + securitySchemes: + OAuth2: + type: oauth2 + flows: + authorizationCode: + authorizationUrl: https://example.com/oauth/authorize + tokenUrl: https://example.com/oauth/token + scopes: + "author:search": Grants access to search authors + "author:create": Grants access to create authors + "author:update": Grants access to update authors + "author:delete": Grants access to delete authors \ No newline at end of file diff --git a/api/captcha_image.yaml b/api/captcha_image.yaml new file mode 100644 index 00000000..04b82003 --- /dev/null +++ b/api/captcha_image.yaml @@ -0,0 +1,177 @@ +openapi: 3.0.3 +info: + title: CAPTCHA画像用WEB API + version: "1.0" +tags: + - name: captcha + description: CAPTCHA +paths: + /api/{version}/captcha/image: + get: + tags: + - captcha + summary: CAPTCHA画像取得API + description: |- + CAPTCHA画像を生成し、取得するAPI + |ロール|動作| + |----|----| + |システム管理者|使用可能| + |リポジトリ管理者|使用可能| + |コミュニティ管理者|使用可能| + |登録ユーザー|使用可能| + |一般ユーザー|使用可能| + |ゲストユーザー|使用可能| + --- + #### サンプルコード + curl /api/v1/captcha/image + parameters: + - name: version + in: path + description: このAPIのバージョン情報 + required: true + schema: + type: string + example: v1 + - name: Accept-Language + in: header + description: 言語 + schema: + type: string + default: en + - name: pretty + in: query + description: レスポンスの整形 + schema: + type: boolean + default: false + responses: + "200": + description: CAPTCHA画像取得成功 + content: + application/json: + schema: + $ref: "#/components/schemas/SuccessGetBody" + "429": + description: |- + リクエスト制限 + - リミットレートを超えてアクセスされた + content: + application/json: + schema: + $ref: "#/components/schemas/ErrorBody" + /api/{version}/captcha/validate: + post: + tags: + - captcha + summary: CAPTCHA結果検証API + description: |- + CAPTCHAの計算結果を検証するAPI + |ロール|動作| + |----|----| + |システム管理者|使用可能| + |リポジトリ管理者|使用可能| + |コミュニティ管理者|使用可能| + |登録ユーザー|使用可能| + |一般ユーザー|使用可能| + |ゲストユーザー|使用可能| + --- + #### サンプルコード + curl -X POST -H "Content-Type: application/json" /api/v1/captcha/validate \ + -d '{ "key": "aaa", "calculation_result": 20 }' + parameters: + - name: version + in: path + description: このAPIのバージョン情報 + required: true + schema: + type: string + example: v1 + - name: Accept-Language + in: header + description: 言語 + schema: + type: string + default: en + - name: pretty + in: query + description: レスポンスの整形 + schema: + type: boolean + default: false + requestBody: + required: true + content: + application/json: + schema: + type: object + properties: + key: + description: CAPTCHA画像に紐づくkey値 + type: string + example: "aaa" + calculation_result: + description: CAPTCHA画像の計算結果 + type: integer + example: 20 + required: + - "key" + - "calculation_result" + responses: + "200": + description: CAPTCHA検証成功 + content: + application/json: + schema: + $ref: "#/components/schemas/SuccessCaptchaPostBody" + "400": + description: |- + リクエスト形式不正 + - リクエストボディに必須項目がない + - 該当項目が空文字 + - CAPTCHA検証失敗 + content: + application/json: + schema: + $ref: "#/components/schemas/SuccessCaptchaPostBody" + "429": + description: |- + リクエスト制限 + - リミットレートを超えてアクセスされた + content: + application/json: + schema: + $ref: "#/components/schemas/ErrorBody" + +components: + schemas: + SuccessGetBody: + type: object + properties: + key: + description: CAPTCHA画像に紐づくkey値 + type: string + example: "aaa" + image: + description: Base64でエンコードされたCAPTCHA画像 + type: string + example: "VGhpcyBpcyBiYXNlNjQgZW5jb2RlZCBkYXRhLiA=" + ttl: + description: CAPTCHA画像のTTL値(秒) + type: number + example: 600 + SuccessCaptchaPostBody: + type: object + properties: + authorization_token: + description: 検証成功時に生成されたトークン + type: string + example: "68680b0b249e005b2d422393a17a9a3373ab6320d0d1af4d443336c0854602d8" + ErrorBody: + type: object + properties: + status: + description: HTTPステータスコード + type: string + message: + description: エラーメッセージ + type: string diff --git a/api/indext_op.yaml b/api/indext_op.yaml new file mode 100755 index 00000000..d031355c --- /dev/null +++ b/api/indext_op.yaml @@ -0,0 +1,528 @@ +openapi: 3.0.3 +info: + title: インデックス情報取得用WEB API + version: "1.0" +tags: + - name: Index Management + description: インデックス管理 +paths: + /api/{version}/tree: + get: + tags: + - Index Management + summary: 全インデックス取得 + description: | + 全インデックスを取得する。 + |ロール |動作 | + | ---------------- | ------------------------ | + |システム管理者 |全インデックスを取得可能 | + |リポジトリ管理者 |全インデックスを取得可能 | + |コミュニティ管理者|管理下の全インデックスと公開インデックス取得可能| + |登録ユーザー |公開インデックスを取得可能| + |一般ユーザー |公開インデックスを取得可能| + |ゲストユーザー |取得不可 | + parameters: + - name: version + in: path + required: true + schema: + type: string + description: APIのバージョン + responses: + '200': + description: 正常終了 + content: + application/json: + schema: + $ref: '#/components/schemas/indextree' + '401': + description: OAuth2認証失敗 + content: + application/json: + schema: + $ref: "#/components/schemas/error" + '403': + description: 該当ユーザの権限で指定されたインデックスへのアクセスが許可されていない + content: + application/json: + schema: + $ref: "#/components/schemas/error" + '404': + description: 指定されたインデックスが存在しない + content: + application/json: + schema: + $ref: "#/components/schemas/error" + '500': + description: サーバ内部のエラー + content: + application/json: + schema: + $ref: "#/components/schemas/error" + security: + - OAuth2: ["index:read"] + + /api/{version}/tree/{index_id}: + get: + tags: + - Index Management + summary: インデックス取得 + description: | + 指定されたインデックスを取得する。 + その配下の全インデックスを取得する。 + |ロール |動作 | + | ---------------- | ------------------------ | + |システム管理者 |全インデックスを取得可能 | + |リポジトリ管理者 |全インデックスを取得可能 | + |コミュニティ管理者|管理下の全インデックスと公開インデックス取得可能| + |登録ユーザー |公開インデックスを取得可能| + |一般ユーザー |公開インデックスを取得可能| + |ゲストユーザー |取得不可 | + parameters: + - name: version + in: path + required: true + schema: + type: string + description: APIのバージョン + - name: index_id + in: path + required: true + schema: + type: string + description: 取得したいインデックスのID + responses: + '200': + description: 正常終了 + content: + application/json: + schema: + $ref: '#/components/schemas/indextree' + '401': + description: OAuth2認証失敗 + content: + application/json: + schema: + $ref: "#/components/schemas/error" + '403': + description: 該当ユーザの権限で指定されたインデックスへのアクセスが許可されていない + content: + application/json: + schema: + $ref: "#/components/schemas/error" + '404': + description: 指定されたインデックスが存在しない + content: + application/json: + schema: + $ref: "#/components/schemas/error" + '500': + description: サーバ内部のエラー + content: + application/json: + schema: + $ref: "#/components/schemas/error" + security: + - OAuth2: ["index:read"] + + + /api/{version}/tree/index: + post: + tags: + - Index Management + summary: インデックス登録 + description: | + インデックスを登録する。 + |ロール |動作 | + | ---------------- | ------------------------- | + |システム管理者 |全インデックス下に作成可能 | + |リポジトリ管理者 |全インデックス下に作成可能 | + |コミュニティ管理者|管理下の全インデックスの下に作成可能| + |登録ユーザー |利用不可 | + |一般ユーザー |利用不可 | + |ゲストユーザー |利用不可 | + parameters: + - name: version + in: path + required: true + schema: + type: string + description: APIのバージョン + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/index' + responses: + '200': + description: 正常終了 + content: + application/json: + schema: + $ref: "#/components/schemas/index" + '400': + description: 必須の項目が記述されていない。リクエストボディが無い。 + content: + application/json: + schema: + $ref: "#/components/schemas/error" + '401': + description: OAuth2認証失敗 + content: + application/json: + schema: + $ref: "#/components/schemas/error" + '403': + description: 該当ユーザに必要なロールが付与されていない + content: + application/json: + schema: + $ref: "#/components/schemas/error" + '500': + description: サーバ内部のエラー + content: + application/json: + schema: + $ref: "#/components/schemas/error" + security: + - OAuth2: ["index:create"] + + + /api/{version}/tree/index/{index_id}: + put: + tags: + - Index Management + summary: インデックス変更 + description: | + 指定されたインデックスの情報を変更する。 + |ロール |動作 | + | ---------------- | ---------------------------- | + |システム管理者 |全インデックス更新可能 | + |リポジトリ管理者 |全インデックス更新可能 | + |コミュニティ管理者|管理下の全インデックス更新可能| + |登録ユーザー |利用不可 | + |一般ユーザー |利用不可 | + |ゲストユーザー |利用不可 | + parameters: + - name: version + in: path + required: true + schema: + type: string + description: APIのバージョン + - name: index_id + in: path + required: true + schema: + type: string + description: 更新したいインデックスのID + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/index' + responses: + '200': + description: 正常終了 + content: + application/json: + schema: + $ref: "#/components/schemas/index" + '400': + description: リクエストに不備がある + content: + application/json: + schema: + $ref: "#/components/schemas/error" + '401': + description: OAuth2認証失敗 + content: + application/json: + schema: + $ref: "#/components/schemas/error" + '403': + description: 該当ユーザに必要なロールが付与されていない + content: + application/json: + schema: + $ref: "#/components/schemas/error" + '404': + description: 指定されたインデックスが存在しない + content: + application/json: + schema: + $ref: "#/components/schemas/error" + '500': + description: サーバ内部のエラー + content: + application/json: + schema: + $ref: "#/components/schemas/error" + security: + - OAuth2: ["index:update"] + + + delete: + tags: + - Index Management + summary: インデックス削除 + description: | + 指定されたインデックスを削除する。 + |ロール |動作 | + | ---------------- | ---------------------------- | + |システム管理者 |全インデックス削除可能 | + |リポジトリ管理者 |全インデックス削除可能 | + |コミュニティ管理者|管理下の全インデックス削除可能| + |登録ユーザー |利用不可 | + |一般ユーザー |利用不可 | + |ゲストユーザー |利用不可 | + parameters: + - name: version + in: path + required: true + schema: + type: string + description: APIのバージョン + - name: index_id + in: path + required: true + schema: + type: string + description: 削除したいインデックスのID + responses: + '204': + description: 正常終了 + '400': + description: リクエストに不備がある + content: + application/json: + schema: + $ref: "#/components/schemas/error" + '401': + description: OAuth2認証失敗 + content: + application/json: + schema: + $ref: "#/components/schemas/error" + '403': + description: 該当ユーザに必要なロールが付与されていない + content: + application/json: + schema: + $ref: "#/components/schemas/error" + '404': + description: 指定されたインデックスが存在しない + content: + application/json: + schema: + $ref: "#/components/schemas/error" + '500': + description: サーバ内部のエラー + content: + application/json: + schema: + $ref: "#/components/schemas/error" + security: + - OAuth2: ["index:delete"] + + +components: + schemas: + indextree: + type: object + properties: + index: + $ref: '#/components/schemas/indexdetail' + indexdetail: + type: object + description: インデックスツリー + properties: + browsing_group: + description: 表示グループ + type: string + example: "" + browsing_role: + description: 表示可能ロール + type: string + example: "3,-98,-99" + children: + description: 子インデックス情報 + type: array + items: + $ref: '#/components/schemas/indexdetail' + cid: + description: child id + type: integer + example: 1616224532673 + contribute_group: + description: contribute_group + type: string + example: "" + contribute_role: + description: contribute_role + type: string + example: "1,2,3,4,-98,-99" + coverpage_state: + description: coverpage_state flag + type: boolean + example: false + display_no: + description: 表示位置 + type: integer + example: 5 + emitLoadNextLevel: + description: emitLoadNextLevel + type: boolean + example: false + id: + description: child id + type: integer + example: 1616224532673 + index_link_enabled: + description: index_link flag + type: boolean + example: false + link_name: + description: link_name + type: string + example: "New Index" + more_check: + description: more_check flag + type: boolean + example: false + name: + description: index name + type: string + example: "Data Usage Report" + pid: + description: index id + type: integer + example: 0 + position: + description: 表示場所 + type: integer + example: -99 + public_date: + description: public_date (null or date) + type: string + example: null + public_state: + description: public_state flag + type: boolean + example: true + recursive_coverpage_check: + description: recursive_coverpage_check flag + type: boolean + example: false + settings: + description: settings + type: object + properties: + checked: + description: checked + type: boolean + example: false + isCollapsedOnInit: + description: isCollapsedOnInit + type: boolean + example: true + value: + description: index name + type: string + example: "Data Usage Report" + + index: + type: object + properties: + index: + $ref: '#/components/schemas/indexinfo' + indexinfo: + type: object + properties: + pid: + type: integer + description: 親インデックスのID + cid: + type: integer + description: 対象インデックスのID + example: 1623632832836 + position: + type: integer + description: 表示順位 + index_name: + type: string + description: 日本語のインデックス名 + index_name_english: + type: string + description: 英語のインデックス名 + index_link_name: + type: string + description: 日本語のインデックスリンク表示名 + index_link_name_english: + type: string + description: 英語のインデックスリンク表示名 + index_link_enabled: + type: boolean + description: インデックスリンクに表示するかどうか + more_check: + type: boolean + description: 子インデックスの初回表示個数を変更するかどうか + display_no: + type: integer + description: 子インデックスの初回表示個数 + harvest_public_state: + type: boolean + description: ハーベスト公開設定 + public_state: + type: boolean + description: 公開設定 + public_date: + type: string + description: 公開日 + coverpage_state: + type: boolean + description: DF Cover Page (JA) + browsing_role: + type: string + description: 閲覧権限のあるロール + contribute_role: + type: string + description: 投稿権限のあるロール + browsing_group: + type: string + description: 閲覧権限のあるグループ + contribute_group: + type: string + description: 投稿権限のあるグループ + value_english: + type: string + description: 英語のインデックス名 + + error: + type: object + properties: + code: + type: string + description: エラーコード + message: + type: string + description: エラーメッセージ + securitySchemes: + OAuth2: + type: oauth2 + flows: + authorizationCode: + authorizationUrl: https://example.com/oauth/authorize + tokenUrl: https://example.com/oauth/token + scopes: + "item:read": Grants access to read item + "file:read": Grants access to read file + "index:read": Grants access to read index + "index:create": Grants access to create index + "index:update": Grants access to update index + "index:delete": Grants access to delete index + "author:read": Grants access to read author + "statistics:read": Grants access to read statistics + "user:read": Grants access to read user diff --git a/api/item_search_rocrate.yaml b/api/item_search_rocrate.yaml new file mode 100644 index 00000000..afb63cd6 --- /dev/null +++ b/api/item_search_rocrate.yaml @@ -0,0 +1,823 @@ +openapi: 3.0.3 +info: + title: アイテム情報取得用WEB API + version: "1.0" +tags: + - name: item + description: アイテム情報 +paths: + /api/{version}/records: + get: + tags: + - item + summary: アイテム検索 + description: |- + アイテムを検索し、RO-Crate形式で返却する。 + 権限がないアイテムの情報は取得不可。 + |ロール|動作| + |----|----| + |システム管理者|使用可能| + |リポジトリ管理者|使用可能| + |コミュニティ管理者|使用可能| + |登録ユーザー|使用可能| + |一般ユーザー|使用可能| + |ゲストユーザー|使用可能| + --- + #### サンプルコード + curl /api/v1/records?creator=John + parameters: + - name: version + in: path + description: このAPIのバージョン情報 + required: true + schema: + type: string + example: v1 + - name: Accept-Language + in: header + description: 表示する言語の指定 + schema: + type: string + default: en + - name: Authorization + in: header + description: 認可情報 + schema: + type: string + example: Bearer アクセストークン + - name: q + in: query + description: 検索するキーワード + schema: + type: string + - name: search_type + in: query + description: |- + 検索する種類 + 0:フルテキスト検索 + 1:キーワード検索 + schema: + type: integer + enum: [0, 1] + - name: pretty + in: query + description: レスポンスの整形 + schema: + type: boolean + default: false + - name: page + in: query + description: 取得するページ番号 + schema: + type: integer + - name: cursor + in: query + description: ページネーションのカーソル(この次のデータから取得) + schema: + type: string + - name: size + in: query + description: 取得する検索結果の最大数 + schema: + type: integer + - name: sort + in: query + description: |- + ソートキー + |値|項目| + |----|----| + |controlnumber|ID| + |wtl|Title| + |creator|Creator| + |upd|Update date| + |createdate|Create date| + |pyear|Date of Issued| + |publish_date|Publish date| + |custom_sort|Custom sort| + |itemType|Item Type| + |relevance|Relevance| + |temporal|Temporal| + schema: + type: string + default: controlnumber + - name: title + in: query + description: タイトル + schema: + type: string + - name: exact_title_match + in: query + description: |- + タイトル完全一致検索を指定 + schema: + type: boolean + default: false + - name: creator + in: query + description: 作成者 + schema: + type: string + - name: subject + in: query + description: 件名 + schema: + type: string + - name: sbjscheme + in: query + description: 件名種別 + schema: + type: integer + - name: spatial + in: query + description: 地域 + schema: + type: string + - name: des + in: query + description: 内容記述 + schema: + type: string + - name: publisher + in: query + description: 出版者 + schema: + type: string + - name: cname + in: query + description: 寄与者 + schema: + type: string + - name: fd_attr + in: query + description: 日付種別 + schema: + type: string + - name: filedate_from + in: query + description: 日付下限 + schema: + type: string + - name: filedate_to + in: query + description: 日付上限 + schema: + type: string + - name: mimetype + in: query + description: フォーマット + schema: + type: string + - name: id + in: query + description: 識別子 + schema: + type: string + - name: id_attr + in: query + description: 識別子種別 + schema: + type: string + - name: srctitle + in: query + description: 雑誌名 + schema: + type: string + - name: type + in: query + description: 資源タイプ + schema: + type: integer + - name: lang + in: query + description: 言語 + schema: + type: string + - name: temporal + in: query + description: 期間 + schema: + type: string + - name: dategranted_from + in: query + description: 学位取得日下限 + schema: + type: string + - name: dategranted_to + in: query + description: 学位取得日上限 + schema: + type: string + - name: version + in: query + description: 著者版フラグ + schema: + type: string + - name: dissno + in: query + description: 学位番号 + schema: + type: string + - name: degreename + in: query + description: 学位名 + schema: + type: string + - name: dgname + in: query + description: 学位授与機関 + schema: + type: string + - name: wid + in: query + description: 作成者識別子 + schema: + type: integer + - name: iid + in: query + description: インデックスID + schema: + type: integer + - name: license + in: query + description: ライセンス + schema: + type: string + - name: textX (Xは1~10の整数) + in: query + description: 詳細検索条件設定でtextXに割り当てた項目の値 + schema: + type: string + responses: + "200": + description: 検索成功 + headers: + Cache-Control: + schema: + type: string + example: "no-cache, no-store, must-revalidate" + Pragma: + schema: + type: string + example: "no-cache" + Expires: + schema: + type: integer + example: 0 + content: + application/json: + schema: + $ref: "#/components/schemas/SearchResponse" + "400": + description: パラメータ不正 + content: + application/json: + schema: + $ref: "#/components/schemas/ErrorBody" + "401": + description: OAuth2認証失敗 + content: + application/json: + schema: + $ref: "#/components/schemas/ErrorBody" + "500": + description: サーバー内部のエラー + content: + application/json: + schema: + $ref: "#/components/schemas/ErrorBody" + security: + - OAuth2: ["item:read"] + + /api/{version}/records/{record_id}: + get: + tags: + - item + summary: アイテム詳細情報取得 + description: |- + アイテムの詳細情報を取得し、RO-Crate形式で返却する。 + 権限がないアイテムの情報は取得不可。 + |ロール|動作| + |----|----| + |システム管理者|使用可能| + |リポジトリ管理者|使用可能| + |コミュニティ管理者|使用可能| + |登録ユーザー|使用可能| + |一般ユーザー|使用可能| + |ゲストユーザー|使用可能| + --- + #### サンプルコード + curl /api/v1/records/1 + parameters: + - name: version + in: path + description: このAPIのバージョン情報 + required: true + schema: + type: string + example: v1 + - name: record_id + in: path + description: アイテムを一意に識別するID + required: true + schema: + type: number + example: 1 + - name: Accept-Language + in: header + description: 表示する言語の指定 + schema: + type: string + default: en + - name: Authorization + in: header + description: 認可情報 + schema: + type: string + example: Bearer アクセストークン + - name: If-None-Match + in: header + description: 1回目のレスポンスヘッダーETagに設定された値 + schema: + type: string + - name: If-Modified-Since + in: header + description: 1回目のレスポンスヘッダーLast-Modifiedに設定された値 + schema: + type: string + - name: pretty + in: query + description: レスポンスの整形 + schema: + type: boolean + default: false + responses: + "200": + description: 取得成功 + headers: + Etag: + description: アイテム情報のバージョンID + schema: + type: string + Last-Modified: + description: アイテム情報の更新日時 + schema: + type: string + content: + application/json: + schema: + $ref: "#/components/schemas/DetailResponse" + "304": + description: 前回取得時から更新なし + "400": + description: リクエスト不正 + content: + application/json: + schema: + $ref: "#/components/schemas/ErrorBody" + "401": + description: OAuth2認証失敗 + content: + application/json: + schema: + $ref: "#/components/schemas/ErrorBody" + "403": + description: アクセス権限なし + content: + application/json: + schema: + $ref: "#/components/schemas/ErrorBody" + "404": + description: 指定したアイテムが存在しない + content: + application/json: + schema: + $ref: "#/components/schemas/ErrorBody" + "500": + description: サーバー内部のエラー + content: + application/json: + schema: + $ref: "#/components/schemas/ErrorBody" + security: + - OAuth2: ["item:read"] + + /api/{version}/records/list: + post: + tags: + - item + summary: 検索結果一覧取得 + description: |- + 検索結果の一覧をTSV形式で一括取得する。 + 権限がないアイテムの情報は取得不可。 + |ロール|動作| + |----|----| + |システム管理者|使用可能| + |リポジトリ管理者|使用可能| + |コミュニティ管理者|使用可能| + |登録ユーザー|使用可能| + |一般ユーザー|使用可能| + |ゲストユーザー|使用可能| + --- + #### サンプルコード + curl -X POST -H "Content-Type: application/json" /api/v1/records/list?title=John \ + -d '[ { "id": 1, "name": { "i18n": "field", "en": "Field", "ja": "分野" }, "roCrateKey": "genre" }' + parameters: + - name: version + in: path + description: このAPIのバージョン情報 + required: true + schema: + type: string + example: v1 + - name: Accept-Language + in: header + description: 表示する言語の指定 + schema: + type: string + default: en + - name: Authorization + in: header + description: 認可情報 + schema: + type: string + example: Bearer アクセストークン + - name: q + in: query + description: 検索するキーワード + schema: + type: string + - name: search_type + in: query + description: |- + 検索する種類 + 0:フルテキスト検索 + 1:キーワード検索 + schema: + type: integer + enum: [0, 1] + - name: sort + in: query + description: |- + ソートキー + |値|項目| + |----|----| + |controlnumber|ID| + |wtl|Title| + |creator|Creator| + |upd|Update date| + |createdate|Create date| + |pyear|Date of Issued| + |publish_date|Publish date| + |custom_sort|Custom sort| + |itemType|Item Type| + |relevance|Relevance| + |temporal|Temporal| + schema: + type: string + default: controlnumber + - name: title + in: query + description: タイトル + schema: + type: string + - name: exact_title_match + in: query + description: |- + タイトル完全一致検索を指定 + schema: + type: boolean + default: false + - name: creator + in: query + description: 作成者 + schema: + type: string + - name: subject + in: query + description: 件名 + schema: + type: string + - name: sbjscheme + in: query + description: 件名種別 + schema: + type: integer + - name: spatial + in: query + description: 地域 + schema: + type: string + - name: des + in: query + description: 内容記述 + schema: + type: string + - name: publisher + in: query + description: 出版者 + schema: + type: string + - name: cname + in: query + description: 寄与者 + schema: + type: string + - name: fd_attr + in: query + description: 日付種別 + schema: + type: string + - name: filedate_from + in: query + description: 日付下限 + schema: + type: string + - name: filedate_to + in: query + description: 日付上限 + schema: + type: string + - name: mimetype + in: query + description: フォーマット + schema: + type: string + - name: id + in: query + description: 識別子 + schema: + type: string + - name: id_attr + in: query + description: 識別子種別 + schema: + type: string + - name: srctitle + in: query + description: 雑誌名 + schema: + type: string + - name: type + in: query + description: 資源タイプ + schema: + type: integer + - name: lang + in: query + description: 言語 + schema: + type: string + - name: temporal + in: query + description: 期間 + schema: + type: string + - name: dategranted_from + in: query + description: 学位取得日下限 + schema: + type: string + - name: dategranted_to + in: query + description: 学位取得日上限 + schema: + type: string + - name: version + in: query + description: 著者版フラグ + schema: + type: string + - name: dissno + in: query + description: 学位番号 + schema: + type: string + - name: degreename + in: query + description: 学位名 + schema: + type: string + - name: dgname + in: query + description: 学位授与機関 + schema: + type: string + - name: wid + in: query + description: 作成者識別子 + schema: + type: integer + - name: iid + in: query + description: インデックスID + schema: + type: integer + - name: license + in: query + description: ライセンス + schema: + type: string + - name: textX (Xは1~10の整数) + in: query + description: 詳細検索条件設定でtextXに割り当てた項目の値 + schema: + type: string + requestBody: + content: + application/json: + schema: + $ref: "#/components/schemas/RecordsGetResponse" + responses: + "200": + description: 取得成功。ボディはTSVファイルのデータ + headers: + Content-Length: + schema: + type: integer + example: 1024 + ETag: + schema: + type: string + Last-Modified: + schema: + type: string + content: + All: + schema: + type: string + example: search_result.tsv + "400": + description: パラメータ不正 + content: + application/json: + schema: + $ref: "#/components/schemas/ErrorBody" + "401": + description: OAuth2認証失敗 + content: + application/json: + schema: + $ref: "#/components/schemas/ErrorBody" + "404": + description: 検索結果が存在しない + content: + application/json: + schema: + $ref: "#/components/schemas/ErrorBody" + "500": + description: サーバー内部のエラー + content: + application/json: + schema: + $ref: "#/components/schemas/ErrorBody" + security: + - OAuth2: ["item:read"] + +components: + schemas: + SearchResponse: + type: object + properties: + total_results: + type: integer + description: 検索条件に一致した項目数 + example: 100 + count_results: + type: integer + description: このレスポンスに含まれる項目数 + example: 10 + cursor: + type: integer + description: 検索結果の最後の項目のカーソル + example: 1234567890000 + page: + type: integer + description: ページ番号 + example: 1 + search_results: + type: array + items: + $ref: "#/components/schemas/RocrateMetadata" + failures: + type: array + description: RO-Crateへの変換に失敗したアイテム一覧 + items: + $ref: "#/components/schemas/FailureItem" + RecordsGetResponse: + type: array + items: + type: object + properties: + "id": + type: integer + example: 1 + "name": + type: object + properties: + "i18n": + type: string + example: "field" + "en": + type: string + example: "Field" + "ja": + type: string + example: "分野" + "roCrateKey": + type: string + example: "genre" + + DetailResponse: + type: object + properties: + "rocrate": + $ref: "#/components/schemas/RocrateMetadata" + "metadata": + $ref: "#/components/schemas/ItemMetadata" + + RocrateMetadata: + type: object + properties: + "@context": + type: string + example: "https://w3id.org/ro/crate/1.1/context" + "@graph": + type: array + description: エンティティ一覧 + items: + type: object + example: + [ + { "@id": "./", "@type": "Dataset", "headline": ["sample data"] }, + { + "@id": "ro-crate-metadata.json", + "@type": "CreativeWork", + "conformsTo": { "@id": "https://w3id.org/ro/crate/1.1" }, + "about": { "@id": "./" }, + }, + { + "@id": "sample_filename_01", + "@type": "File", + "accessMode": "open_access", + "dateCreated": "2024-01-01", + "name": ["sample_filename_01"], + }, + { + "@id": "resource_type/", + "@type": "Dataset", + "name": ["data paper"], + "url": ["http://purl.org/coar/resource_type/c_beb9"], + }, + ] + ItemMetadata: + type: object + example: + { + "Title": [{ "Title": "sample data", "Language": "ja" }], + "File Information": + [{ "FileName": "sample_filename_01", "Access": "open_access" }], + "Resource Type": + [ + { + "Resource Type Identifier": "http://purl.org/coar/resource_type/c_beb9", + "Resource Type": "data paper", + }, + ], + } + FailureItem: + type: object + properties: + "id": + type: string + example: "1" + "title": + type: array + items: + type: string + example: ["item_title"] + "item_type": + type: string + example: "item_type_name" + ErrorBody: + type: object + properties: + status: + type: string + description: ステータスコード + message: + type: string + description: エラーメッセージ + securitySchemes: + OAuth2: + type: oauth2 + flows: + authorizationCode: + authorizationUrl: https://example.com/oauth/authorize + tokenUrl: https://example.com/oauth/token + scopes: + "item:read": Grants access to read item + "file:read": Grants access to read file + "index:read": Grants access to read index + "ranking:read": Grants access to read ranking + "user:read": Grants access to read user + "author:read": Grants access to read author diff --git a/api/request_mail.yaml b/api/request_mail.yaml new file mode 100644 index 00000000..d6365e6a --- /dev/null +++ b/api/request_mail.yaml @@ -0,0 +1,157 @@ +openapi: 3.0.3 +info: + title: リクエストメール送信用WEB API + version: "1.0" +tags: + - name: request mail + description: リクエストメール +paths: + /api/{version}/records/{pid}/request-mail: + post: + tags: + - request mail + summary: リクエストメール送信API + description: |- + リクエストメールの送信が有効の場合、リクエストメールを送信する。 + |ロール|動作| + |----|----| + |システム管理者|使用可能| + |リポジトリ管理者|使用可能| + |コミュニティ管理者|使用可能| + |登録ユーザー|使用可能| + |一般ユーザー|使用可能| + |ゲストユーザー|使用可能| + --- + #### サンプルコード + curl -X POST -H "Content-Type: application/json" /api/v1/records/1/request-mail \ + -d '{ "from": "contributor@example.org", \ + "subject": "About request mail", \ + "message": "this is message of request mail.", \ + "key": "aaa", \ + "authorization_token": "68680b0b249e005b2d422393a17a9a3373ab6320d0d1af4d443336c0854602d8" }' + + parameters: + - name: version + in: path + description: このAPIのバージョン情報 + required: true + schema: + type: string + example: v1 + - name: pid + in: path + description: レコードを一意に識別するID + required: true + schema: + type: integer + example: 1 + - name: Accept-Language + in: header + description: 言語 + schema: + type: string + default: en + - name: pretty + in: query + description: レスポンスの整形 + schema: + type: boolean + default: false + requestBody: + required: true + content: + application/json: + schema: + type: object + properties: + from: + type: string + example: "contributor@example.org" + subject: + type: string + example: "About request mail" + message: + type: string + example: "this is message of request mail." + key: + description: CAPTCHA画像に紐づくkey値 + type: string + example: "aaa" + authorization_token: + description: 検証成功時に生成されたトークン + type: string + example: "68680b0b249e005b2d422393a17a9a3373ab6320d0d1af4d443336c0854602d8" + required: + - "from" + - "subject" + - "message" + - "key" + - "authorization_token" + responses: + "200": + description: リクエストメール送信成功 + content: + application/json: + schema: + $ref: "#/components/schemas/SuccessBody" + "400": + description: |- + リクエスト形式不正 + - リクエストボディに必須項目がない + - 該当項目が空文字 + content: + application/json: + schema: + $ref: "#/components/schemas/ErrorBody" + "401": + description: |- + 認証失敗 + - authorization_tokenが取得できない + - authorization_tokenの値が間違っている + content: + application/json: + schema: + $ref: "#/components/schemas/ErrorBody" + "404": + description: |- + 存在しない + - アイテムが存在しない + - リクエスト送信先が存在しない + content: + application/json: + schema: + $ref: "#/components/schemas/ErrorBody" + "429": + description: |- + リクエスト制限 + - リミットレートを超えてアクセスされた + content: + application/json: + schema: + $ref: "#/components/schemas/ErrorBody" + +components: + schemas: + SuccessBody: + type: object + properties: + from: + description: 送信者のメールアドレス + example: "contributor@example.org" + subject: + description: リクエストメールの件名 + type: string + example: "About request mail" + message: + description: リクエストメールの内容 + type: string + example: "this is message of request mail." + ErrorBody: + type: object + properties: + status: + description: HTTPステータスコード + type: string + message: + description: エラーメッセージ + type: string diff --git a/api/sword.yaml b/api/sword.yaml new file mode 100644 index 00000000..843d1dc3 --- /dev/null +++ b/api/sword.yaml @@ -0,0 +1,719 @@ +openapi: 3.0.3 +info: + title: SWORD API + version: "1.0" +tags: + - name: service_document + description: SWORD + - name: deposit + description: SWORD +paths: + /api/service-document: + get: + tags: + - service_document + summary: サービスドキュメント取得機能 + description: |- + リポジトリのサービスドキュメントを取得 + |ロール |動作 | + | ---------------- | ------ | + |システム管理者 |使用可能| + |リポジトリ管理者 |使用可能| + |コミュニティ管理者|使用可能| + |登録ユーザー |使用可能| + |一般ユーザー |使用可能| + |ゲストユーザー |使用不可| + parameters: + - name: Authorization + in: header + required: true + description: Bearer アクセストークン + schema: + type: string + - name: On-Behalf-Of + in: header + required: false + description: 代理投稿ユーザーのメールアドレスまたはePPN + schema: + type: string + responses: + "200": + description: サーバーのサービスドキュメントを返す + content: + application/json: + schema: + $ref: "#/components/schemas/ServiceDocument" + "400": + description: リクエスト内容に何らかの不備がある場合 + content: + application/json: + schema: + $ref: "#/components/schemas/ErrorDocument" + "401": + description: リクエストでAuthorization ヘッダーが提供されない場合 + content: + application/json: + schema: + $ref: "#/components/schemas/ErrorDocument" + "403": + description: 認証に失敗した場合 + content: + application/json: + schema: + $ref: "#/components/schemas/ErrorDocument" + "412": + description: サーバー側がOn-Behalf-Of をサポートしていないにもかかわらず、リクエストでOn-Behalf-Of ヘッダーが提供された場合 + content: + application/json: + schema: + $ref: "#/components/schemas/ErrorDocument" + "500": + description: サーバー内部エラーが発生した場合 + content: + application/json: + schema: + $ref: "#/components/schemas/ErrorDocument" + post: + tags: + - service_document + summary: アイテム登録機能 + description: |- + WEKO3の一括登録フォーマットを用いて、アイテムを登録 + |ロール |動作 | + | ---------------- | ------ | + |システム管理者 |使用可能| + |リポジトリ管理者 |使用可能| + |コミュニティ管理者|使用可能| + |登録ユーザー |使用不可| + |一般ユーザー |使用不可| + |ゲストユーザー |使用不可| + parameters: + - name: Authorization + in: header + required: true + description: Bearer アクセストークン + schema: + type: string + - name: On-Behalf-Of + in: header + required: false + description: 代理投稿ユーザーのメールアドレスまたはePPN + schema: + type: string + - name: Content-Disposition + in: header + required: true + description: リクエストボディに付加したファイルのファイル名 + schema: + type: string + - name: Content-Length + in: header + required: false + description: リクエストボディのサイズ + schema: + type: integer + - name: Content-Type + in: header + required: true + description: リクエストボディにファイルを付加するため "multipart/form-data" + schema: + type: string + - name: Packaging + in: header + required: true + description: パッケージフォーマット + schema: + type: string + enum: + - http://purl.org/net/sword/3.0/package/Binary + - http://purl.org/net/sword/3.0/package/SimpleZip + - http://purl.org/net/sword/3.0/package/SWORDBagIt + - name: Digest + in: header + required: false + description: リクエストボディのダイジェスト値 + schema: + type: string + # enum: [SHA-256] + example: SHA-256=e0Pke8qpzEkkGjPE1RoSqNw7qu3tH4... + responses: + "201": + description: 登録されたアイテムのステータスドキュメントを返す + content: + application/json: + schema: + $ref: "#/components/schemas/StatusDocument" + "202": + description: 登録するアイテムのステータスドキュメントを返す。
登録のリクエストを受け付け、アクティビティが承認待ちとなっていることを示す + content: + application/json: + schema: + $ref: "#/components/schemas/StatusDocument" + "400": + description: リクエスト内容に何らかの不備がある場合 + content: + application/json: + schema: + $ref: "#/components/schemas/ErrorDocument" + "401": + description: リクエストでAuthorization ヘッダーが提供されない場合 + content: + application/json: + schema: + $ref: "#/components/schemas/ErrorDocument" + "403": + description: 認証に失敗した場合、認証したOAuthトークンが「deposit:write」スコープを持っていない場合 + content: + application/json: + schema: + $ref: "#/components/schemas/ErrorDocument" + "404": + description: 登録されたアイテムが見つからない場合 + content: + application/json: + schema: + $ref: "#/components/schemas/ErrorDocument" + "412": + description: サーバー側がOn-Behalf-Of をサポートしていないにもかかわらず、リクエストでOn-Behalf-Of ヘッダーーが提供された場合 + content: + application/json: + schema: + $ref: "#/components/schemas/ErrorDocument" + "413": + description: 送信されたファイルのサイズがサーバーに設定されたmaxUploadSizeを超えている場合 + content: + application/json: + schema: + $ref: "#/components/schemas/ErrorDocument" + "415": + description: ヘッダーまたはボディに付加されたファイルのContent-Typeがサーバー側でサポートされていない場合 + content: + application/json: + schema: + $ref: "#/components/schemas/ErrorDocument" + "500": + description: サーバー内部エラーが発生した場合 + content: + application/json: + schema: + $ref: "#/components/schemas/ErrorDocument" + /api/deposit/{recid}: + get: + tags: + - deposit + summary: ステータスドキュメント取得機能 + description: |- + recidを指定してリポジトリ上に存在するアイテムのステータスドキュメントを取得 + |ロール |動作 | + | ---------------- | ------ | + |システム管理者 |使用可能| + |リポジトリ管理者 |使用可能| + |コミュニティ管理者|使用可能| + |登録ユーザー |使用可能| + |一般ユーザー |使用可能| + |ゲストユーザー |使用不可| + parameters: + - name: Authorization + in: header + required: true + description: Bearer アクセストークン + schema: + type: string + - name: On-Behalf-Of + in: header + required: false + description: 代理投稿ユーザーのメールアドレスまたはePPN + schema: + type: string + - name: recid + in: path + required: true + description: レコードID + schema: + type: integer + example: 20000021 + responses: + "200": + description: 指定されたアイテムのステータスドキュメントを返す + content: + application/json: + schema: + $ref: "#/components/schemas/StatusDocument" + "400": + description: リクエスト内容に何らかの不備がある場合 + content: + application/json: + schema: + $ref: "#/components/schemas/ErrorDocument" + "401": + description: リクエストでAuthorization ヘッダーが提供されない場合 + content: + application/json: + schema: + $ref: "#/components/schemas/ErrorDocument" + "403": + description: 認証に失敗した場合 + content: + application/json: + schema: + $ref: "#/components/schemas/ErrorDocument" + "404": + description: 指定したrecidに該当するアイテムが存在しない(削除されている)場合 + content: + application/json: + schema: + $ref: "#/components/schemas/ErrorDocument" + "412": + description: サーバー側がOn-Behalf-Of をサポートしていないにもかかわらず、リクエストでOn-Behalf-Of ヘッダーが提供された場合 + content: + application/json: + schema: + $ref: "#/components/schemas/ErrorDocument" + "500": + description: サーバー内部エラーが発生した場合 + content: + application/json: + schema: + $ref: "#/components/schemas/ErrorDocument" + post: + tags: + - deposit + summary: アイテム更新機能 + description: |- + WEKO3の一括登録フォーマットを用いて、アイテムを更新 + |ロール |動作 | + | ---------------- | ------ | + |システム管理者 |使用可能| + |リポジトリ管理者 |使用可能| + |コミュニティ管理者|使用可能| + |登録ユーザー |使用不可| + |一般ユーザー |使用不可| + |ゲストユーザー |使用不可| + parameters: + - name: Authorization + in: header + required: true + description: Bearer アクセストークン + schema: + type: string + - name: On-Behalf-Of + in: header + required: false + description: 代理投稿ユーザーのメールアドレスまたはePPN + schema: + type: string + - name: Content-Disposition + in: header + required: true + description: リクエストボディに付加したファイルのファイル名 + schema: + type: string + - name: Content-Length + in: header + required: false + description: リクエストボディのサイズ + schema: + type: integer + - name: Content-Type + in: header + required: true + description: リクエストボディにファイルを付加するため "multipart/form-data" + schema: + type: string + - name: Packaging + in: header + required: true + description: パッケージフォーマット + schema: + type: string + enum: + - http://purl.org/net/sword/3.0/package/Binary + - http://purl.org/net/sword/3.0/package/SimpleZip + - http://purl.org/net/sword/3.0/package/SWORDBagIt + - name: Digest + in: header + required: false + description: リクエストボディのダイジェスト値 + schema: + type: string + # enum: [SHA-256] + example: SHA-256=e0Pke8qpzEkkGjPE1RoSqNw7qu3tH4... + responses: + "200": + description: 更新されたアイテムのステータスドキュメントを返す + content: + application/json: + schema: + $ref: "#/components/schemas/StatusDocument" + "202": + description: 更新するアイテムのステータスドキュメントを返す。
更新のリクエストを受け付け、アクティビティが承認待ちとなっていることを示す + content: + application/json: + schema: + $ref: "#/components/schemas/StatusDocument" + "400": + description: リクエスト内容に何らかの不備がある場合 + content: + application/json: + schema: + $ref: "#/components/schemas/ErrorDocument" + "401": + description: リクエストでAuthorization ヘッダーが提供されない場合 + content: + application/json: + schema: + $ref: "#/components/schemas/ErrorDocument" + "403": + description: 認証に失敗した場合、認証したOAuthトークンが「deposit:write」スコープを持っていない場合 + content: + application/json: + schema: + $ref: "#/components/schemas/ErrorDocument" + "404": + description: 登録されたアイテムが見つからない場合 + content: + application/json: + schema: + $ref: "#/components/schemas/ErrorDocument" + "412": + description: サーバー側がOn-Behalf-Of をサポートしていないにもかかわらず、リクエストでOn-Behalf-Of ヘッダーーが提供された場合 + content: + application/json: + schema: + $ref: "#/components/schemas/ErrorDocument" + "413": + description: 送信されたファイルのサイズがサーバーに設定されたmaxUploadSizeを超えている場合 + content: + application/json: + schema: + $ref: "#/components/schemas/ErrorDocument" + "415": + description: ヘッダーまたはボディに付加されたファイルのContent-Typeがサーバー側でサポートされていない場合 + content: + application/json: + schema: + $ref: "#/components/schemas/ErrorDocument" + "500": + description: サーバー内部エラーが発生した場合 + content: + application/json: + schema: + $ref: "#/components/schemas/ErrorDocument" + delete: + tags: + - deposit + summary: アイテム削除機能 + description: |- + recidを指定してアイテムを削除 + |ロール |動作 | + | ---------------- | ------ | + |システム管理者 |使用可能| + |リポジトリ管理者 |使用可能| + |コミュニティ管理者|使用可能| + |登録ユーザー |使用不可| + |一般ユーザー |使用不可| + |ゲストユーザー |使用不可| + parameters: + - name: Authorization + in: header + required: true + description: Bearer アクセストークン + schema: + type: string + - name: On-Behalf-Of + in: header + required: false + description: 代理投稿ユーザーのメールアドレスまたはePPN + schema: + type: string + - name: recid + in: path + required: true + description: レコードID + schema: + type: integer + example: 20000021 + responses: + "202": + description: 空のレスポンスを返す。 削除のリクエストを受け付け、アクティビティが承認待ちとなっていることを示す + headers: + Location: + description: 削除アクティビティ詳細画面のURL + schema: + type: string + example: "[WEKO3のURL]/workflow/activity/detail/[アクティビティID]" + "204": + description: 空のレスポンスを返す。削除に成功したことを示す + headers: + Location: + description: ワークフローを使用した場合、削除アクティビティ詳細画面のURL + schema: + type: string + example: "[WEKO3のURL]/workflow/activity/detail/[アクティビティID]" + "400": + description: リクエスト内容に何らかの不備がある場合 + content: + application/json: + schema: + $ref: "#/components/schemas/ErrorDocument" + "401": + description: リクエストでAuthorization ヘッダーが提供されない場合 + content: + application/json: + schema: + $ref: "#/components/schemas/ErrorDocument" + "403": + description: 認証に失敗した場合 + content: + application/json: + schema: + $ref: "#/components/schemas/ErrorDocument" + "404": + description: 指定したrecidに該当するアイテムが存在しない(削除されている)場合 + content: + application/json: + schema: + $ref: "#/components/schemas/ErrorDocument" + "412": + description: サーバー側がOn-Behalf-Of をサポートしていないにもかかわらず、リクエストでOn-Behalf-Of ヘッダーが提供された場合 + content: + application/json: + schema: + $ref: "#/components/schemas/ErrorDocument" + "500": + description: サーバー内部エラーが発生した場合 + content: + application/json: + schema: + $ref: "#/components/schemas/ErrorDocument" + +components: + schemas: + ServiceDocument: + type: object + properties: + "@context": + type: string + enum: ["https://swordapp.github.io/swordv3/swordv3.jsonld"] + "@id": + type: string + example: "[WEKO3のURL]/sword/service-document" + "@type": + type: string + enum: ["ServiceDocument"] + accepted: + type: array + items: + type: string + example: [] + acceptArchiveFormat: + type: array + items: + type: string + example: [] + acceptDeposits: + type: boolean + example: True + acceptMetadata: + type: array + items: + type: string + example: [] + acceptPackaging: + type: array + items: + type: string + example: [] + authentication: + type: array + items: + type: string + example: [] + byReferenceDeposit: + type: boolean + example: False + collectionPolicy: + type: object + properties: + "collectionPolicy.@id": + type: string + "collectionPolicy.description": + type: string + example: {} + "dc:title": + type: string + "dcterms:abstract": + type: string + example: "" + digest: + type: array + items: + type: string + example: [] + maxAssembledSize: + type: integer + example: 300000 + maxByReferenceSize: + type: integer + example: 300000 + maxSegmentSize: + type: integer + maxSegments: + type: integer + example: 300000 + maxUploadSize: + type: integer + example: 300000 + onBehalfOf: + type: boolean + example: True + root: + type: string + services: + type: array + items: + type: string + example: [] + staging: + type: string + example: [] + stagingMaxIdle: + type: integer + example: 300000 + treatment: + type: object + properties: + "treatment.@id": + type: string + "treatment.description": + type: string + version: + type: string + example: "http://purl.org/net/sword/3.0" + StatusDocument: + type: object + properties: + "@context": + type: string + enum: ["https://swordapp.github.io/swordv3/swordv3.jsonld"] + "@id": + type: string + example: "[WEKO3のURL]/sword/deposit/[アイテムのrecid]" + "@type": + type: string + enum: ["StatusDocument"] + actions: + type: object + properties: + "actions. appendFiles": + type: boolean + "actions.appendMetadata": + type: boolean + "actions. deleteFiles": + type: boolean + "actions. deleteMetadata": + type: boolean + "actions. deleteObject": + type: boolean + "actions. getFiles": + type: boolean + "actions. getMetadata": + type: boolean + "actions. replaceFiles": + type: boolean + "actions. replaceMetadata": + type: boolean + eTag: + type: string + example: "[アイテムのリビジョン番号]" + fileSet: + type: object + properties: + "fileSet.@id": + type: string + "fileSet.eTag": + type: string + links: + type: array + items: + type: object + properties: + "links[].@id": + type: string + "links[].byReference": + type: string + "links[].contentType": + type: string + "links[].dcterms:isReplacedBy": + type: string + "links[].dcterms:relation": + type: string + "links[].dcterms:replaces": + type: string + "links[].depositedBy": + type: string + "links[].depositedOn": + type: string + "links[].depositedOnBehalfOf": + type: string + "links[].derivedFrom": + type: string + "links[].eTag": + type: string + "links[].log": + type: string + "links[].packaging": + type: string + "links[].rel": + type: string + enum: + - alternate + - packaging + - depositedOn + - depositedOnBehalfOf + - status + - log + - dcterms:relation + - dcterms:replaces + - dcterms:isReplacedBy + - versionReplaced + - eTag + - byReference + - derivedFrom + - metadataFormat + "links[].status": + type: string + "links[].versionReplacedOn": + type: string + metadata: + type: object + properties: + "metadata.@id": + type: string + "metadata.eTag": + type: string + service: + type: string + state: + type: array + items: + type: object + properties: + "state.@id": + type: string + "state.description": + type: string + ErrorDocument: + type: object + properties: + "@context": + type: string + enum: ["https://swordapp.github.io/swordv3/swordv3.jsonld"] + "@type": + type: string + error: + type: string + log: + type: string + timestamp: + type: string diff --git a/docs/images/tables.pu b/docs/images/tables.pu new file mode 100644 index 00000000..8c5ee0fa --- /dev/null +++ b/docs/images/tables.pu @@ -0,0 +1,230 @@ +@startuml + +entity access_actionsroles{ + *id: integer + action: character varying(80) + *exclude: boolean + argument: character varying(255) + *role_id: integer +} + +entity access_actionssystemroles{ + *id: integer + action: character varying(80) + *exclude: boolean + argument: character varying(255) + *role_name: character varying(40) +} + + +entity access_actionsusers{ + *id:integer + action: character varying(80) + *exclude: boolean + argument: character varying(255) + *user_id: integer +} + +entity accounts_group{ + *id: integer + *name: character varying(255) + description:text + *is_managed: boolean + *privacy_policy: character varying(1) + *subscription_policy:character varying(1) + *created:timestamp without time zone + *modified:timestamp without time zone +} + +entity accounts_group_admin{ + *id:integer + *group_id:integer + admin_type:character varying(255) + *admin_id:integer +} + +entity accounts_group_members{ + *user_id: integer + *group_id: integer + *state: character varying(1) + *created: timestamp without time zone + *modified: timestamp without time zone +} + +entity accounts_role{ + id: integer + name: character varying(80) + description: character varying(255) +} + +entity accounts_user{ + *id: integer + email: character varying(255) + password: character varying(255) + active: boolean + confirmed_at: timestamp without time zone + last_login_at: timestamp without time zone + current_login_at: timestamp without time zone + last_login_ip: character varying(50) + current_login_ip: character varying(50) + login_count: integer +} + +entity accounts_user_session_activity{ + *created: timestamp without time zone + *updated: timestamp without time zone + sid_s | character varying(255) | | not null | + user_id | integer | | | + ip | character varying(80) | | | + country | character varying(3) | | | + browser | character varying(80) | | | + browser_version | character varying(30) | | | + os | character varying(80) | | | + device | character varying(80) | | | +} + +entity accounts_userrole{} +entity admin_lang_settings{} +entity admin_settings{} +entity alembic_version{} +entity api_certificate{} +entity authors{} +entity authors_affiliation_settings{} +entity authors_prefix_settings{} +entity billing_permission{} +entity changelist_indexes{} +entity communities_community{} +entity communities_community_record{} +entity communities_featured_community{} +entity doi_identifier{} +entity facet_search_setting{} +entity feedback_email_setting{} +entity feedback_mail_failed{} +entity feedback_mail_history{} +entity feedback_mail_list{} +entity file_metadata{} +entity file_metadata_version{} +entity file_onetime_download{} +entity file_permission{} +entity file_secret_download{} +entity files_bucket{} +entity files_buckettags{} +entity files_files{} +entity files_location{} +entity files_multipartobject{} +entity files_multipartobject_part{} +entity files_object{} +entity files_objecttags{} +entity guest_activity{} +entity harvest_logs{} +entity harvest_settings{} +entity index{} +entity index_style{} +entity institution_name{} + +entity item_metadata { + *created: timestamp without time zone + *updated: timestamp without time zone + *id: uuid + item_type_id: integer + json: jsonb + *version_id: integer +} +entity item_metadata_version{} +entity item_reference{} +entity item_type{} +entity item_type_edit_history{} +entity item_type_mapping{} +entity item_type_mapping_version{} +entity item_type_name{} +entity item_type_property{} +entity item_type_version{} +entity journal{} +entity journal_export_processing{} +entity loganalysis_restricted_crawler_list{} +entity loganalysis_restricted_ip_address{} +entity mail_config{} +entity oaiharvester_configs{} +entity oaiserver_identify{} +entity oaiserver_schema{} +entity oaiserver_schema_version{} +entity oaiserver_set{} +entity oauth2server_client{} +entity oauth2server_token{} +entity oauthclient_remoteaccount{} +entity oauthclient_remotetoken{} +entity oauthclient_useridentity{} +entity pdfcoverpage_set{} +entity pidrelations_pidrelation{} +entity pidstore_pid{} +entity pidstore_recid{} +entity pidstore_redirect{} +entity ranking_settings{} +entity records_buckets{} +entity records_metadata{} +entity records_metadata_version{} +entity resourcelist_indexes{} +entity resync_indexes{} +entity resync_logs{} +entity search_management{} +entity session_lifetime{} +entity shibboleth_user{} +entity shibboleth_userrole{} +entity site_info{} +entity sitelicense_info{} +entity sitelicense_ip_address{} +entity stats_aggregation{} +entity stats_bookmark{} +entity stats_email_address{} +entity stats_events{} +entity stats_events_202401{} +entity stats_events_202402{} +entity stats_events_202403{} +entity stats_events_202404{} +entity stats_events_202405{} +entity stats_events_202406{} +entity stats_events_202407{} +entity stats_events_202408{} +entity stats_events_202409{} +entity stats_events_202410{} +entity stats_events_202411{} +entity stats_events_202412{} +entity stats_events_202501{} +entity stats_events_202502{} +entity stats_events_202503{} +entity stats_events_202504{} +entity stats_events_202505{} +entity stats_events_202506{} +entity stats_events_202507{} +entity stats_events_202508{} +entity stats_events_202509{} +entity stats_events_202510{} +entity stats_events_202511{} +entity stats_events_202512{} +entity stats_report_target{} +entity stats_report_unit{} +entity transaction{} +entity userprofiles_userprofile{} +entity widget_design_page{} +entity widget_design_page_multi_lang_data{} +entity widget_design_setting{} +entity widget_items{} +entity widget_multi_lang_data{} +entity widget_type{} +entity workflow_action{} +entity workflow_action_feedbackmail{} +entity workflow_action_history{} +entity workflow_action_identifier{} +entity workflow_action_journal{} +entity workflow_action_status{} +entity workflow_activity{} +entity workflow_activity_action{} +entity workflow_activity_count{} +entity workflow_flow_action{} +entity workflow_flow_action_role{} +entity workflow_flow_define{} +entity workflow_userrole{} +entity workflow_workflow{} + + +@enduml \ No newline at end of file diff --git a/docs/manuals/ADMIN/base/README.md b/docs/manuals/ADMIN/base/README.md index 0308e125..4802d81d 100644 --- a/docs/manuals/ADMIN/base/README.md +++ b/docs/manuals/ADMIN/base/README.md @@ -5,8 +5,8 @@ v1.0.8 |バージョン|改定内容| -|---|---| -| v1.0.8 | 「詳細検索をカスタマイズする」にjson pathについて追記 | +| -------- | ------ | +| v1.0.8 | 「詳細検索をカスタマイズする」にjson pathについて追記 | ## はじめに @@ -65,26 +65,42 @@ OAI-PMHの管理に関する操作手順を説明しています。 Resource Syncの管理に関する操作手順を説明しています。 -第12章 レコード管理 +第12章 SWORD API設定 + +SWORD APIの管理に関する操作手順を説明しています。 + +第13章 レコード管理 レコードの管理に関する操作手順を説明しています。 -第13章 ファイル管理 +第14章 ファイル管理 ファイルの管理に関する操作手順を説明しています。 -第14章 ユーザ管理 +第15章 ユーザ管理 ユーザの管理に関する操作手順を説明しています。 -第15章 システム設定 +第16章 システム設定 システム設定に関する操作手順を説明しています。 -第16章 ユーザカウントの管理 +第17章 ログ管理 + +ログの管理に関する操作手順を説明しています。 + +第18章 メンテナンス + +メンテナンスに関する操作手順を説明しています。 + +第19章 ユーザカウントの管理 ユーザカウントの管理に関する操作手順を説明しています。 +第17章 アドバンスドメニュー + +ユーザープロフィール設定編集機能に関する操作手順を説明しています。 + - このマニュアルで使用する書式 本書で使用する書式を説明します。 @@ -163,6 +179,8 @@ Resource Syncの管理に関する操作手順を説明しています。 [2.4.2 システムが付与したアイテムタイプをマッピングする 58](#システムが付与したアイテムタイプをマッピングする) +[2.5 JSON-LDのマッピングを設定する](#json-ldのマッピングを設定する) + [3. アイテム管理 61](#アイテム管理) [3.1 ライセンスまたはエンバーゴを一括更新する 62](#ライセンスまたはエンバーゴを一括更新する) @@ -359,255 +377,281 @@ Resource Syncの管理に関する操作手順を説明しています。 [11.3.4 Resyncを削除する 258](#resyncを削除する) -[12. レコード管理 259](#レコード管理) +[12. SWORD API 500](#swordapi設定) + +[12.1 TSV/CSV用の設定を行う](#tsvcsv用の設定を行う) + +[12.2 XML用の設定を行う](#xml用の設定を行う) + +[12.3 JSON-LD用設定を作成する 501](#json-ld用の設定を作成する) + +[12.4 JSON-LD用設定を編集する 502](#json-ld用設定を編集する) + +[12.5 JSON-LD用設定を削除する 503](#json-ld用設定を削除する) + +[13. レコード管理 259](#レコード管理) + +[13.1 Persistent Identifierを参照する 260](#persistent-identifierを参照する) -[12.1 Persistent Identifierを参照する 260](#persistent-identifierを参照する) +[13.2 Record Metadataを管理する 261](#record-metadataを管理する) -[12.2 Record Metadataを管理する 261](#record-metadataを管理する) +[13.2.1 Record Metadataを参照する 261](#record-metadataを参照する) -[12.2.1 Record Metadataを参照する 261](#record-metadataを参照する) +[13.2.2 Record Metadataを削除する 261](#record-metadataを削除する) -[12.2.2 Record Metadataを削除する 261](#record-metadataを削除する) +[14. ファイル管理 263](#ファイル管理) -[13. ファイル管理 263](#ファイル管理) +[14.1 Bucketを管理する 264](#bucketを管理する) -[13.1 Bucketを管理する 264](#bucketを管理する) +[14.1.1 Bucketを参照する 264](#bucketを参照する) -[13.1.1 Bucketを参照する 264](#bucketを参照する) +[14.1.2 Bucketを作成する 264](#bucketを作成する) -[13.1.2 Bucketを作成する 264](#bucketを作成する) +[14.1.3 Bucketを編集する 266](#bucketを編集する) -[13.1.3 Bucketを編集する 266](#bucketを編集する) +[14.2 File Instanceを管理する 267](#file-instanceを管理する) -[13.2 File Instanceを管理する 267](#file-instanceを管理する) +[14.2.1 File Instanceを参照する 267](#file-instanceを参照する) -[13.2.1 File Instanceを参照する 267](#file-instanceを参照する) +[14.2.2 ファイルの固定性をチェックする 268](#ファイルの固定性をチェックする) -[13.2.2 ファイルの固定性をチェックする 268](#ファイルの固定性をチェックする) +[14.3 Locationを管理する 269](#locationを管理する) -[13.3 Locationを管理する 269](#locationを管理する) +[14.3.1 Locationを参照する 269](#locationを参照する) -[13.3.1 Locationを参照する 269](#locationを参照する) +[14.3.2 Locationを作成する 270](#locationを作成する) -[13.3.2 Locationを作成する 270](#locationを作成する) +[14.3.3 Locationを編集する 271](#locationを編集する) -[13.3.3 Locationを編集する 271](#locationを編集する) +[14.3.4 Locationを削除する 272](#locationを削除する) -[13.3.4 Locationを削除する 272](#locationを削除する) +[14.4 Multipart Objectを管理する 273](#multipart-objectを管理する) -[13.4 Multipart Objectを管理する 273](#multipart-objectを管理する) +[14.4.1 Multipart Objectを参照する 273](#multipart-objectを参照する) -[13.4.1 Multipart Objectを参照する 273](#multipart-objectを参照する) +[14.5 Object Versionを管理する 274](#object-versionを管理する) -[13.5 Object Versionを管理する 274](#object-versionを管理する) +[14.5.1 Object Versionを参照する 274](#object-versionを参照する) -[13.5.1 Object Versionを参照する 274](#object-versionを参照する) +[15. ユーザ管理 275](#ユーザ管理) -[14. ユーザ管理 275](#ユーザ管理) +[15.1 Access: Roles 276](#access-roles) -[14.1 Access: Roles 276](#access-roles) +[15.1.1 ロールのアクションを参照する 276](#ロールのアクションを参照する) -[14.1.1 ロールのアクションを参照する 276](#ロールのアクションを参照する) +[15.1.2 ロールにアクションを追加する 277](#ロールにアクションを追加する) -[14.1.2 ロールにアクションを追加する 277](#ロールにアクションを追加する) +[15.1.3 ロールのアクションを変更する 278](#ロールのアクションを変更する) -[14.1.3 ロールのアクションを変更する 278](#ロールのアクションを変更する) +[15.1.4 ロールのアクションを削除する 279](#ロールのアクションを削除する) -[14.1.4 ロールのアクションを削除する 279](#ロールのアクションを削除する) +[15.2 Access: System Roles 281](#access-system-roles) -[14.2 Access: System Roles 281](#access-system-roles) +[15.2.1 システムロールのアクションを参照する 281](#システムロールのアクションを参照する) -[14.2.1 システムロールのアクションを参照する 281](#システムロールのアクションを参照する) +[15.2.2 システムロールにアクションを追加する 282](#システムロールにアクションを追加する) -[14.2.2 システムロールにアクションを追加する 282](#システムロールにアクションを追加する) +[15.2.3 システムロールのアクションを変更する 283](#システムロールのアクションを変更する) -[14.2.3 システムロールのアクションを変更する 283](#システムロールのアクションを変更する) +[15.2.4 システムロールのアクションを削除する 284](#システムロールのアクションを削除する) -[14.2.4 システムロールのアクションを削除する 284](#システムロールのアクションを削除する) +[15.3 Access: Users 286](#access-users) -[14.3 Access: Users 286](#access-users) +[15.3.1 ユーザのアクションを参照する 286](#ユーザのアクションを参照する) -[14.3.1 ユーザのアクションを参照する 286](#ユーザのアクションを参照する) +[15.3.2 ユーザにアクションを追加する 287](#ユーザにアクションを追加する) -[14.3.2 ユーザにアクションを追加する 287](#ユーザにアクションを追加する) +[15.3.3 ユーザのアクションを変更する 288](#ユーザのアクションを変更する) -[14.3.3 ユーザのアクションを変更する 288](#ユーザのアクションを変更する) +[15.3.4 ユーザのアクションを削除する 289](#ユーザのアクションを削除する) -[14.3.4 ユーザのアクションを削除する 289](#ユーザのアクションを削除する) +[15.4 Linked account identitiesを管理する 291](#linked-account-identitiesを管理する) -[14.4 Linked account identitiesを管理する 291](#linked-account-identitiesを管理する) +[15.4.1 identityを参照する 291](#identityを参照する) -[14.4.1 identityを参照する 291](#identityを参照する) +[15.4.2 identityを削除する 292](#identityを削除する) -[14.4.2 identityを削除する 292](#identityを削除する) +[15.5 Linked account tokensを管理する 293](#linked-account-tokensを管理する) -[14.5 Linked account tokensを管理する 293](#linked-account-tokensを管理する) +[15.5.1 Linked accountのトークンを参照する 293](#linked-accountのトークンを参照する) -[14.5.1 Linked accountのトークンを参照する 293](#linked-accountのトークンを参照する) +[15.5.2 Linked accountのトークンを作成する 294](#linked-accountのトークンを作成する) -[14.5.2 Linked accountのトークンを作成する 294](#linked-accountのトークンを作成する) +[15.5.3 Linked accountのトークンを編集する 295](#linked-accountのトークンを編集する) -[14.5.3 Linked accountのトークンを編集する 295](#linked-accountのトークンを編集する) +[15.5.4 Linked accountのトークンを削除する 295](#linked-accountのトークンを削除する) -[14.5.4 Linked accountのトークンを削除する 295](#linked-accountのトークンを削除する) +[15.6 Linked accountsを管理する 296](#linked-accountsを管理する) -[14.6 Linked accountsを管理する 296](#linked-accountsを管理する) +[15.6.1 Linked accountを参照する 296](#linked-accountを参照する) -[14.6.1 Linked accountを参照する 296](#linked-accountを参照する) +[15.6.2 Linked accountを作成する 297](#linked-accountを作成する) -[14.6.2 Linked accountを作成する 297](#linked-accountを作成する) +[15.6.3 Linked accountを編集する 298](#linked-accountを編集する) -[14.6.3 Linked accountを編集する 298](#linked-accountを編集する) +[15.6.4 Linked accountを削除する 299](#linked-accountを削除する) -[14.6.4 Linked accountを削除する 299](#linked-accountを削除する) +[15.7 OAuth Application Tokensを管理する 301](#oauth-application-tokensを管理する) -[14.7 OAuth Application Tokensを管理する 301](#oauth-application-tokensを管理する) +[15.7.1 OAuth Application Tokensを参照する 301](#oauth-application-tokensを参照する) -[14.7.1 OAuth Application Tokensを参照する 301](#oauth-application-tokensを参照する) +[15.7.2 OAuth Application Tokensを削除する 302](#oauth-application-tokensを削除する) -[14.7.2 OAuth Application Tokensを削除する 302](#oauth-application-tokensを削除する) +[15.8 OAuth Applicationを管理する 303](#oauth-applicationを管理する) -[14.8 OAuth Applicationを管理する 303](#oauth-applicationを管理する) +[15.8.1 OAuth Applicationを参照する 303](#oauth-applicationを参照する) -[14.8.1 OAuth Applicationを参照する 303](#oauth-applicationを参照する) +[15.8.2 OAuth Applicationを削除する 304](#oauth-applicationを削除する) -[14.8.2 OAuth Applicationを削除する 304](#oauth-applicationを削除する) +[15.9 ロールを管理する 305](#ロールを管理する) -[14.9 ロールを管理する 305](#ロールを管理する) +[15.9.1 ロールを参照する 305](#ロールを参照する) -[14.9.1 ロールを参照する 305](#ロールを参照する) +[15.9.2 ロールを作成する 306](#ロールを作成する) -[14.9.2 ロールを作成する 306](#ロールを作成する) +[15.9.3 ロールを編集する 307](#ロールを編集する) -[14.9.3 ロールを編集する 307](#ロールを編集する) +[15.9.4 ロールを削除する 308](#ロールを削除する) -[14.9.4 ロールを削除する 308](#ロールを削除する) +[15.10 Session Activityを管理する 310](#session-activityを管理する) -[14.10 Session Activityを管理する 310](#session-activityを管理する) +[15.10.1 Session Activityを参照する 310](#session-activityを参照する) -[14.10.1 Session Activityを参照する 310](#session-activityを参照する) +[15.10.2 Session Activityを削除する 310](#session-activityを削除する) -[14.10.2 Session Activityを削除する 310](#session-activityを削除する) +[15.11 ユーザを管理する 311](#ユーザを管理する) -[14.11 ユーザを管理する 311](#ユーザを管理する) +[15.11.1 ユーザを参照する 311](#ユーザを参照する) -[14.11.1 ユーザを参照する 311](#ユーザを参照する) +[15.11.2 ユーザを追加する 312](#ユーザを追加する) -[14.11.2 ユーザを追加する 312](#ユーザを追加する) +[15.11.3 ユーザを編集する 313](#ユーザを編集する) -[14.11.3 ユーザを編集する 313](#ユーザを編集する) +[15.11.4 ユーザを無効または有効にする 314](#ユーザを無効または有効にする) -[14.11.4 ユーザを無効または有効にする 314](#ユーザを無効または有効にする) +[15.12 User Profileを管理する 315](#user-profileを管理する) -[14.12 User Profileを管理する 315](#user-profileを管理する) +[15.12.1 User Profileを参照する 315](#user-profileを参照する) -[14.12.1 User Profileを参照する 315](#user-profileを参照する) +[15.12.2 User Profileを削除する 316](#user-profileを削除する) -[14.12.2 User Profileを削除する 316](#user-profileを削除する) +[16. 設定 317](#設定) -[15. 設定 317](#設定) +[16.1 著者表示の設定を変更する 318](#著者表示の設定を変更する) -[15.1 著者表示の設定を変更する 318](#著者表示の設定を変更する) +[16.2 インデックスリンクを表示する 319](#インデックスリンクを表示する) -[15.2 インデックスリンクを表示する 319](#インデックスリンクを表示する) +[16.3 言語を設定する 320](#言語を設定する) -[15.3 言語を設定する 320](#言語を設定する) +[16.4 PDFのカバーページを表示する 321](#pdfのカバーページを表示する) -[15.4 PDFのカバーページを表示する 321](#pdfのカバーページを表示する) +[16.5 ランキング表示を設定する 325](#ランキング表示を設定する) -[15.5 ランキング表示を設定する 325](#ランキング表示を設定する) +[16.6 統計設定を変更する 326](#統計設定を変更する) -[15.6 統計設定を変更する 326](#統計設定を変更する) +[16.7 Webページのスタイルを変更する 327](#webページのスタイルを変更する) -[15.7 Webページのスタイルを変更する 327](#webページのスタイルを変更する) +[16.8 Identifierを設定する 330](#identifierを設定する) -[15.8 Identifierを設定する 330](#identifierを設定する) +[16.8.1 Identifierを参照する 330](#identifierを参照する) -[15.8.1 Identifierを参照する 330](#identifierを参照する) +[16.8.2 Identifierを作成する 331](#identifierを作成する) -[15.8.2 Identifierを作成する 331](#identifierを作成する) +[16.8.3 Identifierを編集する 333](#identifierを編集する) -[15.8.3 Identifierを編集する 333](#identifierを編集する) +[16.9 アイテムをエクスポートするときの設定を変更する 335](#アイテムをエクスポートするときの設定を変更する) -[15.9 アイテムをエクスポートするときの設定を変更する 335](#アイテムをエクスポートするときの設定を変更する) +[16.10 ログ解析時の設定をする 336](#ログ解析時の設定をする) -[15.10 ログ解析時の設定をする 336](#ログ解析時の設定をする) +[16.11 検索条件、結果表示件数及び初期表示を設定する 337](#検索条件結果表示件数及び初期表示を設定する) -[15.11 検索条件、結果表示件数及び初期表示を設定する 337](#検索条件結果表示件数及び初期表示を設定する) +[16.11.1 著者検索を設定する 337](#著者検索を設定する) -[15.11.1 著者検索を設定する 337](#著者検索を設定する) +[16.11.2 検索結果の表示内容を設定する 338](#検索結果の表示内容を設定する) -[15.11.2 検索結果の表示内容を設定する 338](#検索結果の表示内容を設定する) +[16.11.3 詳細検索時の表示項目を設定する 339](#詳細検索時の表示項目を設定する) -[15.11.3 詳細検索時の表示項目を設定する 339](#詳細検索時の表示項目を設定する) +[16.11.4 詳細検索のラベルを変更する 341](#詳細検索のラベルを変更する) -[15.11.4 詳細検索のラベルを変更する 341](#詳細検索のラベルを変更する) +[16.11.5 詳細検索をカスタマイズする 342](#詳細検索をカスタマイズする) -[15.11.5 詳細検索をカスタマイズする 342](#詳細検索をカスタマイズする) +[16.11.6 インデックスツリー/ファセットの表示を設定する 343](#インデックスツリーファセットの表示を設定する) -[15.11.6 インデックスツリー/ファセットの表示を設定する 343](#インデックスツリーファセットの表示を設定する) +[16.11.7 汎用詳細検索項目を設定する 345](#汎用詳細検索項目を設定する) -[15.11.7 汎用詳細検索項目を設定する 345](#汎用詳細検索項目を設定する) +[16.11.8 初期表示を設定する 346](#初期表示を設定する) -[15.11.8 初期表示を設定する 346](#初期表示を設定する) +[16.12 ファセット検索機能を管理する 349](#ファセット検索機能を管理する) -[15.12 ファセット検索機能を管理する 349](#ファセット検索機能を管理する) +[16.12.1 ファセット検索機能を設定する 349](#ファセット検索機能を設定する) -[15.12.1 ファセット検索機能を設定する 349](#ファセット検索機能を設定する) +[16.13 サイトの情報を設定する 353](#サイトの情報を設定する) -[15.13 サイトの情報を設定する 353](#サイトの情報を設定する) +[16.14 サイトライセンスを設定する 355](#サイトライセンスを設定する) -[15.14 サイトライセンスを設定する 355](#サイトライセンスを設定する) +[16.15 サイトマップを作成する 357](#サイトマップを作成する) -[15.15 サイトマップを作成する 357](#サイトマップを作成する) +[16.16 メール送信を設定する 358](#メール送信を設定する) -[15.16 メール送信を設定する 358](#メール送信を設定する) +[16.17 WebAPIのアカウントを設定する 360](#webapiのアカウントを設定する) -[15.17 WebAPIのアカウントを設定する 360](#webapiのアカウントを設定する) +[16.18 File Previewを設定する 361](#file-previewを設定する) -[15.18 File Previewを設定する 361](#file-previewを設定する) +[16.19 Shibbolethユーザを許可する 362](#shibbolethユーザを許可する) -[15.19 Shibbolethユーザを許可する 362](#shibbolethユーザを許可する) +[16.20 制限公開機能を管理する 363](#制限公開機能を管理する) -[15.20 制限公開機能を管理する 363](#制限公開機能を管理する) +[16.20.1 制限公開機能を設定する 363](#制限公開機能を設定する) -[15.20.1 制限公開機能を設定する 363](#制限公開機能を設定する) +[16.20.2 制限公開機能の承認メール内容 367](#_Toc137111756) -[15.20.2 制限公開機能の承認メール内容 367](#_Toc137111756) +[16.20.3 制限公開機能の通知メール内容 367](#_Toc137111757) -[15.20.3 制限公開機能の通知メール内容 367](#_Toc137111757) +[16.21 機関名を設定する 368](#_Toc137111758) -[15.21 機関名を設定する 368](#_Toc137111758) +[16.22 メールテンプレートを編集する](#メールテンプレートを編集する) -[16. メンテナンス 369](#メンテナンス) +[16.22.1 デフォルトメールテンプレート](#デフォルトメールテンプレート) -[16.1 ElasticSearchインデックスを設定する 370](#elasticsearchインデックスを設定する) +[17. ログ管理](#ログ管理) -[17. ユーザカウントの管理 371](#ユーザカウントの管理) +[17.1 基本監査ログをエクスポートする 370](#基本監査ログをエクスポートする) -[17.1 プロフィールを更新する 372](#プロフィールを更新する) +[18. メンテナンス 369](#メンテナンス) -[17.2 パスワードを変更する 373](#パスワードを変更する) +[18.1 ElasticSearchインデックスを設定する 370](#elasticsearchインデックスを設定する) -[17.3 アカウントにログインしたデバイスを確認する 374](#アカウントにログインしたデバイスを確認する) +[19. ユーザカウントの管理 371](#ユーザカウントの管理) -[17.4 アプリケーションを管理する 375](#アプリケーションを管理する) +[19.1 プロフィールを更新する 372](#プロフィールを更新する) -[17.5 グループを管理する 376](#グループを管理する) +[19.2 パスワードを変更する 373](#パスワードを変更する) -[17.5.1 グループへの参加要求および招待を許可する 376](#グループへの参加要求および招待を許可する) +[19.3 アカウントにログインしたデバイスを確認する 374](#アカウントにログインしたデバイスを確認する) -[17.5.2 グループを作成する 377](#グループを作成する) +[19.4 アプリケーションを管理する 375](#アプリケーションを管理する) -[17.5.3 グループにメンバーを招待する 378](#グループにメンバーを招待する) +[19.5 グループを管理する 376](#グループを管理する) -[17.5.4 グループを編集する 380](#グループを編集する) +[19.5.1 グループへの参加要求および招待を許可する 376](#グループへの参加要求および招待を許可する) -[17.5.5 グループを削除する 381](#グループを削除する) +[19.5.2 グループを作成する 377](#グループを作成する) -[17.6 セッションの有効時間を変更する 383](#セッションの有効時間を変更する) +[19.5.3 グループにメンバーを招待する 378](#グループにメンバーを招待する) -[17.7 管理画面を表示する 384](#管理画面を表示する-1) +[19.5.4 グループを編集する 380](#グループを編集する) + +[19.5.5 グループを削除する 381](#グループを削除する) + +[19.6 セッションの有効時間を変更する 383](#セッションの有効時間を変更する) + +[19.7 管理画面を表示する 384](#管理画面を表示する-1) + +[18. アドバンスドメニュー 385](#アドバンスドメニュー) + +[18.1 ユーザープロフィール設定編集画面 386](#ユーザープロフィール設定編集画面) + +[18.2 ユーザープロフィール設定を編集する 387](#ユーザープロフィール設定を編集する) ## システムの概要 @@ -676,20 +720,13 @@ Resource Syncの管理に関する操作手順を説明しています。

各アイテムにはWEKO3リポジトリ内で一意となるアイテムIDが割り当てられます。アイテムは1つのアイテムタイプに紐付いており、複数のアイテムタイプと紐付けることはできません。

異なるメタデータで構成させるアイテムを登録したい場合、新たなアイテムタイプを作成することで対応できます。

- - - - - - - - + + - - @@ -755,17 +792,10 @@ Resource Syncの管理に関する操作手順を説明しています。 - -
アイテムタイプ

アイテムに登録するメタデータのデータ型を定義します。アイテムタイプは、JPCOARなどのメタデータスキーマで規定される要素から構成されます。

+
アイテムタイプ

アイテムに登録するメタデータのデータ型を定義します。アイテムタイプは、JPCOARなどのメタデータスキーマで規定される要素から構成されます。

リポジトリ管理者はアイテムに必要なメタデータを検討し、アイテムタイプを独自に作成します。

例)

-

紀要論文と研究データをリポジトリに保管する場合、紀要論文のメタデータ項目と研究データのメタデータ項目は異なります。このような場合に、紀要論文向けのアイテムタイプと、研究データ向けのアイテムタイプをそれぞれ作成できます。

+

紀要論文と研究データをリポジトリに保管する場合、紀要論文のメタデータ項目と研究データのメタデータ項目は異なります。このような場合に、紀要論文向けのアイテムタイプと、研究データ向けのアイテムタイプをそれぞれ作成できます。

インデックス WEKO3リポジトリに登録したアイテムをまとめる単位(カテゴリ)です。WEKO3リポジトリに登録したアイテムは必ず1つ以上のインデックスに所属します。インデックスは複数の子インデックスとアイテムを持つことができます。リポジトリ管理者 リポジトリを管理するロールを持つユーザです。WEKO3モジュールの設定、インデックスツリー設定、アイテムタイプ設定ができます。
- - - - - - + + + - - @@ -817,19 +847,19 @@ Resource Syncの管理に関する操作手順を説明しています。 + - + - @@ -972,21 +1002,14 @@ Resource Syncの管理に関する操作手順を説明しています。

(*2)

- -
ログインコンピュータやインターネット上の様々なサービスを利用する際に、予め登録しておいたアカウント情報を用いて個々人のデータにアクセスする認証行為を指します。
ログインコンピュータやインターネット上の様々なサービスを利用する際に、予め登録しておいたアカウント情報を用いて個々人のデータにアクセスする認証行為を指します。
ログアウト ログインによって認証された個々人のデータにアクセスするための権限を失効することです。
機能 管理者ロール 参照先
システム リポジトリ コミュニティ
アイテムタイプ管理
- - - - - - - - - - + + + + + + + - - @@ -1033,7 +1056,8 @@ Resource Syncの管理に関する操作手順を説明しています。 - + @@ -1041,7 +1065,8 @@ Resource Syncの管理に関する操作手順を説明しています。 - + @@ -1057,7 +1082,8 @@ Resource Syncの管理に関する操作手順を説明しています。 - + @@ -1065,6 +1091,15 @@ Resource Syncの管理に関する操作手順を説明しています。 + + + + + + + + @@ -1130,8 +1165,8 @@ Resource Syncの管理に関する操作手順を説明しています。 - - + + @@ -1146,24 +1181,51 @@ Resource Syncの管理に関する操作手順を説明しています。 - - + + - - + + - - + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -1171,7 +1233,7 @@ Resource Syncの管理に関する操作手順を説明しています。 - + @@ -1195,7 +1257,7 @@ Resource Syncの管理に関する操作手順を説明しています。 - + @@ -1239,21 +1301,14 @@ Resource Syncの管理に関する操作手順を説明しています。 - -
著者DB管理---6. 著者DB管理
著者DB管理---6. 著者DB管理
編集フィードバックメール ×

+

(*2)

サイトライセンス ×

+

(*2)

フロー ×

+

(*2)

ワークフロー

+

(*2)

ワークスペース設定 ×
Sets ××
Resource List ××

+

(*2)

Change List ××

+

(*2)

Resync ××

+

(*2)

SWORD API---12. SWORD API設定
TSV/XML-
JSON-LD-
- - -12. レコード管理13. レコード管理
- - -3. ファイル管理14. ファイル管理
×
- - - - - - - - - - + + + + + + + - - @@ -1339,7 +1394,8 @@ Resource Syncの管理に関する操作手順を説明しています。 - + @@ -1355,7 +1411,7 @@ Resource Syncの管理に関する操作手順を説明しています。 - + @@ -1477,7 +1533,8 @@ Resource Syncの管理に関する操作手順を説明しています。 - + @@ -1537,11 +1594,27 @@ Resource Syncの管理に関する操作手順を説明しています。 - + + + + + + + + + + + + + + + + + - + @@ -1565,7 +1638,7 @@ Resource Syncの管理に関する操作手順を説明しています。 (\*1) 読み込み権限のみ可能 -(\*2) 管理者の管理対象となるインデックスのみ可能とするように対応予定 +(\*2) 管理者の管理対象のみ可能 ### 管理画面を表示する @@ -1770,7 +1843,7 @@ Resource Syncの管理に関する操作手順を説明しています。 -10. メタデータの項目を編集します。 +2. メタデータの項目を編集します。 テキストエリアに項目名を入力し、ドロップダウンリストから入力形式を選択します。入力形式の設定内容については、「表 2-1メタデータ属性の入力形式の項目」を参照してください。 @@ -1999,29 +2072,29 @@ Resource Syncの管理に関する操作手順を説明しています。 また、子項目のオプションは該当子項目の直下に表示されている[Required]、[Show List]、[Specify Newline]、[Hide]にチェックを入れることで設定できます。 -表 2‑3[オプション]の項目 + 表 2‑3[オプション]の項目 -| オプション | 説明 | -| --------------- | ---------------------------------------------------------- | -| Required | アイテム登録時に「![](media/media/image43.png)」を表示し、必須入力のメタデータにします。 | -| Allow Multiple | アイテム登録時に[+New]を表示し、メタデータの複数入力を可能にします。 | -| Show List | アイテム一覧画面にメタデータをカンマ区切りで一覧に表示されます。例外的に著者識別子はアイコン、ファイルについてはファイルのタイプ別の独立リンクとして表示されます。 | -| Specify Newline | アイテム一覧画面にメタデータを改行で表示されます。 | -| Hide | インデックス、キーワードサーチ結果およびアイテム詳細にメタデータの詳細を表示しないようにできます。 | + | オプション | 説明 | + | --------------- | ---------------------------------------------------------- | + | Required | アイテム登録時に「![](media/media/image43.png)」を表示し、必須入力のメタデータにします。 | + | Allow Multiple | アイテム登録時に[+New]を表示し、メタデータの複数入力を可能にします。 | + | Show List | アイテム一覧画面にメタデータをカンマ区切りで一覧に表示されます。例外的に著者識別子はアイコン、ファイルについてはファイルのタイプ別の独立リンクとして表示されます。 | + | Specify Newline | アイテム一覧画面にメタデータを改行で表示されます。 | + | Hide | インデックス、キーワードサーチ結果およびアイテム詳細にメタデータの詳細を表示しないようにできます。 | -![](media/media/image44.png) + ![](media/media/image44.png) -親要素と子要素のオプションの優先度は、「表 2-4オプションの優先度」を参照してください。 + 親要素と子要素のオプションの優先度は、「表 2-4オプションの優先度」を参照してください。 -表 2-4オプションの優先度 + 表 2-4オプションの優先度 -> (凡例:〇 チェックあり、- チェックなし) + > (凡例:〇 チェックあり、- チェックなし) -| 親要素 | 子要素 | オプション | -| --- | --- | --------------------- | -| 〇 | \- | 子要素全体に適用します。 | -| \- | 〇 | 指定された子要素のみ適用します。 | -| 〇 | 〇 | 親要素のみ選択された状況と同様になります。 | + | 親要素 | 子要素 | オプション | + | --- | --- | --------------------- | + | 〇 | \- | 子要素全体に適用します。 | + | \- | 〇 | 指定された子要素のみ適用します。 | + | 〇 | 〇 | 親要素のみ選択された状況と同様になります。 | 30. 項目の表示位置を編集します。 @@ -2105,19 +2178,37 @@ Resource Syncの管理に関する操作手順を説明しています。 削除確認用のダイアログが表示されます。![](media/media/image48.png) - 【注意事項】 - - ハーベスト用アイテムタイプは削除できません。[削除]をクリックした場合、ハーベスト用アイテムは削除できない旨のメッセージ「Cannot delete item type for harvesting.」が表示されます。 35. [継続]をクリックします。 アイテムタイプが削除されます。 - 【注意事項】 - - 標準アイテムタイプのうち、登録されているアイテムに使用しているアイテムタイプは削除できません。[継続]をクリックすると、該当するアイテムが存在するため削除できない旨のメッセージが表示されます。 - - ![](media/media/image49.png) + 一括インポート機能でインポート中、あるいは予約済みのタスクが存在する場合、No.1のメッセージが表示される。 + + 削除対象がハーベスト用のアイテムタイプの場合、No.2のメッセージが表示される。 + + 削除対象のアイテムタイプで既に登録済みのアイテムが存在する場合、No.3のメッセージが表示される。 + + 削除対象のアイテムタイプがワークフローに設定されている場合、No.4のメッセージが表示される。 + + 削除対象のアイテムタイプがSWORD API設定のJSON-LDインポート機能で使用されている場合、No.5のメッセージが表示される。 + + アイテムタイプが見つからない等の予期せぬ状況が発生した場合は処理を中断され、No.6,7のメッセージが表示される。 + + 上記のチェックをすべて通過した場合、アイテムタイプが削除され、No.8のメッセージが表示される。 + + 表 2-5削除時のメッセージ + +| No. | 種別 | 英語 | 日本語 | +|-----|---------|-------------------------------------------------------------|----------------------------------------------------------------| +| 1 | ERROR | Cannot delete item type. Import is in progress. | アイテムをインポート中はアイテムタイプを削除できません。 | +| 2 | ERROR | Cannot delete item type. It is used for harvesting. | ハーベスト用のアイテムタイプは削除できません。 | +| 3 | ERROR | Cannot delete item type. Item of this type already exists. | このアイテムタイプのアイテムが既に存在するため、アイテムタイプを削除できません。 | +| 4 | ERROR | Cannot delete item type. It is used in some workflows. | ワークフローで使用されているため、アイテムタイプを削除できません。| +| 5 | ERROR | Cannot delete item type. It is used in SWORD API JSON-LD import settings. | SWORD API設定のJSON-LDインポート機能で使用されているため、アイテムタイプを削除できません。 | +| 6 | ERROR | Item type not found. | アイテムタイプが見つかりません。 | +| 7 | ERROR | Unexpected error. Failed to delete item type. | アイテムタイプの削除に失敗しました。 | +| 8 | SUCCESS | Deleted Item type successfully. | アイテムタイプを削除しました。 | #### アイテムタイプを復元する @@ -2147,11 +2238,9 @@ Resource Syncの管理に関する操作手順を説明しています。 1. [標準アイテムタイプ]を選択します。 - - -38. [エクスポート]をクリックします。 +2. [エクスポート]をクリックします。 -39. アイテムタイプの定義を含んだZIPファイルがダウンロードされます。 +3. アイテムタイプの定義を含んだZIPファイルがダウンロードされます。 #### アイテムタイプをインポートする @@ -2159,19 +2248,33 @@ Resource Syncの管理に関する操作手順を説明しています。 1. [標準アイテムタイプ]を選択します。 - - -40. [インポート]をクリックします。 +2. [インポート]をクリックします。 ![](media/media/image52.png) -41. [ファイルを開く]をクリックし、エクスポートされたアイテムタイプのZIPファイルを読み込みます。 +3. [ファイルを開く]をクリックし、エクスポートされたアイテムタイプのZIPファイルを読み込みます。 -42. [Item Type]にインポートするアイテムタイプの名称を入力します。 +4. [Item Type]にインポートするアイテムタイプの名称を入力します。 -43. [Execute Import]をクリックすると、入力した名称でアイテムタイプが取り込まれます。 - - ※本機能を利用する場合は、事前にアイテムタイプと同じプロパティが定義されている必要があります。 +5. [Execute Import]をクリックすると、入力した名称でアイテムタイプが取り込まれます。 + +【注意事項】 + +- デフォルトの設定では、当該WEKOに登録されているプロパティだけで構成されたアイテムタイプのみインポート可能です。 + +- 未登録のプロパティがインポートファイルに含まれる場合、エラーメッセージが表示されインポートは中断されます。 + +##### 強制インポート機能について + +管理者は、環境設定ファイル(instance.cfg)を手動で設定することで、未登録のプロパティが含まれていてもインポートを実行する「強制インポート」機能を有効化することができます。 + +この機能を使用するとアイテムタイプのインポート時、未登録のプロパティも同時にWEKOに登録されます。 + +【注意事項】 + +- 強制インポート機能が有効化されている場合であっても、既存のプロパティとIDが重複するプロパティはインポートされません。その場合、同じIDを持つ既存のプロパティに置き換えられる形でアイテムタイプがインポートされます。 + +- 既存のプロパティと名前が重複するプロパティがインポートファイルに含まれている場合、エラーメッセージが表示されインポートは中断されます。 ## OAI Schemaを設定する @@ -2247,7 +2350,7 @@ WEKO3システムは、JPCOAR, JPCOAR v1, JPCOAR v2, Dublin Core, DDI, lomのス -45. [保存]をクリックします。 +3. [保存]をクリックします。 スキーマが追加されます。 @@ -2349,6 +2452,32 @@ WEKO3システムは、JPCOAR, JPCOAR v1, JPCOAR v2, Dublin Core, DDI, lomのス ・異なるプロパティに対して同じスキーマをマッピングさせる場合は、Schema (子)含めて全て同じようにマッピングさせる必要があります。同じマッピングではない場合は、保存時に「Duplicate mapping as below」とメッセージが表示され、マッピング情報を保存できません。 +## JSON-LDのマッピングを設定する + +外部から連携されるメタデータ(JSON-LD形式)をアイテムタイプスキーマにマッピングする方法を説明します。事前にマッピングするアイテムタイプが定義されている必要があります。 + +マッピングの編集画面は、[アイテムタイプ管理]をクリックして[JSON-LD Mapping]をクリックすると表示されます。 + +本画面で設定したマッピングの情報は、SWORD API機能で登録する[JSON-LD設定]で利用します。 + +### JSON-LD Mappingを新規作成する +1. [作成]タブを選択します。 + ![JSON-LD Mapping一覧画面](media/media/image453.png) + +2. 任意の[名前]を入力し、対象となるアイテムタイプを選択します。 + また、マッピングのテキストを入力しますが、現段階ではエディターは存在しないので手元で作成したマッピング定義テキストを直接テキストエリアに貼り付けしてください。 + ![JSON-LD Mapping作成画面](media/media/image454.png) + 入力が完了したら[保存]をクリックします。設定した内容が保存されます。 + +### JSON-LD Mappingを編集/削除する +1. [一覧]から編集、削除したいマッピング定義の編集ボタンを選択します。 + ![JSON-LD Mapping一覧画面](media/media/image455.png) + +2. 登録済の内容が表示されますので、編集したい場合は必要に応じて内容を編集してください。 + ![JSON-LD Mapping編集画面](media/media/image456.png) + 編集した内容を保存する場合は[保存]、削除したい場合は[削除]をクリックします。 + + ## アイテム管理 この章では、アイテムを管理する方法について説明します。 @@ -2364,7 +2493,9 @@ WEKO3システムは、JPCOAR, JPCOAR v1, JPCOAR v2, Dublin Core, DDI, lomのス 56. [インデックスツリー]でアイテムを一括更新するインデックスを選択します。 - + + コミュニティ管理者の場合は[インデックスツリー]には管理対象のインデックスのみが表示されます。 + ![グラフィカル ユーザー インターフェイス, テキスト, アプリケーション, メール, Web サイト 自動的に生成された説明](media/media/image66.png) 57. [更新用のフィールド]で[Access Type]または[Licence]を選択します。 @@ -2403,6 +2534,8 @@ WEKO3システムは、JPCOAR, JPCOAR v1, JPCOAR v2, Dublin Core, DDI, lomのス アイテムを一括削除する画面が表示されます。 + コミュニティ管理者の場合は[インデックスツリー]には管理対象のインデックスのみが表示されます。 + 62. [インデックスツリー]でアイテムを一括削除するインデックスを選択します。 @@ -2427,32 +2560,34 @@ WEKO3システムは、JPCOAR, JPCOAR v1, JPCOAR v2, Dublin Core, DDI, lomのス ファイルをエクスポートする画面が表示されます。 + コミュニティ管理者の場合は[The last item ID]には管理対象のコミュニティに属する最後に登録されたアイテムIDが表示されます。 + 64. [アイテムタイプ]を選択すると指定したアイテムタイプのアイテムをエクスポートします。アイテムIDを指定すると、指定したアイテムID範囲のアイテムをエクスポートできます。 - -![](media/media/image74.png) + ![](media/media/image74.png) 65. 処理を行う場合は、[エクスポート]をクリックします。 [エクスポート]をクリックすると、全件出力を実行してよいかの確認ダイアログが表示されます。表示されたダイアログのボタンを操作します。 -![グラフィカル ユーザー インターフェイス, アプリケーション 自動的に生成された説明](media/media/image75.png) + ![グラフィカル ユーザー インターフェイス, アプリケーション 自動的に生成された説明](media/media/image75.png) 66. [実行]を選択します。全件エクスポート処理が実行されます。 + コミュニティ管理者の場合は、管理対象のコミュニティに属するアイテムのみエクスポートされます。 + 正常に処理が完了するとダウンロードのURLが画面上に表示されます。 URLをクリックするとzipファイル(export-all.zip)がダウンロード出来ます。 エクスポートファイルの構成は以下の通りです。 - ![テキスト, 手紙 自動的に生成された説明](media/media/image76.png) - -**出力されるtsvファイルは、「アイテムタイプ名(アイテムタイプID)」の形でアイテムタイプ毎にtsvファイルが出力されます。各アイテムのコンテンツファイルは出力されません。** + **出力されるtsvファイルは、「アイテムタイプ名(アイテムタイプID)」の形でアイテムタイプ毎にtsvファイルが出力されます。各アイテムのコンテンツファイルは出力されません。** + アイテムタイプ内のエクスポート対象となるアイテム数が一定値を超える場合、tsvファイルは一定値ごとに分割されます。 + その場合「アイテムタイプ名(アイテムタイプID).part(パート数)」の形式のファイル名になります 67. 処理を行わない場合は、[キャンセル]をクリックします。 - ボタンの初期状態は非活性です。エクスポートを実行中は活性となり、クリックすることが出来ます。 **[キャンセル]をクリックすると、全件エクスポートの処理をキャンセルしてよいかの確認ダイアログを表示します。表示されたダイアログのボタンを操作します。** @@ -2472,110 +2607,110 @@ WEKO3システムは、JPCOAR, JPCOAR v1, JPCOAR v2, Dublin Core, DDI, lomのス 1. [アイテム管理]をクリックして[インポート]をクリックします。 [選択]タブにファイルをインポートする画面が表示されます。 + ![グラフィカル ユーザー インターフェイス, テキスト, メール 自動的に生成された説明](media/media/image78.png) -![グラフィカル ユーザー インターフェイス, テキスト, メール 自動的に生成された説明](media/media/image78.png) + 一括登録を実行中に他の端末が Admin\>Items\>Import 画面を開いた場合、メッセージ日本語は[他の端末でインポートを実行中です。]、英語は[Import is in progress on another device. ]が表示されます。 -一括登録を実行中に他の端末が Admin\>Items\>Import 画面を開いた場合、メッセージ日本語は[他の端末でインポートを実行中です。]、英語は[Import is in progress on another device. ]が表示されます。 + 一括登録を実行している端末が Admin\>Items\>Import 画面を開いた場合(他のブラウザで開いたとき,"Result"タブから再度"Import"タブに遷移したとき等)、メッセージ日本語は[インポートを実行中です。]、英語は[Import is in progress. ]が表示されます。 -一括登録を実行している端末が Admin\>Items\>Import 画面を開いた場合(他のブラウザで開いたとき,"Result"タブから再度"Import"タブに遷移したとき等)、メッセージ日本語は[インポートを実行中です。]、英語は[Import is in progress. ]が表示されます。 - -インポート中はアイテムタイプ削除やインデックス操作ができないようにする。 + インポート中はアイテムタイプ削除やインデックス操作ができないようにする。 68. [アイテムタイプ]を選択して[ダウンロード]をクリックします。 選択したアイテムタイプのヘッダ情報をTSV形式でダウンロードします。ファイル名は「*アイテムタイプ名(アイテムタイプID).tsv*」です。 -![グラフィカル ユーザー インターフェイス, テキスト 自動的に生成された説明](media/media/image79.png) - -注 - -アイテムタイプリストが取得できない場合、エラーメッセージ「アイテムタイプリストの取得に失敗しました。」が表示されます。 - -アイテムタイプのダウンロード時にエラーが発生した場合、エラーメッセージ「ダウンロードに失敗しました。」が表示されます。 - -表 3‑1ダウンロードされるアイテムタイプのテンプレートの項目 - -
ユーザ管理---14. ユーザ管理
ユーザ管理---15. ユーザ管理
アクセス: ロールユーザ 〇(*1)×

+

(*2)

- - -15. システム設定165. システム設定
サイトライセンス ×

+

(*2)

ユーザカウント管理ユーザアカウント管理 19. ユーザアカウントの管理
ログ管理---17. ログ管理
エクスポート 16. ユーザカウントの管理×
- - - - - - - - - - - - - - - - -
行目説明
1行目

アイテムタイプの名称を記載します。

-
    -
  • 1カラム目 : #ItemType(固定)

  • -
  • 2カラム目 : アイテムタイプの名称を記載します。

  • -
  • 3カラム目 : アイテムタイプのjsonschemaのURLを記載します。

  • -
2行目

各メタデータ項目の内部キーを記載します。

-

出力される項目は以下の通りです。

-
    -
  • ID

  • -
  • URI

  • -
  • IndexID##

  • -
  • POS_INDEX##

  • -
  • FEEDBACK_MAIL

  • -
  • PUBLISH_STATUS

  • -
  • CNRI

  • -
  • DOI_RA

  • -
  • DOI

  • -
  • EDIT_MODE

  • -
  • アイテムタイプに定義されているメタデータ

  • -
- - - - - - - - - - - - - - - - - - -
3行目

各メタデータ項目のラベルを記載します。

-
    -
  • メタデータの階層に応じて、各階層のラベルを"."で連結します。

  • -
  • 繰り返し可能な項目については、ラベルのサフィックスとして"#"+連番(1〜)を記載します。

  • -
4行目アイテム登録画面でユーザが編集できない(自動で設定される)項目について「System」が出力されています。例外的に、ファイルのサイズ、本文URLはファイルがあり、指定がない場合は自動設定されます。
5行目

各アイテムタイプ項目に設定されているオプション情報を記載します。

-

オプションは[Required]、[Hide]、[Allow Multiple]です。

- -「アイテムタイプに定義されているメタデータファイル」以外の項目については、章末の【補足資料】を参照してください。 + ![グラフィカル ユーザー インターフェイス, テキスト 自動的に生成された説明](media/media/image79.png) + + 注 + + アイテムタイプリストが取得できない場合、エラーメッセージ「アイテムタイプリストの取得に失敗しました。」が表示されます。 + + アイテムタイプのダウンロード時にエラーが発生した場合、エラーメッセージ「ダウンロードに失敗しました。」が表示されます。 + + 表 3‑1ダウンロードされるアイテムタイプのテンプレートの項目 + + + + + + + + + + + + + + + + + + +
行目説明
1行目

アイテムタイプの名称を記載します。

+
    +
  • 1カラム目 : #ItemType(固定)

  • +
  • 2カラム目 : アイテムタイプの名称を記載します。

  • +
  • 3カラム目 : アイテムタイプのjsonschemaのURLを記載します。

  • +
2行目

各メタデータ項目の内部キーを記載します。

+

出力される項目は以下の通りです。

+
    +
  • ID

  • +
  • URI

  • +
  • IndexID##

  • +
  • POS_INDEX##

  • +
  • FEEDBACK_MAIL

  • +
  • REQUEST_MAIL

  • +
  • PUBLISH_STATUS

  • +
  • CNRI

  • +
  • DOI_RA

  • +
  • DOI

  • +
  • EDIT_MODE

  • +
  • アイテムタイプに定義されているメタデータ

  • +
+ + + + + + + + + + + + + + + + + + +
3行目

各メタデータ項目のラベルを記載します。

+
    +
  • メタデータの階層に応じて、各階層のラベルを"."で連結します。

  • +
  • 繰り返し可能な項目については、ラベルのサフィックスとして"#"+連番(1〜)を記載します。

  • +
4行目アイテム登録画面でユーザが編集できない(自動で設定される)項目について「System」が出力されています。例外的に、ファイルのサイズ、本文URLはファイルがあり、指定がない場合は自動設定されます。
5行目

各アイテムタイプ項目に設定されているオプション情報を記載します。

+

オプションは[Required]、[Hide]、[Allow Multiple]です。

+ + 「アイテムタイプに定義されているメタデータファイル」以外の項目については、章末の【補足資料】を参照してください。 69. [ファイル選択]をクリックしてZIPファイルを指定します。 ファイル名が表示されます。 -![グラフィカル ユーザー インターフェイス, アプリケーション 自動的に生成された説明](media/media/image80.png) + ![グラフィカル ユーザー インターフェイス, アプリケーション 自動的に生成された説明](media/media/image80.png) -一括登録用のファイル形式は以下の二つの形式です。 + 一括登録用のファイル形式は以下の二つの形式です。 - - > Bagit形式 + - > Bagit形式 -![テキスト, 手紙 自動的に生成された説明](media/media/image81.png) + ![テキスト, 手紙 自動的に生成された説明](media/media/image81.png) - - > Bagit無し形式 + - > Bagit無し形式 -![テキスト 自動的に生成された説明](media/media/image82.png) + ![テキスト 自動的に生成された説明](media/media/image82.png) -アイテムタイプの異なるTSVファイルを複数配置して登録することができます。 + アイテムタイプの異なるTSVファイルを複数配置して登録することができます。 70. [識別子変更モード]を指定してインポートする場合 @@ -2597,6 +2732,22 @@ WEKO3システムは、JPCOAR, JPCOAR v1, JPCOAR v2, Dublin Core, DDI, lomのス [利用規約に同意します]をクリックして[OK]をクリックします。 ファイルの読み込みとチェックが実行されて、[インポート]タブが表示されます。[インポート]タブには、読み込んだファイルのチェック結果が表示されます。 ![](media/media/image85.png) + + 識別子変更モードが有効である場合、アイテムにDOIが指定されていると、そのDOIが登録済みDOIに存在するかをチェックします。 + + 指定されたDOIと一致するレコードが登録済みDOIに存在する場合は、表3-2のNo.1のエラーメッセージが表示されます。 + 取り下げられたDOIが指定されている場合は、表3-2のNo.2のエラーメッセージが表示されます。 + 指定されたDOIがインポートファイル内で重複している場合は、表3-2のNo.3のエラーメッセージが表示されます。 + +表 3-2DOI重複チェックのエラーメッセージ + +| No. | 種別 | 英語 | 日本語 | +|-----|-------|----------------------------------------------------------------------|----------------------------------------------------------------| +| 1 | ERROR | Specified DOI has been used already for another item. Please specify another DOI. | 指定されたDOIは既に別のアイテムに付与されています。別のDOIを指定してください。 | +| 2 | ERROR | Specified DOI was withdrawn. Please specify another DOI. | 指定されたDOIは取り下げられました。別のDOIを指定してください。 | +| 3 | ERROR | Specified DOI is duplicated with another import item. Please specify another DOI. | 指定されたDOIはインポートファイル内で重複しています。別のDOIを指定してください。 | + + 3) > [チェック結果]が[Register]または[Update]であることを確認します。 @@ -2606,7 +2757,7 @@ WEKO3システムは、JPCOAR, JPCOAR v1, JPCOAR v2, Dublin Core, DDI, lomのス ![](media/media/image86.png) -表 3‑2[インポート]タブの項目 +表 3‑3[インポート]タブの項目 @@ -2675,7 +2826,7 @@ WEKO3システムは、JPCOAR, JPCOAR v1, JPCOAR v2, Dublin Core, DDI, lomのス ダウンロード時にエラーが発生する場合、エラーメッセージ「ダウンロードに失敗しました。」が表示されます。 -表 3‑3TSVフォーマット不正のバリデーションチェック +表 3‑4TSVフォーマット不正のバリデーションチェック
@@ -2833,7 +2984,7 @@ WEKO3システムは、JPCOAR, JPCOAR v1, JPCOAR v2, Dublin Core, DDI, lomのス
-表 3‑4メタデータ項目以外の不正のバリデーションチェック +表 3‑5メタデータ項目以外の不正のバリデーションチェック @@ -2919,7 +3070,7 @@ WEKO3システムは、JPCOAR, JPCOAR v1, JPCOAR v2, Dublin Core, DDI, lomのス - + + + + + + + + + +

[子インデックスの公開日にも再帰的に反映させる]にチェックがある場合、所属する子インデックスと子孫インデックスすべてに公開日の設定が再帰的に設定されます。

+

設定ファイルを変更することで、インデックス公開ロック機能が有効になり、[公開する]にチェックをした場合ポップアップが表示されるようになります。

+

上記ポップアップ内のメッセージを確認後「公開設定を有効化する」チェックボックスをチェックし「有効化する」ボタンをクリック後、ポップアップが閉じ、公開するチェックボックスにチェックが入ります。ポップアップを閉じる場合は「閉じる」ボタンをクリックすると、ポップアップが閉じられます。

+

図 1-3 インデックス公開ロック機能ポップアップを参照

@@ -3558,21 +3735,17 @@ CNRIハンドル設定ユーザ - + - -
エラー[.FEEDBACK_MAIL#n][.FEEDBACK_MAIL#n], [.REQUEST_MAIL#n] Specified {} is invalid. 指定された{}が不正です。

以下の値が不正な形式で指定された場合

@@ -2968,7 +3119,7 @@ WEKO3システムは、JPCOAR, JPCOAR v1, JPCOAR v2, Dublin Core, DDI, lomのス | エラー | \[公開日\] | 'pubdate' is a required property. | 'pubdate'は必須項目です。 | 'pubdate'が指定されていない場合 | | エラー | \[サムネイルパス\] | Please specify the image file(gif, jpg, jpe, jpeg, png, bmp) for the thumbnail. | サムネイルは画像ファイル(gif, jpg, jpe, jpeg, png, bmp)を指定してください | 画像ファイル以外を指定する場合 | -表 3‑5メタデータ項目不正のバリデーションチェック +表 3‑6メタデータ項目不正のバリデーションチェック | タイプ | 対象 | 英語 | 日本語 | 説明 | | --- | -------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------- | ------------------------------------------------------------- | @@ -2991,13 +3142,26 @@ WEKO3システムは、JPCOAR, JPCOAR v1, JPCOAR v2, Dublin Core, DDI, lomのス 新規で一括登録するアイテムに指定したDOI、CNRIの登録を行います。 既存のアイテムに登録しているDOI、CNRIの変更を行います。 + + 指定したDOIが別アイテムで用いられている場合、表3-7のNo.1のメッセージが表示されます。 + + 指定したDOIが無効かされている場合、表3-7のNo.2のメッセージが表示されます。 - 個別のアイテム編集中に、一括登録を実施した場合、メッセージ日本語は[該当アイテムが編集中のため更新できません。]、英語は[Cannot update because the corresponding item is being edited. ] が表示されます。 - - 個別のアイテム削除後に、一括登録を実施した場合、メッセージ日本語は[該当アイテムは削除済です。]、英語は[The corresponding item has been deleted. ] が表示されます。 - + 個別のアイテム削除後に、一括登録を実施した場合、表3-7のNo.3のメッセージが表示されます + + 個別のアイテム編集中に、一括登録を実施した場合、表3-7のNo.4のメッセージが表示されます。 + ユーザのセッション有効時間を超過した場合でもインポート処理は実行されます。 +表 3‑7インポート結果エラーメッセージ + +| No. | 英語 | 日本語 | +|-----|----------------------------------------------------------------------|------------------------------------------------------| +| 1 | This DOI has been already grant for another item. Please specify another DOI. | このDOIは既に別のアイテムに付与されています。別のDOIを指定してください。 | +| 2 | This DOI was withdrawn. Please input another DOI. | このDOIは取り下げられました。別のDOIを指定してください。 | +| 3 | The corresponding item has been deleted. | 該当アイテムは削除済です。 | +| 4 | Cannot update because the corresponding item is being edited. | 該当アイテムが編集中のため更新できません。 | + 71. [識別子変更モード]を指定しないでインポートする場合 @@ -3014,8 +3178,8 @@ WEKO3システムは、JPCOAR, JPCOAR v1, JPCOAR v2, Dublin Core, DDI, lomのス ![](media/media/image87.png) -[インポート]タブの項目は、「表 3-2[インポート]タブの項目」の説明に参照します。 -インポートファイルのバリデーションチェックは、「表 3-3 TSVフォーマット不正のバリデーションチェック」、「表 3-4 メタデータ項目以外の不正のバリデーションチェック」、「表 3-5 メタデータ項目不正のバリデーションチェック」の説明に参照します。 +[インポート]タブの項目は、「表 3-3[インポート]タブの項目」の説明に参照します。 +インポートファイルのバリデーションチェックは、「表 3-4 TSVフォーマット不正のバリデーションチェック」、「表 3-5 メタデータ項目以外の不正のバリデーションチェック」、「表 3-6 メタデータ項目不正のバリデーションチェック」の説明に参照します。 3) > [インポート]をクリックします。 @@ -3034,7 +3198,7 @@ WEKO3システムは、JPCOAR, JPCOAR v1, JPCOAR v2, Dublin Core, DDI, lomのス ![](media/media/image88.png) -表 3‑6[結果]タブの項目 +表 3‑8[結果]タブの項目 @@ -3069,12 +3233,12 @@ WEKO3システムは、JPCOAR, JPCOAR v1, JPCOAR v2, Dublin Core, DDI, lomのス - - + + - - + +
各アイテムのアイテムIDが表示されます。
アクション各アイテムのワークフローのアクションが表示されます。ステータスアイテムのワークフローのステータスが表示されます。
ワークフローステータスアイテムのワークフローのステータスが表示されます。インポート結果アイテムのインポート結果が表示されます
@@ -3518,6 +3682,16 @@ CNRIハンドル設定ユーザ

英語:サイトの表示言語が日本語以外の時に表示されます。

インデックスURL

インデックスのエンドポイントURLが表示されます。

+

編集できません

CNRI

インデックスのCNRIが存在する場合表示されます。

+

編集できません

コメント

インデックスのコメントを入力します。コメントは下記項目で表示されます。

    @@ -3533,7 +3707,10 @@ CNRIハンドル設定ユーザ
公開

インデックスの公開または非公開を設定します。

[公開する]にチェックがある場合、インデックスの公開日を設定できます。

-

[子インデックスの公開日にも再帰的に反映させる]にチェックがある場合、所属する子インデックスと子孫インデックスすべてに公開日の設定が再帰的に設定されます。

インデックスリンク
ハーベスト公開インデックスへのハーベスト要求に対して、所属するデータの提供または非提供を設定します。

インデックスへのハーベスト要求に対して、所属するデータの提供または非提供を設定します。

+

設定ファイルを変更することで、インデックス公開ロック機能が有効になり、[公開する]にチェックをした場合ポップアップが表示されるようになります。

+

上記ポップアップ内のメッセージを確認後「公開設定を有効化する」チェックボックスをチェックし「有効化する」ボタンをクリック後、ポップアップが閉じ、公開するチェックボックスにチェックが入ります。ポップアップを閉じる場合は「閉じる」ボタンをクリックすると、ポップアップが閉じられます。

+

図 1-3 インデックス公開ロック機能ポップアップを参照

- - - - - - - - - + + + + +

ユーザが所属しているグループごとの閲覧権限を設定します。[子インデックスのグループにも再帰的に反映させる]にチェックがある場合、所属する子インデックスと子孫インデックスすべてにグループの設定が再帰的に設定されます。

+

学認経由でのログイン時にGakuNin mAPからの情報に従って付与されたグループの閲覧権限に設定ファイルを用いてデフォルトの権限を付与できます。

+

※学認経由でのログイン時に付与されたGakuNin mAPグループは内部的にロールとして扱われます。

- + +

[子インデックスのグループにも再帰的に反映させる]にチェックがある場合、所属する子インデックスと子孫インデックスすべてにグループの設定が再帰的に設定されます。

+

学認経由でのログイン時にGakuNin mAPからの情報に従って付与されたグループの投稿権限に設定ファイルを用いてデフォルトの権限を付与できます。

+

※学認経由でのログイン時に付与されたGakuNin mAPグループは内部的にロールとして扱われます。

- + - +
ONLINE ISSN

インデックスにオンラインISSNの値を設定します。

-

(注)「このインデックス直下のアイテムの利用統計を集計する」のチェックボックスにチェックを入れても、子インデックスへの再帰的な設定値反映および利用統計集計は現在機能しません。

ONLINE ISSN

インデックスにオンラインISSNの値を設定します。

+

(注)「このインデックス直下のアイテムの利用統計を集計する」のチェックボックスにチェックを入れても、子インデックスへの再帰的な設定値反映および利用統計集計は現在機能しません。

閲覧権限

インデックスの閲覧権限を設定します。

[ロール権限あり]および[グループ権限あり]に表示されているロールおよびグループに所属しているユーザが、そのインデックスを閲覧できます。

@@ -3583,9 +3756,11 @@ CNRIハンドル設定ユーザ
  • グループ

-

ユーザが所属しているグループごとの閲覧権限を設定します。[子インデックスのグループにも再帰的に反映させる]にチェックがある場合、所属する子インデックスと子孫インデックスすべてにグループの設定が再帰的に設定されます。

投稿権限

インデックスにアイテムを投稿する権限を設定します。

[ロール権限あり]および[グループ権限あり]に表示されているロールおよびグループに所属しているユーザが、そのインデックスにアイテムを登録できます。

@@ -3598,9 +3773,11 @@ CNRIハンドル設定ユーザ
  • グループ

  • ユーザが所属しているグループごとの投稿権限を設定します。

    -

    [子インデックスのグループにも再帰的に反映させる]にチェックがある場合、所属する子インデックスと子孫インデックスすべてにグループの設定が再帰的に設定されます。

    表示形式(検索結果)

    検索結果の表示形式を選択します。

      @@ -3612,7 +3789,7 @@ CNRIハンドル設定ユーザ

    検索結果を見出しの一覧で表示します。

    サムネイル

    インデックスにサムネイルを設定します。

    設定可能なファイルの形式は「gif, jpg, jpe, jpeg, png, bmp」です。

    @@ -3621,7 +3798,10 @@ CNRIハンドル設定ユーザ
    -74. [送信]をクリックします。 +図 1-3 インデックス公開ロック機能ポップアップ +![](media/media/image469.png) + +1. [送信]をクリックします。 入力した情報がインデックスに追加されます。 @@ -3737,6 +3917,17 @@ CNRIハンドル設定ユーザ

    必ず入力してください。

    +概要 + +概要を入力します。 + + +ISSN-L + +

    ISSN-Lを入力します。

    +

    フォーマット:^[0-9]{4}-[0-9]{3}[0-9X]

    + + プリント版ISSN/プリント版ISBN print_identifier

    プリント版ISSN/プリント版ISBNのいずれかを入力します。

    @@ -3881,20 +4072,13 @@ CNRIハンドル設定ユーザ ndl_bibid NDL書誌IDを入力します。 - - - - - - - - - + + + - - @@ -3919,7 +4103,7 @@ CNRIハンドル設定ユーザ 図 4‑2入力した文字数が超えている場合 -80. [保存]をクリックします。 +1. [保存]をクリックします。 入力した情報がインデックスに追加されます。 @@ -3950,6 +4134,7 @@ CNRIハンドル設定ユーザ 1. [インデックスツリー管理]をクリックして[カスタムソート]をクリックします。 アイテムの並び順を一括更新する画面が表示されます。 + ※コミュニティ管理者の場合は管理対象のインデックスのみが表示されます。 @@ -3987,6 +4172,8 @@ CNRIハンドル設定ユーザ 作成されたウィジェット一覧が表示されます。 + コミュニティ管理者の場合は管理対象のコミュニティに属するウィジェットのみ表示されます。 + ![](media/media/image110.png) 84. 行頭に表示されている目のアイコン(![iconeye](media/media/image111.png))をクリックします。 @@ -4023,7 +4210,8 @@ CNRIハンドル設定ユーザ - + @@ -4071,41 +4259,32 @@ CNRIハンドル設定ユーザ - -
    J-STAGE資料コード(雑誌名の略称)jstage_code

    J-STAGE資料コードを入力します。

    +
    J-STAGE資料コード(雑誌名の略称)jstage_code

    J-STAGE資料コードを入力します。

    長さ:20文字以内

    -

    使用可能文字:半角英数字記号

    +

    使用可能文字:半角英数字記号

    医中誌ジャーナルコード ichushi_code
    Repositoryウィジェットを追加するリポジトリを設定します。

    ウィジェットを追加するリポジトリを設定します。

    +

    コミュニティ管理者の場合は管理対象のコミュニティのみ選択可能です。

    TypeLabel Text Color ラベルの文字色を設定します。
    - - - - - - + + - - - + - + - +
    Border Style

    以下からウィジェットの枠線のスタイルを設定します。詳細は、「(3) Border Styleの設定内容」を参照してください。

    +
    Border Style

    以下からウィジェットの枠線のスタイルを設定します。詳細は、「(3) Border Styleの設定内容」を参照してください。

    • None

    • Solid

    • Dotted

    • Double

    • -
    +
    Border Color ウィジェットの枠線の色を設定します。
    Background Color ウィジェットの背景色を設定します。
    Enable ウィジェットデザインにてウィジェットの有効または無効を設定します。デフォルトは、有効(チェックあり)です。
    -注※ - -入力必須項目です。 +注※入力必須項目です。 86. [Save]をクリックします。 @@ -4572,6 +4751,8 @@ Main contentsの設定は、「表 5-1ウィジェットの作成画面の項目 1. Repositoryのプルダウンリストで、リポジトリを選択します。 + コミュニティ管理者の場合は管理対象のコミュニティのみ選択可能です。 + 選択したリポジトリのMain Layoutのページが表示されます。また、Widget Listには、ウィジェットが表示されます。 ウィジェット画面で有効(Enableがチェックあり)が設定されているウィジェットがWidget Listに表示されます。 @@ -4640,7 +4821,15 @@ Main contentsの設定は、「表 5-1ウィジェットの作成画面の項目 URLを入力しない場合、エラーメッセージ「Not a valid URL.」が表示されます。 ![](media/media/image179.png) - + + 選択しているリポジトリがコミュニティの場合は、入力したURLの前に「/c/{community_id}/page」の形式でプレフィックスを自動的に付与します。 + + ![](media/media/image447.png) + + 初期値「/」を削除して、外部URLを設定することも可能です。外部URLを設定したページを"Menu"ウィジェットにセットすることで、外部ページへのリンクとして機能します。 + + ![](media/media/image442.png) + 【補足】 追加したページは、ウィジェットの「メニュー」を配置することで、各ページのリンクを表示し、各ページへ遷移することができます。メニューに表示するページは「メニュー」ウィジェットの編集時に指定することができます。 @@ -4768,7 +4957,8 @@ Author IDの表示について説明します。 [編集] -クリックすると、Author IDの編集画面が表示されます。 +クリックすると、Author IDの編集画面が表示されます。
    +※コミュニティ管理者は、管理対象コミュニティに関連付けられた著者のみ「編集」ボタンが有効です。その他の著者のボタンは押せません。 @@ -4964,6 +5154,18 @@ Author IDを追加する方法を説明します。 +105. コミュニティ情報を入力します。 + +表 6-5[コミュニティ]の項目 + +![](media/media/image474.png) + +| 項目 | 説明 | +| ----------------------- | ------------------------------------------------------------------------------------------------------------------ | +| [コミュニティ] | 著者を管理するコミュニティを選択します。 | +| [+コミュニティを追加] | クリックするとコミュニティの入力欄が追加されます。 | +| [X] | クリックすると、コミュニティの入力欄が削除されます。
    表示されている入力エリアが1つのみの場合、削除できません。 | + 105. 組織情報を入力します。 ![グラフィカル ユーザー インターフェイス, アプリケーション 自動的に生成された説明](media/media/image192.png) @@ -4990,9 +5192,17 @@ Author IDを編集する方法を説明します。 入力項目については、「(3)Author IDを追加する」を参照してください。 -109. [保存]をクリックします。 +109. [保存]をクリックします。 変更内容が保存されます。 + + ※ 変更内容が反映される際に、この著者DBに紐づいているメタデータを更新します。 + 更新対象は強制変更フラグによって変わります。 + +![グラフィカル ユーザー インターフェイス 中程度の精度で自動的に生成された説明](media/media/image475.png) + + 強制変更フラグがオフの場合:著者ID + 強制変更フラグオンの場合:名前、著者ID、E-mail、機関識別子 ##### Author IDを削除する @@ -5067,6 +5277,10 @@ ID Prefixの表示について説明します。 ID PrefixのURLが表示されます。 +[Community] +ID Prefixの管理権限があるコミュニティが表示されます。 + + [Control]

    コントロールのボタンが表示されます。

    コントロールのボタンは[Edit]、[Add]です。

    @@ -5142,6 +5356,10 @@ ID Prefixの表示について説明します。 URL 著者IDのアクセス先URLを入力します。 + +Community +ID Prefixを管理するコミュニティを選択してください。 + @@ -5162,6 +5380,8 @@ URLについて [Name]、[Scheme]は必須項目です。それらを入力しない場合、[+Add]をクリックすると、エラーメッセージ「Please enter the correct + 項目名」が表示されます。 [Scheme]は複数設定できません。設定されたSchemeを選択する場合、[+Add]をクリックすると、エラーメッセージ「Specified scheme is already exist.」が表示されます。 + + [Community]はコミュニティ管理者の場合必須項目です。管理対象のコミュニティを選択しない場合、[+Add]をクリックすると、エラーメッセージ「You must include at least one managed community.」が表示されます。 ##### 外部著者ID Prefixを編集する @@ -5234,6 +5454,10 @@ URLについて ID PrefixのURLが表示されます。 +[Community] +ID Prefixの管理権限があるコミュニティが表示されます。 + + [Control]

    コントロールのボタンが表示されます。

    コントロールのボタンは[Edit]、[Add]です。

    @@ -5292,6 +5516,10 @@ URLについて URL 所属機関IDのアクセス先URLを入力します。 + +Community +ID Prefixを管理するコミュニティを選択してください。 + @@ -5312,6 +5540,8 @@ URLについて [Name]、[Scheme]は必須項目です。それらを入力しない場合、[+Add]をクリックすると、エラーメッセージ「Please enter the correct + 項目名」が表示されます。 [Scheme]が複数設定できません。設定されたSchemeを選択する場合、[+Add]をクリックすると、エラーメッセージ「Specified scheme is already exist.」が表示されます。 + + [Community]はコミュニティ管理者の場合必須項目です。管理対象のコミュニティを選択しない場合、[+Add]をクリックすると、エラーメッセージ「You must include at least one managed community.」が表示されます。 ##### 組織ID Prefixを編集する @@ -5337,8 +5567,10 @@ URLについて ![グラフィカル ユーザー インターフェイス 自動的に生成された説明](media/media/image206.png) -117. 処理を行う場合は、[エクスポート]をクリックします。 - +![グラフィカル ユーザー インターフェイス 自動的に生成された説明](media/media/image441.png) + +117. 処理を行う場合は、エクスポート対象を選択後、[エクスポート]をクリックします。 + エクスポート対象は著者DB、著者識別子、機関識別子から選択できます。 [エクスポート]をクリックすると、全件出力を実行してよいかの確認ダイアログが表示されます。表示されたダイアログのボタンを操作します。 ![グラフィカル ユーザー インターフェイス, テキスト, アプリケーション 自動的に生成された説明](media/media/image207.png) @@ -5353,111 +5585,234 @@ URLについて 表 6‑9ダウンロードされる著者情報の項目 + - - - - - + - + + + + + + + + - + - - + + - + - - + + - + - - + + - + - - + + - - + + - - + + - - + + - - - - + + + + - - - - + + + + - - - - + + + - + + - - + + - + - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    項番

    1行目

    -

    ヘッダ項目(内部キー)

    2行目

    -

    ラベル(英語)

    3行目

    -

    ラベル

    -

    (日本語)

    概要# ヘッダ項目 ラベル(日本語) ラベル(英語) 概要
    1 pk_id著者IDAuthor IDこのリポジトリ内でのpk_idを出力する
    2weko_id WEKO ID WEKO IDWEKO3の著者ID( pk_id author_link)を出力するWEKO IDを出力する
    2
    3 authorNameInfo[0...n].familyNameFamily Name Family Name 著者の姓を出力する
    3
    4 authorNameInfo[0...n].firstNameGiven name Given name 著者の名を出力する
    4
    5 authorNameInfo[0...n].languageLanguage 言語Language 著者の言語を出力する
    5
    6 authorNameInfo[0...n].nameFormatname Format フォーマット「familyNmAndNm」を固定で出力するname Format著者の姓名のフォーマットを出力する
    +※現状(SP67時点)は「familyNmAndNm」固定
    6
    7 authorNameInfo[0...n].nameShowFlgName Display 姓名・言語 表示/非表示

    著者の姓名と言語の表示/非表示を出力する

    -

    表示:Y

    -

    非表示:N

    Name Display著者の姓名と言語の表示/非表示を出力する
    +表示する: "Y"
    +表示しない: "N"
    7authorNameInfo[0...n].idTypeIdentifier Scheme
    8authorIdInfo[0...n].idType 外部著者ID 識別子Identifier Scheme 外部著者IDの識別子を出力する
    8authorNameInfo[0...n].authorIdIdentifier URI
    9authorIdInfo[0...n].authorId 外部著者ID URIIdentifier URI 外部著者IDの値を出力する
    9authorNameInfo[0...n].authorIdShowFlgIdentifier Display
    10authorIdInfo[0...n].authorIdShowFlg 外部著者ID 表示/非表示

    外部著者IDの表示/非表示を出力する

    -

    表示:Y

    -

    非表示:N

    Identifier Display外部著者IDの表示/非表示を出力する
    +表示する: "Y"
    +表示しない: "N"
    10
    11 emailInfo[0...n].emailMail Address メールアドレスMail Address 著者のメールアドレスを出力する
    11
    12 is_deleted削除フラグ Delete Flag著者を削除する場合に "D" と出力する
    +※論理削除された著者情報は出力しないため、全件エクスポートではすべて空欄となる
    13authorAffiliationInfo[0...n].affiliationId[0...n].idtype外部所属機関ID 識別子Affiliation Identifier Scheme外部所属機関IDの識別子を出力する
    14authorAffiliationInfo[0...n].affiliationId[0...n].uri外部所属機関ID URIAffiliation Identifier URI外部所属機関IDの値を出力する
    15authorAffiliationInfo[0...n].authorIdShowFlg外部所属機関ID 表示/非表示Affiliation Identifier Display外部所属機関IDの表示/非表示を出力する
    +表示する: "Y"
    +表示しない: "N"
    16authorAffiliationInfo[0...n].affiliationNameInfo[0...n].affiliationName外部所属機関名Affiliation Name外部所属機関名を出力する
    17authorAffiliationInfo[0...n].affiliationNameInfo[0...n].language言語Language外部所属機関名の言語を出力する
    18authorAffiliationInfo[0...n].affiliationNameInfo[0...n].nameShowFlg外部所属機関名・言語 表示/非表示Affiliation Name Display外部所属機関名と言語の表示/非表示を出力する
    +表示する: "Y"
    +表示しない: "N"
    19authorAffiliationInfo[0...n].affiliationPeriod[0...n].period外部所属機関 所属期間Affiliation Period外部所属機関所属期間を出力する。
    +所属開始のみ:"20250127"
    +所属開始・終了:"20250127-20250317"
    20authorAffiliationInfo[0...n].affiliationPeriod[0...n].nameShowFlg外部所属機関 所属期間 表示/非表示Affiliation Period Display外部所属機関 所属期間の表示/非表示を出力する
    +表示する: "Y"
    +表示しない: "N"
    21communityIds[0...n]コミュニティ IDCommunity ID著者の管理権限を持つコミュニティのIDを出力する
    + + - 著者識別子、機関識別子の各ヘッダの情報は以下の通り + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + +
    # ヘッダ項目 ラベル(日本語) ラベル(英語) 概要
    1schemeスキーマSchemeスキーマを入力する
    2name名前Nameスキーマに対応する識別子名を入力する
    3urlURLURLスキーマに応じるURLを入力する
    4is_deleted 削除フラグ全件エクスポートでは論理削除された著者情報は出力しないため、ヘッダ項目とラベルのみ出力するDelete Flag識別子を削除する場合に "D" と出力する
    + エクスポートの場合は全て空欄である。
    5community_idsコミュニティIDCommunity ID識別子の管理権限を持つコミュニティのIDを出力する。
    + + > 【注意事項】 > > ・繰り返し項目とする場合はヘッダ行の各項目名の後ろに \[1\], \[2\], ..., \[N\] と出力されます(1つ目の項目名には \[0\] が記載されています)。 > > ・WEKO ID, Delete Flag は繰り返し項目ではありません。 -> + > (2)[キャンセル]を選択します。 > > 全件エクスポートを行なわず、確認用ダイアログを閉じます。 @@ -5486,6 +5841,8 @@ URLについて ・著者情報に紐づいた組織情報はエクスポートされません。 +・コミュニティ管理者の場合、管理対象のコミュニティに紐づかない著者はエクスポートされません。 + ### 著者情報を一括登録する ファイルを指定して著者情報をインポートする方法を説明します。インポートするファイルはtsvファイルです。 @@ -5500,11 +5857,36 @@ URLについて 一括登録を実行している端末が Admin\>Author Management\>Import 画面を開いた場合(他のブラウザで開いたとき,"Result"タブから再度"Import"タブに遷移したとき等)、メッセージ日本語は[インポートを実行中です。]、英語は[Import is in progress. ] が表示されます。 -119. [ファイル選択]をクリックしてtsvファイルを指定します。 - - ファイル名が表示されます。 - - tsvファイルの入力内容を表6-8に記載します。 +119. Selectタブでの操作 +- [インポート対象]よりインポートする対象を選択します。 + - 著者DB + - 著者識別子 + - 機関識別子 + +- [ファイル選択]をクリックしてtsvファイルを指定します。 + + この際、インポート対象で選んだ対象とファイル形式が違う場合、エラーがでます。 + + 著者DBインポート時のtsvファイルの入力内容を表6-8に記載します。 + 識別子情報インポート時のtsvファイルの入力内容を表6-8-1に記載します。 + 識別子情報の1行目はテーブルを表す文字列が入ります。 + - #authors_prefix_settings(著者識別子) + - #authors_affiliation_settings(機関識別子) + +- [インポート対象]で著者DBを選んでおり、ファイル選択で著者DBに対応したtsvファイルを入れている場合、 +強制変更モードチェックボックスが使えるようになります。 + + ![グラフィカル](media/media/image444.png) + + - このチェックボックスをONにした場合次のモーダルがでます。 + ![グラフィカル](media/media/image445.png) + + - 「利用規約に同意します。」左のチェックボックスをクリックし、 + OKボタンを押すと強制変更モードがONになります。 + このモードをONにして著者DBの更新を行った場合、著者DBに関連づいているアイテムのメタデータを強制的に変更します。 + 免責事項をよく読み、注意して利用してください。 + - これ以外の操作でモーダルを閉じた場合、強制変更モードはOFFになります。 + 表 6‑8インポートする著者情報の項目 @@ -5522,112 +5904,247 @@ URLについて - + 1 pk_id +著者ID +Author ID +このリポジトリ内でのpk_idを出力する + + +2 +weko_id WEKO ID WEKO ID -

    WEKO3の著者ID( pk_id author_link)を入力する。

    -

    著者の編集をする際は必須項目となります。

    +WEKO IDを出力する - -2 + +3 authorNameInfo[0...n].familyName -Family Name 姓 -著者の姓を入力する +Family Name +著者の姓を出力する - -3 + +4 authorNameInfo[0...n].firstName -Given name 名 -著者の名を入力する +Given name +著者の名を出力する - -4 + +5 authorNameInfo[0...n].language -Language 言語 -著者の言語を入力する +Language +著者の言語を出力する - -5 + +6 authorNameInfo[0...n].nameFormat -name Format フォーマット -

    著者の姓名のフォーマットを入力する。

    -

    現在は固定で「familyNmAndNm」を入れる

    +name Format +著者の姓名のフォーマットを出力する
    +※現状(SP67時点)は「familyNmAndNm」固定 - -6 + +7 authorNameInfo[0...n].nameShowFlg -Name Display 姓名・言語 表示/非表示 -

    著者の姓名と言語の表示/非表示を入力する

    -

    表示:Y

    -

    非表示:N

    +Name Display +著者の姓名と言語の表示/非表示を出力する
    +表示する: "Y"
    +表示しない: "N" - -7 -authorNameInfo[0...n].idType -Identifier Scheme + +8 +authorIdInfo[0...n].idType 外部著者ID 識別子 -外部著者IDの識別子を入力する +Identifier Scheme +外部著者IDの識別子を出力する - -8 -authorNameInfo[0...n].authorId -Identifier URI + +9 +authorIdInfo[0...n].authorId 外部著者ID URI -外部著者IDの値を入力する +Identifier URI +外部著者IDの値を出力する - -9 -authorNameInfo[0...n].authorIdShowFlg -Identifier Display + +10 +authorIdInfo[0...n].authorIdShowFlg 外部著者ID 表示/非表示 -

    外部著者IDの表示/非表示を入力する

    -

    表示:Y

    -

    非表示:N

    +Identifier Display +外部著者IDの表示/非表示を出力する
    +表示する: "Y"
    +表示しない: "N" - -10 + +11 emailInfo[0...n].email -Mail Address メールアドレス -著者のメールアドレスを入力する +Mail Address +著者のメールアドレスを出力する - -11 + +12 is_deleted -Delete Flag 削除フラグ -著者を削除する場合に"D"と入力する +Delete Flag +著者を削除する場合に "D" と出力する
    +※論理削除された著者情報は出力しないため、全件エクスポートではすべて空欄となる + + +13 +authorAffiliationInfo[0...n].affiliationId[0...n].idtype +外部所属機関ID 識別子 +Affiliation Identifier Scheme +外部所属機関IDの識別子を出力する + + +14 +authorAffiliationInfo[0...n].affiliationId[0...n].uri +外部所属機関ID URI +Affiliation Identifier URI +外部所属機関IDの値を出力する + + +15 +authorAffiliationInfo[0...n].authorIdShowFlg +外部所属機関ID 表示/非表示 +Affiliation Identifier Display +外部所属機関IDの表示/非表示を出力する
    +表示する: "Y"
    +表示しない: "N" + + +16 +authorAffiliationInfo[0...n].affiliationNameInfo[0...n].affiliationName +外部所属機関名 +Affiliation Name +外部所属機関名を出力する + + +17 +authorAffiliationInfo[0...n].affiliationNameInfo[0...n].language +言語 +Language +外部所属機関名の言語を出力する + + +18 +authorAffiliationInfo[0...n].affiliationNameInfo[0...n].nameShowFlg +外部所属機関名・言語 表示/非表示 +Affiliation Name Display +外部所属機関名と言語の表示/非表示を出力する
    +表示する: "Y"
    +表示しない: "N" + + +19 +authorAffiliationInfo[0...n].affiliationPeriod[0...n].period +外部所属機関 所属期間 +Affiliation Period +外部所属機関所属期間を出力する。
    +所属開始のみ:"20250127"
    +所属開始・終了:"20250127-20250317" + + +20 +authorAffiliationInfo[0...n].affiliationPeriod[0...n].nameShowFlg +外部所属機関 所属期間 表示/非表示 +Affiliation Period Display +外部所属機関 所属期間の表示/非表示を出力する
    +表示する: "Y"
    +表示しない: "N" + + +21 +communityIds[0...n] +コミュニティ ID +Community ID +著者の管理権限を持つコミュニティのIDを出力する -【注意事項】 - - - > 新規登録時に「フォーマット(authorNameInfo\[0...n\].nameFormat)」を入力しなかった場合は、自動で「familyNmAndNm」が登録されます。 - - - > 新規登録時に「姓名・言語 表示/非表示(authorNameInfo\[0...n\].nameShowFlg)」は必ず”Y”または”N”のいずれかを入力してください。入力しない場合、アイテム登録時に著者DBから該当の著者情報を取り込めない場合があります。また、外部著者IDを登録する場合も同様に、「外部著者ID 表示/非表示(authorNameInfo\[0...n\].authorIdShowFlg)」に”Y”または”N”のいずれかを入力してください。 - - tsvファイルのバリデーションチェックは、「表 6-11 バリデーションチェック」の説明を参照してください。 - - - -120. [次へ]をクリックします。 - - ファイルの読み込みとチェックが実行されて、[インポート]タブが表示されます。[インポート]タブには、読み込んだファイルのチェック結果が表示されます。 - -![グラフィカル ユーザー インターフェイス, アプリケーション, Web サイト 自動的に生成された説明](media/media/image210.png) - -[チェック結果]が[Register]または[Update]であることを確認します。 - -[エラー]が表示されている場合、インポートできません。ファイルを確認して、再度手順2.から操作してください。 - +表 6-8-1 インポートする識別子情報の項目 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    項番

    2行目

    +

    ヘッダ項目(内部キー)

    3行目

    +

    ラベル(英語)

    4行目

    +

    ラベル(日本語)

    概要
    1schemeスキーマSchemeスキーマを入力する
    2name名前Nameスキーマに対応する識別子名を入力する
    3urlURLURLスキーマに応じるURLを入力する
    4is_deleted削除フラグDelete Flag識別子を削除する場合に "D" と出力する
    + エクスポートの場合は全て空欄である。
    5communityIds[0...n]コミュニティ IDCommunity ID識別子の管理権限を持つコミュニティのIDを入力する
    + + + +【注意事項】 + + - > 新規登録時に「フォーマット(authorNameInfo\[0...n\].nameFormat)」を入力しなかった場合は、自動で「familyNmAndNm」が登録されます。 + + - > 新規登録時に「姓名・言語 表示/非表示(authorNameInfo\[0...n\].nameShowFlg)」は必ず”Y”または”N”のいずれかを入力してください。入力しない場合、アイテム登録時に著者DBから該当の著者情報を取り込めない場合があります。また、外部著者IDを登録する場合も同様に、「外部著者ID 表示/非表示(authorNameInfo\[0...n\].authorIdShowFlg)」に”Y”または”N”のいずれかを入力してください。 + + tsvファイルのバリデーションチェックは、「表 6-11 バリデーションチェック」の説明を参照してください。 + + + +120. [次へ]をクリックします。 + + ファイルの読み込みとチェックが実行されて、[インポート]タブが表示されます。[インポート]タブには、読み込んだファイルのチェック結果が表示されます。 + +![グラフィカル ユーザー インターフェイス, アプリケーション, Web サイト 自動的に生成された説明](media/media/image210.png) + +[チェック結果]が[Register]または[Update]であることを確認します。 + +[エラー]が表示されている場合、そのデータはインポートできません。 +問題がある場合、ファイルを確認して、再度手順2.から操作してください。 + [インポート]タブの項目は、「表 6-9[インポート]タブの項目」の説明を参照してください。 インポートファイルのバリデーションチェックは、「表 6-11 バリデーションチェック」の説明を参照してください。 @@ -5651,40 +6168,105 @@ URLについて

    画面に表示されている著者情報のリストをTSV形式でダウンロードします。

    • 文字コードはBOM無しUTF-8、改行コードはCR+LFです。

    • -
    • ファイル名には、ダウンロードした日付が、「Creator_check_YYYYMMDD.tsv」で表示されます。

    • -
    - - -No. -読み込んだファイルの著者の通し番号が表示されます。 - - -WEKO著者ID -

    読み込んだファイルのWEKO著者IDが表示されます。

    -

    新規登録の場合は空欄となります。

    - - -姓名 -読み込んだファイルの著者名が表示されます。 - - -メールアドレス -読み込んだファイルのメールアドレスが表示されます。 - - -チェック結果 -

    読み込んだファイルの各著者情報について、インポートが可能かどうかをチェックした結果が表示されます。

    -
      -
    • エラー(ERROR): XXXXX:バリデーションエラーがあります。

    • -
    • 警告(Warning): XXXXX:バリデーション警告があります。

    • -
    • 登録(Register):新規の著者です。

    • -
    • 更新(Update):内容を更新する著者です。

    • -
    • 削除(Delete):削除する著者です。

    • +
    • ファイル名には、ダウンロードした日付が、「(インポート対象))_check_YYYYMMDD.tsv」で表示されます。

    - + - 画面に表示される著者DBの詳細情報は以下の通り + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    #項目名概要
    1No.読み込んだファイルの著者の通し番号を表示する。
    2Current WEKO ID上書きする著者のインポート前のWEKO著者IDを表示する。
    3New WEKO IDtsvから読み込んだ著者のインポート後のWEKO著者IDを表示する。
    4Full_Name読み込んだ著者の姓と名を表示する。
    + 姓と名の間はカンマ+スペース「姓, 名」で表示する。
    5Mail Address読み込んだ著者のメールアドレスを表示する。
    6チェック結果(Check Result)

    読み込んだファイルの各著者について、インポートが可能かバリデーションチェックを実施する。
    + ・エラーが無く、新規の著者の場合:「登録(Register)」と表示する
    + ・エラーが無く、更新の著者の場合:「更新(Update)」と表示する
    + ・削除する著者の場合:「削除(Delete)」と表示する
    + ・バリデーションエラーがある場合:「エラー: XXXXX (ERROR: XXXXX)」とエラー内容を表示する

    +

    ・登録は可能であるが、何らかの問題があるときは「警告(Warning)」と表示する。

    + + - 画面に表示される識別子の詳細情報は以下の通り + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    #項目名概要
    1No.読み込んだファイルのデータの通し番号を表示する。
    2Scheme読み込んだデータのスキーマを表示する。
    3Scheme_Name読み込んだデータのスキーマ名を表示する。
    4url読み込んだデータのスキーマurlを表示する。 +
    5チェック結果(Check Result)

    読み込んだファイルの各データについて、インポートが可能かバリデーションチェックを実施する。
    + ・エラーが無く、新規の識別子スキーマの場合:「登録(Register)」と表示する
    + ・エラーが無く、既存の識別子スキーマの場合:「更新(Update)」と表示する
    + ・削除する識別子の場合:「削除(Delete)」と表示する
    + ・バリデーションエラーがある場合:「エラー: XXXXX (ERROR: XXXXX)」とエラー内容を表示する

    +

    ・登録は可能であるが、何らかの問題があるときは「警告(Warning)」と表示する。

    + 注※ ダウンロード時にエラーが発生する場合、エラーメッセージ「ダウンロードに失敗しました。」が表示されます。 @@ -5706,49 +6288,138 @@ URLについて - + + - - - - - - - - - - - - - - - - - - + + + - - + + +
    項目#内容 説明
    ダウンロード

    画面に表示されている著者情報のリストをTSV形式でダウンロードします。

    -
      -
    • 文字コードは日本語(Shift-JIS)、改行コードはCR+LFです。

    • -
    • ファイル名には、ダウンロードした日付が、「Creator_List_Download_YYYYMMDD.tsv」で表示されます。

    • -
    No.読み込んだファイルの著者の通し番号が表示されます。
    開始日[インポート]をクリックした後、著者の登録処理を開始した日時が表示されます。
    終了日著者の登録処理が完了した日時が表示されます。
    WEKO著者ID

    読み込んだファイルのWEKO著者IDが表示されます。

    -

    新規登録の場合は空欄となります。

    1サマリー(Summary) + ・ 著者DBの場合のみ表示される。
    + ・ 表示されるのは以下の4つ
    +   ・「総計」
    +   ・「成功」
    +   ・「失敗」
    +   ・「処理待ち」
    +
    ステータス

    著者の処理結果が表示されます。

    -
      -
    • エラー(ERROR): XXXXX:登録処理でエラーが発生した場合です。

    • -
    • 登録成功(Register Success):新規の著者を正常に登録しました。

    • -
    • 更新成功(Update Success):著者情報の更新が正常に完了しました。

    • -
    • 削除成功(Delete Success):著者を正常に削除しました。

    • -
    2ダウンロード(Download)ボタンを押下すると、画面に表示されている著者のリストをTSV形式でダウンロードできる。
    +・文字コードはBOM無しUTF-8、改行コードはCR+LFとする
    +・ファイル名は「{target}_List_Download_yyyymmdd.tsv」とする
    + - 画面に表示される著者のインポート結果は以下の通り + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    #項目名概要
    1No.読み込んだファイルの著者の通し番号を表示する。
    2開始日(Start Date)1著者に対して登録処理を開始した日時を表示する。
    + フォーマット:YYYY-MM-DD hh:mm:ss
    3終了日(End Date)1著者に対して登録処理が完了した日時を表示する。
    + フォーマット:YYYY-MM-DD hh:mm:ss
    4Previous WEKO ID上書きする著者のインポート前のWEKO著者IDを表示する。
    5New WEKO IDtsvから読み込んだ著者のインポート後のWEKO著者IDを表示する。
    6Full_name読み込んだ著者の姓と名を表示する。
    + 姓と名の間はカンマ+スペース「姓, 名」で表示する。
    7ステータス(Status)登録した結果を表示する。
    + ・「Register Success」:新規登録が完了した場合に表示
    + ・「Update Success」:変更・更新登録が完了した場合に表示
    + ・「Delete Success」:削除が完了した場合に表示
    + ・「ERROR: XXXXX」:エラーが発生した場合に表示
    + + - 画面に表示される識別子インポート結果は以下の通り + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    #項目名概要
    1No.読み込んだファイルのデータの通し番号を表示する。
    2開始日(Start Date)1データに対して登録処理を開始した日時を表示する。
    + フォーマット:YYYY-MM-DD hh:mm:ss
    3終了日(End Date)1データデータに対して登録処理が完了した日時を表示する。
    + フォーマット:YYYY-MM-DD hh:mm:ss
    4Scheme読み込んだデータのスキーマを表示する。
    5Scheme_Name読み込んだデータのスキーマ名を表示する。
    6ステータス(Status)登録した結果を表示する。
    + 「Register Success」:新規登録が完了した場合に表示
    + 「Update Success」:変更・更新登録が完了した場合に表示
    + 「Delete Success」:削除が完了した場合に表示
    + 「ERROR: XXXXX」:エラーが発生した場合に表示
    + 注※ ダウンロード時にエラーが発生する場合、エラーメッセージ「ダウンロードに失敗しました。」が表示されます。 @@ -5762,162 +6433,578 @@ URLについて 表 6‑11 バリデーションチェック - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    タイプチェックするタブ英語日本語説明
    エラー選択(Select)The TSV file could not be read. Make sure the file format is TSV and that the file is UTF-8 encoded.TSVファイルを読み込めませんでした。ファイル形式がTSVであること、またそのファイルがUTF-8でエンコードされているかを確認してください。

    tsvファイルの形式のチェック

    -

    ・選択したファイルがtsvファイルでは無い、またはtsvファイルの文字コードがUTF-8では無い

    -

    ・tsvファイルの形式のエラー(タブ無し, ヘッダ行無し)

    エラー選択(Select)There is no data to import.インポートのデータがありません。ヘッダ行だけの空レコードになっている
    エラー選択(Select)

    The following metadata keys are duplicated.

    -

    {1}

    以下のメタデータキーが重複しています。

    -

    {1}

    ヘッダの間違いで内部キー(メタデータキー)が重複している

    -

    {1}: メタデータキー名

    エラー選択(Select)

    Specified item does not consistency with DB item.

    -

    {1}

    指定された項目とDBの項目が一致しません。

    -

    {1}

    tsvに指定された項目とDBの項目が一致していない

    -

    {1}: 項目名

    エラー選択/インポート(Select/Import)Celery is not running.Celeryは動いていません。Celeryが動いていない状態
    エラー選択/インポート(Select/Import)Import is in progress.インポートを実行中です。自分の端末でインポートを実行中に、インポートを実行する
    エラー選択/インポート(Select/Import)Import is in progress on another device.他の端末でインポートを実行中です。他の端末でインポートを実行している
    エラーインポート(Import){} is required item.{}は必須項目です。著者更新時にWEKO著者IDが入力されていない状態
    エラーインポート(Import)Specified WEKO ID does not exist.指定されたWEKO IDが存在していません。

    ・著者が一意に定まらない(存在しないWEKO著者ID)

    -

    ・削除対象の著者がDBに存在しない

    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    エラーインポート(Import){1} should be set by one of {2}.{1}は{2}のいずれかを設定してください。

    ・言語の指定でDBに存在しない言語を入力する

    -

    ・姓名・言語 表示/非表示で"Y","N"以外を入力する

    -

    ・外部著者識別子 表示/非表示で"Y","N"以外を入力する

    -

    {1}: language, nameShowFlg, authorIdShowFlg

    -

    {2}: 言語の一覧、"Y","N"

    エラーインポート(Import){1} should be set by one of {2}.{1}は{2}を設定してください。

    ・削除フラグで"D"以外を入力する

    -

    ・姓名のフォーマットの値が「familyNmAndNm」以外の値

    -

    {1}: is_deleted, nameFormat

    -

    {2}: "D"、"familyNmAndNm"

    エラーインポート(Import)Specified Identifier Scheme '{1}' does not exist.指定された外部著者ID 識別子'{1}'が存在していません。

    ID PrefixでDBに存在しない識別子を入力する

    -

    {1}:外部著者ID 識別子

    エラーインポート(Import)There is duplicated data in the TSV file.TSVファイルの中に重複するデータがあります。TSVファイルの中に重複するデータがある
    ワーニングインポート(Import)

    External author identifier exists in DB.

    -

    {1}

    外部著者識別子がDBに存在しています。

    -

    {1}

    外部著者識別子がDBに存在している

    -

    {1}:外部著者識別子

    エラー選択/インポート/結果(Select/Import/Result)Internal server errorサーバ内部エラーサーバ内部エラー(ネットワークの問題、予期しない例外など)が発生した
    エラー結果(Result)Failed to import.インポートに失敗しました。エラーが発生したため、インポートに失敗した
    -| ワーニング | 結果(Result) | The specified author has been deleted. Update author information with tsv content, but author remains deleted as it is. | 指定された著者は削除済です。tsvの内容で著者情報を更新しますが、著者は削除されたままです。 | 削除済みの著者について、tsvに該当の著者情報を指定して更新した | -| ----- | ---------- | ----------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------- | -------------------------------- | -| エラー | 結果(Result) | The author is linked to items and cannot be deleted. | アイテムがリンクしているため、指定された著者は削除できません。 | アイテムに紐づいている著者を削除した | + - 本画面で著者情報のチェックをしているエラー内容は以下の通り + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    # チェックするタブ チェック内容 処理 エラーメッセージ(日) エラーメッセージ(英) 備考
    1選択(Select)tsvファイルの形式のチェック
    + #1: 選択したファイルがtsvファイルでは無い、またはtsvファイルの文字コードがUTF-8では無い
    + #3: tsvファイルの形式のエラー(タブ無し, ヘッダ行無し)
    ERRORTSVファイルを読み込めませんでした。ファイル形式がTSVであること、またそのファイルがUTF-8でエンコードされているかを確認してください。The TSV file could not be read. Make sure the file format is TSV and that the file is UTF-8 encoded.
    2選択(Select)ヘッダ行だけの空レコードになっているERRORインポートのデータがありません。There is no data to import.
    3選択(Select)ヘッダの間違いからメタデータキーが重複しているERROR以下のメタデータキーが重複しています。
    + {1}
    The following metadata keys are duplicated.
    + {1}
    {1}: メタデータキー名
    4選択(Select)tsvに指定された項目とDBの項目が一致していないERROR指定された項目とDBの項目が一致しません。
    + {1}
    Specified item does not consistency with DB item.
    + {1}
    {1}: 項目名
    5選択/インポート
    + (Select/Import)
    Celeryが動いていない状態ERRORCeleryは動いていません。Celery is not running.
    6選択/インポート
    + (Select/Import)
    自分の端末にインポートを実行しているうちに、インポートを実行するERRORインポートを実行中です。Import is in progress.
    7選択/インポート
    + (Select/Import)
    他の端末でインポートを実行しているERROR他の端末でインポートを実行中です。Import is in progress on another device.
    8インポート(Import)WEKO_IDが入力されていない状態
    + または著者情報、機関情報で他の情報を入力されたが、idTypeとauthorIdのいずれかを入力されていない状態
    ERROR{}は必須項目です。{} is required item.
    9インポート(Import)WEKO_IDが半角数字でない状態ERRORWEKO_IDは半角数字のみです。WEKO ID is Half-width digits only.
    10インポート(Import)#4 著者が一意に定まらない(存在しないAuthor ID (author_link))
    + #5 削除対象の著者がDBに存在しない
    ERROR指定されたAuthor IDが存在していません。Specified Author ID does not exist.
    11インポート(Import)WEKO IDが既に存在する。(既存のWEKO ID)ERROR指定されたWEKO IDが既に存在しています。Specified WEKO ID already exist.
    12インポート(Import)#6 言語の指定でDBに存在しない言語を入力する
    + #8 ヘッダ項目#7の姓名・言語 表示/非表示で"Y","N"以外を入力する
    + #9 ヘッダ項目#10の外部著者識別子 表示/非表示で"Y","N"以外を入力する
    + ヘッダ項目#13の外部所属機関識別子 表示/非表示で"Y","N"以外を入力する
    + ヘッダ項目#16の外部所属機関名・言語 表示/非表示で"Y","N"以外を入力する +
    ERROR{1}は{2}のいずれかを設定してください。{1} should be set by one of {2}.{1}: language, nameShowFlg, authorIdShowFlg
    + {2}: 言語の一覧、"Y","N"
    13インポート(Import)#10 ヘッダ項目#20の削除フラグで"D"以外を入力する
    + #13 姓名のフォーマットの値が「familyNmAndNm」以外の値
    ERROR{1}は{2}を設定してください。{1} should be set by one of {2}.{1}: is_deleted, nameFormat
    + {2}: "D"、"familyNmAndNm"
    14インポート(Import)ID PrefixでDBに存在しない識別子を入力するERROR指定された外部著者ID 識別子'{1}'が存在していません。Specified Identifier Scheme '{1}' does not exist.{1}:外部著者ID 識別子
    15インポート(Import)Affiliation IDでDBに存在しない識別子を入力するERROR指定された外部所属機関ID 識別子'{1}'が存在していません。Specified Affiliation Identifier Scheme '{1}' does not exist.{1}:外部所属機関ID 識別子
    16インポート(Import)TSVファイルの中に重複するデータがあるERRORTSVファイルの中に重複するデータがあります。There is duplicated data in the TSV file.各レコードがマルチタスクで実行されているので、後勝ちで2番目のデータを上書きするのが難しい(重複する場合にどのレコードで更新されるか定まらない)。WARNING→ERRORに変更し、2つ目以降は更新されないようにする
    17インポート(Import)外部著者識別子がDBに存在しているWARNING外部著者識別子がDBに存在しています。
    + {1}
    External author identifier exists in DB.
    + {1}
    {1}:外部著者識別子
    18インポート(Import)外部所属機関所属期間が日付の形式になっていないERROR外部所属機関所属期間が形式にあっていません。
    + yyyy-MM-dd、または空白であるようにしてください。
    + {1}
    Affiliation Period must be in the format:
    + yyyy-MM-dd, blank
    + {1}
    {1}:外部所属期間
    19インポート(Import)所属期間終了日が開始日より早いERROR所属期間終了日は開始日より後の日付にしてくださいPeriod end must be after Period start.
    20選択/インポート/結果
    + (Select/Import/Result)
    サーバ内部エラー(ネットワークの問題、予期しない例外など)が発生したERRORサーバ内部エラーInternal server error
    21結果(Result)登録成功INFO登録成功Register Success
    22結果(Result)更新成功INFO更新成功Update Success
    23結果(Result)削除成功INFO削除成功Delete Success
    24結果(Result)エラーが発生したため、インポートに失敗したERRORインポートに失敗しました。Failed to import.
    25インポート(Import)削除済みの著者について、tsvに該当の著者情報を指定して更新したWARNING指定された著者は削除済です。tsvの内容で著者情報を更新しますが、著者は削除されたままです。The specified author has been deleted. Update author information with tsv content, but author remains deleted as it is.
    26インポート/結果
    + (Import/Result)
    アイテムに紐づいている著者を削除したERRORアイテムがリンクしているため、指定された著者は削除できません。The author is linked to items and cannot be deleted.英語のメッセージが既存
    + 日本語のメッセージを新規追加
    27インポート(Import)コミュニティIDに許可されていない記号や制御文字等を入力したERROR無効なコミュニティID形式です。Invalid community ID format.
    28インポート(Import)communityIdsでDBに存在しないコミュニティのIDを入力したERROR指定されたコミュニティID「{1}」は存在しません。Community ID(s) {1} does not exist.{1}: コミュニティID
    29インポート(Import)コミュニティ管理者で管理対象外のコミュニティのIDを入力した
    + または、コミュニティ管理者で管理対象外のコミュニティの紐づけを解除した +
    ERROR著者IDに紐づく、コミュニティ「{1}」の管理権限がありません。You do not have permission for this Author’s communities: {1}.{1}: コミュニティID
    30インポート(Import)コミュニティ管理者で管理対象外のコミュニティのみに紐づく著者のpk_idを入力したERRORこのレコードを操作することはできません。You cannot manage this record.
    31インポート(Import)コミュニティ管理者でcommunityIdsが空欄ERROR少なくとも1つの管理対象コミュニティを含める必要があります。You must include at least one managed community.
    + + - 本画面で識別子のチェックをしているエラー内容は以下の通り + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    #チェックするタブチェック内容処理エラーメッセージ(日)エラーメッセージ(英)備考
    1選択(Select)tsvファイルの形式のチェック
    + #1: 選択したファイルがtsvファイルでは無い、またはtsvファイルの文字コードがUTF-8では無い
    + #3: tsvファイルの形式のエラー(タブ無し, ヘッダ行無し, テーブル名の指定がない)
    ERRORTSVファイルを読み込めませんでした。ファイル形式がTSVであること、またそのファイルがUTF-8でエンコードされているかを確認してください。The TSV file could not be read. Make sure the file format is TSV and that the file is UTF-8 encoded.
    2選択(Select)ヘッダ行だけの空レコードになっているERRORインポートのデータがありません。There is no data to import.
    3選択(Select)ヘッダの間違いからキーが重複しているERRORキーが重複しています。The keys are duplicated.
    4選択(Select)tsvに指定された項目とDBの項目が一致していないERROR指定された項目とDBの項目が一致しません。
    + {1}
    Specified item does not consistency with DB item.
    + {1}
    {1}: 項目名
    5選択/インポート
    + (Select/Import)
    Celeryが動いていない状態ERRORCeleryは動いていません。Celery is not running.
    6選択/インポート
    + (Select/Import)
    自分の端末にインポートを実行しているうちに、インポートを実行するERRORインポートを実行中です。Import is in progress.
    7選択/インポート
    + (Select/Import)
    他の端末でインポートを実行しているERROR他の端末でインポートを実行中です。Import is in progress on another device.
    8選択/インポート
    + (Select/Import)
    自分の端末でインポートを実行しているうちに、インポートを実行するERRORインポートを実行中です。Import is in progress.
    9インポート(Import)Schemeが記述されていないERRORschemeを設定してください。Scheme is required item.
    10インポート(Import)Nameが記述されていないERRORnameを設定してください。Name is required item.
    11インポート(Import)urlがURLの形式でないERRORurlをURLの形式にしてください。URL is not URL format.
    12インポート(Import)削除対象の識別子が存在しないERROR指定された識別子が存在していません。The specified identifier does not exist.
    13インポート(Import)TSVファイルの中に重複するデータがあるERRORTSVファイルの中に重複するデータがあります。The specified scheme is duplicated.各レコードがマルチタスクで実行されているので、後勝ちで2番目のデータを上書きするのが難しい(重複する場合にどのレコードで更新されるか定まらない)。WARNING→ERRORに変更し、2つ目以降は更新されないようにする
    14インポート(Import)schemaに「WEKO」が入力されている。ERROR著者識別子WEKOは編集できません。The scheme WEKO cannot be used.
    15選択/インポート/結果
    + (Select/Import/Result)
    サーバ内部エラー(ネットワークの問題、予期しない例外など)が発生したERRORサーバ内部エラーInternal server error
    16結果(Result)登録成功INFO登録成功Register Success
    17結果(Result)更新成功INFO更新成功Update Success
    18結果(Result)削除成功INFO削除成功Delete Success
    19結果(Result)エラーが発生したため、インポートに失敗したERRORインポートに失敗しました。Failed to import.
    20インポート/結果
    + (Import/Result)
    著者DBに紐づいている識別子を削除したERROR著者DBで使用されているため、指定された識別子は削除できません。The specified scheme is used in the author ID.
    21インポート(Import)コミュニティIDに許可されていない記号や制御文字等を入力したERROR無効なコミュニティID形式です。Invalid community ID format.
    22インポート(Import)community_idsでDBに存在しないコミュニティのIDを入力したERROR指定されたコミュニティID「{1}」は存在しません。Community ID(s) {1} does not exist.{1}: コミュニティID
    23インポート(Import)コミュニティ管理者で管理対象外のコミュニティのIDを入力した
    + または、コミュニティ管理者で管理対象外のコミュニティの紐づけを解除した +
    ERROR著者IDに紐づく、コミュニティ「{1}」の管理権限がありません。You do not have permission for this Author’s communities: {1}.{1}: コミュニティID
    24インポート(Import)コミュニティ管理者で管理対象外のコミュニティのみに紐づく識別子のschemeを入力したERRORこのレコードを操作することはできません。You cannot manage this record.
    25インポート(Import)コミュニティ管理者でcommunity_idsが空欄ERROR少なくとも1つの管理対象コミュニティを含める必要があります。You must include at least one managed community.
    + ## 利用統計の設定 @@ -5927,9 +7014,11 @@ URLについて レポートの管理画面は、[統計]をクリックして[運用レポート]をクリックすると表示されます。 +画面上部にあるプルダウンからリポジトリを選択することで、そのリポジトリのレポートの管理画面を表示することができます。 + #### アイテム登録件数を確認する -レポートの管理画面の[登録件数]にアイテムの登録件数、登録済み公開アイテム件数、そして登録済みプライベートアイテム件数が表示されます。 +レポートの管理画面の[登録件数]に選択されているリポジトリに属するアイテムの登録件数、登録済み公開アイテム件数、そして登録済みプライベートアイテム件数が表示されます。 削除済みアイテム、新規アイテム登録時のワークフローが未完了のアイテムは集計対象外になります。それぞれの集計方法は以下の通りです。 @@ -5961,7 +7050,7 @@ URLについて 123. [ダウンロード]をクリックします。 - 選択されているタイプの定型レポートがダウンロードされます。ダウンロードされたファイルについては、「7.1.3定型レポートのタイプ一覧」を参照してください。 + 選択中のリポジトリを集計対象として、選択されているタイプの定型レポートがダウンロードされます。ダウンロードされたファイルについては、「7.1.3定型レポートのタイプ一覧」を参照してください。 ダウンロード時にエラーが発生する場合、エラーメッセージ「予期しないエラーが発生しました」が表示されます。 @@ -6329,9 +7418,11 @@ TSV形式でダウンロードすることができる定型レポートを次 フィードバックメールの送信を設定する画面が表示されます。 - +2. [リポジトリ]から設定をしたいリポジトリを選択します。 + + 画面上の各項目に、選択したリポジトリで設定された値が表示されます。 -133. [自動送信設定]で、[送信]または[送信しない]を選択します。 +3. [自動送信設定]で、[送信]または[送信しない]を選択します。 ![グラフィカル ユーザー インターフェイス, アプリケーション 自動的に生成された説明](media/media/image236.png) @@ -6355,13 +7446,17 @@ TSV形式でダウンロードすることができる定型レポートを次 サイトライセンスの操作ログを集計する画面は、[統計]をクリックして[サイトライセンス]をクリックすると表示されます。 +画面上部にあるプルダウンからリポジトリを選択すると、画面上の設定内容や取得できる統計情報がそのリポジトリに関連するものに切り替わります。この操作により、リポジトリ毎に設定の変更や統計情報の取得をすることができます。 + サイトライセンスユーザによる操作ログの集計、解析を行い、その結果をフィードバックすることができます。 管理画面にて除外対象にしているアイテムタイプを除いて集計されます。 #### Site Licenseの統計情報を自動送信する -1. [Automatic Send]で、[送信]のラジオボタンをクリックします。 +1. 画面上部のプルダウンから設定を変更したいリポジトリを選択します。 + +2. [Automatic Send]で、[送信]のラジオボタンをクリックします。 ![グラフィカル ユーザー インターフェイス, アプリケーション 自動的に生成された説明](media/media/image239.png) @@ -6371,9 +7466,9 @@ TSV形式でダウンロードすることができる定型レポートを次 #### Site Licenseの統計情報を手動で送信する - +1. 画面上部のプルダウンから統計情報を取得したいリポジトリを選択します。 -1. [メール手動送信]で、ログを集計する期間を設定します。 +2. [メール手動送信]で、ログを集計する期間を設定します。 ![グラフィカル ユーザー インターフェイス, アプリケーション 自動的に生成された説明](media/media/image240.png) @@ -6433,6 +7528,7 @@ TSV形式でダウンロードすることができる定型レポートを次 ### フローを設定する フローは、アイテムの登録処理(アクション)の流れです。フロー一覧画面は、[ワークフロー管理]をクリックして[フロー]をクリックすると表示されます。この画面は、フローの一覧を表示し、フローを追加または削除することができます。 +※コミュニティ管理者の場合は管理対象のフローのみが表示されます。 #### フローを追加する @@ -6444,11 +7540,15 @@ TSV形式でダウンロードすることができる定型レポートを次 ![グラフィカル ユーザー インターフェイス, アプリケーション 自動的に生成された説明](media/media/image241.png) -138. フローの名前を入力します。 +2. フローの名前を入力します。 ![グラフィカル ユーザー インターフェイス 自動的に生成された説明](media/media/image242.png) -139. [保存]をクリックします。 +3. フローを登録するリポジトリを選択します。 + +![](media/media/image446.png) + +4. [保存]をクリックします。 フローが追加されます。 @@ -6472,7 +7572,7 @@ TSV形式でダウンロードすることができる定型レポートを次 ![グラフィカル ユーザー インターフェイス, アプリケーション 自動的に生成された説明](media/media/image245.png) -140. アクションを実行するロールまたはユーザを限定する場合、ドロップダウンリストで選択します。 +2. アクションを実行するロールまたはユーザを限定する場合、ドロップダウンリストで選択します。 ![グラフィカル ユーザー インターフェイス, アプリケーション, Web サイト 自動的に生成された説明](media/media/image246.png) @@ -6484,13 +7584,31 @@ Action Userには、どの承認フローでどのメールを送信するかを ![](media/media/image248.png) -141. アクションを追加または削除する場合、[+More Action]をクリックします。 +「登録者にメールを送信する」にチェックを入れ、直下のメール選択タブからメールを選択すると利用申請時に、申請者に対して送信するメールを設定することができます。 + +「利用申請時に、アイテム登録者に対しメールを送信する」にチェックを入れ、直下のメール選択タブからメールを選択すると、利用申請時に申請元のアイテムの登録者に対して送信するメールを設定することができます。 + +「Action User」のアイテム登録者を選択した場合、アイテム登録者が自分で作成したワークフローをapproval出来るようになります。 + +また、設定>アイテム表示画面にてRequest FormでDisplay Request Formを選択していた場合、「Action User」にてリクエスト送信先が選択できるようになります。 + +「Action User」のリクエスト送信先を選択した場合、アイテム登録時に設定登録した「リクエスト送信先」のメールアドレスをもつのユーザーがapprovalができるようになります。 + +ただし、利用申請系で「リクエスト送信先」が選択されていた場合、利用申請の対象となった制限公開アイテムの「リクエスト送信先」に設定されているのユーザーがapprovalできるようになります。 + +また、「Approval」の「Action User」の欄にある「通知メール設定」をクリックすると、制限公開アイテムの承認/却下を通知するメールをログインユーザーと非ログインユーザー向けそれぞれに設定できる「通知メール設定」モーダル画面が表示されます。 + +「通知メール設定」ボタンはメールテンプレート機能がOFFの際は、非表示となります。メールテンプレート機能については「[15.17 メールテンプレートを編集する](#メールテンプレートを編集する)」、メールの文面については、「[15.17.1 デフォルトメールテンプレート](#デフォルトメールテンプレート)」を参照してください。 + +![](media/media/image463.png) + +3. アクションを追加または削除する場合、[+More Action]をクリックします。 アクション一覧が表示されます。 ![コンピューターのスクリーンショット 自動的に生成された説明](media/media/image249.png) -142. アクションを追加する場合、[適用]をクリックします。アクションを削除する場合、[無効]をクリックします。 +4. アクションを追加する場合、[適用]をクリックします。アクションを削除する場合、[無効]をクリックします。 アクションが追加または削除されます。 @@ -6502,11 +7620,11 @@ Action Userには、どの承認フローでどのメールを送信するかを ![グラフィカル ユーザー インターフェイス, アプリケーション 自動的に生成された説明](media/media/image250.png) -143. アクションの順序を変更する場合、[Change Order]で上下に移動します。 +5. アクションの順序を変更する場合、[Change Order]で上下に移動します。 ![コンピューターのスクリーンショット 自動的に生成された説明](media/media/image251.png) -144. 画面の下部に表示されている[保存]をクリックします。 +6. 画面の下部に表示されている[保存]をクリックします。 フローが保存されます。メッセージ「Updated flow action successfully.」が表示されます。 @@ -6539,6 +7657,7 @@ zu1101090.tif![コンピューターのスクリーンショット 自動的に ### ワークフローを設定する ワークフローは、フローとアイテムの組み合わせです。フロー一覧画面は、[ワークフロー管理]]をクリックして[ワークフロー]をクリックすると表示されます。この画面は、ワークフローの一覧を表示し、ワークフローを追加または削除することができます。 +※コミュニティ管理者の場合は管理対象のワークフローのみが表示されます。 #### ワークフローを追加する @@ -6575,22 +7694,22 @@ zu1101090.tif![コンピューターのスクリーンショット 自動的に

    選択肢は、[メタデータ]画面で登録された標準アイテムタイプ一覧及びハーベスト用アイテムタイプ一覧です。

    +Repository +

    ワークフローを登録するリポジトリを選択します。

    +

    選択肢は、デフォルトの「Root Index」と[コミュニティ]画面で登録されたコミュニティ一覧です。

    + + 利用申請フラグ

    デフォルトではチェックは付いていません。チェックありの場合、アイテム登録画面のコンテンツファイルの「提供方法」の「ワークフロー」の選択肢として表示されます。

    *システム管理者のみ表示される項目です

    - + GakuNinRDM Flag GakuNinRDMからアイテムを登録するワークフローにするためのフラグです。 - - - - - - - - + + - - - + - + @@ -6619,7 +7736,7 @@ zu1101090.tif![コンピューターのスクリーンショット 自動的に ![](media/media/image257.png)zu1101300.tif -147. [保存]をクリックします。 +1. [保存]をクリックします。 ワークフローが保存されます。メッセージ「Workflow created successfully.」が表示されます。 @@ -6663,6 +7780,22 @@ zu1101090.tif![コンピューターのスクリーンショット 自動的に ![](media/media/image262.png) +### ワークスペース設定をする + +ワークスペースにてアイテム登録を行う際の登録方法を設定します。 + +#### 登録方法を 直接登録 に設定する + +ワークスペースからアイテムを登録する場合に、ワークフローを使用せずに直接登録が行われるようになります。 +アイテム登録には選択したアイテムタイプが使用されます。 +![](media/media/image451.png) + +#### 登録方法を ワークフロー登録 に設定する + +ワークスペースからアイテムを登録する場合に、指定したワークフローを使用して登録が行われるようになります。 +![](media/media/image452.png) + + ## コミュニティ管理 この章では、コミュニティを管理する方法について説明します。 @@ -6682,6 +7815,7 @@ zu1101090.tif![コンピューターのスクリーンショット 自動的に 1. [コミュニティ管理]をクリックして[コミュニティ]をクリックします。 [一覧]タブにコミュニティのリストが表示されます。 + コミュニティ管理者の場合は管理対象のコミュニティのみが表示されます。 ![](media/media/image263.png) @@ -6708,18 +7842,32 @@ zu1101090.tif![コンピューターのスクリーンショット 自動的に | 項目 | 説明 | | --------------- | ----------------------------------- | | Id | IDを入力します。必ず入力してください。 | +| Cnri | CNRIが有効な場合にハンドルが発行されます。 | | Owner | コミュニティ所有者のロールを指定します。必ず入力してください。 | | Index | コミュニティを設定するインデックスを選択します。必ず入力してください。 | +| Group | グループを指定します。 | | Title | タイトルを入力します。 | | Description | 説明を入力します。 | | Page | ページ数を入力します。 | | Curation Policy | ポリシーを入力します。 | | Ranking | ランキングの表示件数を入力します。 | | Fixed Points | 固定点を入力します。 | +| Content Policy | コンテンツポリシーを入力します。 | +| login_menu_enabled| コミュニティ画面にログインメニューを表示するかを設定します。 | +| Thumbnail | サムネイル画像ファイルを選択します。 | +| カタログ | コミュニティの検索に使用するタグ情報を入力します。
    入力項目は「カタログ」プロパティから以下の項目です。詳細は[アイテムタイプ管理]>[プロパティ]を参照してください。
    • Contributor
    • Identifier
    • Subject
    • License
    • Rights
    • Access Rights
    ※初期表示では項目が折りたたまれています。| -153. [保存]をクリックします。 - - コミュニティが作成されます。 +3. [保存]をクリックします。 + + コミュニティが作成されます。 + + ※コミュニティを新規作成すると、ページレイアウト機能から作成できるコミュニティは以下のページが自動で作成されます。詳細は[ウェブデザイン管理]>[ページレイアウト]を参照してください + + | Title | URL | + |------------------|----------------------------------------| + | About | /c/{community_id}/page/about | + | Editorial board | /c/{community_id}/page/eb | + | OA Policy | /c/{community_id}/page/oapolicy | #### コミュニティを編集する @@ -6771,7 +7919,7 @@ zu1101090.tif![コンピューターのスクリーンショット 自動的に ![](media/media/image267.png) -表 9‑2[作成]の項目 +表 9‑3[作成]の項目 | 項目 | 説明 | | ---------- | -------------------- | @@ -6886,6 +8034,8 @@ OAI-PMHを利用し、他の機関からハーベストを行うことができ 1. [一覧]タブをクリックすると、登録されているプランのリストが表示されます。 + コミュニティ管理者の場合は管理対象のインデックスが登録先に設定されたプランのみ表示されます。 + ![](media/media/image274.png) 166. 行頭に表示されている目のアイコン(![iconeye](media/media/image111.png))をクリックします。 @@ -7186,6 +8336,8 @@ Resource List及びResource Dumpを出力する方法を説明します。 1. [List]タブをクリックすると、登録されているResource Listのリストが表示されます。 + コミュニティ管理者の場合は管理対象のインデックスのResource Listのみが表示されます。 + ![グラフィカル ユーザー インターフェイス, テキスト, アプリケーション, メール 自動的に生成された説明](media/media/image294.png) 188. [Status]が[Publish]及び該当インデックスが公開と設定されている場合、該当インデックスのResource List及びResource Dumpが出力されます。 @@ -7246,7 +8398,8 @@ Resource Listの入力項目を次に示します。 - + @@ -7314,6 +8467,8 @@ Change Listの一覧及びChange Dumpの一覧を出力する方法を説明し 1. [List]タブをクリックすると、登録されているChange Listのリストが表示されます。 + コミュニティ管理者の場合は管理対象のインデックスのChange Listのみが表示されます。 + ![グラフィカル ユーザー インターフェイス, テキスト, アプリケーション, メール 自動的に生成された説明](media/media/image300.png) 193. [Status]が[Publish]及び該当インデックスが公開と設定されている場合、該当インデックスのChange Listの一覧及びChange Dumpの一覧が出力されます。 @@ -7388,7 +8543,8 @@ Change Listの入力項目を次に示します。 - + @@ -7582,7 +8738,8 @@ Resyncの入力項目を次に示します。 +

    必ず設定してください。

    +

    ※コミュニティ管理者の場合は管理対象のインデックスのみ設定可能です

    @@ -7648,6 +8805,89 @@ Resyncを削除する方法を説明します。 /home/invenio/.virtualenvs/invenio/var/instance/data/tmp/weko\_resync\_xxxxxxxx +## SWORDAPI設定 + +SWORD APIを利用してアイテムを連携するための設定を行います。 +メタデータの形式によって、設定方法が異なります。 + +### TSV/CSV用の設定を行う + +1. [SWORD API]をクリックして、[TSV/XML]をクリックします。 + +2. 設定画面が開きます。異なるメタデータ形式の画面が開く場合は、[TSV/CSV]タブをクリックします。 + ![TSV/CSV設定](media/media/image457.png) + +3. 必要な項目の設定を行います。 + + - 登録方式:直接登録、ワークフロー登録のどちらかを選択します。 + ワークフローは連携時に自動的に選択されるため、指定できません。 + - アイテム重複チェック:連携時にすでに登録されているアイテムとタイトルなどのメタデータが重複しているかをチェックする機能です。 + チェックボックスにチェックを入れると、重複チェックの結果、重複している可能性のあるアイテムがすでに登録されている場合、連携を中止します。 + +4. [保存]ボタンをクリックします。 + +### XML用の設定を行う + +1. [SWORD API]をクリックして、[TSV/XML]をクリックします。 + +2. [XML]タブをクリックします。設定画面が開きます。 + ![XML設定](media/media/image458.png) + +3. 必要な項目の設定を行います。 + + - 登録方式:直接登録、ワークフロー登録のどちらかを選択します。 + - ワークフロー:登録方式でワークフローを選択した場合はワークフローを選択します。 + - アイテム重複チェック:連携時にすでに登録されているアイテムとタイトルなどのメタデータが重複しているかをチェックする機能です。 + チェックボックスにチェックを入れると、重複チェックの結果、重複している可能性のあるアイテムがすでに登録されている場合、連携を中止します。 + +4. [保存]ボタンをクリックします。 + +### JSON-LD用の設定を作成する + +事前に作成したOAuth2のアプリケーション、マッピング定義を利用して直接登録/ワークフロー登録どちらかの登録方式を指定します。 +また、連携実行時にDOIを使用したメタデータ補完を行う場合の優先順位を指定します。 + +1. [SWORD API]をクリックして、[JSON-LD]をクリックします。 + +2. [作成]タブを選択します。 + ![JSON-LD一覧](media/media/image459.png) + +3. 事前に登録したアプリケーションを選択、登録方式の選択、登録方式でワークフローを選択した場合はワークフローを選択します。 + マッピング定義を選択します。※ワークフローに設定されているアイテムタイプとマッピング定義のアイテムタイプは揃えて置く必要があります。 + マッピング定義の整合性に問題がある場合は、マッピング欄の下部に赤字で「✘」が表示されます。 + Meta data APIは連携時にメタデータを外部のAPIを使って補填する場合に利用します。 + + - Jal C API + - 医中誌 Web API + - CrossRef + - DataCite + - CiNii Research + - Original(※連携時にJSON-LDで指定しているメタデータ) + + から利用するAPI、優先順位を決定します。 + アイテム重複チェックとは、連携時にすでに登録されているアイテムとタイトルなどのメタデータが重複しているかをチェックする機能です。 + チェックボックスにチェックを入れると、重複チェックの結果、重複している可能性のあるアイテムがすでに登録されている場合、連携を中止します。 + + ![JSON-LD作成](media/media/image460.png) + 設定が完了したら[保存]ボタンをクリックします。 + +### JSON-LD用の編集を編集する +1. [一覧]タブを選択します。 + +2. 編集したい設定の行頭にある鉛筆のアイコン(![iconpen](media/media/image165.png))をクリックします。 + +3. 編集画面が表示されます。 + +4. 必要な項目を編集し、[保存]ボタンをクリックします。 + +### JSON-LD用の編集を削除する + +1. [一覧]タブを選択します。 + +2. 削除したい設定の行頭にあるゴミ箱のアイコン(![icontrashbox](media/media/image166.png))をクリックします。 + +3. 削除されます。 + ## レコード管理 この章では、レコード管理の方法について説明します。 @@ -7826,6 +9066,19 @@ Locationを参照する方法を説明します。 ![モニター画面に映るウェブサイトのスクリーンショット 中程度の精度で自動的に生成された説明](media/media/image325.png) +※警告メッセージの表示 +一覧画面では、デフォルトに設定されたロケーションが 0件または2件以上 存在する場合に、画面上部に警告メッセージが表示されます。 + +- 0件の場合 + + - 日本語:「デフォルトに設定されたロケーションが存在しません。いずれか1つのロケーションをデフォルトに設定してください。」 + - 英語:"No default location is set. Please configure one location as default." + +- 2件以上の場合 + + - 日本語:「複数のロケーションがデフォルトに設定されています。デフォルトのロケーションは1つのみ設定可能です。設定を修正してください。」 + - 英語:"Multiple locations are set as default. Only one default location can be configured. Please correct the settings." + 214. 行頭に表示されている目のアイコン(![iconeye](media/media/image111.png))をクリックします。 詳細が表示されます。 @@ -7850,7 +9103,7 @@ Locationを作成する方法を説明します。 | URI | LocationのURIを入力します。 | | Type | 種別を選択します。 | | Quota Size | 容量の上限値を入力します。 | -| Default | デフォルトで使用する場合、チェックします。 | +| Default | デフォルトで使用する場合、チェックします。
    ※すでに他のロケーションがデフォルトに設定されている場合は、当項目はグレーアウト(非活性)となり選択できません。
    ※既存のデフォルトロケーションを解除した後に、新しいロケーションをデフォルトとして設定できます。| 215. [保存]をクリックします。 @@ -8617,6 +9870,8 @@ Session activityを参照する方法を説明します。 [一覧]タブにリストが表示されます。[フィルターを追加]で項目を選択して値を適用すると、フィルタリングできます。 + コミュニティ管理者の場合は管理対象のコミュニティに属するユーザのみ表示されます。 + ![グラフィカル ユーザー インターフェイス, アプリケーション, メール 自動的に生成された説明](media/media/image364.png) 271. 行頭に表示されている目のアイコン(iconeye.tif![iconeye](media/media/image111.png))をクリックします。 @@ -8643,6 +9898,7 @@ Session activityを参照する方法を説明します。 | Password | パスワードを入力します。 | | Active | 作成したユーザのログインを許可する場合、Activeをチェックします。 | | Roles | ユーザのロールを選択します。 | +| Groups | ユーザのグループを選択します。 | | Send User Notification | ユーザの追加についてメール送信する場合、チェックします。 | 1. [保存]をクリックします。 @@ -8765,6 +10021,11 @@ User Profileを1件ずつ削除する場合 + + + +
    登録先インデックスの指定

    デフォルトは「指定なし」です。

    +
    登録先インデックスの指定

    デフォルトは「指定なし」です。

    • 「指定なし」とした場合

    @@ -6602,15 +7721,13 @@ zu1101090.tif![コンピューターのスクリーンショット 自動的に

    当該ワークフローで登録されるアイテムはすべて、Admin>WorkFlow>Flow Listで指定したインデックスに自動で登録されます。

    -
    +
    ストレージロケーション プルダウンからアイテムの保存先ストレージを選択します。指定なしの場合はデフォルトのロケーションを選択します。
    表示/非表示 ロールごとに当該ワークフローの表示・非表示を指定することができます。
    Repositoryリポジトリを選択します。

    リポジトリを選択します。

    +

    ※コミュニティ管理者の場合は管理対象のインデックスのみ選択可能です。

    Resource Dump Manifest
    Repositoryリポジトリを選択します。

    リポジトリを選択します。

    +

    ※コミュニティ管理者の場合は管理対象のインデックスのみ選択可能です。

    Publish date
    Target Index

    収集されたアイテムに対して登録先インデックスを設定します。

    -

    必ず設定してください。

    Resync Mode

    ゲストユーザにはアイテムリスト、アイテム詳細画面に公開日を表示する、またはしないを設定します。

    デフォルトは「Display」(チェックあり)です。

    Request Form

    Item Registration画面に「リクエストボタンを表示」チェックボックスを表示する、またはしないを設定します。

    +

    デフォルトは「表示しない」です。

    @@ -9423,7 +10684,7 @@ JSONVue を導入後、 https://FQDN/records/アイテムID/export/json にア 検索対象が入ったJSONキーを右クリック。 -(media/media/image440.png) +![](media/media/image440.png) 表示されるメニューから「JSONVue」>「Copy path」を選択すると、当該JSONキーのJSON pathが取得できます。 @@ -9811,11 +11072,11 @@ $.item_30002_title0.attribute_value_mlt[*].subitem_title ### サイトライセンスを設定する -サイトライセンスを認可するIPアドレスを設定する方法を説明します。サイトライセンスを認可されたIPアドレスからのアクセスであれば、課金ファイルが無料でダウンロードできます。また、サイトライセンスが認可されているIPアドレスからのアクセスであってもアイテムタイプごとに無料ダウンロード対象から除外することができます。レポート画面にてサイトライセンスユーザの利用状況をフィードバックすることができます。 - +サイトライセンスを認可するIPアドレスを設定する方法を説明します。サイトライセンスを認可されたIPアドレスからのアクセスであれば、課金ファイルが無料でダウンロードできます。また、サイトライセンスが認可されているIPアドレスからのアクセスであってもアイテムタイプごとに無料ダウンロード対象から除外することができます。レポート画面にてサイトライセンスユーザの利用状況をフィードバックすることができます。サイトライセンスはコミュニティごとに設定することができます。 1. [設定]をクリックして[サイトライセンス]をクリックします。 サイトライセンス認可するための設定画面が表示されます。 + コミュニティ管理者の場合は管理対象のコミュニティが設定したサイトライセンスのみが表示されます。 @@ -9919,10 +11180,933 @@ https://{FQDN}/ weko/sitemaps/sitemap\_\*\*\*\*.xml.gz 331. [送信]をクリックします。 テストメールが送信されます。宛先でテストメールを受信できることを確認します。 - -### WebAPIのアカウントを設定する -Web APIのアカウントを設定する方法を説明します。 +### メールテンプレートを編集する + +このメールテンプレート機能はシステムでON/OFFの切り替えが可能な機能です。OFFの場合はサイドメニューから非表示となります。 + +1. システムから送信されるメールの編集方法について説明します。編集したいメールテンプレートを選択する。 + 新規のメールテンプレートを作成したい場合は、追加ボタンを押下する。 + + ![](media/media/image461.png) + +2. 活性化した右のテキストボックスでメールテンプレートを編集する。 + その際に、[]で囲むことで変数として使用される文字列とその内容について以下の表15-14に示す。 + + 表 15-14 メールテンプレート編集で使用可能な変数 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    変数名内容
    url_guest_userゲスト用の利用申請登録の案内URL
    register_date登録年月日、報告年月日
    restricted_fullname登録者名
    restricted_university_institution登録者の所属機関
    restricted_activity_id利用申請の申請番号
    restricted_research_title登録者の研究題目
    restricted_data_name利用申請データ
    restricted_application_date利用申請年月日
    restricted_mail_address登録者のメールアドレス
    advisor_fullname指導教員の姓名
    advisor_university_institution指導教員の所属機関
    guarantor_fullname保証人の姓名
    guarantor_university_institution保証人の所属機関
    restricted_download_linkファイルのダウンロードリンク
    restricted_expiration_dateダウンロードURLの有効期限日数
    restricted_expiration_date_ja/enダウンロード回数説明(日/英)
    restricted_site_name_ja/enサイト名(日/英)
    restricted_institution_name_ja/enサイト機関名(日/英)
    restricted_site_mailサイトの連絡メール
    restricted_site_urlサイトのURL
    data_download_dateデータダウンロード日
    usage_report_url利用報告登録の案内URL
    restricted_usage_activity_id利用報告の申請番号
    output_report_activity_id成果物登録の申請番号
    output_report_title成果物登録のタイトル
    terms_of_use_jp/en申請対象の利用規約(日/英)
    secret_url非公開、エンバーゴデータ向けシークレットURL
    landing_url申請対象のランディングページURL
    1申請者の所属機関
    2申請者の姓名
    3申請ワークフローのアクティビティID
    4申請者のメールアドレス
    6申請したアイテム名
    10URL
    13承認日
    14承認日から7日後の日付
    15その年の年度末の年月日
    16アクティビティID
    restricted_approver_name
    restricted_approver_affiliation
    restricted_supervisor
    restricted_reference
    file_nameファイル名
    restricted_download_countダウンロード回数
    restricted_download_count_ja/enダウンロード回数説明(日/英)
    restricted_research_plan研究計画
    + +※ 変数として特定の意味は持たないが、[]で囲んでしまうと空欄となる文字列 + +3. 保存ボタンを押下し、編集内容を保存する。 + + ![](media/media/image462.png) + +#### メールテンプレートの拡張機能について + +デフォルトの設定では、メールテンプレートの編集画面には入力が必須である「件名」と「本文」の2項目のみ表示されます。 + +システム管理者はWEKO3の環境設定ファイルを変更することで、ここに新たに以下の3つの項目を拡張表示させることができます。 + +- Recipient(送信先) + +- CC + +- BCC + +この機能を用いることで、メールテンプレートが使用される際、設定したメールアドレスにも自動送信されるようになります。 + +なおこれらの項目の入力は任意ですが、入力する際は以下の制約が課されます。 + +- 入力されるメールアドレスはWEKOシステム上に登録されているメールアドレスであること + +- 上記のメールアドレスに紐づくユーザーが無効化されていないこと + +- 複数のメールアドレスを登録する場合は、カンマ(,)を用いること + +メールアドレスをテンプレートに設定した後に機能を無効化した場合、設定したメールアドレスにはメールが送信されません。 + +また、メールテンプレートの登録後に登録されたユーザーが削除あるいは無効化された場合、テンプレートから適時自動削除されます。 + +#### デフォルトメールテンプレート + +初期状態で登録されているメールテンプレートは以下の12種になります。 + +1. 利用申請登録のご案内 + + - 宛先:利用申請者(ゲストユーザー) + - 概要:制限公開アイテムに対し、利用申請を求めるゲストユーザーに利用申請の案内をするメール + - メール文は日英併記 + + - Subject: 利用申請登録のご案内/Register Application for Use + - 本文: + ``` + [restricted_site_name_ja]です。 + 下記のリンクにアクセスしていただき、利用申請の登録を行ってください。 + + このメールは自動送信されているので返信しないでください。 + お問い合わせは下記までお願いします。また、このメールに心当たりのない方は、[restricted_site_name_ja]までご連絡ください。 + [url_guest_user] + + [restricted_site_name_ja]:[restricted_site_url] + 問い合わせ窓口:[restricted_site_mail] + + ---------------------------------------------------------------------------------- + + This is a message from [restricted_site_name_en]. + Please access the link below and register your Application. + + [url_guest_user] + + Please do not reply to this email as it has been sent automatically. + Please direct all inquiries to the following address. + Also, if you received this message in error, please notify [restricted_site_name_en]. + + [restricted_site_name_en]:[restricted_site_url] + E-mail:[restricted_site_mail] + ``` + +2. データ利用申請の受付のお知らせメール + + - 宛先:利用申請者 + - 概要:利用申請者に利用申請を受け付けたことを通知するメール + - メール文は日英併記 + + - Subject: データ利用申請の受付のお知らせ/Your Application was Received + - 本文: + ``` + [restricted_university_institution] + [restricted_fullname] 様 + + [restricted_institution_name_ja]です。 + [restricted_site_name_ja]をご利用いただいて、ありがとうございます。 + + 下記の利用申請を受け付けました。 + + 申請番号: [restricted_activity_id] + 登録者名: [restricted_fullname] + メールアドレス: [restricted_mail_address] + 所属機関:[restricted_university_institution] + 研究題目:[restricted_research_title] + 申請データ:[restricted_data_name] + 申請年月日:[restricted_application_date] + + [restricted_institution_name_ja]で審査しますので、結果の連絡をお待ちください。 + + このメールは自動送信されているので返信しないでください。 + お問い合わせは下記までお願いします。また、このメールに心当たりのない方は、[restricted_institution_name_ja]までご連絡ください。 + + [restricted_site_name_ja]:[restricted_site_url] + 問い合わせ窓口:[restricted_site_mail] + + ---------------------------------------------------------------------------------- + + Dear [restricted_fullname], + + This is a message from [restricted_institution_name_en]. + Thank you for using [restricted_site_name_en]. + + We received the below application: + + Application No.:[restricted_activity_id] + Name:[restricted_fullname] + E-mail:[restricted_mail_address] + Affiliation:[restricted_university_institution] + Title of research:[restricted_research_title] + Dataset requested :[restricted_data_name] + Application date:[restricted_application_date] + + You will be notified once the application is approved. + + Please do not reply to this email as it has been sent automatically. + Please direct all inquiries to the following address. + Also, if you received this message in error, please notify [restricted_institution_name_en]. + + [restricted_site_name_en]:[restricted_site_url] + E-mail:[restricted_site_mail] + ``` + +3. 承認依頼通知メール(ログインユーザーからの承認依頼) + + - 宛先:承認者(Action Userに設定されたユーザ) + - 概要:承認者に設定されたユーザに対して、承認作業を依頼するメール + - メール文は日英併記 + + - Subject: データ利用申請の承認のお願い(ログインユーザー向け)/Request for Approval of Application for Use (for logged in users) + - 本文: + ``` + [advisor_university_institution] + [advisor_fullname] 様 + + [restricted_site_name_ja]です。 + [advisor_university_institution] [advisor_fullname]様から以下のデータの利用申請がありました。 + + 申請番号:[restricted_activity_id] + 登録者名:[restricted_fullname] + メールアドレス:[restricted_mail_address] + 所属機関:[restricted_university_institution] + 研究題目:[restricted_research_title] + 申請データ:[restricted_data_name] + 申請年月日:[restricted_application_date] + + ご自身のアカウントにログインして、ワークフローより上記の申請内容をご確認ください。 + 「承認」または「却下」のボタンをクリックしてください。 + + このメールは自動送信されているので返信しないでください。 + このメールに心当たりのない方は、[restricted_site_name_ja]までご連絡ください。 + + [restricted_site_name_ja]:[restricted_site_url] + 問い合わせ窓口:[restricted_site_mail] + + ---------------------------------------------------------------------------------- + + Dear [advisor_fullname], + + This is a message from [restricted_site_name_en]. + We received the below application from [restricted_university_institution] [restricted_fullname] + + Application No.:[restricted_activity_id] + Name:[restricted_fullname] + E-mail:[restricted_mail_address] + Affiliation:[restricted_university_institution] + Title of research:[restricted_research_title] + Dataset requested :[restricted_data_name] + Application date:[restricted_application_date] + + Please log in your account and From [Workflow], confirm the above application by clicking on “approve” or “reject”. + + Please do not reply to this email as it has been sent automatically. + If you received this message in error, please notify the [restricted_site_name_en] + + [restricted_site_name_en]:[restricted_site_url] + E-mail:[restricted_site_mail] + ``` + +4. 承認依頼通知メール(ゲストユーザーからの承認依頼) + + - 宛先:承認者(Action Userに設定されたユーザ) + - 概要:承認者に設定されたユーザに対して、承認作業を依頼するメール + - メール文は日英併記 + + - Subject: データ利用申請の承認のお願い(ゲストユーザー向け)/Request for Approval of Application for Use (for logged in users) + - 本文: + ``` + [advisor_university_institution] + [advisor_fullname] 様 + + [restricted_site_name_ja]です。 + [advisor_university_institution] [advisor_fullname]様から以下のデータの利用申請がありました。 + + 申請番号:[restricted_activity_id] + 登録者名:[restricted_fullname] + メールアドレス:[restricted_mail_address] + 所属機関:[restricted_university_institution] + 研究題目:[restricted_research_title] + 申請データ:[restricted_data_name] + 申請年月日:[restricted_application_date] + + ご自身のアカウントにログインして、ワークフローより上記の申請内容をご確認ください。 + 「承認」または「却下」のボタンをクリックしてください。 + + このメールは自動送信されているので返信しないでください。 + このメールに心当たりのない方は、[restricted_site_name_ja]までご連絡ください。 + + [restricted_site_name_ja]:[restricted_site_url] + 問い合わせ窓口:[restricted_site_mail] + + ---------------------------------------------------------------------------------- + + Dear [advisor_fullname], + + This is a message from [restricted_site_name_en]. + We received the below application from [restricted_university_institution] [restricted_fullname] + + Application No.:[restricted_activity_id] + Name:[restricted_fullname] + E-mail:[restricted_mail_address] + Affiliation:[restricted_university_institution] + Title of research:[restricted_research_title] + Dataset requested :[restricted_data_name] + Application date:[restricted_application_date] + + Please log in your account and From [Workflow], confirm the above application by clicking on “approve” or “reject”. + + Please do not reply to this email as it has been sent automatically. + If you received this message in error, please notify the [restricted_site_name_en] + + [restricted_site_name_en]:[restricted_site_url] + E-mail:[restricted_site_mail] + ``` + +5. 申請却下通知メール(ログインユーザーへの却下) + + - 宛先:利用申請者 + - 概要:利用申請者に承認フローが却下されたことを通知するメール + - メール文は日英併記 + + - Subject: 利用申請の審査結果について(ログインユーザー向け)/The results of the review of your application (for logged in users) + - 本文: + ``` + [restricted_university_institution] + [restricted_fullname] 様 + + この度は、[restricted_site_name_ja]をご利用いただきありがとうございます。 + 申請いただいた内容をもとに、所内で慎重な検討を重ねましたが、今回はコンテンツの提供を見送らせていただくこととなりました。 + + 申請番号: [restricted_activity_id] + 登録者名: [restricted_fullname] + メールアドレス: [restricted_mail_address] + 所属機関:[restricted_university_institution] + 研究題目:[restricted_research_title] + 申請データ:[restricted_data_name] + 申請年月日:[restricted_application_date] + + ご申請いただいたにも関わらず、このような返事となり大変申し訳ございません。 + 今後とも[restricted_site_name_ja]をよろしくお願いします。 + + このメールは自動送信されているので返信しないでください。 + このメールに心当たりのない方は、[restricted_site_name_ja]までご連絡ください。 + + [restricted_site_name_ja]:[restricted_site_url] + 問い合わせ窓口:[restricted_site_mail] + + ---------------------------------------------------------------------------------- + + Dear [restricted_fullname], + + Thank you for using [restricted_site_name_en]. + Based on the content of your application, after careful consideration within our office, + we have decided not to provide the content at this time. + + Application No.:[restricted_activity_id] + Name:[restricted_fullname] + E-mail:[restricted_mail_address] + Affiliation:[restricted_university_institution] + Title of research:[restricted_research_title] + Dataset requested :[restricted_data_name] + Application date:[restricted_application_date] + + We are very sorry for this reply despite your application. + Thank you for your continued support of [restricted_site_name_en]. + + Please do not reply to this email as it has been sent automatically. + If you received this message in error, please notify the [restricted_site_name_en] + + [restricted_site_name_en]:[restricted_site_url] + E-mail:[restricted_site_mail] + ``` + +6. 申請却下通知メール(ゲストユーザーへの却下) + + - 宛先:利用申請者 + - 概要:利用申請者に承認フローが却下されたことを通知するメール + - メール文は日英併記 + + - Subject: 利用申請の審査結果について(ゲストユーザー向け)/The results of the review of your application (for guest user) + - 本文: + ``` + [restricted_university_institution] + [restricted_fullname] 様 + + この度は、[restricted_site_name_ja]をご利用いただきありがとうございます。 + 申請いただいた内容をもとに、所内で慎重な検討を重ねましたが、今回はコンテンツの提供を見送らせていただくこととなりました。 + + 申請番号: [restricted_activity_id] + 登録者名: [restricted_fullname] + メールアドレス: [restricted_mail_address] + 所属機関:[restricted_university_institution] + 研究題目:[restricted_research_title] + 申請データ:[restricted_data_name] + 申請年月日:[restricted_application_date] + + ご申請いただいたにも関わらず、このような返事となり大変申し訳ございません。 + 今後とも[restricted_site_name_ja]をよろしくお願いします。 + + このメールは自動送信されているので返信しないでください。 + このメールに心当たりのない方は、[restricted_site_name_ja]までご連絡ください。 + + [restricted_site_name_ja]:[restricted_site_url] + 問い合わせ窓口:[restricted_site_mail] + + ---------------------------------------------------------------------------------- + + Dear [restricted_fullname], + + Thank you for using [restricted_site_name_en]. + Based on the content of your application, after careful consideration within our office, + we have decided not to provide the content at this time. + + Application No.:[restricted_activity_id] + Name:[restricted_fullname] + E-mail:[restricted_mail_address] + Affiliation:[restricted_university_institution] + Title of research:[restricted_research_title] + Dataset requested :[restricted_data_name] + Application date:[restricted_application_date] + + We are very sorry for this reply despite your application. + Thank you for your continued support of [restricted_site_name_en]. + + Please do not reply to this email as it has been sent automatically. + If you received this message in error, please notify the [restricted_site_name_en] + + [restricted_site_name_en]:[restricted_site_url] + E-mail:[restricted_site_mail] + ``` + +7. 申請承認通知メール(ログインユーザーへの承認) + + - 宛先:利用申請者 + - 概要:登録者にワークフローが承認されたことを通知するメール + - メール文は日英併記 + + - Subject: 利用申請の承認のお知らせ(ログインユーザー向け)/Your application was approved (for logged in users) + - 本文: + ``` + [restricted_university_institution] + [restricted_fullname] 様 + + この度は、[restricted_site_name_ja]をご利用いただきありがとうございます。 + + 下記の利用申請を承認しました。 + + 申請番号:[restricted_activity_id] + 登録者名:[restricted_fullname] + メールアドレス:[restricted_mail_address] + 所属機関:[restricted_university_institution] + 研究題目:[restricted_research_title] + 申請データ:[restricted_data_name] + 申請年月日:[restricted_application_date] + + ご申請いただいたコンテンツは、次のページよりダウンロードすることができます。 + + [landing_url] + + 上記アドレスより[restricted_site_name_ja]にアクセスいただき、ご登録いただいたアカウントでログインをして下さい。 + ログインしていただけますと、ダウンロードボタンより申請いただいたデータをダウンロードすることができます。 + + ダウンロードは[restricted_expiration_date_ja]まで可能です。 + ダウンロード期限は[restricted_expiration_date_ja]までなので、期限内に必ず保存してください。 + ダウンロード回数が上限を超えたり、ダウンロード期限を過ぎると、再申請が必要になります。 + + 今後とも[restricted_site_name_ja]をよろしくお願いします。 + + このメールは自動送信されているので返信しないでください。 + このメールに心当たりのない方は、[restricted_site_name_ja]までご連絡ください。 + + [restricted_site_name_ja]:[restricted_site_url] + 問い合わせ窓口:[restricted_site_mail] + + ---------------------------------------------------------------------------------- + + Dear [restricted_fullname], + + Thank you for using [restricted_site_name_en]. + Your application below has been approved. + + Application No.:[restricted_activity_id] + Name:[restricted_fullname] + E-mail:[restricted_mail_address] + Affiliation:[restricted_university_institution] + Title of research:[restricted_research_title] + Dataset requested :[restricted_data_name] + Application date:[restricted_application_date] + + The data can be downloaded from the address below. + + [landing_url] + + Please access [restricted_site_name_en] from the above address and login with your registered account. + If you logged in, you will be able to download the submitted data from the download button. + + Please do not reply to this email as it has been sent automatically. + If you received this message in error, please notify the [restricted_site_name_en] + + [restricted_site_name_en]:[restricted_site_url] + E-mail:[restricted_site_mail] + ``` + +8. 申請承認通知メール(ゲストユーザーへの承認) + + - 宛先:利用申請者 + - 概要:登録者にワークフローが承認されたことを通知するメール + - メール文は日英併記 + + - Subject: 利用申請の承認のお知らせ(ゲストユーザー向け)/Guest''s application was approved (for guest user) + - 本文: + ``` + [restricted_university_institution] + [restricted_fullname] 様 + + この度は、[restricted_site_name_ja]をご利用いただきありがとうございます。 + + 下記の利用申請を承認しました。 + + 申請番号:[restricted_activity_id] + 登録者名:[restricted_fullname] + メールアドレス:[restricted_mail_address] + 所属機関:[restricted_university_institution] + 研究題目:[restricted_research_title] + 申請データ:[restricted_data_name] + 申請年月日:[restricted_application_date] + + 申請いただいたコンテンツは、次のリンクアドレスよりダウンロードすることができます。 + + [restricted_download_link] + + リンクアドレスをクリックすると、メールアドレスの入力が必要となります。 + 利用申請の際に登録されたメールアドレスを入力頂きますと、申請いただいたコンテンツをダウンロードすることができます。 + + ダウンロードは[restricted_expiration_date_ja]まで可能です。 + ダウンロード期限は[restricted_expiration_date_ja]までなので、期限内に必ず保存してください。 + ダウンロード回数が上限を超えたり、ダウンロード期限を過ぎると、再申請が必要になります。 + + 今後とも[restricted_site_name_ja]をよろしくお願いします。 + + このメールは自動送信されているので返信しないでください。 + このメールに心当たりのない方は、[restricted_site_name_ja]までご連絡ください。 + + [restricted_site_name_ja]:[restricted_site_url] + 問い合わせ窓口:[restricted_site_mail] + + ---------------------------------------------------------------------------------- + + Dear [restricted_fullname] + + Thank you for using [restricted_site_name_en]. + Your application below has been approved. + + Application No.:[restricted_activity_id] + Name:[restricted_fullname] + E-mail:[restricted_mail_address] + Affiliation:[restricted_university_institution] + Title of research:[restricted_research_title] + Dataset requested :[restricted_data_name] + Application date:[restricted_application_date] + + The data can be downloaded from the address below. + + [restricted_download_link] + + If you click the address, you will be required to enter your email address. + You can download the content you have applied for by entering the email address you registered when applying for use. + + Please do not reply to this email as it has been sent automatically. + If you received this message in error, please notify the [restricted_site_name_en] + + [restricted_site_name_en]:[restricted_site_url] + E-mail:[restricted_site_mail] + ``` + +9. 利用報告ワークフロー通知メール + + - 宛先:利用申請が必要なアイテムのコンテンツファイルをダウンロードしたユーザ + - 概要:申請者がデータをダウンロードした際に、利用報告WFのリンクを提供する通知メール + - メール文は日英併記 + + - Subject: 利用報告の登録のお願い/Request for register Data Usage Report + - 本文: + ``` + [restricted_site_name_ja]です。 + 下記で申請いただいたデータについてダウンロードされたことを確認しました。 + + 申請番号: [restricted_usage_activity_id] + 登録者名: [restricted_fullname] + メールアドレス: [restricted_mail_address] + 所属機関:[restricted_university_institution] + 研究題目:[restricted_research_title] + 申請データ:[restricted_data_name] + 申請年月日:[restricted_application_date] + + ダウンロードしたデータについて、下記のリンクから利用報告の登録をお願いします。 + + [usage_report_url] + + このメールは自動送信されているので返信しないでください。 + お問い合わせは下記までお願いします。また、このメールに心当たりのない方は、[restricted_site_name_ja]までご連絡ください。 + + [restricted_site_name_ja]:[restricted_site_url] + 問い合わせ窓口:[restricted_site_mail] + + ---------------------------------------------------------------------------------- + + This is a message from [restricted_site_name_en]. + We have confirmed that the dataset which you registered at below has been downloaded. + + Application No.:[restricted_usage_activity_id] + Name:[restricted_fullname] + E-mail:[restricted_mail_address] + Affiliation:[restricted_university_institution] + Title of research:[restricted_research_title] + Dataset requested :[restricted_data_name] + Application date:[restricted_application_date] + + For the downloaded data, please register the Data Usage Report by the link below. + + [usage_report_url] + + Please do not reply to this email as it has been sent automatically. + Please direct all inquiries to the following address. + Also, if you received this message in error, please notify [restricted_site_name_en]. + + [restricted_site_name_en]:[restricted_site_url] + E-mail:[restricted_site_mail] + ``` + +10. 利用報告督促メール + + - 宛先:利用報告未提出者 + - 概要:利用報告未提出者に対しての督促メール + - メール文は日英併記 + + - Subject: 利用報告の登録のお願い/Request for register Data Usage Report + - 本文: + ``` + [restricted_site_name_ja]です。 + 現時点で、下記の利用報告が登録されていません + + 報告番号:[restricted_activity_id] + 登録者名:[restricted_fullname] + メールアドレス:[restricted_mail_address] + 所属機関:[restricted_university_institution] + 利用データ:[restricted_data_name] + データダウンロード日:[data_download_date] + + 下記のリンクから利用報告の登録をお願いします。 + + [usage_report_url] + + このメールは自動送信されているので返信しないでください。 + お問い合わせは下記までお願いします。また、このメールに心当たりのない方は、[restricted_site_name_ja]までご連絡ください。 + + [restricted_site_name_ja]:[restricted_site_url] + 問い合わせ窓口:[restricted_site_mail] + + ---------------------------------------------------------------------------------- + + This is a message from [restricted_site_name_en]. + At this time, the Data Usage Report below has not been registered. + + Usage Report No.:[restricted_activity_id] + Name:[restricted_fullname] + E-mail:[restricted_mail_address] + Affiliation:[restricted_university_institution] + Usage Dataset:[restricted_data_name] + Download date:[data_download_date] + + Please register the Data Usage Report from the link below. + + [usage_report_url] + + Please do not reply to this email as it has been sent automatically. + Please direct all inquiries to the following address. + Also, if you received this message in error, please notify [restricted_site_name_en]. + + [restricted_site_name_en]:[restricted_site_url] + E-mail:[restricted_site_mail] + ``` + +11. シークレットURL提供メール + + - 宛先:登録者 + - 概要:シークレットURLを発行し、送付するためのメール + - メール文は日英併記 + - 設定でシークレットURLダウンロード機能がONになっていない場合は、このメールは表示されません。 + ON/OFFの切り替えについては「15.21 制限公開機能を管理する」を参照してください。 + + - Subject: シークレットURL提供のお知らせ/Notice of providing secret URL + - 本文 + ``` + [restricted_university_institution] + [restricted_fullname]様 + + [restricted_site_name_ja]です。 + + [restricted_data_name]に登録されている[file_name]のシークレットURLを作成しました。 + + 下記アドレスよりダウンロードすることができます。 + + [secret_url] + + このURLは[restricted_expiration_date][restricted_expiration_date_ja]まで有効です。ダウンロードは[restricted_download_count][restricted_download_count_ja]回まで可能です。 + + *このメールは自動送信されているので返信しないでください。 + *このメールに心当たりのない方は、[restricted_site_name_ja]までご連絡ください。 + + [restricted_site_name_ja]:[restricted_site_url] + 問い合わせ窓口:[restricted_site_mail] + + + ---------------------------------------------------------------------------------- + + [restricted_university_institution] + [restricted_fullname] + + This is a message from [restricted_site_name_en]. + Secret URL for [file_name] registered in [restricted_data_name] is created. + + The data can be downloaded from the address below. + + + [secret_url] + + This URL is valid until [restricted_expiration_date][restricted_expiration_date_en]. You can download it up to [restricted_download_count][restricted_download_count_en] times. + + Please do not reply to this email as it has been sent automatically. + If you received this message in error, please notify the [restricted_site_name_en]. + + [restricted_site_name_en]:[restricted_site_url] + E-mail:[restricted_site_mail] + ``` + +12. 利用申請のお知らせ + + - 宛先:アイテム登録者(利用申請の際の申請先アイテムの登録者) + - 概要:利用申請の際に、申請先のアイテム登録者に対し 送信されるメール + - メール文は日英併記 + + - Subject: 利用申請登録のご案内/Register Application for Use + - 本文: + ``` + データ提供者 様 + + [restricted_institution_name_ja]です。 + [restricted_fullname]様から、ご登録いただいたコンテンツに対して、下記のデータの利用申請がありましたので報告いたします。 + + 申請番号: [restricted_activity_id] + 登録者名: [restricted_fullname] + メールアドレス: [restricted_mail_address] + 所属機関:[restricted_university_institution] + 研究題目:[restricted_research_title] + 申請データ:[restricted_data_name] + 申請年月日:[restricted_application_date] + + このメールは自動送信されているので返信しないでください。 + お問い合わせは下記までお願いします。また、このメールに心当たりのない方は、[restricted_institution_name_ja]までご連絡ください。 + + [restricted_site_name_ja]:[restricted_site_url] + 問い合わせ窓口:[restricted_site_mail] + + ---------------------------------------------------------------------------------- + + Dear Data Provider, + + This is a message from [restricted_institution_name_en]. + We received the below application from [restricted_fullname]. + + Application No.:[restricted_activity_id] + Name:[restricted_fullname] + E-mail:[restricted_mail_address] + Affiliation:[restricted_university_institution] + Title of research:[restricted_research_title] + Dataset requested :[restricted_data_name] + Application date:[restricted_application_date] + + Please do not reply to this email as it has been sent automatically. + Please direct all inquiries to the following address. + Also, if you received this message in error, please notify [restricted_institution_name_en]. + + [restricted_site_name_en]:[restricted_site_url] + E-mail:[restricted_site_mail] + ``` + +### WebAPIのアカウントを設定する + +Web APIのアカウントを設定する方法を説明します。 1. [設定]をクリックして[WebAPIアカウント]をクリックします。 @@ -9997,67 +12181,122 @@ PDFファイルのプレビューを設定する方法を説明します。 ![](media/media/image419.png) -1. シークレットURLのダウンロード +1. コンテンツ未登録アイテムの利用申請 + +> コンテンツが未登録のアイテムに対して利用申請可能とする機能のON/OFFが設定できます。 +> +> チェックをいれることで、コンテンツ未登録状態で利用申請可能なアイテムタイプを設定できるようになります。機能の詳細については「ユーザ操作マニュアル」の「4.1.10. 外部データ利用申請」および「5.1.1. アイテムを登録する (15) アイテムの利用申請方法を設定する。」をご参照ください。 +> +> ・「コンテンツ未登録状態で利用申請可能なアイテムタイプ」と「コンテンツ未登録状態で利用申請不可能なアイテムタイプ」 +> +>  初期値は全てのアイテムタイプが「コンテンツ未登録状態で利用申請不可能なアイテムタイプ」です。「コンテンツ未登録状態で利用申請可能なアイテムタイプ」に設定されたアイテムタイプのみ、本機能は有効となります。 +> +>  「コンテンツ未登録状態で利用申請不可能なアイテムタイプ」からアイテムタイプを選択し、左矢印ボタンを押下することで、利用申請可能なアイテムタイプに設定できます。 +> +>  逆に利用申請可能なアイテムタイプから外したい場合は、「コンテンツ未登録状態で利用申請可能なアイテムタイプ」からアイテムタイプを選択し、右矢印ボタンを押下することで利用申請可能なアイテムタイプから外すことが可能です。 + +2. 承認アクションにおけるファイルプレビュー + +> 利用申請アクティビティの承認アクションにおけるファイルプレビュー機能のON/OFFが設定できます。 +> +> チェックをいれることで、制限公開アイテムに対する「利用申請」、「二段階利用申請」アクティビティの承認アクションで、申請時に登録されたアイテムの表示形式に関係なくプレビュー機能が表示されます。 + +3. メールテンプレート編集 + +> 送信するメールのテンプレート編集のON/OFFが設定できます。 +> +> チェックをいれ、保存した後に、管理画面を更新することでメールのテンプレートを編集するメニューを表示することができます。詳細については、「15.17 メールテンプレートを編集する」をご参照ください。 + +4. リクエストフォーム + +> リクエストメール送信フォームのON/OFFが設定できます。 +> +> チェックをいれることで、アイテムの作成または編集時にリクエストメール送信先として設定されたメールアドレスに送信できます。詳細については、「ユーザ操作マニュアル」の「4.1.9. リクエストメール送信フォーム」をご参照ください。 + +5. 非ログインユーザーのDLにおけるパスワードチェック機能 + +> 非ログインユーザーがコンテンツをダウンロードする際に使用されるパスワードチェック機能のON/OFFが設定できます。 +> +> チェックをいれることで、利用申請の際のメールアドレス入力欄の下にパスワード設定欄が表示されます。また、パスワードが設定されていない申請は承認されていてもコンテンツのダウンロードができなくなります。 + +6. シークレットURLのダウンロード <*この機能の利用に興味のある方はwekosoftware@nii.ac.jpへお問い合わせください> - シークレットURLの機能を有効化することで、Information画面の「シークレットURL」ボタンが表示可能になります(ユーザ操作マニュアル 4.1.8 Information画面 参照)。シークレットURLの発行機能を使用できるのは、アイテム登録者・システム管理者・リポジトリ管理者になります。この機能によりシークレットURLからダウンロードが可能になりますが、当該ダウンロードリンクに有効期限とダウンロード回数を設けることができます。 +シークレットURLは、非公開のファイルをダウンロードできる限定的に共有されるURLです。シークレットURLを発行・編集できるユーザーは、アイテム登録者・アイテムの代理投稿者・システム管理者・リポジトリ管理者に限られます。 + +本機能を有効化することで、権限を持つユーザーに対してのみ、ファイルのInformation画面に「シークレットURL」ボタンと「発行済みのシークレットURL一覧」が表示されるようになります(ユーザ操作マニュアル 4.1.8 Information画面 参照)。「シークレットURL」ボタンを押下するとURL作成フォームが表示され、新たなシークレットURLを発行できます。このときセキュリティ的な観点から「有効期限」と「ダウンロード可能回数」を必ず設定する必要があります。 + +これらの初期値と上限値はシステム管理者のみ、管理者画面の「制限公開」タブで変更することができます。 ・有効期限 -> 初期値は30日です。ダウンロードリンクの有効期限はURLが発行した時点で設定されます。有効期限を無期限に設定するには、「無制限」のチェックボックスにチェックを入れてください。(※システム上では9999999日が設定されます) -> -> 有効期限が未設定かつ「無制限」チェックボックスをチェックしていない場合はエラーとなります。 +初期値・上限値ともに30日に設定されています。上限値は30日以下、初期値は上限値以下の範囲内においてのみ設定可能です。 ・ダウンロード回数 -> 初期値は10回です。ダウンロードが途中で失敗した場合でも、1回のダウンロードとしてカウントされます。ダウンロード回数を無限に設定するには、「無制限」のチェックボックスにチェックを入れてください。(※システム上では9999999が設定されます) -> ->  ダウンロード回数が未設定かつ「無制限」チェックボックスをチェックしていない場合はエラーとなります。 -> -> ダウンロードリンクからコンテンツファイルダウンロードした際、利用統計のダウンロード回数に加算されます。 -> -> 有効期限、ダウンロード回数を超過してダウンロードリンクにアクセスした場合はエラーページを表示します。 +初期値・上限値ともに10回に設定されています。上限値は10回以下、初期値は上限値以下の範囲内においてのみ設定可能です。 + +権限を持つユーザーは発行済みのシークレットURL一覧セクションで、現在有効であるURLの一覧を確認できます。発行済みのURLは必要に応じてここから削除・コピーすることも可能です。 -     有効期限を超過した場合のメッセージ +無効なURLにアクセスした場合、状態に応じたエラーメッセージが表示されます。 + +ダウンロードリンクからコンテンツファイルダウンロードした際、利用統計のダウンロード回数に加算されます。 + +- 有効期限を超過している場合 ![](media/media/image420.png) -     上限回数を超過した場合のメッセージ +- 上限回数を超過している場合 ![](media/media/image421.png) -2. コンテンツファイルのダウンロード - - \*この機能の利用に興味のある方はwekosoftware@nii.ac.jpへお問い合わせください(2024年4月) +- 権限を持つユーザーによりURLが削除された場合 -> アイテム詳細画面の「申請」ボタンから起動したワークフローが「作業済み(Done)」となった際にダウンロード用のURIがメールで通知されますが、当該ダウンロードリンクに有効期限とダウンロード回数を設けることができます。 -> -> ・有効期限日数 -> -> 初期値は30日です。ダウンロードリンクの有効期限は承認者が承認した時点で設定されます。有効期限を無期限に設定するには、「無制限にする」チェックボックスにチェックを入れてください。(※システム上では9999999日が設定されます) -> -> 有効期限が未設定かつ「無期限にする」チェックボックスをチェックしていない場合はエラーとなります。 -> -> ・ダウンロード回数 -> -> 初期値は10回です。ダウンロードが途中で失敗した場合でも、1回のダウンロードとしてカウントされます。ダウンロード回数を無限に設定するには、「無制限にする」チェックボックスにチェックを入れてください。(※システム上では9999999回が設定されます) -> ->  ダウンロード回数が未設定かつ「無期限にする」チェックボックスをチェックしていな い場合はエラーとなります。 -> ->  ダウンロードリンクからコンテンツファイルをダウンロードした際、利用統計のダウンロード回数に加算されます。 -> -> 有効期限、ダウンロード回数を超過してダウンロードリンクにアクセスした場合はエラーページを表示します。 -> ->      有効期限を超過した場合のメッセージ -> -> ![](media/media/image422.png)     上限回数を超過した場合のメッセージ +![](media/media/image473.png) + +7. コンテンツファイルのダウンロード + +\*この機能の利用に興味のある方はwekosoftware@nii.ac.jpへお問い合わせください(2024年4月) + +公開設定が「制限公開」であるファイルに対して、以下のプロセスを経ることで利用者に対し一時的なダウンロードURL(以下、ワンタイムURL)を発行することができます。 + +- 1: コンテンツファイルの利用を希望するユーザーが、アイテムの詳細画面から「申請」ボタンを押下し、利用申請ワークフローを作成する +- 2: 管理者権限を持つユーザーが利用申請ワークフローを承認する +- 3: ワンタイムURLが記されたメールが利用申請者に送付される + +ワンタイムURLの有効期限とダウンロード可能回数は、上記の利用申請が承認されたタイミングで設定されます。これらの値は管理者設定画面の制限公開タブから変更することができます。 + +・有効期限 + +初期値・上限値ともに30日に設定されています。上限値は30日以下、初期値は上限値以下の範囲内においてのみ設定可能です。 + +・ダウンロード回数 + +初期値・上限値ともに10回に設定されています。上限値は10回以下、初期値は上限値以下の範囲内においてのみ設定可能です。 + +ダウンロードリンクからコンテンツファイルをダウンロードした際、利用統計のダウンロード回数に加算されます。 + +権限を持つユーザーは発行済みのワンタイムURL一覧セクションで、現在有効であるURLの一覧を確認できます。発行済みのURLは必要に応じてここから削除・コピーすることも可能です。 + +無効なURLにアクセスした場合、状態に応じたエラーメッセージが表示されます。 + +- 有効期限を超過している場合 + +![](media/media/image422.png) + +- 上限回数を超過している場合 ![](media/media/image423.png) -> なお、登録時にアイテムを公開状態としていて、途中で非公開/削除した場合、ダウンロード期間内でもファイルはダウンロードできなくなります。また、登録時に指定したインデックスを非公開に変更した場合も、ダウンロード期間内でもファイルはダウンロードできなくなります。 +- 権限を持つユーザーによりURLが削除された場合 + +![](media/media/image473.png) -339. 利用報告ワークフローへのアクセス + +なお、登録時にアイテムを公開状態としていて、途中で非公開/削除した場合、ダウンロード期間内でもファイルはダウンロードできなくなります。また、登録時に指定したインデックスを非公開に変更した場合も、ダウンロード期間内でもファイルはダウンロードできなくなります。 + +8. 利用報告ワークフローへのアクセス \*この機能の利用に興味のある方はwekosoftware@nii.ac.jpへお問い合わせください @@ -10071,7 +12310,7 @@ PDFファイルのプレビューを設定する方法を説明します。 > >  設定された有効期限を超過したリンクにアクセスした場合は、エラーページを表示します。 -340. 利用規約 +9. 利用規約 > ワークフローの利用規約のプルダウンで選択できるテンプレートを設定することができます。 > @@ -10099,7 +12338,19 @@ PDFファイルのプレビューを設定する方法を説明します。 > >  登録する利用規約(英語)の文言を入力するテキストエリアです。文字数上限はありません。 -341. 利用報告督促メール +10. エラーメッセージ編集 + +> 制限公開アイテムに対し、申請する権限を持たないユーザーがアクセスした際に表示されるエラーメッセージを編集することができます。文字数制限はありません。 +> +> 初期設定では、以下のエラーメッセージが入力されています。 +> +> 日本語:「このデータは利用できません(権限がないため。)」 +> +> 英語:「This data is not available for this user.」 +> +> テキストエリアを空欄にした状態で保存を行うと、エラーになります。 + +11. 利用報告督促メール \*この機能の利用に興味のある方はwekosoftware@nii.ac.jpへお問い合わせください @@ -10131,6 +12382,46 @@ PDFファイルのプレビューを設定する方法を説明します。 設定が保存されます。 +## ログ管理 + +この章では、ログの管理方法について説明します。 + +### 基本監査ログをエクスポートする + +基本監査ログの全件エクスポートを行う方法を説明します。 + +1. [ログ管理]をクリックして[エクスポート]をクリックします。 + + ファイルをエクスポートする画面が表示されます。 + +![基本監査ログエクスポート画面](media/media/image448.png) + + + +2. 処理を行う場合は、[エクスポート]をクリックします。 + + [エクスポート]をクリックすると、全件出力を実行してよいかの確認ダイアログが表示されます。表示されたダイアログのボタンを操作します。 + +![基本監査ログエクスポート実行確認ダイアログ](media/media/image449.png) + +3. [実行]を選択します。全件エクスポート処理が実行されます。 + + 正常に処理が完了するとダウンロードのURLが画面上に表示されます。 + + URLをクリックするとzipファイル(export\_log.zip)がダウンロード出来ます。 + + エクスポートファイルには基本監査ログがtsv形式で格納されます。 + + **出力されるtsvファイルは、「user\_activity\_logs\_yyMMddhhmmss.tsv」のファイル名で出力されます。** + +4. 処理を行わない場合は、[キャンセル]をクリックします。 + + ボタンの初期状態は非活性です。エクスポートを実行中は活性となり、クリックすることが出来ます。 + + **[キャンセル]をクリックすると、全件エクスポートの処理をキャンセルしてよいかの確認ダイアログを表示します。表示されたダイアログのボタンを操作します。** + +![基本監査ログエクスポートキャンセルダイアログ](media/media/image450.png) + ## メンテナンス この章では、メンテナンスの管理方法について説明します。 @@ -10316,3 +12607,107 @@ ElasticSearch Indexを参照する方法を説明します。 ### 管理画面を表示する 操作方法については、「1.4管理画面を表示する」を参照してください。 + +## アドバンスドメニュー + +この章ではアドバンスドメニューについて説明します。 + +### ユーザープロフィール設定編集画面 + +1. 画面左にあるアドバンスドのプルダウンメニューから[プロフィール設定編集]をクリックします。 + +図 12-1 管理者画面 +![グラフィカル ユーザー インターフェイス, アプリケーション 自動的に生成された説明](media/media/image470.png) + +プロフィール設定編集画面が表示されます。 + +図 12-2 プロフィール設定編集画面 +![グラフィカル ユーザー インターフェイス, アプリケーション 自動的に生成された説明](media/media/image471.png) + + +### ユーザープロフィール設定を編集する + +359. ラベル名を編集する + +ラベルを編集できます。 + +図 12-3 ラベル名設定テキストボックス +![グラフィカル ユーザー インターフェイス, アプリケーション 自動的に生成された説明](media/media/image472.png) + +360. 入力方法を編集する + +入力方法を編集できます。 + +入力方法は下記の5つです。 + +図 12-4 入力方法設定プルダウン +![グラフィカル ユーザー インターフェイス, アプリケーション 自動的に生成される説明](media/media/image443.png) + +表 17-1 入力方法一覧 +| 入力方法 | 説明 | +| ------------- | --------------------------------------------------------- | +| text | テキスト入力 | +| select | プルダウンメニュー  | +| identifier | 半角数字のみ | +| phonenumber | ハイホン(-)入りの半角数字、または半角数字のみ | +| position(other) | position項目の値がOthersまたはその他の場合にのみ入力可能 | + +370. 選択オプションを編集する。 + +入力方法が"select"の場合にのみ表示される選択肢オプションを編集できます。 + +図 12-5 選択肢オプション設定テキストボックス +![グラフィカル ユーザー インターフェイス, アプリケーション 自動的に生成される説明](media/media/image464.png) + +371. 表示状態を編集する + +プロフィール画面への表示状態を編集できます。 +チェックボックスにチェックをすることで画面に項目を表示状態にできます。 +表示状態の項目は、利用申請フロー・利用報告フローの申請者プロパティの項目に自動入力されます。(非表示状態の場合、その項目は自動入力項目から除外されます。) + +図 12-6 項目表示設定チェックボックス +![グラフィカル ユーザー インターフェイス, アプリケーション 自動的に生成される説明](media/media/image465.png) + +372. 状態の保存 + +画面下部にあるSAVEボタン(![iconsave](media/media/image466.png))を押下することで、編集内容を保存できます。 + +図 12-7 保存成功画面 +![グラフィカル ユーザー インターフェイス, アプリケーション 自動的に生成される説明](media/media/image467.png) + +ラベル名、または選択オプションが未記入の場合は保存ができません。未記入の項目を入力し、再度保存ボタンを押下してください。 + +図 12-8 保存失敗画面 +![グラフィカル ユーザー インターフェイス, アプリケーション 自動的に生成される説明](media/media/image468.png) + + +373. 初期表示 + +項目は全てで20項目あり、初期表示は以下の通りです。 + +表 17-2 初期表示項目一覧 +| 項目名 | ラベル名 | 入力方法 | 表示状態 | +|------------|--------------------|---------------|----------| +| fullname | 氏名 | text | true | +| university | 大学・機関名 | text | true | +| department | 所属部局・部署 | text | true | +| position | 役職 | text | true | +| item1 | 役職(その他) | text | true | +| item2 | 電話番号 | identifier | true | +| item3 | 所属学会名 | text | true | +| item4 | 所属学会役職 | select | true | +| item5 | 所属学会名 | text | true | +| item6 | 所属学会役職 | select | true | +| item7 | 所属学会名 | text | true | +| item8 | 所属学会役職 | select | true | +| item9 | 所属学会名 | text | true | +| item10 | 所属学会役職 | select | true | +| item11 | 所属学会名 | text | true | +| item12 | 所属学会役職 | select | true | +| item13 | item13 | text | false | +| item14 | item14 | text | false | +| item15 | item15 | text | false | +| item16 | item16 | text | false | + +【補足】 +プロフィール設定編集機能のオン・オフは設定ファイルで制御ができます。 diff --git a/docs/manuals/ADMIN/base/book.json b/docs/manuals/ADMIN/base/book.json index a9909d01..fdb41aed 100644 --- a/docs/manuals/ADMIN/base/book.json +++ b/docs/manuals/ADMIN/base/book.json @@ -5,6 +5,10 @@ "language":"ja", "plugins":[ "intopic-toc", - "back-to-top-button" + "back-to-top-button", + "anchors", + "collapsible-chapters", + "hide-published-with", + "plantuml-cloud" ] } \ No newline at end of file diff --git a/docs/manuals/ADMIN/base/media/media/image100.png b/docs/manuals/ADMIN/base/media/media/image100.png index d08ffa64..293d6ae7 100644 Binary files a/docs/manuals/ADMIN/base/media/media/image100.png and b/docs/manuals/ADMIN/base/media/media/image100.png differ diff --git a/docs/manuals/ADMIN/base/media/media/image101.png b/docs/manuals/ADMIN/base/media/media/image101.png index 55943ab5..c23f0ee1 100644 Binary files a/docs/manuals/ADMIN/base/media/media/image101.png and b/docs/manuals/ADMIN/base/media/media/image101.png differ diff --git a/docs/manuals/ADMIN/base/media/media/image102.png b/docs/manuals/ADMIN/base/media/media/image102.png index 3ec720d8..08fd37bc 100644 Binary files a/docs/manuals/ADMIN/base/media/media/image102.png and b/docs/manuals/ADMIN/base/media/media/image102.png differ diff --git a/docs/manuals/ADMIN/base/media/media/image192.png b/docs/manuals/ADMIN/base/media/media/image192.png index dec6daf1..850e8e84 100644 Binary files a/docs/manuals/ADMIN/base/media/media/image192.png and b/docs/manuals/ADMIN/base/media/media/image192.png differ diff --git a/docs/manuals/ADMIN/base/media/media/image199.png b/docs/manuals/ADMIN/base/media/media/image199.png index d4399775..27a28e6e 100644 Binary files a/docs/manuals/ADMIN/base/media/media/image199.png and b/docs/manuals/ADMIN/base/media/media/image199.png differ diff --git a/docs/manuals/ADMIN/base/media/media/image200.png b/docs/manuals/ADMIN/base/media/media/image200.png index 16274754..75787393 100644 Binary files a/docs/manuals/ADMIN/base/media/media/image200.png and b/docs/manuals/ADMIN/base/media/media/image200.png differ diff --git a/docs/manuals/ADMIN/base/media/media/image202.png b/docs/manuals/ADMIN/base/media/media/image202.png index 647863bc..afb4fa7d 100644 Binary files a/docs/manuals/ADMIN/base/media/media/image202.png and b/docs/manuals/ADMIN/base/media/media/image202.png differ diff --git a/docs/manuals/ADMIN/base/media/media/image204.png b/docs/manuals/ADMIN/base/media/media/image204.png index 3f998842..b26cd0b5 100644 Binary files a/docs/manuals/ADMIN/base/media/media/image204.png and b/docs/manuals/ADMIN/base/media/media/image204.png differ diff --git a/docs/manuals/ADMIN/base/media/media/image205.png b/docs/manuals/ADMIN/base/media/media/image205.png index 8d18931b..6d4bd4ec 100644 Binary files a/docs/manuals/ADMIN/base/media/media/image205.png and b/docs/manuals/ADMIN/base/media/media/image205.png differ diff --git a/docs/manuals/ADMIN/base/media/media/image206.png b/docs/manuals/ADMIN/base/media/media/image206.png index 062ded1d..eeb44698 100644 Binary files a/docs/manuals/ADMIN/base/media/media/image206.png and b/docs/manuals/ADMIN/base/media/media/image206.png differ diff --git a/docs/manuals/ADMIN/base/media/media/image209.png b/docs/manuals/ADMIN/base/media/media/image209.png index 3e03415a..4e744f37 100644 Binary files a/docs/manuals/ADMIN/base/media/media/image209.png and b/docs/manuals/ADMIN/base/media/media/image209.png differ diff --git a/docs/manuals/ADMIN/base/media/media/image210.png b/docs/manuals/ADMIN/base/media/media/image210.png index 99407fec..dc29ead2 100644 Binary files a/docs/manuals/ADMIN/base/media/media/image210.png and b/docs/manuals/ADMIN/base/media/media/image210.png differ diff --git a/docs/manuals/ADMIN/base/media/media/image211.png b/docs/manuals/ADMIN/base/media/media/image211.png index c286fa70..9233aa5d 100644 Binary files a/docs/manuals/ADMIN/base/media/media/image211.png and b/docs/manuals/ADMIN/base/media/media/image211.png differ diff --git a/docs/manuals/ADMIN/base/media/media/image212.png b/docs/manuals/ADMIN/base/media/media/image212.png index a4002abb..0508fc8f 100644 Binary files a/docs/manuals/ADMIN/base/media/media/image212.png and b/docs/manuals/ADMIN/base/media/media/image212.png differ diff --git a/docs/manuals/ADMIN/base/media/media/image213.png b/docs/manuals/ADMIN/base/media/media/image213.png index 5382cdec..95184c70 100644 Binary files a/docs/manuals/ADMIN/base/media/media/image213.png and b/docs/manuals/ADMIN/base/media/media/image213.png differ diff --git a/docs/manuals/ADMIN/base/media/media/image214.png b/docs/manuals/ADMIN/base/media/media/image214.png index dd7924ec..efea5997 100644 Binary files a/docs/manuals/ADMIN/base/media/media/image214.png and b/docs/manuals/ADMIN/base/media/media/image214.png differ diff --git a/docs/manuals/ADMIN/base/media/media/image226.png b/docs/manuals/ADMIN/base/media/media/image226.png index 56abb797..63bc900a 100644 Binary files a/docs/manuals/ADMIN/base/media/media/image226.png and b/docs/manuals/ADMIN/base/media/media/image226.png differ diff --git a/docs/manuals/ADMIN/base/media/media/image227.png b/docs/manuals/ADMIN/base/media/media/image227.png index f04c0732..b0a425c0 100644 Binary files a/docs/manuals/ADMIN/base/media/media/image227.png and b/docs/manuals/ADMIN/base/media/media/image227.png differ diff --git a/docs/manuals/ADMIN/base/media/media/image228.png b/docs/manuals/ADMIN/base/media/media/image228.png index 5edefc8c..201d3de0 100644 Binary files a/docs/manuals/ADMIN/base/media/media/image228.png and b/docs/manuals/ADMIN/base/media/media/image228.png differ diff --git a/docs/manuals/ADMIN/base/media/media/image229.png b/docs/manuals/ADMIN/base/media/media/image229.png index 9406b9ab..952fd1d9 100644 Binary files a/docs/manuals/ADMIN/base/media/media/image229.png and b/docs/manuals/ADMIN/base/media/media/image229.png differ diff --git a/docs/manuals/ADMIN/base/media/media/image231.png b/docs/manuals/ADMIN/base/media/media/image231.png index 146b9e02..0454dd3d 100644 Binary files a/docs/manuals/ADMIN/base/media/media/image231.png and b/docs/manuals/ADMIN/base/media/media/image231.png differ diff --git a/docs/manuals/ADMIN/base/media/media/image232.png b/docs/manuals/ADMIN/base/media/media/image232.png index b0f14501..862c7dc5 100644 Binary files a/docs/manuals/ADMIN/base/media/media/image232.png and b/docs/manuals/ADMIN/base/media/media/image232.png differ diff --git a/docs/manuals/ADMIN/base/media/media/image233.png b/docs/manuals/ADMIN/base/media/media/image233.png index ee01adb2..0dacc5c2 100644 Binary files a/docs/manuals/ADMIN/base/media/media/image233.png and b/docs/manuals/ADMIN/base/media/media/image233.png differ diff --git a/docs/manuals/ADMIN/base/media/media/image236.png b/docs/manuals/ADMIN/base/media/media/image236.png index aa8ee122..e002766b 100644 Binary files a/docs/manuals/ADMIN/base/media/media/image236.png and b/docs/manuals/ADMIN/base/media/media/image236.png differ diff --git a/docs/manuals/ADMIN/base/media/media/image237.png b/docs/manuals/ADMIN/base/media/media/image237.png index c165231c..9c505b11 100644 Binary files a/docs/manuals/ADMIN/base/media/media/image237.png and b/docs/manuals/ADMIN/base/media/media/image237.png differ diff --git a/docs/manuals/ADMIN/base/media/media/image238.png b/docs/manuals/ADMIN/base/media/media/image238.png index b184cb65..fe04d9bb 100644 Binary files a/docs/manuals/ADMIN/base/media/media/image238.png and b/docs/manuals/ADMIN/base/media/media/image238.png differ diff --git a/docs/manuals/ADMIN/base/media/media/image239.png b/docs/manuals/ADMIN/base/media/media/image239.png index 4687ab63..50f37948 100644 Binary files a/docs/manuals/ADMIN/base/media/media/image239.png and b/docs/manuals/ADMIN/base/media/media/image239.png differ diff --git a/docs/manuals/ADMIN/base/media/media/image240.png b/docs/manuals/ADMIN/base/media/media/image240.png index dfcb2005..e03c7ba6 100644 Binary files a/docs/manuals/ADMIN/base/media/media/image240.png and b/docs/manuals/ADMIN/base/media/media/image240.png differ diff --git a/docs/manuals/ADMIN/base/media/media/image242.png b/docs/manuals/ADMIN/base/media/media/image242.png index c974a776..0a89dd46 100644 Binary files a/docs/manuals/ADMIN/base/media/media/image242.png and b/docs/manuals/ADMIN/base/media/media/image242.png differ diff --git a/docs/manuals/ADMIN/base/media/media/image243.png b/docs/manuals/ADMIN/base/media/media/image243.png index 19f29db4..493196fe 100644 Binary files a/docs/manuals/ADMIN/base/media/media/image243.png and b/docs/manuals/ADMIN/base/media/media/image243.png differ diff --git a/docs/manuals/ADMIN/base/media/media/image246.png b/docs/manuals/ADMIN/base/media/media/image246.png index 0b1e0f2d..0c85be8e 100644 Binary files a/docs/manuals/ADMIN/base/media/media/image246.png and b/docs/manuals/ADMIN/base/media/media/image246.png differ diff --git a/docs/manuals/ADMIN/base/media/media/image249.png b/docs/manuals/ADMIN/base/media/media/image249.png index b67b0f74..b0a8e047 100644 Binary files a/docs/manuals/ADMIN/base/media/media/image249.png and b/docs/manuals/ADMIN/base/media/media/image249.png differ diff --git a/docs/manuals/ADMIN/base/media/media/image251.png b/docs/manuals/ADMIN/base/media/media/image251.png index 8baf6944..5af4e32f 100644 Binary files a/docs/manuals/ADMIN/base/media/media/image251.png and b/docs/manuals/ADMIN/base/media/media/image251.png differ diff --git a/docs/manuals/ADMIN/base/media/media/image252.png b/docs/manuals/ADMIN/base/media/media/image252.png index 4ace1455..7b0391d0 100644 Binary files a/docs/manuals/ADMIN/base/media/media/image252.png and b/docs/manuals/ADMIN/base/media/media/image252.png differ diff --git a/docs/manuals/ADMIN/base/media/media/image254.png b/docs/manuals/ADMIN/base/media/media/image254.png index 7ee145c1..9b675879 100644 Binary files a/docs/manuals/ADMIN/base/media/media/image254.png and b/docs/manuals/ADMIN/base/media/media/image254.png differ diff --git a/docs/manuals/ADMIN/base/media/media/image257.png b/docs/manuals/ADMIN/base/media/media/image257.png index 3c8c6c6d..4d92d9fe 100644 Binary files a/docs/manuals/ADMIN/base/media/media/image257.png and b/docs/manuals/ADMIN/base/media/media/image257.png differ diff --git a/docs/manuals/ADMIN/base/media/media/image259.png b/docs/manuals/ADMIN/base/media/media/image259.png index 89deaf2d..adea7aa0 100644 Binary files a/docs/manuals/ADMIN/base/media/media/image259.png and b/docs/manuals/ADMIN/base/media/media/image259.png differ diff --git a/docs/manuals/ADMIN/base/media/media/image261.png b/docs/manuals/ADMIN/base/media/media/image261.png index 970375dc..e4704bb5 100644 Binary files a/docs/manuals/ADMIN/base/media/media/image261.png and b/docs/manuals/ADMIN/base/media/media/image261.png differ diff --git a/docs/manuals/ADMIN/base/media/media/image264.png b/docs/manuals/ADMIN/base/media/media/image264.png index ca0d2b73..01c163a7 100644 Binary files a/docs/manuals/ADMIN/base/media/media/image264.png and b/docs/manuals/ADMIN/base/media/media/image264.png differ diff --git a/docs/manuals/ADMIN/base/media/media/image265.png b/docs/manuals/ADMIN/base/media/media/image265.png index c257db4d..443dc51f 100644 Binary files a/docs/manuals/ADMIN/base/media/media/image265.png and b/docs/manuals/ADMIN/base/media/media/image265.png differ diff --git a/docs/manuals/ADMIN/base/media/media/image365.png b/docs/manuals/ADMIN/base/media/media/image365.png index e5e314fd..b9b518f0 100644 Binary files a/docs/manuals/ADMIN/base/media/media/image365.png and b/docs/manuals/ADMIN/base/media/media/image365.png differ diff --git a/docs/manuals/ADMIN/base/media/media/image366.png b/docs/manuals/ADMIN/base/media/media/image366.png index ea5294da..f3c4f7f2 100644 Binary files a/docs/manuals/ADMIN/base/media/media/image366.png and b/docs/manuals/ADMIN/base/media/media/image366.png differ diff --git a/docs/manuals/ADMIN/base/media/media/image370.png b/docs/manuals/ADMIN/base/media/media/image370.png index e0fc3f48..0a2cb06e 100644 Binary files a/docs/manuals/ADMIN/base/media/media/image370.png and b/docs/manuals/ADMIN/base/media/media/image370.png differ diff --git a/docs/manuals/ADMIN/base/media/media/image419.png b/docs/manuals/ADMIN/base/media/media/image419.png index 30106506..3e9e43b4 100644 Binary files a/docs/manuals/ADMIN/base/media/media/image419.png and b/docs/manuals/ADMIN/base/media/media/image419.png differ diff --git a/docs/manuals/ADMIN/base/media/media/image441.png b/docs/manuals/ADMIN/base/media/media/image441.png new file mode 100644 index 00000000..c37499a6 Binary files /dev/null and b/docs/manuals/ADMIN/base/media/media/image441.png differ diff --git a/docs/manuals/ADMIN/base/media/media/image442.png b/docs/manuals/ADMIN/base/media/media/image442.png new file mode 100644 index 00000000..565eef1f Binary files /dev/null and b/docs/manuals/ADMIN/base/media/media/image442.png differ diff --git a/docs/manuals/ADMIN/base/media/media/image443.png b/docs/manuals/ADMIN/base/media/media/image443.png new file mode 100644 index 00000000..826c6f9f Binary files /dev/null and b/docs/manuals/ADMIN/base/media/media/image443.png differ diff --git a/docs/manuals/ADMIN/base/media/media/image444.png b/docs/manuals/ADMIN/base/media/media/image444.png new file mode 100644 index 00000000..7503c21e Binary files /dev/null and b/docs/manuals/ADMIN/base/media/media/image444.png differ diff --git a/docs/manuals/ADMIN/base/media/media/image445.png b/docs/manuals/ADMIN/base/media/media/image445.png new file mode 100644 index 00000000..07431242 Binary files /dev/null and b/docs/manuals/ADMIN/base/media/media/image445.png differ diff --git a/docs/manuals/ADMIN/base/media/media/image446.png b/docs/manuals/ADMIN/base/media/media/image446.png new file mode 100644 index 00000000..b24b2643 Binary files /dev/null and b/docs/manuals/ADMIN/base/media/media/image446.png differ diff --git a/docs/manuals/ADMIN/base/media/media/image447.png b/docs/manuals/ADMIN/base/media/media/image447.png new file mode 100644 index 00000000..a85fc6c7 Binary files /dev/null and b/docs/manuals/ADMIN/base/media/media/image447.png differ diff --git a/docs/manuals/ADMIN/base/media/media/image448.png b/docs/manuals/ADMIN/base/media/media/image448.png new file mode 100644 index 00000000..d1e1028c Binary files /dev/null and b/docs/manuals/ADMIN/base/media/media/image448.png differ diff --git a/docs/manuals/ADMIN/base/media/media/image449.png b/docs/manuals/ADMIN/base/media/media/image449.png new file mode 100644 index 00000000..1bee33ac Binary files /dev/null and b/docs/manuals/ADMIN/base/media/media/image449.png differ diff --git a/docs/manuals/ADMIN/base/media/media/image450.png b/docs/manuals/ADMIN/base/media/media/image450.png new file mode 100644 index 00000000..4e58eed9 Binary files /dev/null and b/docs/manuals/ADMIN/base/media/media/image450.png differ diff --git a/docs/manuals/ADMIN/base/media/media/image451.png b/docs/manuals/ADMIN/base/media/media/image451.png new file mode 100644 index 00000000..50559e40 Binary files /dev/null and b/docs/manuals/ADMIN/base/media/media/image451.png differ diff --git a/docs/manuals/ADMIN/base/media/media/image452.png b/docs/manuals/ADMIN/base/media/media/image452.png new file mode 100644 index 00000000..be69511e Binary files /dev/null and b/docs/manuals/ADMIN/base/media/media/image452.png differ diff --git a/docs/manuals/ADMIN/base/media/media/image453.png b/docs/manuals/ADMIN/base/media/media/image453.png new file mode 100644 index 00000000..5368ad0d Binary files /dev/null and b/docs/manuals/ADMIN/base/media/media/image453.png differ diff --git a/docs/manuals/ADMIN/base/media/media/image454.png b/docs/manuals/ADMIN/base/media/media/image454.png new file mode 100644 index 00000000..64713af2 Binary files /dev/null and b/docs/manuals/ADMIN/base/media/media/image454.png differ diff --git a/docs/manuals/ADMIN/base/media/media/image455.png b/docs/manuals/ADMIN/base/media/media/image455.png new file mode 100644 index 00000000..874cd9ad Binary files /dev/null and b/docs/manuals/ADMIN/base/media/media/image455.png differ diff --git a/docs/manuals/ADMIN/base/media/media/image456.png b/docs/manuals/ADMIN/base/media/media/image456.png new file mode 100644 index 00000000..db4b6a72 Binary files /dev/null and b/docs/manuals/ADMIN/base/media/media/image456.png differ diff --git a/docs/manuals/ADMIN/base/media/media/image457.png b/docs/manuals/ADMIN/base/media/media/image457.png new file mode 100644 index 00000000..3f5a768f Binary files /dev/null and b/docs/manuals/ADMIN/base/media/media/image457.png differ diff --git a/docs/manuals/ADMIN/base/media/media/image458.png b/docs/manuals/ADMIN/base/media/media/image458.png new file mode 100644 index 00000000..15034a39 Binary files /dev/null and b/docs/manuals/ADMIN/base/media/media/image458.png differ diff --git a/docs/manuals/ADMIN/base/media/media/image459.png b/docs/manuals/ADMIN/base/media/media/image459.png new file mode 100644 index 00000000..465496da Binary files /dev/null and b/docs/manuals/ADMIN/base/media/media/image459.png differ diff --git a/docs/manuals/ADMIN/base/media/media/image460.png b/docs/manuals/ADMIN/base/media/media/image460.png new file mode 100644 index 00000000..c349ac07 Binary files /dev/null and b/docs/manuals/ADMIN/base/media/media/image460.png differ diff --git a/docs/manuals/ADMIN/base/media/media/image461.png b/docs/manuals/ADMIN/base/media/media/image461.png new file mode 100644 index 00000000..63226fc0 Binary files /dev/null and b/docs/manuals/ADMIN/base/media/media/image461.png differ diff --git a/docs/manuals/ADMIN/base/media/media/image462.png b/docs/manuals/ADMIN/base/media/media/image462.png new file mode 100644 index 00000000..5782f7d3 Binary files /dev/null and b/docs/manuals/ADMIN/base/media/media/image462.png differ diff --git a/docs/manuals/ADMIN/base/media/media/image463.png b/docs/manuals/ADMIN/base/media/media/image463.png new file mode 100644 index 00000000..3e32ad75 Binary files /dev/null and b/docs/manuals/ADMIN/base/media/media/image463.png differ diff --git a/docs/manuals/ADMIN/base/media/media/image464.png b/docs/manuals/ADMIN/base/media/media/image464.png new file mode 100644 index 00000000..1c442594 Binary files /dev/null and b/docs/manuals/ADMIN/base/media/media/image464.png differ diff --git a/docs/manuals/ADMIN/base/media/media/image465.png b/docs/manuals/ADMIN/base/media/media/image465.png new file mode 100644 index 00000000..47d4843d Binary files /dev/null and b/docs/manuals/ADMIN/base/media/media/image465.png differ diff --git a/docs/manuals/ADMIN/base/media/media/image466.png b/docs/manuals/ADMIN/base/media/media/image466.png new file mode 100644 index 00000000..ad2b23e7 Binary files /dev/null and b/docs/manuals/ADMIN/base/media/media/image466.png differ diff --git a/docs/manuals/ADMIN/base/media/media/image467.png b/docs/manuals/ADMIN/base/media/media/image467.png new file mode 100644 index 00000000..7112f36e Binary files /dev/null and b/docs/manuals/ADMIN/base/media/media/image467.png differ diff --git a/docs/manuals/ADMIN/base/media/media/image468.png b/docs/manuals/ADMIN/base/media/media/image468.png new file mode 100644 index 00000000..3a59fd82 Binary files /dev/null and b/docs/manuals/ADMIN/base/media/media/image468.png differ diff --git a/docs/manuals/ADMIN/base/media/media/image469.png b/docs/manuals/ADMIN/base/media/media/image469.png new file mode 100644 index 00000000..37f90ba6 Binary files /dev/null and b/docs/manuals/ADMIN/base/media/media/image469.png differ diff --git a/docs/manuals/ADMIN/base/media/media/image470.png b/docs/manuals/ADMIN/base/media/media/image470.png new file mode 100644 index 00000000..69bd6d08 Binary files /dev/null and b/docs/manuals/ADMIN/base/media/media/image470.png differ diff --git a/docs/manuals/ADMIN/base/media/media/image471.png b/docs/manuals/ADMIN/base/media/media/image471.png new file mode 100644 index 00000000..1e3f10c7 Binary files /dev/null and b/docs/manuals/ADMIN/base/media/media/image471.png differ diff --git a/docs/manuals/ADMIN/base/media/media/image472.png b/docs/manuals/ADMIN/base/media/media/image472.png new file mode 100644 index 00000000..e0705bc7 Binary files /dev/null and b/docs/manuals/ADMIN/base/media/media/image472.png differ diff --git a/docs/manuals/ADMIN/base/media/media/image473.png b/docs/manuals/ADMIN/base/media/media/image473.png new file mode 100644 index 00000000..8b0d8932 Binary files /dev/null and b/docs/manuals/ADMIN/base/media/media/image473.png differ diff --git a/docs/manuals/ADMIN/base/media/media/image474.png b/docs/manuals/ADMIN/base/media/media/image474.png new file mode 100644 index 00000000..980bdab4 Binary files /dev/null and b/docs/manuals/ADMIN/base/media/media/image474.png differ diff --git a/docs/manuals/ADMIN/base/media/media/image475.png b/docs/manuals/ADMIN/base/media/media/image475.png new file mode 100644 index 00000000..7362d390 Binary files /dev/null and b/docs/manuals/ADMIN/base/media/media/image475.png differ diff --git a/docs/manuals/ADMIN/base/media/media/image76.png b/docs/manuals/ADMIN/base/media/media/image76.png index a1dc9004..706066a2 100644 Binary files a/docs/manuals/ADMIN/base/media/media/image76.png and b/docs/manuals/ADMIN/base/media/media/image76.png differ diff --git a/docs/manuals/ADMIN/base/media/media/image86.png b/docs/manuals/ADMIN/base/media/media/image86.png index 0fb5722a..24a0043c 100644 Binary files a/docs/manuals/ADMIN/base/media/media/image86.png and b/docs/manuals/ADMIN/base/media/media/image86.png differ diff --git a/docs/manuals/ADMIN/base/media/media/image87.png b/docs/manuals/ADMIN/base/media/media/image87.png index c8492f90..4dd241e6 100644 Binary files a/docs/manuals/ADMIN/base/media/media/image87.png and b/docs/manuals/ADMIN/base/media/media/image87.png differ diff --git a/docs/manuals/ADMIN/base/media/media/image88.png b/docs/manuals/ADMIN/base/media/media/image88.png index 4e52d7af..86be4ae4 100644 Binary files a/docs/manuals/ADMIN/base/media/media/image88.png and b/docs/manuals/ADMIN/base/media/media/image88.png differ diff --git a/docs/manuals/ADMIN/base/media/media/image92.png b/docs/manuals/ADMIN/base/media/media/image92.png index 4005342f..bc1a0eb2 100644 Binary files a/docs/manuals/ADMIN/base/media/media/image92.png and b/docs/manuals/ADMIN/base/media/media/image92.png differ diff --git a/docs/manuals/ADMIN/base/media/media/image94.png b/docs/manuals/ADMIN/base/media/media/image94.png index fe629e94..bc1a0eb2 100644 Binary files a/docs/manuals/ADMIN/base/media/media/image94.png and b/docs/manuals/ADMIN/base/media/media/image94.png differ diff --git a/docs/manuals/ADMIN/base/media/media/image97.png b/docs/manuals/ADMIN/base/media/media/image97.png index f2aa9bc3..b383cae5 100644 Binary files a/docs/manuals/ADMIN/base/media/media/image97.png and b/docs/manuals/ADMIN/base/media/media/image97.png differ diff --git a/docs/manuals/ADMIN/html/GLOSSARY.html b/docs/manuals/ADMIN/html/GLOSSARY.html new file mode 100644 index 00000000..b8b2d9aa --- /dev/null +++ b/docs/manuals/ADMIN/html/GLOSSARY.html @@ -0,0 +1,296 @@ + + + + + + · システム管理マニュアル + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + + + +
    + +
    + +
    + + + + + + + + +
    +
    + +
    +
    + +
    + + + +
    + +
    +
    +
    + +

    results matching ""

    +
      + +
      +
      + +

      No results matching ""

      + +
      +
      +
      + +
      +
      + +
      + + + + + + +
      + + +
      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/manuals/ADMIN/html/gitbook/@honkit/honkit-plugin-highlight/ebook.css b/docs/manuals/ADMIN/html/gitbook/@honkit/honkit-plugin-highlight/ebook.css new file mode 100644 index 00000000..12a99c7f --- /dev/null +++ b/docs/manuals/ADMIN/html/gitbook/@honkit/honkit-plugin-highlight/ebook.css @@ -0,0 +1,157 @@ +pre, +code { + /* From highlight.js@11.8.0/styles/tomorrow.css */ + /*! + Theme: Tomorrow + Author: Chris Kempson (http://chriskempson.com) + License: ~ MIT (or more permissive) [via base16-schemes-source] + Maintainer: @highlightjs/core-team + Version: 2021.09.0 +*/ +} +pre pre code.hljs, +code pre code.hljs { + display: block; + overflow-x: auto; + padding: 1em; +} +pre code.hljs, +code code.hljs { + padding: 3px 5px; +} +pre .hljs, +code .hljs { + color: #4d4d4c; + background: #fff; +} +pre .hljs ::selection, +code .hljs ::selection, +pre .hljs::selection, +code .hljs::selection { + background-color: #d6d6d6; + color: #4d4d4c; +} +pre .hljs-comment, +code .hljs-comment { + color: #8e908c; +} +pre .hljs-tag, +code .hljs-tag { + color: #969896; +} +pre .hljs-operator, +code .hljs-operator, +pre .hljs-punctuation, +code .hljs-punctuation, +pre .hljs-subst, +code .hljs-subst { + color: #4d4d4c; +} +pre .hljs-operator, +code .hljs-operator { + opacity: 0.7; +} +pre .hljs-bullet, +code .hljs-bullet, +pre .hljs-deletion, +code .hljs-deletion, +pre .hljs-name, +code .hljs-name, +pre .hljs-selector-tag, +code .hljs-selector-tag, +pre .hljs-template-variable, +code .hljs-template-variable, +pre .hljs-variable, +code .hljs-variable { + color: #c82829; +} +pre .hljs-attr, +code .hljs-attr, +pre .hljs-link, +code .hljs-link, +pre .hljs-literal, +code .hljs-literal, +pre .hljs-number, +code .hljs-number, +pre .hljs-symbol, +code .hljs-symbol, +pre .hljs-variable.constant_, +code .hljs-variable.constant_ { + color: #f5871f; +} +pre .hljs-class .hljs-title, +code .hljs-class .hljs-title, +pre .hljs-title, +code .hljs-title, +pre .hljs-title.class_, +code .hljs-title.class_ { + color: #eab700; +} +pre .hljs-strong, +code .hljs-strong { + font-weight: 700; + color: #eab700; +} +pre .hljs-addition, +code .hljs-addition, +pre .hljs-code, +code .hljs-code, +pre .hljs-string, +code .hljs-string, +pre .hljs-title.class_.inherited__, +code .hljs-title.class_.inherited__ { + color: #718c00; +} +pre .hljs-built_in, +code .hljs-built_in, +pre .hljs-doctag, +code .hljs-doctag, +pre .hljs-keyword.hljs-atrule, +code .hljs-keyword.hljs-atrule, +pre .hljs-quote, +code .hljs-quote, +pre .hljs-regexp, +code .hljs-regexp { + color: #3e999f; +} +pre .hljs-attribute, +code .hljs-attribute, +pre .hljs-function .hljs-title, +code .hljs-function .hljs-title, +pre .hljs-section, +code .hljs-section, +pre .hljs-title.function_, +code .hljs-title.function_, +pre .ruby .hljs-property, +code .ruby .hljs-property { + color: #4271ae; +} +pre .diff .hljs-meta, +code .diff .hljs-meta, +pre .hljs-keyword, +code .hljs-keyword, +pre .hljs-template-tag, +code .hljs-template-tag, +pre .hljs-type, +code .hljs-type { + color: #8959a8; +} +pre .hljs-emphasis, +code .hljs-emphasis { + color: #8959a8; + font-style: italic; +} +pre .hljs-meta, +code .hljs-meta, +pre .hljs-meta .hljs-keyword, +code .hljs-meta .hljs-keyword, +pre .hljs-meta .hljs-string, +code .hljs-meta .hljs-string { + color: #a3685a; +} +pre .hljs-meta .hljs-keyword, +code .hljs-meta .hljs-keyword, +pre .hljs-meta-keyword, +code .hljs-meta-keyword { + font-weight: 700; +} diff --git a/docs/manuals/ADMIN/html/gitbook/@honkit/honkit-plugin-highlight/website.css b/docs/manuals/ADMIN/html/gitbook/@honkit/honkit-plugin-highlight/website.css new file mode 100644 index 00000000..8ecc6148 --- /dev/null +++ b/docs/manuals/ADMIN/html/gitbook/@honkit/honkit-plugin-highlight/website.css @@ -0,0 +1,407 @@ +.book .book-body .page-wrapper .page-inner section.normal pre, +.book .book-body .page-wrapper .page-inner section.normal code { + /* From highlight.js@11.8.0/styles/tomorrow.css */ + /*! + Theme: Tomorrow + Author: Chris Kempson (http://chriskempson.com) + License: ~ MIT (or more permissive) [via base16-schemes-source] + Maintainer: @highlightjs/core-team + Version: 2021.09.0 +*/ +} +.book .book-body .page-wrapper .page-inner section.normal pre pre code.hljs, +.book .book-body .page-wrapper .page-inner section.normal code pre code.hljs { + display: block; + overflow-x: auto; + padding: 1em; +} +.book .book-body .page-wrapper .page-inner section.normal pre code.hljs, +.book .book-body .page-wrapper .page-inner section.normal code code.hljs { + padding: 3px 5px; +} +.book .book-body .page-wrapper .page-inner section.normal pre .hljs, +.book .book-body .page-wrapper .page-inner section.normal code .hljs { + color: #4d4d4c; + background: #fff; +} +.book .book-body .page-wrapper .page-inner section.normal pre .hljs ::selection, +.book .book-body .page-wrapper .page-inner section.normal code .hljs ::selection, +.book .book-body .page-wrapper .page-inner section.normal pre .hljs::selection, +.book .book-body .page-wrapper .page-inner section.normal code .hljs::selection { + background-color: #d6d6d6; + color: #4d4d4c; +} +.book .book-body .page-wrapper .page-inner section.normal pre .hljs-comment, +.book .book-body .page-wrapper .page-inner section.normal code .hljs-comment { + color: #8e908c; +} +.book .book-body .page-wrapper .page-inner section.normal pre .hljs-tag, +.book .book-body .page-wrapper .page-inner section.normal code .hljs-tag { + color: #969896; +} +.book .book-body .page-wrapper .page-inner section.normal pre .hljs-operator, +.book .book-body .page-wrapper .page-inner section.normal code .hljs-operator, +.book .book-body .page-wrapper .page-inner section.normal pre .hljs-punctuation, +.book .book-body .page-wrapper .page-inner section.normal code .hljs-punctuation, +.book .book-body .page-wrapper .page-inner section.normal pre .hljs-subst, +.book .book-body .page-wrapper .page-inner section.normal code .hljs-subst { + color: #4d4d4c; +} +.book .book-body .page-wrapper .page-inner section.normal pre .hljs-operator, +.book .book-body .page-wrapper .page-inner section.normal code .hljs-operator { + opacity: 0.7; +} +.book .book-body .page-wrapper .page-inner section.normal pre .hljs-bullet, +.book .book-body .page-wrapper .page-inner section.normal code .hljs-bullet, +.book .book-body .page-wrapper .page-inner section.normal pre .hljs-deletion, +.book .book-body .page-wrapper .page-inner section.normal code .hljs-deletion, +.book .book-body .page-wrapper .page-inner section.normal pre .hljs-name, +.book .book-body .page-wrapper .page-inner section.normal code .hljs-name, +.book .book-body .page-wrapper .page-inner section.normal pre .hljs-selector-tag, +.book .book-body .page-wrapper .page-inner section.normal code .hljs-selector-tag, +.book .book-body .page-wrapper .page-inner section.normal pre .hljs-template-variable, +.book .book-body .page-wrapper .page-inner section.normal code .hljs-template-variable, +.book .book-body .page-wrapper .page-inner section.normal pre .hljs-variable, +.book .book-body .page-wrapper .page-inner section.normal code .hljs-variable { + color: #c82829; +} +.book .book-body .page-wrapper .page-inner section.normal pre .hljs-attr, +.book .book-body .page-wrapper .page-inner section.normal code .hljs-attr, +.book .book-body .page-wrapper .page-inner section.normal pre .hljs-link, +.book .book-body .page-wrapper .page-inner section.normal code .hljs-link, +.book .book-body .page-wrapper .page-inner section.normal pre .hljs-literal, +.book .book-body .page-wrapper .page-inner section.normal code .hljs-literal, +.book .book-body .page-wrapper .page-inner section.normal pre .hljs-number, +.book .book-body .page-wrapper .page-inner section.normal code .hljs-number, +.book .book-body .page-wrapper .page-inner section.normal pre .hljs-symbol, +.book .book-body .page-wrapper .page-inner section.normal code .hljs-symbol, +.book .book-body .page-wrapper .page-inner section.normal pre .hljs-variable.constant_, +.book .book-body .page-wrapper .page-inner section.normal code .hljs-variable.constant_ { + color: #f5871f; +} +.book .book-body .page-wrapper .page-inner section.normal pre .hljs-class .hljs-title, +.book .book-body .page-wrapper .page-inner section.normal code .hljs-class .hljs-title, +.book .book-body .page-wrapper .page-inner section.normal pre .hljs-title, +.book .book-body .page-wrapper .page-inner section.normal code .hljs-title, +.book .book-body .page-wrapper .page-inner section.normal pre .hljs-title.class_, +.book .book-body .page-wrapper .page-inner section.normal code .hljs-title.class_ { + color: #eab700; +} +.book .book-body .page-wrapper .page-inner section.normal pre .hljs-strong, +.book .book-body .page-wrapper .page-inner section.normal code .hljs-strong { + font-weight: 700; + color: #eab700; +} +.book .book-body .page-wrapper .page-inner section.normal pre .hljs-addition, +.book .book-body .page-wrapper .page-inner section.normal code .hljs-addition, +.book .book-body .page-wrapper .page-inner section.normal pre .hljs-code, +.book .book-body .page-wrapper .page-inner section.normal code .hljs-code, +.book .book-body .page-wrapper .page-inner section.normal pre .hljs-string, +.book .book-body .page-wrapper .page-inner section.normal code .hljs-string, +.book .book-body .page-wrapper .page-inner section.normal pre .hljs-title.class_.inherited__, +.book .book-body .page-wrapper .page-inner section.normal code .hljs-title.class_.inherited__ { + color: #718c00; +} +.book .book-body .page-wrapper .page-inner section.normal pre .hljs-built_in, +.book .book-body .page-wrapper .page-inner section.normal code .hljs-built_in, +.book .book-body .page-wrapper .page-inner section.normal pre .hljs-doctag, +.book .book-body .page-wrapper .page-inner section.normal code .hljs-doctag, +.book .book-body .page-wrapper .page-inner section.normal pre .hljs-keyword.hljs-atrule, +.book .book-body .page-wrapper .page-inner section.normal code .hljs-keyword.hljs-atrule, +.book .book-body .page-wrapper .page-inner section.normal pre .hljs-quote, +.book .book-body .page-wrapper .page-inner section.normal code .hljs-quote, +.book .book-body .page-wrapper .page-inner section.normal pre .hljs-regexp, +.book .book-body .page-wrapper .page-inner section.normal code .hljs-regexp { + color: #3e999f; +} +.book .book-body .page-wrapper .page-inner section.normal pre .hljs-attribute, +.book .book-body .page-wrapper .page-inner section.normal code .hljs-attribute, +.book .book-body .page-wrapper .page-inner section.normal pre .hljs-function .hljs-title, +.book .book-body .page-wrapper .page-inner section.normal code .hljs-function .hljs-title, +.book .book-body .page-wrapper .page-inner section.normal pre .hljs-section, +.book .book-body .page-wrapper .page-inner section.normal code .hljs-section, +.book .book-body .page-wrapper .page-inner section.normal pre .hljs-title.function_, +.book .book-body .page-wrapper .page-inner section.normal code .hljs-title.function_, +.book .book-body .page-wrapper .page-inner section.normal pre .ruby .hljs-property, +.book .book-body .page-wrapper .page-inner section.normal code .ruby .hljs-property { + color: #4271ae; +} +.book .book-body .page-wrapper .page-inner section.normal pre .diff .hljs-meta, +.book .book-body .page-wrapper .page-inner section.normal code .diff .hljs-meta, +.book .book-body .page-wrapper .page-inner section.normal pre .hljs-keyword, +.book .book-body .page-wrapper .page-inner section.normal code .hljs-keyword, +.book .book-body .page-wrapper .page-inner section.normal pre .hljs-template-tag, +.book .book-body .page-wrapper .page-inner section.normal code .hljs-template-tag, +.book .book-body .page-wrapper .page-inner section.normal pre .hljs-type, +.book .book-body .page-wrapper .page-inner section.normal code .hljs-type { + color: #8959a8; +} +.book .book-body .page-wrapper .page-inner section.normal pre .hljs-emphasis, +.book .book-body .page-wrapper .page-inner section.normal code .hljs-emphasis { + color: #8959a8; + font-style: italic; +} +.book .book-body .page-wrapper .page-inner section.normal pre .hljs-meta, +.book .book-body .page-wrapper .page-inner section.normal code .hljs-meta, +.book .book-body .page-wrapper .page-inner section.normal pre .hljs-meta .hljs-keyword, +.book .book-body .page-wrapper .page-inner section.normal code .hljs-meta .hljs-keyword, +.book .book-body .page-wrapper .page-inner section.normal pre .hljs-meta .hljs-string, +.book .book-body .page-wrapper .page-inner section.normal code .hljs-meta .hljs-string { + color: #a3685a; +} +.book .book-body .page-wrapper .page-inner section.normal pre .hljs-meta .hljs-keyword, +.book .book-body .page-wrapper .page-inner section.normal code .hljs-meta .hljs-keyword, +.book .book-body .page-wrapper .page-inner section.normal pre .hljs-meta-keyword, +.book .book-body .page-wrapper .page-inner section.normal code .hljs-meta-keyword { + font-weight: 700; +} +.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre, +.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code { + /* From highlight.js@11.8.0/styles/solarized-light.css */ + /*! + Theme: Solarized Light + Author: Ethan Schoonover (modified by aramisgithub) + License: ~ MIT (or more permissive) [via base16-schemes-source] + Maintainer: @highlightjs/core-team + Version: 2021.09.0 +*/ +} +.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre pre code.hljs, +.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code pre code.hljs { + display: block; + overflow-x: auto; + padding: 1em; +} +.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre code.hljs, +.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code code.hljs { + padding: 3px 5px; +} +.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .hljs, +.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .hljs { + color: #586e75; + background: #fdf6e3; +} +.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .hljs ::selection, +.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .hljs ::selection, +.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .hljs::selection, +.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .hljs::selection { + background-color: #93a1a1; + color: #586e75; +} +.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .hljs-comment, +.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .hljs-comment { + color: #839496; +} +.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .hljs-tag, +.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .hljs-tag { + color: #657b83; +} +.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .hljs-operator, +.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .hljs-operator, +.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .hljs-punctuation, +.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .hljs-punctuation, +.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .hljs-subst, +.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .hljs-subst { + color: #586e75; +} +.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .hljs-operator, +.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .hljs-operator { + opacity: 0.7; +} +.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .hljs-bullet, +.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .hljs-bullet, +.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .hljs-deletion, +.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .hljs-deletion, +.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .hljs-name, +.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .hljs-name, +.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .hljs-selector-tag, +.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .hljs-selector-tag, +.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .hljs-template-variable, +.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .hljs-template-variable, +.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .hljs-variable, +.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .hljs-variable { + color: #dc322f; +} +.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .hljs-attr, +.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .hljs-attr, +.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .hljs-link, +.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .hljs-link, +.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .hljs-literal, +.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .hljs-literal, +.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .hljs-number, +.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .hljs-number, +.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .hljs-symbol, +.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .hljs-symbol, +.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .hljs-variable.constant_, +.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .hljs-variable.constant_ { + color: #cb4b16; +} +.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .hljs-class .hljs-title, +.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .hljs-class .hljs-title, +.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .hljs-title, +.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .hljs-title, +.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .hljs-title.class_, +.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .hljs-title.class_ { + color: #b58900; +} +.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .hljs-strong, +.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .hljs-strong { + font-weight: 700; + color: #b58900; +} +.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .hljs-addition, +.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .hljs-addition, +.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .hljs-code, +.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .hljs-code, +.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .hljs-string, +.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .hljs-string, +.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .hljs-title.class_.inherited__, +.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .hljs-title.class_.inherited__ { + color: #859900; +} +.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .hljs-built_in, +.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .hljs-built_in, +.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .hljs-doctag, +.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .hljs-doctag, +.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .hljs-keyword.hljs-atrule, +.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .hljs-keyword.hljs-atrule, +.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .hljs-quote, +.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .hljs-quote, +.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .hljs-regexp, +.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .hljs-regexp { + color: #2aa198; +} +.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .hljs-attribute, +.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .hljs-attribute, +.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .hljs-function .hljs-title, +.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .hljs-function .hljs-title, +.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .hljs-section, +.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .hljs-section, +.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .hljs-title.function_, +.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .hljs-title.function_, +.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .ruby .hljs-property, +.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .ruby .hljs-property { + color: #268bd2; +} +.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .diff .hljs-meta, +.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .diff .hljs-meta, +.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .hljs-keyword, +.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .hljs-keyword, +.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .hljs-template-tag, +.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .hljs-template-tag, +.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .hljs-type, +.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .hljs-type { + color: #6c71c4; +} +.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .hljs-emphasis, +.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .hljs-emphasis { + color: #6c71c4; + font-style: italic; +} +.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .hljs-meta, +.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .hljs-meta, +.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .hljs-meta .hljs-keyword, +.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .hljs-meta .hljs-keyword, +.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .hljs-meta .hljs-string, +.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .hljs-meta .hljs-string { + color: #d33682; +} +.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .hljs-meta .hljs-keyword, +.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .hljs-meta .hljs-keyword, +.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .hljs-meta-keyword, +.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .hljs-meta-keyword { + font-weight: 700; +} +.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal pre, +.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal code { + /* From highlight.js@11.8.0/styles/tomorrow-night-bright.css */ +} +.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal pre pre code.hljs, +.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal code pre code.hljs { + display: block; + overflow-x: auto; + padding: 1em; +} +.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal pre code.hljs, +.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal code code.hljs { + padding: 3px 5px; +} +.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal pre .hljs-comment, +.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal code .hljs-comment, +.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal pre .hljs-quote, +.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal code .hljs-quote { + color: #969896; +} +.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal pre .hljs-deletion, +.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal code .hljs-deletion, +.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal pre .hljs-name, +.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal code .hljs-name, +.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal pre .hljs-regexp, +.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal code .hljs-regexp, +.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal pre .hljs-selector-class, +.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal code .hljs-selector-class, +.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal pre .hljs-selector-id, +.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal code .hljs-selector-id, +.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal pre .hljs-tag, +.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal code .hljs-tag, +.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal pre .hljs-template-variable, +.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal code .hljs-template-variable, +.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal pre .hljs-variable, +.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal code .hljs-variable { + color: #d54e53; +} +.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal pre .hljs-built_in, +.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal code .hljs-built_in, +.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal pre .hljs-link, +.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal code .hljs-link, +.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal pre .hljs-literal, +.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal code .hljs-literal, +.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal pre .hljs-meta, +.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal code .hljs-meta, +.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal pre .hljs-number, +.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal code .hljs-number, +.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal pre .hljs-params, +.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal code .hljs-params, +.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal pre .hljs-type, +.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal code .hljs-type { + color: #e78c45; +} +.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal pre .hljs-attribute, +.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal code .hljs-attribute { + color: #e7c547; +} +.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal pre .hljs-addition, +.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal code .hljs-addition, +.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal pre .hljs-bullet, +.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal code .hljs-bullet, +.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal pre .hljs-string, +.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal code .hljs-string, +.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal pre .hljs-symbol, +.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal code .hljs-symbol { + color: #b9ca4a; +} +.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal pre .hljs-section, +.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal code .hljs-section, +.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal pre .hljs-title, +.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal code .hljs-title { + color: #7aa6da; +} +.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal pre .hljs-keyword, +.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal code .hljs-keyword, +.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal pre .hljs-selector-tag, +.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal code .hljs-selector-tag { + color: #c397d8; +} +.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal pre .hljs, +.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal code .hljs { + background: #000; + color: #eaeaea; +} +.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal pre .hljs-emphasis, +.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal code .hljs-emphasis { + font-style: italic; +} +.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal pre .hljs-strong, +.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal code .hljs-strong { + font-weight: 700; +} diff --git a/docs/manuals/ADMIN/html/gitbook/fonts/fontawesome/FontAwesome.otf b/docs/manuals/ADMIN/html/gitbook/fonts/fontawesome/FontAwesome.otf new file mode 100644 index 00000000..d4de13e8 Binary files /dev/null and b/docs/manuals/ADMIN/html/gitbook/fonts/fontawesome/FontAwesome.otf differ diff --git a/docs/manuals/ADMIN/html/gitbook/fonts/fontawesome/fontawesome-webfont.eot b/docs/manuals/ADMIN/html/gitbook/fonts/fontawesome/fontawesome-webfont.eot new file mode 100644 index 00000000..c7b00d2b Binary files /dev/null and b/docs/manuals/ADMIN/html/gitbook/fonts/fontawesome/fontawesome-webfont.eot differ diff --git a/docs/manuals/ADMIN/html/gitbook/fonts/fontawesome/fontawesome-webfont.svg b/docs/manuals/ADMIN/html/gitbook/fonts/fontawesome/fontawesome-webfont.svg new file mode 100644 index 00000000..8b66187f --- /dev/null +++ b/docs/manuals/ADMIN/html/gitbook/fonts/fontawesome/fontawesome-webfont.svg @@ -0,0 +1,685 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/manuals/ADMIN/html/gitbook/fonts/fontawesome/fontawesome-webfont.ttf b/docs/manuals/ADMIN/html/gitbook/fonts/fontawesome/fontawesome-webfont.ttf new file mode 100644 index 00000000..f221e50a Binary files /dev/null and b/docs/manuals/ADMIN/html/gitbook/fonts/fontawesome/fontawesome-webfont.ttf differ diff --git a/docs/manuals/ADMIN/html/gitbook/fonts/fontawesome/fontawesome-webfont.woff b/docs/manuals/ADMIN/html/gitbook/fonts/fontawesome/fontawesome-webfont.woff new file mode 100644 index 00000000..6e7483cf Binary files /dev/null and b/docs/manuals/ADMIN/html/gitbook/fonts/fontawesome/fontawesome-webfont.woff differ diff --git a/docs/manuals/ADMIN/html/gitbook/fonts/fontawesome/fontawesome-webfont.woff2 b/docs/manuals/ADMIN/html/gitbook/fonts/fontawesome/fontawesome-webfont.woff2 new file mode 100644 index 00000000..7eb74fd1 Binary files /dev/null and b/docs/manuals/ADMIN/html/gitbook/fonts/fontawesome/fontawesome-webfont.woff2 differ diff --git a/docs/manuals/ADMIN/html/gitbook/gitbook-plugin-anchors/plugin.css b/docs/manuals/ADMIN/html/gitbook/gitbook-plugin-anchors/plugin.css new file mode 100644 index 00000000..adf3e9ec --- /dev/null +++ b/docs/manuals/ADMIN/html/gitbook/gitbook-plugin-anchors/plugin.css @@ -0,0 +1,30 @@ + +a.plugin-anchor { + color: inherit !important; + display: none; + margin-left: -30px; + padding-left: 40px; + cursor: pointer; + position: absolute; + top: 0; + left: 0; + bottom: 0; +} + +a.plugin-anchor i { + margin-left: -30px; + font-size: 15px !important; +} + +h1, h2, h3, h4, h5, h6 { + position: relative; +} + +h1:hover a.plugin-anchor, h2:hover a.plugin-anchor, h3:hover a.plugin-anchor, +h4:hover a.plugin-anchor, h5:hover a.plugin-anchor, h6:hover a.plugin-anchor { + display: inline-block; +} + +.book .book-body .page-wrapper .page-inner section.normal { + overflow: visible; +} diff --git a/docs/manuals/ADMIN/html/gitbook/gitbook-plugin-back-to-top-button/plugin.css b/docs/manuals/ADMIN/html/gitbook/gitbook-plugin-back-to-top-button/plugin.css new file mode 100644 index 00000000..a418cbb5 --- /dev/null +++ b/docs/manuals/ADMIN/html/gitbook/gitbook-plugin-back-to-top-button/plugin.css @@ -0,0 +1,55 @@ +.back-to-top { + position: fixed; + bottom: 25px; + right: 25px; + background: rgba(0, 0, 0, 0.5); + width: 50px; + height: 50px; + display: block; + text-decoration: none; + -webkit-border-radius: 35px; + -moz-border-radius: 35px; + border-radius: 35px; + display: none; +} +.back-to-top i { + color: #fff; + margin: 0; + position: relative; + left: 15px; + top: 14px; + font-size: 22px; +} +.back-to-top:hover { + background: rgba(0, 0, 0, 0.9); + cursor: pointer; +} +.book.color-theme-1 .back-to-top { + background: rgba(112, 66, 20, 0.5); +} +.book.color-theme-1 .back-to-top i { + color: #f3eacb; +} +.book.color-theme-1 .back-to-top:hover { + background: rgba(112, 66, 20, 0.9); +} +.book.color-theme-2 .back-to-top { + background: rgba(189, 202, 219, 0.5); +} +.book.color-theme-2 .back-to-top i { + color: #1C1F2B; +} +.book.color-theme-2 .back-to-top:hover { + background: rgba(189, 202, 219, 0.9); +} + +@media only screen + and (min-device-width: 320px) + and (max-device-width: 480px) + and (-webkit-min-device-pixel-ratio: 2) + and (orientation: portrait) { + .back-to-top { + bottom: 10px; + right: 10px; + } +} \ No newline at end of file diff --git a/docs/manuals/ADMIN/html/gitbook/gitbook-plugin-back-to-top-button/plugin.js b/docs/manuals/ADMIN/html/gitbook/gitbook-plugin-back-to-top-button/plugin.js new file mode 100644 index 00000000..abd35237 --- /dev/null +++ b/docs/manuals/ADMIN/html/gitbook/gitbook-plugin-back-to-top-button/plugin.js @@ -0,0 +1,25 @@ +var gitbook = window.gitbook; + +gitbook.events.on('page.change', function() { + + var back_to_top_button = ['
      '].join(""); + $(".book").append(back_to_top_button) + + $(".back-to-top").hide(); + + $('.book-body,.body-inner').on('scroll', function () { + if ($(this).scrollTop() > 100) { + $('.back-to-top').fadeIn(); + } else { + $('.back-to-top').fadeOut(); + } + }); + + $('.back-to-top').click(function () { + $('.book-body,.body-inner').animate({ + scrollTop: 0 + }, 800); + return false; + }); + +}); diff --git a/docs/manuals/ADMIN/html/gitbook/gitbook-plugin-collapsible-chapters/collapsible-chapters.css b/docs/manuals/ADMIN/html/gitbook/gitbook-plugin-collapsible-chapters/collapsible-chapters.css new file mode 100644 index 00000000..73170e36 --- /dev/null +++ b/docs/manuals/ADMIN/html/gitbook/gitbook-plugin-collapsible-chapters/collapsible-chapters.css @@ -0,0 +1,28 @@ +.book .book-summary .chapter > .articles { + overflow: hidden; + max-height: 0px; +} + +.book .book-summary .chapter.expanded > .articles { + max-height: 9999px; +} + +.book .book-summary .exc-trigger { + position: absolute; + left: 12px; + top: 12px; +} + +.book .book-summary ul.summary li a, +.book .book-summary ul.summary li span { + padding-left: 30px; +} + +.book .book-summary .exc-trigger:before { + content: "\f0da"; +} + +.book .book-summary .expanded > a .exc-trigger:before, +.book .book-summary .expanded > span .exc-trigger:before { + content: "\f0d7"; +} diff --git a/docs/manuals/ADMIN/html/gitbook/gitbook-plugin-collapsible-chapters/collapsible-chapters.js b/docs/manuals/ADMIN/html/gitbook/gitbook-plugin-collapsible-chapters/collapsible-chapters.js new file mode 100644 index 00000000..a415d553 --- /dev/null +++ b/docs/manuals/ADMIN/html/gitbook/gitbook-plugin-collapsible-chapters/collapsible-chapters.js @@ -0,0 +1,68 @@ +require(['gitbook', 'jQuery'], function(gitbook, $) { + var TOGGLE_CLASSNAME = 'expanded', + CHAPTER = '.chapter', + ARTICLES = '.articles', + TRIGGER_TEMPLATE = '', + LS_NAMESPACE = 'expChapters'; + var init = function () { + // adding the trigger element to each ARTICLES parent and binding the event + $(ARTICLES) + .parent(CHAPTER) + .children('a,span') + .append( + $(TRIGGER_TEMPLATE) + .on('click', function(e) { + e.preventDefault(); + e.stopPropagation(); + toggle($(e.target).closest(CHAPTER)); + }) + ); + expand(lsItem()); + //expand current selected chapter with it's parents + var activeChapter = $(CHAPTER + '.active'); + expand(activeChapter); + expand(activeChapter.parents(CHAPTER)); + + + } + var toggle = function ($chapter) { + if ($chapter.hasClass('expanded')) { + collapse($chapter); + } else { + expand($chapter); + } + } + var collapse = function ($chapter) { + if ($chapter.length && $chapter.hasClass(TOGGLE_CLASSNAME)) { + $chapter.removeClass(TOGGLE_CLASSNAME); + lsItem($chapter); + } + } + var expand = function ($chapter) { + if ($chapter.length && !$chapter.hasClass(TOGGLE_CLASSNAME)) { + $chapter.addClass(TOGGLE_CLASSNAME); + lsItem($chapter); + } + } + var lsItem = function () { + var map = JSON.parse(localStorage.getItem(LS_NAMESPACE)) || {} + if (arguments.length) { + var $chapters = arguments[0]; + $chapters.each(function (index, element) { + var level = $(this).data('level'); + var value = $(this).hasClass(TOGGLE_CLASSNAME); + map[level] = value; + }) + localStorage.setItem(LS_NAMESPACE, JSON.stringify(map)); + } else { + return $(CHAPTER).map(function(index, element){ + if (map[$(this).data('level')]) { + return this; + } + }) + } + } + gitbook.events.bind('page.change', function() { + init() + }); +}); diff --git a/docs/manuals/ADMIN/html/gitbook/gitbook-plugin-fontsettings/fontsettings.js b/docs/manuals/ADMIN/html/gitbook/gitbook-plugin-fontsettings/fontsettings.js new file mode 100644 index 00000000..ff7be714 --- /dev/null +++ b/docs/manuals/ADMIN/html/gitbook/gitbook-plugin-fontsettings/fontsettings.js @@ -0,0 +1,240 @@ +require(['gitbook', 'jquery'], function(gitbook, $) { + // Configuration + var MAX_SIZE = 4, + MIN_SIZE = 0, + BUTTON_ID; + + // Current fontsettings state + var fontState; + + // Default themes + var THEMES = [ + { + config: 'white', + text: 'White', + id: 0 + }, + { + config: 'sepia', + text: 'Sepia', + id: 1 + }, + { + config: 'night', + text: 'Night', + id: 2 + } + ]; + + // Default font families + var FAMILIES = [ + { + config: 'serif', + text: 'Serif', + id: 0 + }, + { + config: 'sans', + text: 'Sans', + id: 1 + } + ]; + + // Return configured themes + function getThemes() { + return THEMES; + } + + // Modify configured themes + function setThemes(themes) { + THEMES = themes; + updateButtons(); + } + + // Return configured font families + function getFamilies() { + return FAMILIES; + } + + // Modify configured font families + function setFamilies(families) { + FAMILIES = families; + updateButtons(); + } + + // Save current font settings + function saveFontSettings() { + gitbook.storage.set('fontState', fontState); + update(); + } + + // Increase font size + function enlargeFontSize(e) { + e.preventDefault(); + if (fontState.size >= MAX_SIZE) return; + + fontState.size++; + saveFontSettings(); + } + + // Decrease font size + function reduceFontSize(e) { + e.preventDefault(); + if (fontState.size <= MIN_SIZE) return; + + fontState.size--; + saveFontSettings(); + } + + // Change font family + function changeFontFamily(configName, e) { + if (e && e instanceof Event) { + e.preventDefault(); + } + + var familyId = getFontFamilyId(configName); + fontState.family = familyId; + saveFontSettings(); + } + + // Change type of color theme + function changeColorTheme(configName, e) { + if (e && e instanceof Event) { + e.preventDefault(); + } + + var $book = gitbook.state.$book; + + // Remove currently applied color theme + if (fontState.theme !== 0) + $book.removeClass('color-theme-'+fontState.theme); + + // Set new color theme + var themeId = getThemeId(configName); + fontState.theme = themeId; + if (fontState.theme !== 0) + $book.addClass('color-theme-'+fontState.theme); + + saveFontSettings(); + } + + // Return the correct id for a font-family config key + // Default to first font-family + function getFontFamilyId(configName) { + // Search for plugin configured font family + var configFamily = $.grep(FAMILIES, function(family) { + return family.config == configName; + })[0]; + // Fallback to default font family + return (!!configFamily)? configFamily.id : 0; + } + + // Return the correct id for a theme config key + // Default to first theme + function getThemeId(configName) { + // Search for plugin configured theme + var configTheme = $.grep(THEMES, function(theme) { + return theme.config == configName; + })[0]; + // Fallback to default theme + return (!!configTheme)? configTheme.id : 0; + } + + function update() { + var $book = gitbook.state.$book; + + $('.font-settings .font-family-list li').removeClass('active'); + $('.font-settings .font-family-list li:nth-child('+(fontState.family+1)+')').addClass('active'); + + $book[0].className = $book[0].className.replace(/\bfont-\S+/g, ''); + $book.addClass('font-size-'+fontState.size); + $book.addClass('font-family-'+fontState.family); + + if(fontState.theme !== 0) { + $book[0].className = $book[0].className.replace(/\bcolor-theme-\S+/g, ''); + $book.addClass('color-theme-'+fontState.theme); + } + } + + function init(config) { + // Search for plugin configured font family + var configFamily = getFontFamilyId(config.family), + configTheme = getThemeId(config.theme); + + // Instantiate font state object + fontState = gitbook.storage.get('fontState', { + size: config.size || 2, + family: configFamily, + theme: configTheme + }); + + update(); + } + + function updateButtons() { + // Remove existing fontsettings buttons + if (!!BUTTON_ID) { + gitbook.toolbar.removeButton(BUTTON_ID); + } + + // Create buttons in toolbar + BUTTON_ID = gitbook.toolbar.createButton({ + icon: 'fa fa-font', + label: 'Font Settings', + className: 'font-settings', + dropdown: [ + [ + { + text: 'A', + className: 'font-reduce', + onClick: reduceFontSize + }, + { + text: 'A', + className: 'font-enlarge', + onClick: enlargeFontSize + } + ], + $.map(FAMILIES, function(family) { + family.onClick = function(e) { + return changeFontFamily(family.config, e); + }; + + return family; + }), + $.map(THEMES, function(theme) { + theme.onClick = function(e) { + return changeColorTheme(theme.config, e); + }; + + return theme; + }) + ] + }); + } + + // Init configuration at start + gitbook.events.bind('start', function(e, config) { + var opts = config.fontsettings; + + // Generate buttons at start + updateButtons(); + + // Init current settings + init(opts); + }); + + // Expose API + gitbook.fontsettings = { + enlargeFontSize: enlargeFontSize, + reduceFontSize: reduceFontSize, + setTheme: changeColorTheme, + setFamily: changeFontFamily, + getThemes: getThemes, + setThemes: setThemes, + getFamilies: getFamilies, + setFamilies: setFamilies + }; +}); + + diff --git a/docs/manuals/ADMIN/html/gitbook/gitbook-plugin-fontsettings/website.css b/docs/manuals/ADMIN/html/gitbook/gitbook-plugin-fontsettings/website.css new file mode 100644 index 00000000..26591fe8 --- /dev/null +++ b/docs/manuals/ADMIN/html/gitbook/gitbook-plugin-fontsettings/website.css @@ -0,0 +1,291 @@ +/* + * Theme 1 + */ +.color-theme-1 .dropdown-menu { + background-color: #111111; + border-color: #7e888b; +} +.color-theme-1 .dropdown-menu .dropdown-caret .caret-inner { + border-bottom: 9px solid #111111; +} +.color-theme-1 .dropdown-menu .buttons { + border-color: #7e888b; +} +.color-theme-1 .dropdown-menu .button { + color: #afa790; +} +.color-theme-1 .dropdown-menu .button:hover { + color: #73553c; +} +/* + * Theme 2 + */ +.color-theme-2 .dropdown-menu { + background-color: #2d3143; + border-color: #272a3a; +} +.color-theme-2 .dropdown-menu .dropdown-caret .caret-inner { + border-bottom: 9px solid #2d3143; +} +.color-theme-2 .dropdown-menu .buttons { + border-color: #272a3a; +} +.color-theme-2 .dropdown-menu .button { + color: #62677f; +} +.color-theme-2 .dropdown-menu .button:hover { + color: #f4f4f5; +} +.book .book-header .font-settings .font-enlarge { + line-height: 30px; + font-size: 1.4em; +} +.book .book-header .font-settings .font-reduce { + line-height: 30px; + font-size: 1em; +} +.book.color-theme-1 .book-body { + color: #704214; + background: #f3eacb; +} +.book.color-theme-1 .book-body .page-wrapper .page-inner section { + background: #f3eacb; +} +.book.color-theme-2 .book-body { + color: #bdcadb; + background: #1c1f2b; +} +.book.color-theme-2 .book-body .page-wrapper .page-inner section { + background: #1c1f2b; +} +.book.font-size-0 .book-body .page-inner section { + font-size: 1.2rem; +} +.book.font-size-1 .book-body .page-inner section { + font-size: 1.4rem; +} +.book.font-size-2 .book-body .page-inner section { + font-size: 1.6rem; +} +.book.font-size-3 .book-body .page-inner section { + font-size: 2.2rem; +} +.book.font-size-4 .book-body .page-inner section { + font-size: 4rem; +} +.book.font-family-0 { + font-family: Georgia, serif; +} +.book.font-family-1 { + font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; +} +.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal { + color: #704214; +} +.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal a { + color: inherit; +} +.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal h1, +.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal h2, +.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal h3, +.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal h4, +.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal h5, +.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal h6 { + color: inherit; +} +.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal h1, +.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal h2 { + border-color: inherit; +} +.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal h6 { + color: inherit; +} +.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal hr { + background-color: inherit; +} +.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal blockquote { + border-color: inherit; +} +.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre, +.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code { + background: #fdf6e3; + color: #657b83; + border-color: #f8df9c; +} +.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal .highlight { + background-color: inherit; +} +.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal table th, +.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal table td { + border-color: #f5d06c; +} +.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal table tr { + color: inherit; + background-color: #fdf6e3; + border-color: #444444; +} +.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal table tr:nth-child(2n) { + background-color: #fbeecb; +} +.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal { + color: #bdcadb; +} +.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal a { + color: #3eb1d0; +} +.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal h1, +.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal h2, +.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal h3, +.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal h4, +.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal h5, +.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal h6 { + color: #fffffa; +} +.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal h1, +.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal h2 { + border-color: #373b4e; +} +.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal h6 { + color: #373b4e; +} +.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal hr { + background-color: #373b4e; +} +.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal blockquote { + border-color: #373b4e; +} +.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal pre, +.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal code { + color: #9dbed8; + background: #2d3143; + border-color: #2d3143; +} +.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal .highlight { + background-color: #282a39; +} +.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal table th, +.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal table td { + border-color: #3b3f54; +} +.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal table tr { + color: #b6c2d2; + background-color: #2d3143; + border-color: #3b3f54; +} +.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal table tr:nth-child(2n) { + background-color: #35394b; +} +.book.color-theme-1 .book-header { + color: #afa790; + background: transparent; +} +.book.color-theme-1 .book-header .btn { + color: #afa790; +} +.book.color-theme-1 .book-header .btn:hover { + color: #73553c; + background: none; +} +.book.color-theme-1 .book-header h1 { + color: #704214; +} +.book.color-theme-2 .book-header { + color: #7e888b; + background: transparent; +} +.book.color-theme-2 .book-header .btn { + color: #3b3f54; +} +.book.color-theme-2 .book-header .btn:hover { + color: #fffff5; + background: none; +} +.book.color-theme-2 .book-header h1 { + color: #bdcadb; +} +.book.color-theme-1 .book-body .navigation { + color: #afa790; +} +.book.color-theme-1 .book-body .navigation:hover { + color: #73553c; +} +.book.color-theme-2 .book-body .navigation { + color: #383f52; +} +.book.color-theme-2 .book-body .navigation:hover { + color: #fffff5; +} +/* + * Theme 1 + */ +.book.color-theme-1 .book-summary { + color: #afa790; + background: #111111; + border-right: 1px solid rgba(0, 0, 0, 0.07); +} +.book.color-theme-1 .book-summary .book-search { + background: transparent; +} +.book.color-theme-1 .book-summary .book-search input, +.book.color-theme-1 .book-summary .book-search input:focus { + border: 1px solid transparent; +} +.book.color-theme-1 .book-summary ul.summary li.divider { + background: #7e888b; + box-shadow: none; +} +.book.color-theme-1 .book-summary ul.summary li i.fa-check { + color: #33cc33; +} +.book.color-theme-1 .book-summary ul.summary li.done > a { + color: #877f6a; +} +.book.color-theme-1 .book-summary ul.summary li a, +.book.color-theme-1 .book-summary ul.summary li span { + color: #877f6a; + background: transparent; + font-weight: normal; +} +.book.color-theme-1 .book-summary ul.summary li.active > a, +.book.color-theme-1 .book-summary ul.summary li a:hover { + color: #704214; + background: transparent; + font-weight: normal; +} +/* + * Theme 2 + */ +.book.color-theme-2 .book-summary { + color: #bcc1d2; + background: #2d3143; + border-right: none; +} +.book.color-theme-2 .book-summary .book-search { + background: transparent; +} +.book.color-theme-2 .book-summary .book-search input, +.book.color-theme-2 .book-summary .book-search input:focus { + border: 1px solid transparent; +} +.book.color-theme-2 .book-summary ul.summary li.divider { + background: #272a3a; + box-shadow: none; +} +.book.color-theme-2 .book-summary ul.summary li i.fa-check { + color: #33cc33; +} +.book.color-theme-2 .book-summary ul.summary li.done > a { + color: #62687f; +} +.book.color-theme-2 .book-summary ul.summary li a, +.book.color-theme-2 .book-summary ul.summary li span { + color: #c1c6d7; + background: transparent; + font-weight: 600; +} +.book.color-theme-2 .book-summary ul.summary li.active > a, +.book.color-theme-2 .book-summary ul.summary li a:hover { + color: #f4f4f5; + background: #252737; + font-weight: 600; +} diff --git a/docs/manuals/ADMIN/html/gitbook/gitbook-plugin-hide-published-with/plugin.js b/docs/manuals/ADMIN/html/gitbook/gitbook-plugin-hide-published-with/plugin.js new file mode 100644 index 00000000..51758d42 --- /dev/null +++ b/docs/manuals/ADMIN/html/gitbook/gitbook-plugin-hide-published-with/plugin.js @@ -0,0 +1,7 @@ +require(["gitbook"], function(gitbook) { + $('.gitbook-link').hide(); + gitbook.events.bind("page.change", function() { + console.log("Hello custom plugin") + $('.gitbook-link').hide(); + }); +}); diff --git a/docs/manuals/ADMIN/html/gitbook/gitbook-plugin-intopic-toc/anchor.min.js b/docs/manuals/ADMIN/html/gitbook/gitbook-plugin-intopic-toc/anchor.min.js new file mode 100644 index 00000000..8a40c190 --- /dev/null +++ b/docs/manuals/ADMIN/html/gitbook/gitbook-plugin-intopic-toc/anchor.min.js @@ -0,0 +1,7 @@ +// AnchorJS - v4.2.0 - 2019-01-01 +// https://github.com/bryanbraun/anchorjs +// Copyright (c) 2019 Bryan Braun; Licensed MIT +// +// @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt Expat +!function(A,e){"use strict";"function"==typeof define&&define.amd?define([],e):"object"==typeof module&&module.exports?module.exports=e():(A.AnchorJS=e(),A.anchors=new A.AnchorJS)}(this,function(){"use strict";return function(A){function f(A){A.icon=A.hasOwnProperty("icon")?A.icon:"",A.visible=A.hasOwnProperty("visible")?A.visible:"hover",A.placement=A.hasOwnProperty("placement")?A.placement:"right",A.ariaLabel=A.hasOwnProperty("ariaLabel")?A.ariaLabel:"Anchor",A.class=A.hasOwnProperty("class")?A.class:"",A.base=A.hasOwnProperty("base")?A.base:"",A.truncate=A.hasOwnProperty("truncate")?Math.floor(A.truncate):64,A.titleText=A.hasOwnProperty("titleText")?A.titleText:""}function p(A){var e;if("string"==typeof A||A instanceof String)e=[].slice.call(document.querySelectorAll(A));else{if(!(Array.isArray(A)||A instanceof NodeList))throw new Error("The selector provided to AnchorJS was invalid.");e=[].slice.call(A)}return e}this.options=A||{},this.elements=[],f(this.options),this.isTouchDevice=function(){return!!("ontouchstart"in window||window.DocumentTouch&&document instanceof DocumentTouch)},this.add=function(A){var e,t,i,n,o,s,a,r,c,h,l,u,d=[];if(f(this.options),"touch"===(l=this.options.visible)&&(l=this.isTouchDevice()?"always":"hover"),A||(A="h2, h3, h4, h5, h6"),0===(e=p(A)).length)return this;for(function(){if(null===document.head.querySelector("style.anchorjs")){var A,e=document.createElement("style");e.className="anchorjs",e.appendChild(document.createTextNode("")),void 0===(A=document.head.querySelector('[rel="stylesheet"], style'))?document.head.appendChild(e):document.head.insertBefore(e,A),e.sheet.insertRule(" .anchorjs-link { opacity: 0; text-decoration: none; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; }",e.sheet.cssRules.length),e.sheet.insertRule(" *:hover > .anchorjs-link, .anchorjs-link:focus { opacity: 1; }",e.sheet.cssRules.length),e.sheet.insertRule(" [data-anchorjs-icon]::after { content: attr(data-anchorjs-icon); }",e.sheet.cssRules.length),e.sheet.insertRule(' @font-face { font-family: "anchorjs-icons"; src: url(data:n/a;base64,AAEAAAALAIAAAwAwT1MvMg8yG2cAAAE4AAAAYGNtYXDp3gC3AAABpAAAAExnYXNwAAAAEAAAA9wAAAAIZ2x5ZlQCcfwAAAH4AAABCGhlYWQHFvHyAAAAvAAAADZoaGVhBnACFwAAAPQAAAAkaG10eASAADEAAAGYAAAADGxvY2EACACEAAAB8AAAAAhtYXhwAAYAVwAAARgAAAAgbmFtZQGOH9cAAAMAAAAAunBvc3QAAwAAAAADvAAAACAAAQAAAAEAAHzE2p9fDzz1AAkEAAAAAADRecUWAAAAANQA6R8AAAAAAoACwAAAAAgAAgAAAAAAAAABAAADwP/AAAACgAAA/9MCrQABAAAAAAAAAAAAAAAAAAAAAwABAAAAAwBVAAIAAAAAAAIAAAAAAAAAAAAAAAAAAAAAAAMCQAGQAAUAAAKZAswAAACPApkCzAAAAesAMwEJAAAAAAAAAAAAAAAAAAAAARAAAAAAAAAAAAAAAAAAAAAAQAAg//0DwP/AAEADwABAAAAAAQAAAAAAAAAAAAAAIAAAAAAAAAIAAAACgAAxAAAAAwAAAAMAAAAcAAEAAwAAABwAAwABAAAAHAAEADAAAAAIAAgAAgAAACDpy//9//8AAAAg6cv//f///+EWNwADAAEAAAAAAAAAAAAAAAAACACEAAEAAAAAAAAAAAAAAAAxAAACAAQARAKAAsAAKwBUAAABIiYnJjQ3NzY2MzIWFxYUBwcGIicmNDc3NjQnJiYjIgYHBwYUFxYUBwYGIwciJicmNDc3NjIXFhQHBwYUFxYWMzI2Nzc2NCcmNDc2MhcWFAcHBgYjARQGDAUtLXoWOR8fORYtLTgKGwoKCjgaGg0gEhIgDXoaGgkJBQwHdR85Fi0tOAobCgoKOBoaDSASEiANehoaCQkKGwotLXoWOR8BMwUFLYEuehYXFxYugC44CQkKGwo4GkoaDQ0NDXoaShoKGwoFBe8XFi6ALjgJCQobCjgaShoNDQ0NehpKGgobCgoKLYEuehYXAAAADACWAAEAAAAAAAEACAAAAAEAAAAAAAIAAwAIAAEAAAAAAAMACAAAAAEAAAAAAAQACAAAAAEAAAAAAAUAAQALAAEAAAAAAAYACAAAAAMAAQQJAAEAEAAMAAMAAQQJAAIABgAcAAMAAQQJAAMAEAAMAAMAAQQJAAQAEAAMAAMAAQQJAAUAAgAiAAMAAQQJAAYAEAAMYW5jaG9yanM0MDBAAGEAbgBjAGgAbwByAGoAcwA0ADAAMABAAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAH//wAP) format("truetype"); }',e.sheet.cssRules.length)}}(),t=document.querySelectorAll("[id]"),i=[].map.call(t,function(A){return A.id}),o=0;o\]\.\/\(\)\*\\\n\t\b\v]/g,"-").replace(/-{2,}/g,"-").substring(0,this.options.truncate).replace(/^-+|-+$/gm,"").toLowerCase()},this.hasAnchorJSLink=function(A){var e=A.firstChild&&-1<(" "+A.firstChild.className+" ").indexOf(" anchorjs-link "),t=A.lastChild&&-1<(" "+A.lastChild.className+" ").indexOf(" anchorjs-link ");return e||t||!1}}}); +// @license-end \ No newline at end of file diff --git a/docs/manuals/ADMIN/html/gitbook/gitbook-plugin-intopic-toc/gumshoe.polyfills.min.js b/docs/manuals/ADMIN/html/gitbook/gitbook-plugin-intopic-toc/gumshoe.polyfills.min.js new file mode 100644 index 00000000..a594ec1b --- /dev/null +++ b/docs/manuals/ADMIN/html/gitbook/gitbook-plugin-intopic-toc/gumshoe.polyfills.min.js @@ -0,0 +1,3 @@ +/*! gumshoejs v5.1.0 | (c) 2019 Chris Ferdinandi | MIT License | http://github.com/cferdinandi/gumshoe */ +/*! Modified to support container as "scroll root" which is necessary for this plugin to work | Fabian Zankl */ +Element.prototype.closest||(Element.prototype.matches||(Element.prototype.matches=Element.prototype.msMatchesSelector||Element.prototype.webkitMatchesSelector),Element.prototype.closest=function(t){var e=this;if(!document.documentElement.contains(this))return null;do{if(e.matches(t))return e;e=e.parentElement}while(null!==e);return null}),function(){if("function"==typeof window.CustomEvent)return!1;function t(t,e){e=e||{bubbles:!1,cancelable:!1,detail:void 0};var n=document.createEvent("CustomEvent");return n.initCustomEvent(t,e.bubbles,e.cancelable,e.detail),n}t.prototype=window.Event.prototype,window.CustomEvent=t}(),function(t,e){"function"==typeof define&&define.amd?define([],function(){return e(t)}):"object"==typeof exports?module.exports=e(t):t.Gumshoe=e(t)}("undefined"!=typeof global?global:"undefined"!=typeof window?window:this,function(t){"use strict";var e={container:t,navClass:"active",contentClass:"active",nested:!1,nestedClass:"active",offset:0,reflow:!1,events:!0},n=function(t,e,n){if(n.settings.events){var o=new CustomEvent(t,{bubbles:!0,cancelable:!0,detail:n});e.dispatchEvent(o)}},o=function(t){var e=0;if(t.offsetParent)for(;t;)e+=t.offsetTop,t=t.offsetParent;return e>=0?e:0},c=function(t){t.sort(function(t,e){return o(t.content)=Math.max(document.body.scrollHeight,document.documentElement.scrollHeight,document.body.offsetHeight,document.documentElement.offsetHeight,document.body.clientHeight,document.documentElement.clientHeight)},s=function(t,e){var n=t[t.length-1];if(function(t,e){return!(!i()||!r(t.content,e,!0))}(n,e))return n;for(var o=t.length-1;o>=0;o--)if(r(t[o].content,e))return t[o]},a=function(t,e){if(e.nested){var n=t.parentNode.closest("li");n&&(n.classList.remove(e.nestedClass),a(n,e))}},l=function(t,e){if(t){var o=t.nav.closest("li");o&&(o.classList.remove(e.navClass),t.content.classList.remove(e.contentClass),a(o,e),n("gumshoeDeactivate",o,{link:t.nav,content:t.content,settings:e}))}},u=function(t,e){if(e.nested){var n=t.parentNode.closest("li");n&&(n.classList.add(e.nestedClass),u(n,e))}};return function(o,r){var i,a,f,d,m,v={};v.setup=function(){i=document.querySelectorAll(o),a=[],Array.prototype.forEach.call(i,function(t){var e=document.getElementById(decodeURIComponent(t.hash.substr(1)));e&&a.push({nav:t,content:e})}),c(a)},v.detect=function(){var t=s(a,m);t?f&&t.content===f.content||(l(f,m),function(t,e){if(t){var o=t.nav.closest("li");o&&(o.classList.add(e.navClass),t.content.classList.add(e.contentClass),u(o,e),n("gumshoeActivate",o,{link:t.nav,content:t.content,settings:e}))}}(t,m),f=t):f&&(l(f,m),f=null)};var p=function(e){d&&t.cancelAnimationFrame(d),d=t.requestAnimationFrame(v.detect)},h=function(t){d&&m.container.cancelAnimationFrame(d),d=m.container.requestAnimationFrame(function(){c(),v.detect()})};v.destroy=function(){f&&l(f),m.container.removeEventListener("scroll",p,!1),m.reflow&&m.container.removeEventListener("resize",h,!1),a=null,i=null,f=null,d=null,m=null};return m=function(){var t={};return Array.prototype.forEach.call(arguments,function(e){for(var n in e){if(!e.hasOwnProperty(n))return;t[n]=e[n]}}),t}(e,r||{}),v.setup(),v.detect(),m.container.addEventListener("scroll",p,!1),m.reflow&&m.container.addEventListener("resize",h,!1),v}}); diff --git a/docs/manuals/ADMIN/html/gitbook/gitbook-plugin-intopic-toc/plugin.js b/docs/manuals/ADMIN/html/gitbook/gitbook-plugin-intopic-toc/plugin.js new file mode 100644 index 00000000..1f38ecc5 --- /dev/null +++ b/docs/manuals/ADMIN/html/gitbook/gitbook-plugin-intopic-toc/plugin.js @@ -0,0 +1,9 @@ +/*! + * gitbook-plugin-intopic-toc + * v1.1.1 + * https://github.com/zanfab/gitbook-plugin-intopic-toc#readme + * (c) 2020 Fabian Zankl + * MIT license + */ +"use strict";function _typeof(e){return(_typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}var configuration,label;function getAnchorLevel(e){return parseInt(e.tagName.charAt(1),10)}function createNavList(e){var t=document.createElement("ul");return t.classList.add("nav"),t.classList.add("navbar-nav"),t.classList.add("level-".concat(e)),t}function createChildNavList(e,t){var n=createNavList(t);return e.append(n),n}function createNavItem(e,t){var n=document.createElement("a");n.classList.add("nav-link"),n.text=e,n.href=t;var a=document.createElement("li");return a.appendChild(n),a}function getStartingElementIndex(n){for(var e=function(t){var e=n.filter(function(e){return e.tagName.toLowerCase()==="h".concat(t)});if(1 {\n if ($bookSearchResults.hasClass('open')) {\n $('.intopic-toc').hide();\n }\n else {\n $('.intopic-toc').show();\n }\n });\n\n observer.observe($bookSearchResults[0], { attributes: true });\n });\n\n gitbook.events.bind('page.change', function () {\n anchors.removeAll();\n anchors.add(configuration.selector);\n\n const isVisible = (configuration.visible || gitbook.state.page.isTocVisible) && gitbook.state.page.isTocVisible !== false;\n\n const mode = configuration.mode;\n const maxDepth = Number(configuration.maxDepth);\n const isCollapsed = Boolean(configuration.isCollapsed);\n const isScrollspyActive = Boolean(configuration.isScrollspyActive);\n\n if (anchors.elements.length > 1 && isVisible) {\n const navigation = buildNavigation(anchors.elements, label, mode, maxDepth, isCollapsed);\n\n const section = document.body.querySelector('.page-wrapper');\n section.appendChild(navigation, section.firstChild);\n\n if (isScrollspyActive) {\n const container = $('.book-body .body-inner')[0];\n\n new Gumshoe('.intopic-toc a', {\n container: container,\n navClass: 'active',\n contentClass: 'active',\n nested: true,\n offset: container.offsetHeight / 2,\n reflow: true\n });\n }\n }\n });\n});\n\nfunction getAnchorLevel(element) {\n return parseInt(element.tagName.charAt(1), 10);\n}\n\nfunction createNavList(level) {\n const navList = document.createElement('ul');\n navList.classList.add('nav');\n navList.classList.add('navbar-nav');\n navList.classList.add(`level-${level}`);\n\n return navList;\n}\n\nfunction createChildNavList(parent, level) {\n const childList = createNavList(level);\n parent.append(childList);\n\n return childList;\n}\n\nfunction createNavItem(text, href) {\n const anchor = document.createElement('a');\n anchor.classList.add('nav-link');\n anchor.text = text;\n anchor.href = href;\n\n const item = document.createElement('li');\n item.appendChild(anchor);\n\n return item;\n}\n\n/**\n * Find the index of first heading level (`

      `, then `

      `, etc.) that has more than one element.\n * Defaults to 0 for the first element.\n *\n * @param {*} elements Headings identified via selector config property\n */\nfunction getStartingElementIndex(elements) {\n for (let i = 1; i <= 6; i++) {\n const headings = elements.filter(x => x.tagName.toLowerCase() === `h${i}`);\n\n if (headings.length > 1) {\n return elements.indexOf(headings[0]);\n }\n }\n\n return 0;\n}\n\nfunction buildNavigation(elements, header, mode, maxDepth, isCollapsed) {\n const indentItems = mode.toLowerCase() === 'nested';\n const navigation = document.createElement('nav');\n navigation.className = `intopic-toc ${mode}`;\n\n if (isCollapsed) {\n navigation.className += ' collapsed';\n }\n\n const heading = document.createElement('h3');\n heading.innerText = header;\n navigation.appendChild(heading);\n\n const containers = {};\n containers[0] = createChildNavList(navigation, 0);\n\n const startingElementIndex = getStartingElementIndex(elements);\n const startingLevel = getAnchorLevel(elements[startingElementIndex]);\n\n let previousItem;\n let previousLevel = -1;\n\n for (let i = startingElementIndex; i < elements.length; i++) {\n const currentLevel = getAnchorLevel(elements[i]) - startingLevel;\n\n if (currentLevel >= maxDepth) {\n continue;\n }\n\n if (previousLevel === -1) {\n previousLevel = currentLevel;\n }\n\n if (indentItems) {\n if (currentLevel < previousLevel) {\n for (let i = previousLevel; i > currentLevel; i--) {\n delete containers[i];\n }\n }\n\n if (!containers[currentLevel]) {\n containers[currentLevel] = createChildNavList(previousItem, currentLevel);\n }\n }\n\n const item = createNavItem(\n elements[i].textContent,\n elements[i].querySelector('.anchorjs-link').getAttribute('href'));\n\n containers[indentItems ? currentLevel : 0].appendChild(item);\n\n previousItem = item;\n previousLevel = currentLevel;\n }\n\n return navigation;\n}\n"],"names":["configuration","label","getAnchorLevel","element","parseInt","tagName","charAt","createNavList","level","navList","document","createElement","classList","add","createChildNavList","parent","childList","append","createNavItem","text","href","anchor","item","appendChild","getStartingElementIndex","elements","i","headings","filter","x","toLowerCase","length","indexOf","buildNavigation","header","mode","maxDepth","isCollapsed","indentItems","navigation","className","heading","innerText","containers","previousItem","startingElementIndex","startingLevel","previousLevel","currentLevel","textContent","querySelector","getAttribute","require","gitbook","$","anchors","options","placement","events","bind","e","config","_typeof","language","state","innerLanguage","Object","prototype","hasOwnProperty","call","$bookSearchResults","MutationObserver","hasClass","hide","show","observe","attributes","removeAll","selector","isVisible","visible","page","isTocVisible","Number","Boolean","isScrollspyActive","section","body","firstChild","container","Gumshoe","navClass","contentClass","nested","offset","offsetHeight","reflow"],"mappings":";;;;;;;8PACA,IAAIA,cACAC,MAsEJ,SAASC,eAAeC,UACfC,SAASD,EAAQE,QAAQC,OAAO,GAAI,IAG7C,SAASC,cAAcC,OACfC,EAAUC,SAASC,cAAc,aACvCF,EAAQG,UAAUC,IAAI,OACtBJ,EAAQG,UAAUC,IAAI,cACtBJ,EAAQG,UAAUC,oBAAaL,IAExBC,EAGT,SAASK,mBAAmBC,EAAQP,OAC5BQ,EAAYT,cAAcC,UAChCO,EAAOE,OAAOD,GAEPA,EAGT,SAASE,cAAcC,EAAMC,OACrBC,EAASX,SAASC,cAAc,KACtCU,EAAOT,UAAUC,IAAI,YACrBQ,EAAOF,KAAOA,EACdE,EAAOD,KAAOA,MAERE,EAAOZ,SAASC,cAAc,aACpCW,EAAKC,YAAYF,GAEVC,EAST,SAASE,wBAAwBC,sBACtBC,OACDC,EAAWF,EAASG,OAAO,SAAAC,UAAKA,EAAExB,QAAQyB,2BAAsBJ,QAEhD,EAAlBC,EAASI,gBACJN,EAASO,QAAQL,EAAS,MAJ5BD,EAAI,EAAGA,GAAK,EAAGA,IAAK,SAApBA,8CAQF,EAGT,SAASO,gBAAgBR,EAAUS,EAAQC,EAAMC,EAAUC,OACnDC,EAAqC,WAAvBH,EAAKL,cACnBS,EAAa7B,SAASC,cAAc,OAC1C4B,EAAWC,gCAA2BL,GAElCE,IACFE,EAAWC,WAAa,kBAGpBC,EAAU/B,SAASC,cAAc,MACvC8B,EAAQC,UAAYR,EACpBK,EAAWhB,YAAYkB,OAEjBE,EAAa,GACnBA,EAAW,GAAK7B,mBAAmByB,EAAY,WAK3CK,EAHEC,EAAuBrB,wBAAwBC,GAC/CqB,EAAgB5C,eAAeuB,EAASoB,IAG1CE,GAAiB,EAEZrB,EAAImB,EAAsBnB,EAAID,EAASM,OAAQL,IAAK,KACrDsB,EAAe9C,eAAeuB,EAASC,IAAMoB,OAE/BV,GAAhBY,QAImB,IAAnBD,IACFA,EAAgBC,GAGdV,EAAa,IACXU,EAAeD,MACZ,IAAIrB,EAAIqB,EAAmBC,EAAJtB,EAAkBA,WACrCiB,EAAWjB,GAIjBiB,EAAWK,KACdL,EAAWK,GAAgBlC,mBAAmB8B,EAAcI,QAI1D1B,EAAOJ,cACXO,EAASC,GAAGuB,YACZxB,EAASC,GAAGwB,cAAc,kBAAkBC,aAAa,SAE3DR,EAAWL,EAAcU,EAAe,GAAGzB,YAAYD,GAEvDsB,EAAetB,EACfyB,EAAgBC,UAGXT,EA7KTa,QAAQ,CAAC,UAAW,UAAW,SAAUC,EAASC,GAChDC,QAAQC,QAAU,CAChBC,UAAW,QAGbJ,EAAQK,OAAOC,KAAK,QAAS,SAAUC,EAAGC,MACxC7D,cAAgB6D,EAAO,eAIF,WAAjBC,QAHJ7D,MAAQD,cAAcC,OAGS,KACvB8D,EAAWV,EAAQW,MAAMC,cAG7BhE,MADE8D,GAAYG,OAAOC,UAAUC,eAAeC,KAAKpE,MAAO8D,GAClD9D,MAAM8D,GAEN,OAKNO,EAAqBhB,EAAE,wBAEZ,IAAIiB,iBAAiB,WAChCD,EAAmBE,SAAS,QAC9BlB,EAAE,gBAAgBmB,OAGlBnB,EAAE,gBAAgBoB,SAIbC,QAAQL,EAAmB,GAAI,CAAEM,YAAY,MAGxDvB,EAAQK,OAAOC,KAAK,cAAe,WACjCJ,QAAQsB,YACRtB,QAAQ1C,IAAIb,cAAc8E,cAEpBC,GAAa/E,cAAcgF,SAAW3B,EAAQW,MAAMiB,KAAKC,gBAAqD,IAApC7B,EAAQW,MAAMiB,KAAKC,aAE7F/C,EAAOnC,cAAcmC,KACrBC,EAAW+C,OAAOnF,cAAcoC,UAChCC,EAAc+C,QAAQpF,cAAcqC,aACpCgD,EAAoBD,QAAQpF,cAAcqF,sBAElB,EAA1B9B,QAAQ9B,SAASM,QAAcgD,EAAW,KACtCxC,EAAaN,gBAAgBsB,QAAQ9B,SAAUxB,MAAOkC,EAAMC,EAAUC,GAEtEiD,EAAU5E,SAAS6E,KAAKrC,cAAc,oBAC5CoC,EAAQ/D,YAAYgB,EAAY+C,EAAQE,YAEpCH,EAAmB,KACfI,EAAYnC,EAAE,0BAA0B,OAE1CoC,QAAQ,iBAAkB,CAC5BD,UAAWA,EACXE,SAAU,SACVC,aAAc,SACdC,QAAQ,EACRC,OAAQL,EAAUM,aAAe,EACjCC,QAAQ"} \ No newline at end of file diff --git a/docs/manuals/ADMIN/html/gitbook/gitbook-plugin-intopic-toc/style.css b/docs/manuals/ADMIN/html/gitbook/gitbook-plugin-intopic-toc/style.css new file mode 100644 index 00000000..f862bde1 --- /dev/null +++ b/docs/manuals/ADMIN/html/gitbook/gitbook-plugin-intopic-toc/style.css @@ -0,0 +1,242 @@ +.page-wrapper { + display: flex; + justify-content: center; + align-items: flex-start; + flex-direction: row; +} + +.page-inner { + width: 60% !important; +} + +nav.intopic-toc { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -ms-flex-wrap: wrap; + flex-wrap: wrap; + flex-direction: column; + width: 20%; + margin: 0 15px 5px 0; + padding-top: 40px; + position: -webkit-sticky; + position: sticky; + top: 0; + list-style: none; +} + +nav.intopic-toc h3 { + margin-top: 0; + font-size: 14px; + color: #9DAAB6; + margin: 0; + padding: 0px 15px; +} + +nav.intopic-toc h3:before { + display: inline-block; + width: 16px; + height: 16px; + content: " "; + background-image: url("data:image/svg+xml,%3Csvg preserveAspectRatio='xMidYMid meet' height='1em' width='1em' fill='none' xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' stroke-width='2' stroke-linecap='round' stroke-linejoin='round' stroke='%239DAAB6'%3E%3Cg%3E%3Cline x1='21' y1='10' x2='7' y2='10'%3E%3C/line%3E%3Cline x1='21' y1='6' x2='3' y2='6'%3E%3C/line%3E%3Cline x1='21' y1='14' x2='3' y2='14'%3E%3C/line%3E%3Cline x1='21' y1='18' x2='7' y2='18'%3E%3C/line%3E%3C/g%3E%3C/svg%3E"); + background-repeat: no-repeat; + margin-right: 10px; + vertical-align: bottom; +} + +nav.intopic-toc .navbar-nav { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-orient: vertical; + -webkit-box-direction: normal; + -ms-flex-direction: column; + flex-direction: column; + padding-left: 0; + margin-bottom: 0; + list-style: none; +} + +nav.intopic-toc .navbar-nav:before { + display: inline-block; + position: absolute; + content: " "; + top: 30px; + bottom: 0; + border-left: 1px solid #e6ecf1; + z-index: -1; +} + +nav.intopic-toc .nav > li > a { + display: block; + padding: 4px 15px; + line-height: 1.5; + color: #9DAAB6; + font-weight: bold; +} + +nav.intopic-toc.flat .nav > li > a { + font-size: 13px; +} + +nav.intopic-toc.nested .nav > li > a { + font-size: 14px; +} + +nav.intopic-toc .nav > li > a:hover, +nav.intopic-toc .nav > li > a:focus { + padding-left: 14px; + color: #6c767f; + text-decoration: none; + background-color: transparent; + border-left: 1px solid #6c767f; +} + +nav.intopic-toc .nav > li.active > a, +nav.intopic-toc .nav > li.active > a:hover, +nav.intopic-toc .nav > li.active > a:focus { + padding-left: 13px; + font-weight: bold; + color: #6c767f; + background-color: transparent; + border-left: 2px solid #6c767f; +} + +/* Each level */ +nav.intopic-toc .nav > li > ul { + padding-bottom: 5px; +} + +nav.intopic-toc.collapsed .nav > li > ul { + display: none; +} + +nav.intopic-toc .nav ul > li > a { + padding-top: 1px; + padding-bottom: 1px; + font-size: 13px; + font-weight: normal; +} + +nav.intopic-toc .nav > li.active > ul { + display: block; +} + +nav.intopic-toc .nav ul > li.active > a, +nav.intopic-toc .nav ul > li.active > a:hover, +nav.intopic-toc .nav ul > li.active > a:focus { + font-weight: bold; +} + +/* Level 1 */ +nav.intopic-toc .nav ul.level-1 > li > a { + padding-left: 25px; +} + +nav.intopic-toc .nav ul.level-1 > li > a:hover, +nav.intopic-toc .nav ul.level-1 > li > a:focus { + padding-left: 24px; +} + +nav.intopic-toc .nav ul.level-1 > li.active > a, +nav.intopic-toc .nav ul.level-1 > li.active > a:hover, +nav.intopic-toc .nav ul.level-1 > li.active > a:focus { + padding-left: 23px; +} + +/* Level 2 */ +nav.intopic-toc .nav ul.level-2 > li > a { + padding-left: 36px; +} + +nav.intopic-toc .nav ul.level-2 > li > a:hover, +nav.intopic-toc .nav ul.level-2 > li > a:focus { + padding-left: 35px; +} + +nav.intopic-toc .nav ul.level-2 > li.active > a, +nav.intopic-toc .nav ul.level-2 > li.active > a:hover, +nav.intopic-toc .nav ul.level-2 > li.active > a:focus { + padding-left: 34px; +} + +/* Level 3 */ +nav.intopic-toc .nav ul.level-3 > li > a { + padding-left: 47px; +} + +nav.intopic-toc .nav ul.level-3 > li > a:hover, +nav.intopic-toc .nav ul.level-3 > li > a:focus { + padding-left: 46px; +} + +nav.intopic-toc .nav ul.level-3 > li.active > a, +nav.intopic-toc .nav ul.level-3 > li.active > a:hover, +nav.intopic-toc .nav ul.level-3 > li.active > a:focus { + padding-left: 45px; +} + +/* Level 4 */ +nav.intopic-toc .nav ul.level-4 > li > a { + padding-left: 58px; +} + +nav.intopic-toc .nav ul.level-4 > li > a:hover, +nav.intopic-toc .nav ul.level-4 > li > a:focus { + padding-left: 57px; +} + +nav.intopic-toc .nav ul.level-4 > li.active > a, +nav.intopic-toc .nav ul.level-4 > li.active > a:hover, +nav.intopic-toc .nav ul.level-4 > li.active > a:focus { + padding-left: 56px; +} + +/* Level 5 */ +nav.intopic-toc .nav ul.level-5 > li > a { + padding-left: 69px; +} + +nav.intopic-toc .nav ul.level-5 > li > a:hover, +nav.intopic-toc .nav ul.level-5 > li > a:focus { + padding-left: 68px; +} + +nav.intopic-toc .nav ul.level-5 > li.active > a, +nav.intopic-toc .nav ul.level-5 > li.active > a:hover, +nav.intopic-toc .nav ul.level-5 > li.active > a:focus { + padding-left: 67px; +} + +@media (max-width: 1240px) { + .page-wrapper { + flex-direction: column-reverse; + } + + .page-inner { + width: unset !important; + } + + nav.intopic-toc { + width: 100%; + max-width: 800px; + padding-bottom: 0; + margin: 0 auto 5px auto; + padding-left: 20px; + padding-left: 15px; + } + + nav.intopic-toc .nav > li.active > a { + border-color: transparent; + color: #9DAAB6; + } + + nav.intopic-toc .nav > li.active > a:hover, + nav.intopic-toc .nav > li.active > a:focus { + border-left: 1px solid #6c767f; + } + + nav.intopic-toc.collapsed .nav > li > ul { + display: block; + } +} \ No newline at end of file diff --git a/docs/manuals/ADMIN/html/gitbook/gitbook-plugin-lunr/lunr.min.js b/docs/manuals/ADMIN/html/gitbook/gitbook-plugin-lunr/lunr.min.js new file mode 100644 index 00000000..6aa6bc7d --- /dev/null +++ b/docs/manuals/ADMIN/html/gitbook/gitbook-plugin-lunr/lunr.min.js @@ -0,0 +1,7 @@ +/** + * lunr - http://lunrjs.com - A bit like Solr, but much smaller and not as bright - 0.5.12 + * Copyright (C) 2015 Oliver Nightingale + * MIT Licensed + * @license + */ +!function(){var t=function(e){var n=new t.Index;return n.pipeline.add(t.trimmer,t.stopWordFilter,t.stemmer),e&&e.call(n,n),n};t.version="0.5.12",t.utils={},t.utils.warn=function(t){return function(e){t.console&&console.warn&&console.warn(e)}}(this),t.EventEmitter=function(){this.events={}},t.EventEmitter.prototype.addListener=function(){var t=Array.prototype.slice.call(arguments),e=t.pop(),n=t;if("function"!=typeof e)throw new TypeError("last argument must be a function");n.forEach(function(t){this.hasHandler(t)||(this.events[t]=[]),this.events[t].push(e)},this)},t.EventEmitter.prototype.removeListener=function(t,e){if(this.hasHandler(t)){var n=this.events[t].indexOf(e);this.events[t].splice(n,1),this.events[t].length||delete this.events[t]}},t.EventEmitter.prototype.emit=function(t){if(this.hasHandler(t)){var e=Array.prototype.slice.call(arguments,1);this.events[t].forEach(function(t){t.apply(void 0,e)})}},t.EventEmitter.prototype.hasHandler=function(t){return t in this.events},t.tokenizer=function(t){return arguments.length&&null!=t&&void 0!=t?Array.isArray(t)?t.map(function(t){return t.toLowerCase()}):t.toString().trim().toLowerCase().split(/[\s\-]+/):[]},t.Pipeline=function(){this._stack=[]},t.Pipeline.registeredFunctions={},t.Pipeline.registerFunction=function(e,n){n in this.registeredFunctions&&t.utils.warn("Overwriting existing registered function: "+n),e.label=n,t.Pipeline.registeredFunctions[e.label]=e},t.Pipeline.warnIfFunctionNotRegistered=function(e){var n=e.label&&e.label in this.registeredFunctions;n||t.utils.warn("Function is not registered with pipeline. This may cause problems when serialising the index.\n",e)},t.Pipeline.load=function(e){var n=new t.Pipeline;return e.forEach(function(e){var i=t.Pipeline.registeredFunctions[e];if(!i)throw new Error("Cannot load un-registered function: "+e);n.add(i)}),n},t.Pipeline.prototype.add=function(){var e=Array.prototype.slice.call(arguments);e.forEach(function(e){t.Pipeline.warnIfFunctionNotRegistered(e),this._stack.push(e)},this)},t.Pipeline.prototype.after=function(e,n){t.Pipeline.warnIfFunctionNotRegistered(n);var i=this._stack.indexOf(e);if(-1==i)throw new Error("Cannot find existingFn");i+=1,this._stack.splice(i,0,n)},t.Pipeline.prototype.before=function(e,n){t.Pipeline.warnIfFunctionNotRegistered(n);var i=this._stack.indexOf(e);if(-1==i)throw new Error("Cannot find existingFn");this._stack.splice(i,0,n)},t.Pipeline.prototype.remove=function(t){var e=this._stack.indexOf(t);-1!=e&&this._stack.splice(e,1)},t.Pipeline.prototype.run=function(t){for(var e=[],n=t.length,i=this._stack.length,o=0;n>o;o++){for(var r=t[o],s=0;i>s&&(r=this._stack[s](r,o,t),void 0!==r);s++);void 0!==r&&e.push(r)}return e},t.Pipeline.prototype.reset=function(){this._stack=[]},t.Pipeline.prototype.toJSON=function(){return this._stack.map(function(e){return t.Pipeline.warnIfFunctionNotRegistered(e),e.label})},t.Vector=function(){this._magnitude=null,this.list=void 0,this.length=0},t.Vector.Node=function(t,e,n){this.idx=t,this.val=e,this.next=n},t.Vector.prototype.insert=function(e,n){this._magnitude=void 0;var i=this.list;if(!i)return this.list=new t.Vector.Node(e,n,i),this.length++;if(en.idx?n=n.next:(i+=e.val*n.val,e=e.next,n=n.next);return i},t.Vector.prototype.similarity=function(t){return this.dot(t)/(this.magnitude()*t.magnitude())},t.SortedSet=function(){this.length=0,this.elements=[]},t.SortedSet.load=function(t){var e=new this;return e.elements=t,e.length=t.length,e},t.SortedSet.prototype.add=function(){var t,e;for(t=0;t1;){if(r===t)return o;t>r&&(e=o),r>t&&(n=o),i=n-e,o=e+Math.floor(i/2),r=this.elements[o]}return r===t?o:-1},t.SortedSet.prototype.locationFor=function(t){for(var e=0,n=this.elements.length,i=n-e,o=e+Math.floor(i/2),r=this.elements[o];i>1;)t>r&&(e=o),r>t&&(n=o),i=n-e,o=e+Math.floor(i/2),r=this.elements[o];return r>t?o:t>r?o+1:void 0},t.SortedSet.prototype.intersect=function(e){for(var n=new t.SortedSet,i=0,o=0,r=this.length,s=e.length,a=this.elements,h=e.elements;;){if(i>r-1||o>s-1)break;a[i]!==h[o]?a[i]h[o]&&o++:(n.add(a[i]),i++,o++)}return n},t.SortedSet.prototype.clone=function(){var e=new t.SortedSet;return e.elements=this.toArray(),e.length=e.elements.length,e},t.SortedSet.prototype.union=function(t){var e,n,i;return this.length>=t.length?(e=this,n=t):(e=t,n=this),i=e.clone(),i.add.apply(i,n.toArray()),i},t.SortedSet.prototype.toJSON=function(){return this.toArray()},t.Index=function(){this._fields=[],this._ref="id",this.pipeline=new t.Pipeline,this.documentStore=new t.Store,this.tokenStore=new t.TokenStore,this.corpusTokens=new t.SortedSet,this.eventEmitter=new t.EventEmitter,this._idfCache={},this.on("add","remove","update",function(){this._idfCache={}}.bind(this))},t.Index.prototype.on=function(){var t=Array.prototype.slice.call(arguments);return this.eventEmitter.addListener.apply(this.eventEmitter,t)},t.Index.prototype.off=function(t,e){return this.eventEmitter.removeListener(t,e)},t.Index.load=function(e){e.version!==t.version&&t.utils.warn("version mismatch: current "+t.version+" importing "+e.version);var n=new this;return n._fields=e.fields,n._ref=e.ref,n.documentStore=t.Store.load(e.documentStore),n.tokenStore=t.TokenStore.load(e.tokenStore),n.corpusTokens=t.SortedSet.load(e.corpusTokens),n.pipeline=t.Pipeline.load(e.pipeline),n},t.Index.prototype.field=function(t,e){var e=e||{},n={name:t,boost:e.boost||1};return this._fields.push(n),this},t.Index.prototype.ref=function(t){return this._ref=t,this},t.Index.prototype.add=function(e,n){var i={},o=new t.SortedSet,r=e[this._ref],n=void 0===n?!0:n;this._fields.forEach(function(n){var r=this.pipeline.run(t.tokenizer(e[n.name]));i[n.name]=r,t.SortedSet.prototype.add.apply(o,r)},this),this.documentStore.set(r,o),t.SortedSet.prototype.add.apply(this.corpusTokens,o.toArray());for(var s=0;s0&&(i=1+Math.log(this.documentStore.length/n)),this._idfCache[e]=i},t.Index.prototype.search=function(e){var n=this.pipeline.run(t.tokenizer(e)),i=new t.Vector,o=[],r=this._fields.reduce(function(t,e){return t+e.boost},0),s=n.some(function(t){return this.tokenStore.has(t)},this);if(!s)return[];n.forEach(function(e,n,s){var a=1/s.length*this._fields.length*r,h=this,l=this.tokenStore.expand(e).reduce(function(n,o){var r=h.corpusTokens.indexOf(o),s=h.idf(o),l=1,u=new t.SortedSet;if(o!==e){var c=Math.max(3,o.length-e.length);l=1/Math.log(c)}return r>-1&&i.insert(r,a*s*l),Object.keys(h.tokenStore.get(o)).forEach(function(t){u.add(t)}),n.union(u)},new t.SortedSet);o.push(l)},this);var a=o.reduce(function(t,e){return t.intersect(e)});return a.map(function(t){return{ref:t,score:i.similarity(this.documentVector(t))}},this).sort(function(t,e){return e.score-t.score})},t.Index.prototype.documentVector=function(e){for(var n=this.documentStore.get(e),i=n.length,o=new t.Vector,r=0;i>r;r++){var s=n.elements[r],a=this.tokenStore.get(s)[e].tf,h=this.idf(s);o.insert(this.corpusTokens.indexOf(s),a*h)}return o},t.Index.prototype.toJSON=function(){return{version:t.version,fields:this._fields,ref:this._ref,documentStore:this.documentStore.toJSON(),tokenStore:this.tokenStore.toJSON(),corpusTokens:this.corpusTokens.toJSON(),pipeline:this.pipeline.toJSON()}},t.Index.prototype.use=function(t){var e=Array.prototype.slice.call(arguments,1);e.unshift(this),t.apply(this,e)},t.Store=function(){this.store={},this.length=0},t.Store.load=function(e){var n=new this;return n.length=e.length,n.store=Object.keys(e.store).reduce(function(n,i){return n[i]=t.SortedSet.load(e.store[i]),n},{}),n},t.Store.prototype.set=function(t,e){this.has(t)||this.length++,this.store[t]=e},t.Store.prototype.get=function(t){return this.store[t]},t.Store.prototype.has=function(t){return t in this.store},t.Store.prototype.remove=function(t){this.has(t)&&(delete this.store[t],this.length--)},t.Store.prototype.toJSON=function(){return{store:this.store,length:this.length}},t.stemmer=function(){var t={ational:"ate",tional:"tion",enci:"ence",anci:"ance",izer:"ize",bli:"ble",alli:"al",entli:"ent",eli:"e",ousli:"ous",ization:"ize",ation:"ate",ator:"ate",alism:"al",iveness:"ive",fulness:"ful",ousness:"ous",aliti:"al",iviti:"ive",biliti:"ble",logi:"log"},e={icate:"ic",ative:"",alize:"al",iciti:"ic",ical:"ic",ful:"",ness:""},n="[^aeiou]",i="[aeiouy]",o=n+"[^aeiouy]*",r=i+"[aeiou]*",s="^("+o+")?"+r+o,a="^("+o+")?"+r+o+"("+r+")?$",h="^("+o+")?"+r+o+r+o,l="^("+o+")?"+i,u=new RegExp(s),c=new RegExp(h),f=new RegExp(a),d=new RegExp(l),p=/^(.+?)(ss|i)es$/,m=/^(.+?)([^s])s$/,v=/^(.+?)eed$/,y=/^(.+?)(ed|ing)$/,g=/.$/,S=/(at|bl|iz)$/,w=new RegExp("([^aeiouylsz])\\1$"),x=new RegExp("^"+o+i+"[^aeiouwxy]$"),k=/^(.+?[^aeiou])y$/,b=/^(.+?)(ational|tional|enci|anci|izer|bli|alli|entli|eli|ousli|ization|ation|ator|alism|iveness|fulness|ousness|aliti|iviti|biliti|logi)$/,E=/^(.+?)(icate|ative|alize|iciti|ical|ful|ness)$/,_=/^(.+?)(al|ance|ence|er|ic|able|ible|ant|ement|ment|ent|ou|ism|ate|iti|ous|ive|ize)$/,F=/^(.+?)(s|t)(ion)$/,O=/^(.+?)e$/,P=/ll$/,N=new RegExp("^"+o+i+"[^aeiouwxy]$"),T=function(n){var i,o,r,s,a,h,l;if(n.length<3)return n;if(r=n.substr(0,1),"y"==r&&(n=r.toUpperCase()+n.substr(1)),s=p,a=m,s.test(n)?n=n.replace(s,"$1$2"):a.test(n)&&(n=n.replace(a,"$1$2")),s=v,a=y,s.test(n)){var T=s.exec(n);s=u,s.test(T[1])&&(s=g,n=n.replace(s,""))}else if(a.test(n)){var T=a.exec(n);i=T[1],a=d,a.test(i)&&(n=i,a=S,h=w,l=x,a.test(n)?n+="e":h.test(n)?(s=g,n=n.replace(s,"")):l.test(n)&&(n+="e"))}if(s=k,s.test(n)){var T=s.exec(n);i=T[1],n=i+"i"}if(s=b,s.test(n)){var T=s.exec(n);i=T[1],o=T[2],s=u,s.test(i)&&(n=i+t[o])}if(s=E,s.test(n)){var T=s.exec(n);i=T[1],o=T[2],s=u,s.test(i)&&(n=i+e[o])}if(s=_,a=F,s.test(n)){var T=s.exec(n);i=T[1],s=c,s.test(i)&&(n=i)}else if(a.test(n)){var T=a.exec(n);i=T[1]+T[2],a=c,a.test(i)&&(n=i)}if(s=O,s.test(n)){var T=s.exec(n);i=T[1],s=c,a=f,h=N,(s.test(i)||a.test(i)&&!h.test(i))&&(n=i)}return s=P,a=c,s.test(n)&&a.test(n)&&(s=g,n=n.replace(s,"")),"y"==r&&(n=r.toLowerCase()+n.substr(1)),n};return T}(),t.Pipeline.registerFunction(t.stemmer,"stemmer"),t.stopWordFilter=function(e){return e&&t.stopWordFilter.stopWords[e]!==e?e:void 0},t.stopWordFilter.stopWords={a:"a",able:"able",about:"about",across:"across",after:"after",all:"all",almost:"almost",also:"also",am:"am",among:"among",an:"an",and:"and",any:"any",are:"are",as:"as",at:"at",be:"be",because:"because",been:"been",but:"but",by:"by",can:"can",cannot:"cannot",could:"could",dear:"dear",did:"did","do":"do",does:"does",either:"either","else":"else",ever:"ever",every:"every","for":"for",from:"from",get:"get",got:"got",had:"had",has:"has",have:"have",he:"he",her:"her",hers:"hers",him:"him",his:"his",how:"how",however:"however",i:"i","if":"if","in":"in",into:"into",is:"is",it:"it",its:"its",just:"just",least:"least",let:"let",like:"like",likely:"likely",may:"may",me:"me",might:"might",most:"most",must:"must",my:"my",neither:"neither",no:"no",nor:"nor",not:"not",of:"of",off:"off",often:"often",on:"on",only:"only",or:"or",other:"other",our:"our",own:"own",rather:"rather",said:"said",say:"say",says:"says",she:"she",should:"should",since:"since",so:"so",some:"some",than:"than",that:"that",the:"the",their:"their",them:"them",then:"then",there:"there",these:"these",they:"they","this":"this",tis:"tis",to:"to",too:"too",twas:"twas",us:"us",wants:"wants",was:"was",we:"we",were:"were",what:"what",when:"when",where:"where",which:"which","while":"while",who:"who",whom:"whom",why:"why",will:"will","with":"with",would:"would",yet:"yet",you:"you",your:"your"},t.Pipeline.registerFunction(t.stopWordFilter,"stopWordFilter"),t.trimmer=function(t){var e=t.replace(/^\W+/,"").replace(/\W+$/,"");return""===e?void 0:e},t.Pipeline.registerFunction(t.trimmer,"trimmer"),t.TokenStore=function(){this.root={docs:{}},this.length=0},t.TokenStore.load=function(t){var e=new this;return e.root=t.root,e.length=t.length,e},t.TokenStore.prototype.add=function(t,e,n){var n=n||this.root,i=t[0],o=t.slice(1);return i in n||(n[i]={docs:{}}),0===o.length?(n[i].docs[e.ref]=e,void(this.length+=1)):this.add(o,e,n[i])},t.TokenStore.prototype.has=function(t){if(!t)return!1;for(var e=this.root,n=0;no;o++){for(var r=t[o],s=0;i>s&&(r=this._stack[s](r,o,t),void 0!==r);s++);void 0!==r&&e.push(r)}return e},t.Pipeline.prototype.reset=function(){this._stack=[]},t.Pipeline.prototype.toJSON=function(){return this._stack.map(function(e){return t.Pipeline.warnIfFunctionNotRegistered(e),e.label})},t.Vector=function(){this._magnitude=null,this.list=void 0,this.length=0},t.Vector.Node=function(t,e,n){this.idx=t,this.val=e,this.next=n},t.Vector.prototype.insert=function(e,n){this._magnitude=void 0;var i=this.list;if(!i)return this.list=new t.Vector.Node(e,n,i),this.length++;if(en.idx?n=n.next:(i+=e.val*n.val,e=e.next,n=n.next);return i},t.Vector.prototype.similarity=function(t){return this.dot(t)/(this.magnitude()*t.magnitude())},t.SortedSet=function(){this.length=0,this.elements=[]},t.SortedSet.load=function(t){var e=new this;return e.elements=t,e.length=t.length,e},t.SortedSet.prototype.add=function(){var t,e;for(t=0;t1;){if(r===t)return o;t>r&&(e=o),r>t&&(n=o),i=n-e,o=e+Math.floor(i/2),r=this.elements[o]}return r===t?o:-1},t.SortedSet.prototype.locationFor=function(t){for(var e=0,n=this.elements.length,i=n-e,o=e+Math.floor(i/2),r=this.elements[o];i>1;)t>r&&(e=o),r>t&&(n=o),i=n-e,o=e+Math.floor(i/2),r=this.elements[o];return r>t?o:t>r?o+1:void 0},t.SortedSet.prototype.intersect=function(e){for(var n=new t.SortedSet,i=0,o=0,r=this.length,s=e.length,a=this.elements,h=e.elements;;){if(i>r-1||o>s-1)break;a[i]!==h[o]?a[i]h[o]&&o++:(n.add(a[i]),i++,o++)}return n},t.SortedSet.prototype.clone=function(){var e=new t.SortedSet;return e.elements=this.toArray(),e.length=e.elements.length,e},t.SortedSet.prototype.union=function(t){var e,n,i;return this.length>=t.length?(e=this,n=t):(e=t,n=this),i=e.clone(),i.add.apply(i,n.toArray()),i},t.SortedSet.prototype.toJSON=function(){return this.toArray()},t.Index=function(){this._fields=[],this._ref="id",this.pipeline=new t.Pipeline,this.documentStore=new t.Store,this.tokenStore=new t.TokenStore,this.corpusTokens=new t.SortedSet,this.eventEmitter=new t.EventEmitter,this._idfCache={},this.on("add","remove","update",function(){this._idfCache={}}.bind(this))},t.Index.prototype.on=function(){var t=Array.prototype.slice.call(arguments);return this.eventEmitter.addListener.apply(this.eventEmitter,t)},t.Index.prototype.off=function(t,e){return this.eventEmitter.removeListener(t,e)},t.Index.load=function(e){e.version!==t.version&&t.utils.warn("version mismatch: current "+t.version+" importing "+e.version);var n=new this;return n._fields=e.fields,n._ref=e.ref,n.documentStore=t.Store.load(e.documentStore),n.tokenStore=t.TokenStore.load(e.tokenStore),n.corpusTokens=t.SortedSet.load(e.corpusTokens),n.pipeline=t.Pipeline.load(e.pipeline),n},t.Index.prototype.field=function(t,e){var e=e||{},n={name:t,boost:e.boost||1};return this._fields.push(n),this},t.Index.prototype.ref=function(t){return this._ref=t,this},t.Index.prototype.add=function(e,n){var i={},o=new t.SortedSet,r=e[this._ref],n=void 0===n?!0:n;this._fields.forEach(function(n){var r=this.pipeline.run(t.tokenizer(e[n.name]));i[n.name]=r,t.SortedSet.prototype.add.apply(o,r)},this),this.documentStore.set(r,o),t.SortedSet.prototype.add.apply(this.corpusTokens,o.toArray());for(var s=0;s0&&(i=1+Math.log(this.documentStore.length/n)),this._idfCache[e]=i},t.Index.prototype.search=function(e){var n=this.pipeline.run(t.tokenizer(e)),i=new t.Vector,o=[],r=this._fields.reduce(function(t,e){return t+e.boost},0),s=n.some(function(t){return this.tokenStore.has(t)},this);if(!s)return[];n.forEach(function(e,n,s){var a=1/s.length*this._fields.length*r,h=this,l=this.tokenStore.expand(e).reduce(function(n,o){var r=h.corpusTokens.indexOf(o),s=h.idf(o),l=1,u=new t.SortedSet;if(o!==e){var c=Math.max(3,o.length-e.length);l=1/Math.log(c)}return r>-1&&i.insert(r,a*s*l),Object.keys(h.tokenStore.get(o)).forEach(function(t){u.add(t)}),n.union(u)},new t.SortedSet);o.push(l)},this);var a=o.reduce(function(t,e){return t.intersect(e)});return a.map(function(t){return{ref:t,score:i.similarity(this.documentVector(t))}},this).sort(function(t,e){return e.score-t.score})},t.Index.prototype.documentVector=function(e){for(var n=this.documentStore.get(e),i=n.length,o=new t.Vector,r=0;i>r;r++){var s=n.elements[r],a=this.tokenStore.get(s)[e].tf,h=this.idf(s);o.insert(this.corpusTokens.indexOf(s),a*h)}return o},t.Index.prototype.toJSON=function(){return{version:t.version,fields:this._fields,ref:this._ref,documentStore:this.documentStore.toJSON(),tokenStore:this.tokenStore.toJSON(),corpusTokens:this.corpusTokens.toJSON(),pipeline:this.pipeline.toJSON()}},t.Index.prototype.use=function(t){var e=Array.prototype.slice.call(arguments,1);e.unshift(this),t.apply(this,e)},t.Store=function(){this.store={},this.length=0},t.Store.load=function(e){var n=new this;return n.length=e.length,n.store=Object.keys(e.store).reduce(function(n,i){return n[i]=t.SortedSet.load(e.store[i]),n},{}),n},t.Store.prototype.set=function(t,e){this.has(t)||this.length++,this.store[t]=e},t.Store.prototype.get=function(t){return this.store[t]},t.Store.prototype.has=function(t){return t in this.store},t.Store.prototype.remove=function(t){this.has(t)&&(delete this.store[t],this.length--)},t.Store.prototype.toJSON=function(){return{store:this.store,length:this.length}},t.stemmer=function(){var t={ational:"ate",tional:"tion",enci:"ence",anci:"ance",izer:"ize",bli:"ble",alli:"al",entli:"ent",eli:"e",ousli:"ous",ization:"ize",ation:"ate",ator:"ate",alism:"al",iveness:"ive",fulness:"ful",ousness:"ous",aliti:"al",iviti:"ive",biliti:"ble",logi:"log"},e={icate:"ic",ative:"",alize:"al",iciti:"ic",ical:"ic",ful:"",ness:""},n="[^aeiou]",i="[aeiouy]",o=n+"[^aeiouy]*",r=i+"[aeiou]*",s="^("+o+")?"+r+o,a="^("+o+")?"+r+o+"("+r+")?$",h="^("+o+")?"+r+o+r+o,l="^("+o+")?"+i,u=new RegExp(s),c=new RegExp(h),f=new RegExp(a),d=new RegExp(l),p=/^(.+?)(ss|i)es$/,m=/^(.+?)([^s])s$/,v=/^(.+?)eed$/,y=/^(.+?)(ed|ing)$/,g=/.$/,S=/(at|bl|iz)$/,w=new RegExp("([^aeiouylsz])\\1$"),x=new RegExp("^"+o+i+"[^aeiouwxy]$"),k=/^(.+?[^aeiou])y$/,b=/^(.+?)(ational|tional|enci|anci|izer|bli|alli|entli|eli|ousli|ization|ation|ator|alism|iveness|fulness|ousness|aliti|iviti|biliti|logi)$/,E=/^(.+?)(icate|ative|alize|iciti|ical|ful|ness)$/,_=/^(.+?)(al|ance|ence|er|ic|able|ible|ant|ement|ment|ent|ou|ism|ate|iti|ous|ive|ize)$/,F=/^(.+?)(s|t)(ion)$/,O=/^(.+?)e$/,P=/ll$/,N=new RegExp("^"+o+i+"[^aeiouwxy]$"),T=function(n){var i,o,r,s,a,h,l;if(n.length<3)return n;if(r=n.substr(0,1),"y"==r&&(n=r.toUpperCase()+n.substr(1)),s=p,a=m,s.test(n)?n=n.replace(s,"$1$2"):a.test(n)&&(n=n.replace(a,"$1$2")),s=v,a=y,s.test(n)){var T=s.exec(n);s=u,s.test(T[1])&&(s=g,n=n.replace(s,""))}else if(a.test(n)){var T=a.exec(n);i=T[1],a=d,a.test(i)&&(n=i,a=S,h=w,l=x,a.test(n)?n+="e":h.test(n)?(s=g,n=n.replace(s,"")):l.test(n)&&(n+="e"))}if(s=k,s.test(n)){var T=s.exec(n);i=T[1],n=i+"i"}if(s=b,s.test(n)){var T=s.exec(n);i=T[1],o=T[2],s=u,s.test(i)&&(n=i+t[o])}if(s=E,s.test(n)){var T=s.exec(n);i=T[1],o=T[2],s=u,s.test(i)&&(n=i+e[o])}if(s=_,a=F,s.test(n)){var T=s.exec(n);i=T[1],s=c,s.test(i)&&(n=i)}else if(a.test(n)){var T=a.exec(n);i=T[1]+T[2],a=c,a.test(i)&&(n=i)}if(s=O,s.test(n)){var T=s.exec(n);i=T[1],s=c,a=f,h=N,(s.test(i)||a.test(i)&&!h.test(i))&&(n=i)}return s=P,a=c,s.test(n)&&a.test(n)&&(s=g,n=n.replace(s,"")),"y"==r&&(n=r.toLowerCase()+n.substr(1)),n};return T}(),t.Pipeline.registerFunction(t.stemmer,"stemmer"),t.stopWordFilter=function(e){return e&&t.stopWordFilter.stopWords[e]!==e?e:void 0},t.stopWordFilter.stopWords={a:"a",able:"able",about:"about",across:"across",after:"after",all:"all",almost:"almost",also:"also",am:"am",among:"among",an:"an",and:"and",any:"any",are:"are",as:"as",at:"at",be:"be",because:"because",been:"been",but:"but",by:"by",can:"can",cannot:"cannot",could:"could",dear:"dear",did:"did","do":"do",does:"does",either:"either","else":"else",ever:"ever",every:"every","for":"for",from:"from",get:"get",got:"got",had:"had",has:"has",have:"have",he:"he",her:"her",hers:"hers",him:"him",his:"his",how:"how",however:"however",i:"i","if":"if","in":"in",into:"into",is:"is",it:"it",its:"its",just:"just",least:"least",let:"let",like:"like",likely:"likely",may:"may",me:"me",might:"might",most:"most",must:"must",my:"my",neither:"neither",no:"no",nor:"nor",not:"not",of:"of",off:"off",often:"often",on:"on",only:"only",or:"or",other:"other",our:"our",own:"own",rather:"rather",said:"said",say:"say",says:"says",she:"she",should:"should",since:"since",so:"so",some:"some",than:"than",that:"that",the:"the",their:"their",them:"them",then:"then",there:"there",these:"these",they:"they","this":"this",tis:"tis",to:"to",too:"too",twas:"twas",us:"us",wants:"wants",was:"was",we:"we",were:"were",what:"what",when:"when",where:"where",which:"which","while":"while",who:"who",whom:"whom",why:"why",will:"will","with":"with",would:"would",yet:"yet",you:"you",your:"your"},t.Pipeline.registerFunction(t.stopWordFilter,"stopWordFilter"),t.trimmer=function(t){var e=t.replace(/^\W+/,"").replace(/\W+$/,"");return""===e?void 0:e},t.Pipeline.registerFunction(t.trimmer,"trimmer"),t.TokenStore=function(){this.root={docs:{}},this.length=0},t.TokenStore.load=function(t){var e=new this;return e.root=t.root,e.length=t.length,e},t.TokenStore.prototype.add=function(t,e,n){var n=n||this.root,i=t[0],o=t.slice(1);return i in n||(n[i]={docs:{}}),0===o.length?(n[i].docs[e.ref]=e,void(this.length+=1)):this.add(o,e,n[i])},t.TokenStore.prototype.has=function(t){if(!t)return!1;for(var e=this.root,n=0;n element for each result + res.results.forEach(function(res) { + var $li = $('
    • ', { + 'class': 'search-results-item' + }); + + var $title = $('

      '); + + var $link = $('', { + 'href': gitbook.state.basePath + '/' + res.url, + 'text': res.title + }); + + var content = res.body.trim(); + if (content.length > MAX_DESCRIPTION_SIZE) { + content = content.slice(0, MAX_DESCRIPTION_SIZE).trim()+'...'; + } + var $content = $('

      ').html(content); + + $link.appendTo($title); + $title.appendTo($li); + $content.appendTo($li); + $li.appendTo($searchList); + }); + } + + function launchSearch(q) { + // Add class for loading + $body.addClass('with-search'); + $body.addClass('search-loading'); + + // Launch search query + throttle(gitbook.search.query(q, 0, MAX_RESULTS) + .then(function(results) { + displayResults(results); + }) + .always(function() { + $body.removeClass('search-loading'); + }), 1000); + } + + function closeSearch() { + $body.removeClass('with-search'); + $bookSearchResults.removeClass('open'); + } + + function launchSearchFromQueryString() { + var q = getParameterByName('q'); + if (q && q.length > 0) { + // Update search input + $searchInput.val(q); + + // Launch search + launchSearch(q); + } + } + + function bindSearch() { + // Bind DOM + $searchInput = $('#book-search-input input'); + $bookSearchResults = $('#book-search-results'); + $searchList = $bookSearchResults.find('.search-results-list'); + $searchTitle = $bookSearchResults.find('.search-results-title'); + $searchResultsCount = $searchTitle.find('.search-results-count'); + $searchQuery = $searchTitle.find('.search-query'); + + // Launch query based on input content + function handleUpdate() { + var q = $searchInput.val(); + + if (q.length == 0) { + closeSearch(); + } + else { + launchSearch(q); + } + } + + // Detect true content change in search input + // Workaround for IE < 9 + var propertyChangeUnbound = false; + $searchInput.on('propertychange', function(e) { + if (e.originalEvent.propertyName == 'value') { + handleUpdate(); + } + }); + + // HTML5 (IE9 & others) + $searchInput.on('input', function(e) { + // Unbind propertychange event for IE9+ + if (!propertyChangeUnbound) { + $(this).unbind('propertychange'); + propertyChangeUnbound = true; + } + + handleUpdate(); + }); + + // Push to history on blur + $searchInput.on('blur', function(e) { + // Update history state + if (usePushState) { + var uri = updateQueryString('q', $(this).val()); + history.pushState({ path: uri }, null, uri); + } + }); + } + + gitbook.events.on('page.change', function() { + bindSearch(); + closeSearch(); + + // Launch search based on query parameter + if (gitbook.search.isInitialized()) { + launchSearchFromQueryString(); + } + }); + + gitbook.events.on('search.ready', function() { + bindSearch(); + + // Launch search from query param at start + launchSearchFromQueryString(); + }); + + function getParameterByName(name) { + var url = window.location.href; + name = name.replace(/[\[\]]/g, '\\$&'); + var regex = new RegExp('[?&]' + name + '(=([^&#]*)|&|#|$)', 'i'), + results = regex.exec(url); + if (!results) return null; + if (!results[2]) return ''; + return decodeURIComponent(results[2].replace(/\+/g, ' ')); + } + + function updateQueryString(key, value) { + value = encodeURIComponent(value); + + var url = window.location.href; + var re = new RegExp('([?&])' + key + '=.*?(&|#|$)(.*)', 'gi'), + hash; + + if (re.test(url)) { + if (typeof value !== 'undefined' && value !== null) + return url.replace(re, '$1' + key + '=' + value + '$2$3'); + else { + hash = url.split('#'); + url = hash[0].replace(re, '$1$3').replace(/(&|\?)$/, ''); + if (typeof hash[1] !== 'undefined' && hash[1] !== null) + url += '#' + hash[1]; + return url; + } + } + else { + if (typeof value !== 'undefined' && value !== null) { + var separator = url.indexOf('?') !== -1 ? '&' : '?'; + hash = url.split('#'); + url = hash[0] + separator + key + '=' + value; + if (typeof hash[1] !== 'undefined' && hash[1] !== null) + url += '#' + hash[1]; + return url; + } + else + return url; + } + } +}); diff --git a/docs/manuals/ADMIN/html/gitbook/gitbook.js b/docs/manuals/ADMIN/html/gitbook/gitbook.js new file mode 100644 index 00000000..74e2b3b3 --- /dev/null +++ b/docs/manuals/ADMIN/html/gitbook/gitbook.js @@ -0,0 +1 @@ +!function r(o,i,a){function s(t,e){if(!i[t]){if(!o[t]){var n="function"==typeof require&&require;if(!e&&n)return n(t,!0);if(u)return u(t,!0);throw(e=new Error("Cannot find module '"+t+"'")).code="MODULE_NOT_FOUND",e}n=i[t]={exports:{}},o[t][0].call(n.exports,function(e){return s(o[t][1][e]||e)},n,n.exports,r,o,i,a)}return i[t].exports}for(var u="function"==typeof require&&require,e=0;e= 0x80 (not a basic code point)","invalid-input":"Invalid input"},p=m-1,b=Math.floor,x=String.fromCharCode;function w(e){throw new RangeError(f[e])}function h(e,t){for(var n=e.length,r=[];n--;)r[n]=t(e[n]);return r}function d(e,t){var n=e.split("@"),r="",n=(1>>10&1023|55296),e=56320|1023&e),t+=x(e)}).join("")}function A(e,t){return e+22+75*(e<26)-((0!=t)<<5)}function j(e,t,n){var r=0;for(e=n?b(e/s):e>>1,e+=b(e/t);p*v>>1b((g-c)/i))&&w("overflow"),c+=s*i,!(s<(s=a<=p?1:p+v<=a?v:a-p));a+=m)i>b(g/(s=m-s))&&w("overflow"),i*=s;p=j(c-o,t=u.length+1,0==o),b(c/t)>g-f&&w("overflow"),f+=b(c/t),c%=t,u.splice(c++,0,f)}return y(u)}function C(e){for(var t,n,r,o,i,a,s,u,l,c,f=[],p=(e=S(e)).length,h=128,d=72,y=t=0;yb((g-t)/(u=n+1))&&w("overflow"),t+=(o-h)*u,h=o,y=0;yg&&w("overflow"),s==h){for(i=t,a=m;!(i<(l=a<=d?1:d+v<=a?v:a-d));a+=m)f.push(x(A(l+(c=i-l)%(l=m-l),0))),i=b(c/l);f.push(x(A(i,0))),d=j(t,u,n==r),t=0,++n}++t,++h}return f.join("")}if(o={version:"1.4.1",ucs2:{decode:S,encode:y},decode:T,encode:C,toASCII:function(e){return d(e,function(e){return l.test(e)?"xn--"+C(e):e})},toUnicode:function(e){return d(e,function(e){return u.test(e)?T(e.slice(4).toLowerCase()):e})}},"function"==typeof define&&"object"==typeof define.amd&&define.amd)define("punycode",function(){return o});else if(t&&n)if(k.exports==t)n.exports=o;else for(i in o)o.hasOwnProperty(i)&&(t[i]=o[i]);else e.punycode=o}.call(this)}.call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{}],3:[function(e,t,n){"use strict";var r=e("get-intrinsic"),o=e("./"),i=o(r("String.prototype.indexOf"));t.exports=function(e,t){t=r(e,!!t);return"function"==typeof t&&-1=n.length?(u=!!(f=d(i,l)))&&"get"in f&&!("originalValue"in f.get)?f.get:i[l]:(u=b(i,l),i[l]),u&&!a&&(g[c]=i)}}return i}},{"function-bind":6,has:11,"has-proto":8,"has-symbols":9}],8:[function(e,t,n){"use strict";var r={foo:{}},o=Object;t.exports=function(){return{__proto__:r}.foo===r.foo&&!({__proto__:null}instanceof o)}},{}],9:[function(e,t,n){"use strict";var r="undefined"!=typeof Symbol&&Symbol,o=e("./shams");t.exports=function(){return"function"==typeof r&&("function"==typeof Symbol&&("symbol"==typeof r("foo")&&("symbol"==typeof Symbol("bar")&&o())))}},{"./shams":10}],10:[function(e,t,n){"use strict";t.exports=function(){if("function"!=typeof Symbol||"function"!=typeof Object.getOwnPropertySymbols)return!1;if("symbol"!=typeof Symbol.iterator){var e={},t=Symbol("test"),n=Object(t);if("string"==typeof t)return!1;if("[object Symbol]"!==Object.prototype.toString.call(t))return!1;if("[object Symbol]"!==Object.prototype.toString.call(n))return!1;for(t in e[t]=42,e)return!1;if("function"==typeof Object.keys&&0!==Object.keys(e).length)return!1;if("function"==typeof Object.getOwnPropertyNames&&0!==Object.getOwnPropertyNames(e).length)return!1;n=Object.getOwnPropertySymbols(e);if(1!==n.length||n[0]!==t)return!1;if(!Object.prototype.propertyIsEnumerable.call(e,t))return!1;if("function"==typeof Object.getOwnPropertyDescriptor){n=Object.getOwnPropertyDescriptor(e,t);if(42!==n.value||!0!==n.enumerable)return!1}}return!0}},{}],11:[function(e,t,n){"use strict";e=e("function-bind");t.exports=e.call(Function.call,Object.prototype.hasOwnProperty)},{"function-bind":6}],12:[function(e,n,t){!function(e,t){"use strict";"object"==typeof n&&"object"==typeof n.exports?n.exports=e.document?t(e,!0):function(e){if(e.document)return t(e);throw new Error("jQuery requires a window with a document")}:t(e)}("undefined"!=typeof window?window:this,function(w,I){"use strict";function v(e){return"function"==typeof e&&"number"!=typeof e.nodeType}function y(e){return null!=e&&e===e.window}var t=[],F=Object.getPrototypeOf,s=t.slice,M=t.flat?function(e){return t.flat.call(e)}:function(e){return t.concat.apply([],e)},H=t.push,_=t.indexOf,B={},W=B.toString,$=B.hasOwnProperty,U=$.toString,z=U.call(Object),g={},S=w.document,G={type:!0,src:!0,nonce:!0,noModule:!0};function V(e,t,n){var r,o,i=(n=n||S).createElement("script");if(i.text=e,t)for(r in G)(o=t[r]||t.getAttribute&&t.getAttribute(r))&&i.setAttribute(r,o);n.head.appendChild(i).parentNode.removeChild(i)}function d(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?B[W.call(e)]||"object":typeof e}var A=function(e,t){return new A.fn.init(e,t)};function X(e){var t=!!e&&"length"in e&&e.length,n=d(e);return!v(e)&&!y(e)&&("array"===n||0===t||"number"==typeof t&&0>10|55296,1023&e|56320))}function F(e,t){return t?"\0"===e?"�":e.slice(0,-1)+"\\"+e.charCodeAt(e.length-1).toString(16)+" ":"\\"+e}function M(){S()}var e,p,x,i,H,h,_,B,w,u,l,S,A,n,j,d,r,o,y,T="sizzle"+ +new Date,c=I.document,C=0,W=0,$=D(),U=D(),z=D(),g=D(),G=function(e,t){return e===t&&(l=!0),0},V={}.hasOwnProperty,t=[],X=t.pop,Q=t.push,E=t.push,J=t.slice,v=function(e,t){for(var n=0,r=e.length;n+~]|"+a+")"+a+"*"),re=new RegExp(a+"|>"),oe=new RegExp(Z),ie=new RegExp("^"+s+"$"),b={ID:new RegExp("^#("+s+")"),CLASS:new RegExp("^\\.("+s+")"),TAG:new RegExp("^("+s+"|[*])"),ATTR:new RegExp("^"+K),PSEUDO:new RegExp("^"+Z),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+a+"*(even|odd|(([+-]|)(\\d*)n|)"+a+"*(?:([+-]|)"+a+"*(\\d+)|))"+a+"*\\)|)","i"),bool:new RegExp("^(?:"+Y+")$","i"),needsContext:new RegExp("^"+a+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+a+"*((?:-\\d)?\\d*)"+a+"*\\)|)(?=[^-]|$)","i")},ae=/HTML$/i,se=/^(?:input|select|textarea|button)$/i,ue=/^h\d$/i,k=/^[^{]+\{\s*\[native \w/,le=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,ce=/[+~]/,O=new RegExp("\\\\[\\da-fA-F]{1,6}"+a+"?|\\\\([^\\r\\n\\f])","g"),fe=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,pe=ve(function(e){return!0===e.disabled&&"fieldset"===e.nodeName.toLowerCase()},{dir:"parentNode",next:"legend"});try{E.apply(t=J.call(c.childNodes),c.childNodes),t[c.childNodes.length].nodeType}catch(e){E={apply:t.length?function(e,t){Q.apply(e,J.call(t))}:function(e,t){for(var n=e.length,r=0;e[n++]=t[r++];);e.length=n-1}}}function N(t,e,n,r){var o,i,a,s,u,l,c=e&&e.ownerDocument,f=e?e.nodeType:9;if(n=n||[],"string"!=typeof t||!t||1!==f&&9!==f&&11!==f)return n;if(!r&&(S(e),e=e||A,j)){if(11!==f&&(s=le.exec(t)))if(o=s[1]){if(9===f){if(!(l=e.getElementById(o)))return n;if(l.id===o)return n.push(l),n}else if(c&&(l=c.getElementById(o))&&y(e,l)&&l.id===o)return n.push(l),n}else{if(s[2])return E.apply(n,e.getElementsByTagName(t)),n;if((o=s[3])&&p.getElementsByClassName&&e.getElementsByClassName)return E.apply(n,e.getElementsByClassName(o)),n}if(p.qsa&&!g[t+" "]&&(!d||!d.test(t))&&(1!==f||"object"!==e.nodeName.toLowerCase())){if(l=t,c=e,1===f&&(re.test(t)||ne.test(t))){for((c=ce.test(t)&&ge(e.parentNode)||e)===e&&p.scope||((a=e.getAttribute("id"))?a=a.replace(fe,F):e.setAttribute("id",a=T)),i=(u=h(t)).length;i--;)u[i]=(a?"#"+a:":scope")+" "+R(u[i]);l=u.join(",")}try{return E.apply(n,c.querySelectorAll(l)),n}catch(e){g(t,!0)}finally{a===T&&e.removeAttribute("id")}}}return B(t.replace(m,"$1"),e,n,r)}function D(){var n=[];function r(e,t){return n.push(e+" ")>x.cacheLength&&delete r[n.shift()],r[e+" "]=t}return r}function P(e){return e[T]=!0,e}function q(e){var t=A.createElement("fieldset");try{return!!e(t)}catch(e){return!1}finally{t.parentNode&&t.parentNode.removeChild(t)}}function he(e,t){for(var n=e.split("|"),r=n.length;r--;)x.attrHandle[n[r]]=t}function de(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&e.sourceIndex-t.sourceIndex;if(r)return r;if(n)for(;n=n.nextSibling;)if(n===t)return-1;return e?1:-1}function ye(t){return function(e){return"form"in e?e.parentNode&&!1===e.disabled?"label"in e?"label"in e.parentNode?e.parentNode.disabled===t:e.disabled===t:e.isDisabled===t||e.isDisabled!==!t&&pe(e)===t:e.disabled===t:"label"in e&&e.disabled===t}}function L(a){return P(function(i){return i=+i,P(function(e,t){for(var n,r=a([],e.length,i),o=r.length;o--;)e[n=r[o]]&&(e[n]=!(t[n]=e[n]))})})}function ge(e){return e&&void 0!==e.getElementsByTagName&&e}for(e in p=N.support={},H=N.isXML=function(e){var t=e.namespaceURI,e=(e.ownerDocument||e).documentElement;return!ae.test(t||e&&e.nodeName||"HTML")},S=N.setDocument=function(e){var e=e?e.ownerDocument||e:c;return e!=A&&9===e.nodeType&&e.documentElement&&(n=(A=e).documentElement,j=!H(A),c!=A&&(e=A.defaultView)&&e.top!==e&&(e.addEventListener?e.addEventListener("unload",M,!1):e.attachEvent&&e.attachEvent("onunload",M)),p.scope=q(function(e){return n.appendChild(e).appendChild(A.createElement("div")),void 0!==e.querySelectorAll&&!e.querySelectorAll(":scope fieldset div").length}),p.attributes=q(function(e){return e.className="i",!e.getAttribute("className")}),p.getElementsByTagName=q(function(e){return e.appendChild(A.createComment("")),!e.getElementsByTagName("*").length}),p.getElementsByClassName=k.test(A.getElementsByClassName),p.getById=q(function(e){return n.appendChild(e).id=T,!A.getElementsByName||!A.getElementsByName(T).length}),p.getById?(x.filter.ID=function(e){var t=e.replace(O,f);return function(e){return e.getAttribute("id")===t}},x.find.ID=function(e,t){if(void 0!==t.getElementById&&j)return(t=t.getElementById(e))?[t]:[]}):(x.filter.ID=function(e){var t=e.replace(O,f);return function(e){e=void 0!==e.getAttributeNode&&e.getAttributeNode("id");return e&&e.value===t}},x.find.ID=function(e,t){if(void 0!==t.getElementById&&j){var n,r,o,i=t.getElementById(e);if(i){if((n=i.getAttributeNode("id"))&&n.value===e)return[i];for(o=t.getElementsByName(e),r=0;i=o[r++];)if((n=i.getAttributeNode("id"))&&n.value===e)return[i]}return[]}}),x.find.TAG=p.getElementsByTagName?function(e,t){return void 0!==t.getElementsByTagName?t.getElementsByTagName(e):p.qsa?t.querySelectorAll(e):void 0}:function(e,t){var n,r=[],o=0,i=t.getElementsByTagName(e);if("*"!==e)return i;for(;n=i[o++];)1===n.nodeType&&r.push(n);return r},x.find.CLASS=p.getElementsByClassName&&function(e,t){if(void 0!==t.getElementsByClassName&&j)return t.getElementsByClassName(e)},r=[],d=[],(p.qsa=k.test(A.querySelectorAll))&&(q(function(e){var t;n.appendChild(e).innerHTML="",e.querySelectorAll("[msallowcapture^='']").length&&d.push("[*^$]="+a+"*(?:''|\"\")"),e.querySelectorAll("[selected]").length||d.push("\\["+a+"*(?:value|"+Y+")"),e.querySelectorAll("[id~="+T+"-]").length||d.push("~="),(t=A.createElement("input")).setAttribute("name",""),e.appendChild(t),e.querySelectorAll("[name='']").length||d.push("\\["+a+"*name"+a+"*="+a+"*(?:''|\"\")"),e.querySelectorAll(":checked").length||d.push(":checked"),e.querySelectorAll("a#"+T+"+*").length||d.push(".#.+[+~]"),e.querySelectorAll("\\\f"),d.push("[\\r\\n\\f]")}),q(function(e){e.innerHTML="";var t=A.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),e.querySelectorAll("[name=d]").length&&d.push("name"+a+"*[*^$|!~]?="),2!==e.querySelectorAll(":enabled").length&&d.push(":enabled",":disabled"),n.appendChild(e).disabled=!0,2!==e.querySelectorAll(":disabled").length&&d.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),d.push(",.*:")})),(p.matchesSelector=k.test(o=n.matches||n.webkitMatchesSelector||n.mozMatchesSelector||n.oMatchesSelector||n.msMatchesSelector))&&q(function(e){p.disconnectedMatch=o.call(e,"*"),o.call(e,"[s!='']:x"),r.push("!=",Z)}),d=d.length&&new RegExp(d.join("|")),r=r.length&&new RegExp(r.join("|")),e=k.test(n.compareDocumentPosition),y=e||k.test(n.contains)?function(e,t){var n=9===e.nodeType?e.documentElement:e,t=t&&t.parentNode;return e===t||!(!t||1!==t.nodeType||!(n.contains?n.contains(t):e.compareDocumentPosition&&16&e.compareDocumentPosition(t)))}:function(e,t){if(t)for(;t=t.parentNode;)if(t===e)return!0;return!1},G=e?function(e,t){var n;return e===t?(l=!0,0):(n=!e.compareDocumentPosition-!t.compareDocumentPosition)||(1&(n=(e.ownerDocument||e)==(t.ownerDocument||t)?e.compareDocumentPosition(t):1)||!p.sortDetached&&t.compareDocumentPosition(e)===n?e==A||e.ownerDocument==c&&y(c,e)?-1:t==A||t.ownerDocument==c&&y(c,t)?1:u?v(u,e)-v(u,t):0:4&n?-1:1)}:function(e,t){if(e===t)return l=!0,0;var n,r=0,o=e.parentNode,i=t.parentNode,a=[e],s=[t];if(!o||!i)return e==A?-1:t==A?1:o?-1:i?1:u?v(u,e)-v(u,t):0;if(o===i)return de(e,t);for(n=e;n=n.parentNode;)a.unshift(n);for(n=t;n=n.parentNode;)s.unshift(n);for(;a[r]===s[r];)r++;return r?de(a[r],s[r]):a[r]==c?-1:s[r]==c?1:0}),A},N.matches=function(e,t){return N(e,null,null,t)},N.matchesSelector=function(e,t){if(S(e),p.matchesSelector&&j&&!g[t+" "]&&(!r||!r.test(t))&&(!d||!d.test(t)))try{var n=o.call(e,t);if(n||p.disconnectedMatch||e.document&&11!==e.document.nodeType)return n}catch(e){g(t,!0)}return 0":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(O,f),e[3]=(e[3]||e[4]||e[5]||"").replace(O,f),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||N.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&N.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return b.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&oe.test(n)&&(t=h(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(O,f).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=$[e+" "];return t||(t=new RegExp("(^|"+a+")"+e+"("+a+"|$)"))&&$(e,function(e){return t.test("string"==typeof e.className&&e.className||void 0!==e.getAttribute&&e.getAttribute("class")||"")})},ATTR:function(t,n,r){return function(e){e=N.attr(e,t);return null==e?"!="===n:!n||(e+="","="===n?e===r:"!="===n?e!==r:"^="===n?r&&0===e.indexOf(r):"*="===n?r&&-1:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i;function K(e,n,r){return v(n)?A.grep(e,function(e,t){return!!n.call(e,t,e)!==r}):n.nodeType?A.grep(e,function(e){return e===n!==r}):"string"!=typeof n?A.grep(e,function(e){return-1<_.call(n,e)!==r}):A.filter(n,e,r)}A.filter=function(e,t,n){var r=t[0];return n&&(e=":not("+e+")"),1===t.length&&1===r.nodeType?A.find.matchesSelector(r,e)?[r]:[]:A.find.matches(e,A.grep(t,function(e){return 1===e.nodeType}))},A.fn.extend({find:function(e){var t,n,r=this.length,o=this;if("string"!=typeof e)return this.pushStack(A(e).filter(function(){for(t=0;t)[^>]*|#([\w-]+))$/,te=((A.fn.init=function(e,t,n){if(e){if(n=n||Z,"string"!=typeof e)return e.nodeType?(this[0]=e,this.length=1,this):v(e)?void 0!==n.ready?n.ready(e):e(A):A.makeArray(e,this);if(!(r="<"===e[0]&&">"===e[e.length-1]&&3<=e.length?[null,e,null]:ee.exec(e))||!r[1]&&t)return(!t||t.jquery?t||n:this.constructor(t)).find(e);if(r[1]){if(t=t instanceof A?t[0]:t,A.merge(this,A.parseHTML(r[1],t&&t.nodeType?t.ownerDocument||t:S,!0)),Y.test(r[1])&&A.isPlainObject(t))for(var r in t)v(this[r])?this[r](t[r]):this.attr(r,t[r])}else(n=S.getElementById(r[2]))&&(this[0]=n,this.length=1)}return this}).prototype=A.fn,Z=A(S),/^(?:parents|prev(?:Until|All))/),ne={children:!0,contents:!0,next:!0,prev:!0};function re(e,t){for(;(e=e[t])&&1!==e.nodeType;);return e}A.fn.extend({has:function(e){var t=A(e,this),n=t.length;return this.filter(function(){for(var e=0;e\x20\t\r\n\f]*)/i,Ae=/^$|^module$|\/(?:java|ecma)script/i,k=(P=S.createDocumentFragment().appendChild(S.createElement("div")),(a=S.createElement("input")).setAttribute("type","radio"),a.setAttribute("checked","checked"),a.setAttribute("name","t"),P.appendChild(a),g.checkClone=P.cloneNode(!0).cloneNode(!0).lastChild.checked,P.innerHTML="",g.noCloneChecked=!!P.cloneNode(!0).lastChild.defaultValue,P.innerHTML="",g.option=!!P.lastChild,{thead:[1,"","
      "],col:[2,"","
      "],tr:[2,"","
      "],td:[3,"","
      "],_default:[0,"",""]});function O(e,t){var n=void 0!==e.getElementsByTagName?e.getElementsByTagName(t||"*"):void 0!==e.querySelectorAll?e.querySelectorAll(t||"*"):[];return void 0===t||t&&u(e,t)?A.merge([e],n):n}function je(e,t){for(var n=0,r=e.length;n",""]);var Te=/<|&#?\w+;/;function Ce(e,t,n,r,o){for(var i,a,s,u,l,c=t.createDocumentFragment(),f=[],p=0,h=e.length;p\s*$/g;function Ie(e,t){return u(e,"table")&&u(11!==t.nodeType?t:t.firstChild,"tr")&&A(e).children("tbody")[0]||e}function Fe(e){return e.type=(null!==e.getAttribute("type"))+"/"+e.type,e}function Me(e){return"true/"===(e.type||"").slice(0,5)?e.type=e.type.slice(5):e.removeAttribute("type"),e}function He(e,t){var n,r,o,i;if(1===t.nodeType){if(x.hasData(e)&&(i=x.get(e).events))for(o in x.remove(t,"handle events"),i)for(n=0,r=i[o].length;n").attr(n.scriptAttrs||{}).prop({charset:n.scriptCharset,src:n.url}).on("load error",o=function(e){r.remove(),o=null,e&&t("error"===e.type?404:200,e.type)}),S.head.appendChild(r[0])},abort:function(){o&&o()}}}),[]),Yt=/(=)\?(?=&|$)|\?\?/,Kt=(A.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=Jt.pop()||A.expando+"_"+Ot.guid++;return this[e]=!0,e}}),A.ajaxPrefilter("json jsonp",function(e,t,n){var r,o,i,a=!1!==e.jsonp&&(Yt.test(e.url)?"url":"string"==typeof e.data&&0===(e.contentType||"").indexOf("application/x-www-form-urlencoded")&&Yt.test(e.data)&&"data");if(a||"jsonp"===e.dataTypes[0])return r=e.jsonpCallback=v(e.jsonpCallback)?e.jsonpCallback():e.jsonpCallback,a?e[a]=e[a].replace(Yt,"$1"+r):!1!==e.jsonp&&(e.url+=(Nt.test(e.url)?"&":"?")+e.jsonp+"="+r),e.converters["script json"]=function(){return i||A.error(r+" was not called"),i[0]},e.dataTypes[0]="json",o=w[r],w[r]=function(){i=arguments},n.always(function(){void 0===o?A(w).removeProp(r):w[r]=o,e[r]&&(e.jsonpCallback=t.jsonpCallback,Jt.push(r)),i&&v(o)&&o(i[0]),i=o=void 0}),"script"}),g.createHTMLDocument=((e=S.implementation.createHTMLDocument("").body).innerHTML="

      ",2===e.childNodes.length),A.parseHTML=function(e,t,n){var r;return"string"!=typeof e?[]:("boolean"==typeof t&&(n=t,t=!1),t||(g.createHTMLDocument?((r=(t=S.implementation.createHTMLDocument("")).createElement("base")).href=S.location.href,t.head.appendChild(r)):t=S),r=!n&&[],(n=Y.exec(e))?[t.createElement(n[1])]:(n=Ce([e],t,r),r&&r.length&&A(r).remove(),A.merge([],n.childNodes)))},A.fn.load=function(e,t,n){var r,o,i,a=this,s=e.indexOf(" ");return-1").append(A.parseHTML(e)).find(r):e)}).always(n&&function(e,t){a.each(function(){n.apply(this,i||[e.responseText,t,e])})}),this},A.expr.pseudos.animated=function(t){return A.grep(A.timers,function(e){return t===e.elem}).length},A.offset={setOffset:function(e,t,n){var r,o,i,a,s=A.css(e,"position"),u=A(e),l={};"static"===s&&(e.style.position="relative"),i=u.offset(),r=A.css(e,"top"),a=A.css(e,"left"),s=("absolute"===s||"fixed"===s)&&-1<(r+a).indexOf("auto")?(o=(s=u.position()).top,s.left):(o=parseFloat(r)||0,parseFloat(a)||0),null!=(t=v(t)?t.call(e,n,A.extend({},i)):t).top&&(l.top=t.top-i.top+o),null!=t.left&&(l.left=t.left-i.left+s),"using"in t?t.using.call(e,l):("number"==typeof l.top&&(l.top+="px"),"number"==typeof l.left&&(l.left+="px"),u.css(l))}},A.fn.extend({offset:function(t){var e,n;return arguments.length?void 0===t?this:this.each(function(e){A.offset.setOffset(this,t,e)}):(n=this[0])?n.getClientRects().length?(e=n.getBoundingClientRect(),n=n.ownerDocument.defaultView,{top:e.top+n.pageYOffset,left:e.left+n.pageXOffset}):{top:0,left:0}:void 0},position:function(){if(this[0]){var e,t,n,r=this[0],o={top:0,left:0};if("fixed"===A.css(r,"position"))t=r.getBoundingClientRect();else{for(t=this.offset(),n=r.ownerDocument,e=r.offsetParent||n.documentElement;e&&(e===n.body||e===n.documentElement)&&"static"===A.css(e,"position");)e=e.parentNode;e&&e!==r&&1===e.nodeType&&((o=A(e).offset()).top+=A.css(e,"borderTopWidth",!0),o.left+=A.css(e,"borderLeftWidth",!0))}return{top:t.top-o.top-A.css(r,"marginTop",!0),left:t.left-o.left-A.css(r,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){for(var e=this.offsetParent;e&&"static"===A.css(e,"position");)e=e.offsetParent;return e||T})}}),A.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(t,o){var i="pageYOffset"===o;A.fn[t]=function(e){return f(this,function(e,t,n){var r;if(y(e)?r=e:9===e.nodeType&&(r=e.defaultView),void 0===n)return r?r[o]:e[t];r?r.scrollTo(i?r.pageXOffset:n,i?n:r.pageYOffset):e[t]=n},t,e,arguments.length)}}),A.each(["top","left"],function(e,n){A.cssHooks[n]=tt(g.pixelPosition,function(e,t){if(t)return t=et(e,n),Je.test(t)?A(e).position()[n]+"px":t})}),A.each({Height:"height",Width:"width"},function(a,s){A.each({padding:"inner"+a,content:s,"":"outer"+a},function(r,i){A.fn[i]=function(e,t){var n=arguments.length&&(r||"boolean"!=typeof e),o=r||(!0===e||!0===t?"margin":"border");return f(this,function(e,t,n){var r;return y(e)?0===i.indexOf("outer")?e["inner"+a]:e.document.documentElement["client"+a]:9===e.nodeType?(r=e.documentElement,Math.max(e.body["scroll"+a],r["scroll"+a],e.body["offset"+a],r["offset"+a],r["client"+a])):void 0===n?A.css(e,t,o):A.style(e,t,n,o)},s,n?e:void 0,n)}})}),A.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,t){A.fn[t]=function(e){return this.on(t,e)}}),A.fn.extend({bind:function(e,t,n){return this.on(e,null,t,n)},unbind:function(e,t){return this.off(e,null,t)},delegate:function(e,t,n,r){return this.on(t,e,n,r)},undelegate:function(e,t,n){return 1===arguments.length?this.off(e,"**"):this.off(t,e||"**",n)},hover:function(e,t){return this.mouseenter(e).mouseleave(t||e)}}),A.each("blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "),function(e,n){A.fn[n]=function(e,t){return 0 0, or `null`');if(U(a,"numericSeparator")&&"boolean"!=typeof a.numericSeparator)throw new TypeError('option "numericSeparator", if provided, must be `true` or `false`');var t=a.numericSeparator;if(void 0===n)return"undefined";if(null===n)return"null";if("boolean"==typeof n)return n?"true":"false";if("string"==typeof n)return function e(t,n){if(t.length>n.maxStringLength)return r=t.length-n.maxStringLength,r="... "+r+" more character"+(1"}if(B(n))return 0===n.length?"[]":(u=Q(n,y),d&&!function(e){for(var t=0;t "+y(e,n))}),ne("Map",b.call(n),l,d)):function(e){if(w&&e&&"object"==typeof e)try{w.call(e);try{b.call(e)}catch(e){return 1}return e instanceof Set}catch(e){}return}(n)?(c=[],S&&S.call(n,function(e){c.push(y(e,n))}),ne("Set",w.call(n),c,d)):function(e){if(A&&e&&"object"==typeof e)try{A.call(e,A);try{j.call(e,j)}catch(e){return 1}return e instanceof WeakMap}catch(e){}return}(n)?V("WeakMap"):function(e){if(j&&e&&"object"==typeof e)try{j.call(e,j);try{A.call(e,A)}catch(e){return 1}return e instanceof WeakSet}catch(e){}return}(n)?V("WeakSet"):function(e){if(T&&e&&"object"==typeof e)try{return T.call(e),1}catch(e){}return}(n)?V("WeakRef"):"[object Number]"!==z(f=n)||L&&"object"==typeof f&&L in f?function(e){if(e&&"object"==typeof e&&D)try{return D.call(e),1}catch(e){}return}(n)?G(y(D.call(n))):"[object Boolean]"!==z(t=n)||L&&"object"==typeof t&&L in t?"[object String]"!==z(e=n)||L&&"object"==typeof e&&L in e?("[object Date]"!==z(t=n)||L&&"object"==typeof t&&L in t)&&!W(n)?(e=Q(n,y),t=I?I(n)===Object.prototype:n instanceof Object||n.constructor===Object,p=n instanceof Object?"":"null prototype",h=!t&&L&&Object(n)===n&&L in n?C.call(z(n),8,-1):p?"Object":"",t=(!t&&"function"==typeof n.constructor&&n.constructor.name?n.constructor.name+" ":"")+(h||p?"["+N.call(O.call([],h||[],p||[]),": ")+"] ":""),0===e.length?t+"{}":d?t+"{"+X(e,d)+"}":t+"{ "+N.call(e,", ")+" }"):String(n):G(y(String(n))):G(J.call(n)):G(y(Number(n)))};var u=Object.prototype.hasOwnProperty||function(e){return e in this};function U(e,t){return u.call(e,t)}function z(e){return a.call(e)}function ee(e,t){if(e.indexOf)return e.indexOf(t);for(var n=0,r=e.length;n>6]+c[128|63&u]:u<55296||57344<=u?a+=c[224|u>>12]+c[128|u>>6&63]+c[128|63&u]:(s+=1,u=65536+((1023&u)<<10|1023&i.charCodeAt(s)),a+=c[240|u>>18]+c[128|u>>12&63]+c[128|u>>6&63]+c[128|63&u])}return a},isBuffer:function(e){return!(!e||"object"!=typeof e)&&!!(e.constructor&&e.constructor.isBuffer&&e.constructor.isBuffer(e))},isRegExp:function(e){return"[object RegExp]"===Object.prototype.toString.call(e)},maybeMap:function(e,t){if(y(e)){for(var n=[],r=0;r",'"',"`"," ","\r","\n","\t"]),C=["'"].concat(o),E=["%","/","?",";","#"].concat(C),k=["/","?","#"],O=/^[+a-z0-9A-Z_-]{0,63}$/,N=/^([+a-z0-9A-Z_-]{0,63})(.*)$/,D={javascript:!0,"javascript:":!0},P={javascript:!0,"javascript:":!0},q={http:!0,https:!0,ftp:!0,gopher:!0,file:!0,"http:":!0,"https:":!0,"ftp:":!0,"gopher:":!0,"file:":!0},L=e("qs");function i(e,t,n){var r;return e&&"object"==typeof e&&e instanceof w?e:((r=new w).parse(e,t,n),r)}w.prototype.parse=function(e,t,n){if("string"!=typeof e)throw new TypeError("Parameter 'url' must be a string, not "+typeof e);var r=e.indexOf("?"),r=-1!==r&&rli{position:relative}.fa-li{position:absolute;left:-2.14285714em;width:2.14285714em;top:.14285714em;text-align:center}.fa-li.fa-lg{left:-1.85714286em}.fa-border{padding:.2em .25em .15em;border:solid .08em #eee;border-radius:.1em}.fa-pull-left{float:left}.fa-pull-right{float:right}.fa.fa-pull-left{margin-right:.3em}.fa.fa-pull-right{margin-left:.3em}.pull-right{float:right}.pull-left{float:left}.fa.pull-left{margin-right:.3em}.fa.pull-right{margin-left:.3em}.fa-spin{-webkit-animation:fa-spin 2s infinite linear;animation:fa-spin 2s infinite linear}.fa-pulse{-webkit-animation:fa-spin 1s infinite steps(8);animation:fa-spin 1s infinite steps(8)}@-webkit-keyframes fa-spin{0%{-webkit-transform:rotate(0);transform:rotate(0)}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}@keyframes fa-spin{0%{-webkit-transform:rotate(0);transform:rotate(0)}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}.fa-rotate-90{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=1)";-webkit-transform:rotate(90deg);-ms-transform:rotate(90deg);transform:rotate(90deg)}.fa-rotate-180{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2)";-webkit-transform:rotate(180deg);-ms-transform:rotate(180deg);transform:rotate(180deg)}.fa-rotate-270{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=3)";-webkit-transform:rotate(270deg);-ms-transform:rotate(270deg);transform:rotate(270deg)}.fa-flip-horizontal{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)";-webkit-transform:scale(-1,1);-ms-transform:scale(-1,1);transform:scale(-1,1)}.fa-flip-vertical{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)";-webkit-transform:scale(1,-1);-ms-transform:scale(1,-1);transform:scale(1,-1)}:root .fa-flip-horizontal,:root .fa-flip-vertical,:root .fa-rotate-180,:root .fa-rotate-270,:root .fa-rotate-90{filter:none}.fa-stack{position:relative;display:inline-block;width:2em;height:2em;line-height:2em;vertical-align:middle}.fa-stack-1x,.fa-stack-2x{position:absolute;left:0;width:100%;text-align:center}.fa-stack-1x{line-height:inherit}.fa-stack-2x{font-size:2em}.fa-inverse{color:#fff}.fa-glass:before{content:"\f000"}.fa-music:before{content:"\f001"}.fa-search:before{content:"\f002"}.fa-envelope-o:before{content:"\f003"}.fa-heart:before{content:"\f004"}.fa-star:before{content:"\f005"}.fa-star-o:before{content:"\f006"}.fa-user:before{content:"\f007"}.fa-film:before{content:"\f008"}.fa-th-large:before{content:"\f009"}.fa-th:before{content:"\f00a"}.fa-th-list:before{content:"\f00b"}.fa-check:before{content:"\f00c"}.fa-close:before,.fa-remove:before,.fa-times:before{content:"\f00d"}.fa-search-plus:before{content:"\f00e"}.fa-search-minus:before{content:"\f010"}.fa-power-off:before{content:"\f011"}.fa-signal:before{content:"\f012"}.fa-cog:before,.fa-gear:before{content:"\f013"}.fa-trash-o:before{content:"\f014"}.fa-home:before{content:"\f015"}.fa-file-o:before{content:"\f016"}.fa-clock-o:before{content:"\f017"}.fa-road:before{content:"\f018"}.fa-download:before{content:"\f019"}.fa-arrow-circle-o-down:before{content:"\f01a"}.fa-arrow-circle-o-up:before{content:"\f01b"}.fa-inbox:before{content:"\f01c"}.fa-play-circle-o:before{content:"\f01d"}.fa-repeat:before,.fa-rotate-right:before{content:"\f01e"}.fa-refresh:before{content:"\f021"}.fa-list-alt:before{content:"\f022"}.fa-lock:before{content:"\f023"}.fa-flag:before{content:"\f024"}.fa-headphones:before{content:"\f025"}.fa-volume-off:before{content:"\f026"}.fa-volume-down:before{content:"\f027"}.fa-volume-up:before{content:"\f028"}.fa-qrcode:before{content:"\f029"}.fa-barcode:before{content:"\f02a"}.fa-tag:before{content:"\f02b"}.fa-tags:before{content:"\f02c"}.fa-book:before{content:"\f02d"}.fa-bookmark:before{content:"\f02e"}.fa-print:before{content:"\f02f"}.fa-camera:before{content:"\f030"}.fa-font:before{content:"\f031"}.fa-bold:before{content:"\f032"}.fa-italic:before{content:"\f033"}.fa-text-height:before{content:"\f034"}.fa-text-width:before{content:"\f035"}.fa-align-left:before{content:"\f036"}.fa-align-center:before{content:"\f037"}.fa-align-right:before{content:"\f038"}.fa-align-justify:before{content:"\f039"}.fa-list:before{content:"\f03a"}.fa-dedent:before,.fa-outdent:before{content:"\f03b"}.fa-indent:before{content:"\f03c"}.fa-video-camera:before{content:"\f03d"}.fa-image:before,.fa-photo:before,.fa-picture-o:before{content:"\f03e"}.fa-pencil:before{content:"\f040"}.fa-map-marker:before{content:"\f041"}.fa-adjust:before{content:"\f042"}.fa-tint:before{content:"\f043"}.fa-edit:before,.fa-pencil-square-o:before{content:"\f044"}.fa-share-square-o:before{content:"\f045"}.fa-check-square-o:before{content:"\f046"}.fa-arrows:before{content:"\f047"}.fa-step-backward:before{content:"\f048"}.fa-fast-backward:before{content:"\f049"}.fa-backward:before{content:"\f04a"}.fa-play:before{content:"\f04b"}.fa-pause:before{content:"\f04c"}.fa-stop:before{content:"\f04d"}.fa-forward:before{content:"\f04e"}.fa-fast-forward:before{content:"\f050"}.fa-step-forward:before{content:"\f051"}.fa-eject:before{content:"\f052"}.fa-chevron-left:before{content:"\f053"}.fa-chevron-right:before{content:"\f054"}.fa-plus-circle:before{content:"\f055"}.fa-minus-circle:before{content:"\f056"}.fa-times-circle:before{content:"\f057"}.fa-check-circle:before{content:"\f058"}.fa-question-circle:before{content:"\f059"}.fa-info-circle:before{content:"\f05a"}.fa-crosshairs:before{content:"\f05b"}.fa-times-circle-o:before{content:"\f05c"}.fa-check-circle-o:before{content:"\f05d"}.fa-ban:before{content:"\f05e"}.fa-arrow-left:before{content:"\f060"}.fa-arrow-right:before{content:"\f061"}.fa-arrow-up:before{content:"\f062"}.fa-arrow-down:before{content:"\f063"}.fa-mail-forward:before,.fa-share:before{content:"\f064"}.fa-expand:before{content:"\f065"}.fa-compress:before{content:"\f066"}.fa-plus:before{content:"\f067"}.fa-minus:before{content:"\f068"}.fa-asterisk:before{content:"\f069"}.fa-exclamation-circle:before{content:"\f06a"}.fa-gift:before{content:"\f06b"}.fa-leaf:before{content:"\f06c"}.fa-fire:before{content:"\f06d"}.fa-eye:before{content:"\f06e"}.fa-eye-slash:before{content:"\f070"}.fa-exclamation-triangle:before,.fa-warning:before{content:"\f071"}.fa-plane:before{content:"\f072"}.fa-calendar:before{content:"\f073"}.fa-random:before{content:"\f074"}.fa-comment:before{content:"\f075"}.fa-magnet:before{content:"\f076"}.fa-chevron-up:before{content:"\f077"}.fa-chevron-down:before{content:"\f078"}.fa-retweet:before{content:"\f079"}.fa-shopping-cart:before{content:"\f07a"}.fa-folder:before{content:"\f07b"}.fa-folder-open:before{content:"\f07c"}.fa-arrows-v:before{content:"\f07d"}.fa-arrows-h:before{content:"\f07e"}.fa-bar-chart-o:before,.fa-bar-chart:before{content:"\f080"}.fa-twitter-square:before{content:"\f081"}.fa-facebook-square:before{content:"\f082"}.fa-camera-retro:before{content:"\f083"}.fa-key:before{content:"\f084"}.fa-cogs:before,.fa-gears:before{content:"\f085"}.fa-comments:before{content:"\f086"}.fa-thumbs-o-up:before{content:"\f087"}.fa-thumbs-o-down:before{content:"\f088"}.fa-star-half:before{content:"\f089"}.fa-heart-o:before{content:"\f08a"}.fa-sign-out:before{content:"\f08b"}.fa-linkedin-square:before{content:"\f08c"}.fa-thumb-tack:before{content:"\f08d"}.fa-external-link:before{content:"\f08e"}.fa-sign-in:before{content:"\f090"}.fa-trophy:before{content:"\f091"}.fa-github-square:before{content:"\f092"}.fa-upload:before{content:"\f093"}.fa-lemon-o:before{content:"\f094"}.fa-phone:before{content:"\f095"}.fa-square-o:before{content:"\f096"}.fa-bookmark-o:before{content:"\f097"}.fa-phone-square:before{content:"\f098"}.fa-twitter:before{content:"\f099"}.fa-facebook-f:before,.fa-facebook:before{content:"\f09a"}.fa-github:before{content:"\f09b"}.fa-unlock:before{content:"\f09c"}.fa-credit-card:before{content:"\f09d"}.fa-feed:before,.fa-rss:before{content:"\f09e"}.fa-hdd-o:before{content:"\f0a0"}.fa-bullhorn:before{content:"\f0a1"}.fa-bell:before{content:"\f0f3"}.fa-certificate:before{content:"\f0a3"}.fa-hand-o-right:before{content:"\f0a4"}.fa-hand-o-left:before{content:"\f0a5"}.fa-hand-o-up:before{content:"\f0a6"}.fa-hand-o-down:before{content:"\f0a7"}.fa-arrow-circle-left:before{content:"\f0a8"}.fa-arrow-circle-right:before{content:"\f0a9"}.fa-arrow-circle-up:before{content:"\f0aa"}.fa-arrow-circle-down:before{content:"\f0ab"}.fa-globe:before{content:"\f0ac"}.fa-wrench:before{content:"\f0ad"}.fa-tasks:before{content:"\f0ae"}.fa-filter:before{content:"\f0b0"}.fa-briefcase:before{content:"\f0b1"}.fa-arrows-alt:before{content:"\f0b2"}.fa-group:before,.fa-users:before{content:"\f0c0"}.fa-chain:before,.fa-link:before{content:"\f0c1"}.fa-cloud:before{content:"\f0c2"}.fa-flask:before{content:"\f0c3"}.fa-cut:before,.fa-scissors:before{content:"\f0c4"}.fa-copy:before,.fa-files-o:before{content:"\f0c5"}.fa-paperclip:before{content:"\f0c6"}.fa-floppy-o:before,.fa-save:before{content:"\f0c7"}.fa-square:before{content:"\f0c8"}.fa-bars:before,.fa-navicon:before,.fa-reorder:before{content:"\f0c9"}.fa-list-ul:before{content:"\f0ca"}.fa-list-ol:before{content:"\f0cb"}.fa-strikethrough:before{content:"\f0cc"}.fa-underline:before{content:"\f0cd"}.fa-table:before{content:"\f0ce"}.fa-magic:before{content:"\f0d0"}.fa-truck:before{content:"\f0d1"}.fa-pinterest:before{content:"\f0d2"}.fa-pinterest-square:before{content:"\f0d3"}.fa-google-plus-square:before{content:"\f0d4"}.fa-google-plus:before{content:"\f0d5"}.fa-money:before{content:"\f0d6"}.fa-caret-down:before{content:"\f0d7"}.fa-caret-up:before{content:"\f0d8"}.fa-caret-left:before{content:"\f0d9"}.fa-caret-right:before{content:"\f0da"}.fa-columns:before{content:"\f0db"}.fa-sort:before,.fa-unsorted:before{content:"\f0dc"}.fa-sort-desc:before,.fa-sort-down:before{content:"\f0dd"}.fa-sort-asc:before,.fa-sort-up:before{content:"\f0de"}.fa-envelope:before{content:"\f0e0"}.fa-linkedin:before{content:"\f0e1"}.fa-rotate-left:before,.fa-undo:before{content:"\f0e2"}.fa-gavel:before,.fa-legal:before{content:"\f0e3"}.fa-dashboard:before,.fa-tachometer:before{content:"\f0e4"}.fa-comment-o:before{content:"\f0e5"}.fa-comments-o:before{content:"\f0e6"}.fa-bolt:before,.fa-flash:before{content:"\f0e7"}.fa-sitemap:before{content:"\f0e8"}.fa-umbrella:before{content:"\f0e9"}.fa-clipboard:before,.fa-paste:before{content:"\f0ea"}.fa-lightbulb-o:before{content:"\f0eb"}.fa-exchange:before{content:"\f0ec"}.fa-cloud-download:before{content:"\f0ed"}.fa-cloud-upload:before{content:"\f0ee"}.fa-user-md:before{content:"\f0f0"}.fa-stethoscope:before{content:"\f0f1"}.fa-suitcase:before{content:"\f0f2"}.fa-bell-o:before{content:"\f0a2"}.fa-coffee:before{content:"\f0f4"}.fa-cutlery:before{content:"\f0f5"}.fa-file-text-o:before{content:"\f0f6"}.fa-building-o:before{content:"\f0f7"}.fa-hospital-o:before{content:"\f0f8"}.fa-ambulance:before{content:"\f0f9"}.fa-medkit:before{content:"\f0fa"}.fa-fighter-jet:before{content:"\f0fb"}.fa-beer:before{content:"\f0fc"}.fa-h-square:before{content:"\f0fd"}.fa-plus-square:before{content:"\f0fe"}.fa-angle-double-left:before{content:"\f100"}.fa-angle-double-right:before{content:"\f101"}.fa-angle-double-up:before{content:"\f102"}.fa-angle-double-down:before{content:"\f103"}.fa-angle-left:before{content:"\f104"}.fa-angle-right:before{content:"\f105"}.fa-angle-up:before{content:"\f106"}.fa-angle-down:before{content:"\f107"}.fa-desktop:before{content:"\f108"}.fa-laptop:before{content:"\f109"}.fa-tablet:before{content:"\f10a"}.fa-mobile-phone:before,.fa-mobile:before{content:"\f10b"}.fa-circle-o:before{content:"\f10c"}.fa-quote-left:before{content:"\f10d"}.fa-quote-right:before{content:"\f10e"}.fa-spinner:before{content:"\f110"}.fa-circle:before{content:"\f111"}.fa-mail-reply:before,.fa-reply:before{content:"\f112"}.fa-github-alt:before{content:"\f113"}.fa-folder-o:before{content:"\f114"}.fa-folder-open-o:before{content:"\f115"}.fa-smile-o:before{content:"\f118"}.fa-frown-o:before{content:"\f119"}.fa-meh-o:before{content:"\f11a"}.fa-gamepad:before{content:"\f11b"}.fa-keyboard-o:before{content:"\f11c"}.fa-flag-o:before{content:"\f11d"}.fa-flag-checkered:before{content:"\f11e"}.fa-terminal:before{content:"\f120"}.fa-code:before{content:"\f121"}.fa-mail-reply-all:before,.fa-reply-all:before{content:"\f122"}.fa-star-half-empty:before,.fa-star-half-full:before,.fa-star-half-o:before{content:"\f123"}.fa-location-arrow:before{content:"\f124"}.fa-crop:before{content:"\f125"}.fa-code-fork:before{content:"\f126"}.fa-chain-broken:before,.fa-unlink:before{content:"\f127"}.fa-question:before{content:"\f128"}.fa-info:before{content:"\f129"}.fa-exclamation:before{content:"\f12a"}.fa-superscript:before{content:"\f12b"}.fa-subscript:before{content:"\f12c"}.fa-eraser:before{content:"\f12d"}.fa-puzzle-piece:before{content:"\f12e"}.fa-microphone:before{content:"\f130"}.fa-microphone-slash:before{content:"\f131"}.fa-shield:before{content:"\f132"}.fa-calendar-o:before{content:"\f133"}.fa-fire-extinguisher:before{content:"\f134"}.fa-rocket:before{content:"\f135"}.fa-maxcdn:before{content:"\f136"}.fa-chevron-circle-left:before{content:"\f137"}.fa-chevron-circle-right:before{content:"\f138"}.fa-chevron-circle-up:before{content:"\f139"}.fa-chevron-circle-down:before{content:"\f13a"}.fa-html5:before{content:"\f13b"}.fa-css3:before{content:"\f13c"}.fa-anchor:before{content:"\f13d"}.fa-unlock-alt:before{content:"\f13e"}.fa-bullseye:before{content:"\f140"}.fa-ellipsis-h:before{content:"\f141"}.fa-ellipsis-v:before{content:"\f142"}.fa-rss-square:before{content:"\f143"}.fa-play-circle:before{content:"\f144"}.fa-ticket:before{content:"\f145"}.fa-minus-square:before{content:"\f146"}.fa-minus-square-o:before{content:"\f147"}.fa-level-up:before{content:"\f148"}.fa-level-down:before{content:"\f149"}.fa-check-square:before{content:"\f14a"}.fa-pencil-square:before{content:"\f14b"}.fa-external-link-square:before{content:"\f14c"}.fa-share-square:before{content:"\f14d"}.fa-compass:before{content:"\f14e"}.fa-caret-square-o-down:before,.fa-toggle-down:before{content:"\f150"}.fa-caret-square-o-up:before,.fa-toggle-up:before{content:"\f151"}.fa-caret-square-o-right:before,.fa-toggle-right:before{content:"\f152"}.fa-eur:before,.fa-euro:before{content:"\f153"}.fa-gbp:before{content:"\f154"}.fa-dollar:before,.fa-usd:before{content:"\f155"}.fa-inr:before,.fa-rupee:before{content:"\f156"}.fa-cny:before,.fa-jpy:before,.fa-rmb:before,.fa-yen:before{content:"\f157"}.fa-rouble:before,.fa-rub:before,.fa-ruble:before{content:"\f158"}.fa-krw:before,.fa-won:before{content:"\f159"}.fa-bitcoin:before,.fa-btc:before{content:"\f15a"}.fa-file:before{content:"\f15b"}.fa-file-text:before{content:"\f15c"}.fa-sort-alpha-asc:before{content:"\f15d"}.fa-sort-alpha-desc:before{content:"\f15e"}.fa-sort-amount-asc:before{content:"\f160"}.fa-sort-amount-desc:before{content:"\f161"}.fa-sort-numeric-asc:before{content:"\f162"}.fa-sort-numeric-desc:before{content:"\f163"}.fa-thumbs-up:before{content:"\f164"}.fa-thumbs-down:before{content:"\f165"}.fa-youtube-square:before{content:"\f166"}.fa-youtube:before{content:"\f167"}.fa-xing:before{content:"\f168"}.fa-xing-square:before{content:"\f169"}.fa-youtube-play:before{content:"\f16a"}.fa-dropbox:before{content:"\f16b"}.fa-stack-overflow:before{content:"\f16c"}.fa-instagram:before{content:"\f16d"}.fa-flickr:before{content:"\f16e"}.fa-adn:before{content:"\f170"}.fa-bitbucket:before{content:"\f171"}.fa-bitbucket-square:before{content:"\f172"}.fa-tumblr:before{content:"\f173"}.fa-tumblr-square:before{content:"\f174"}.fa-long-arrow-down:before{content:"\f175"}.fa-long-arrow-up:before{content:"\f176"}.fa-long-arrow-left:before{content:"\f177"}.fa-long-arrow-right:before{content:"\f178"}.fa-apple:before{content:"\f179"}.fa-windows:before{content:"\f17a"}.fa-android:before{content:"\f17b"}.fa-linux:before{content:"\f17c"}.fa-dribbble:before{content:"\f17d"}.fa-skype:before{content:"\f17e"}.fa-foursquare:before{content:"\f180"}.fa-trello:before{content:"\f181"}.fa-female:before{content:"\f182"}.fa-male:before{content:"\f183"}.fa-gittip:before,.fa-gratipay:before{content:"\f184"}.fa-sun-o:before{content:"\f185"}.fa-moon-o:before{content:"\f186"}.fa-archive:before{content:"\f187"}.fa-bug:before{content:"\f188"}.fa-vk:before{content:"\f189"}.fa-weibo:before{content:"\f18a"}.fa-renren:before{content:"\f18b"}.fa-pagelines:before{content:"\f18c"}.fa-stack-exchange:before{content:"\f18d"}.fa-arrow-circle-o-right:before{content:"\f18e"}.fa-arrow-circle-o-left:before{content:"\f190"}.fa-caret-square-o-left:before,.fa-toggle-left:before{content:"\f191"}.fa-dot-circle-o:before{content:"\f192"}.fa-wheelchair:before{content:"\f193"}.fa-vimeo-square:before{content:"\f194"}.fa-try:before,.fa-turkish-lira:before{content:"\f195"}.fa-plus-square-o:before{content:"\f196"}.fa-space-shuttle:before{content:"\f197"}.fa-slack:before{content:"\f198"}.fa-envelope-square:before{content:"\f199"}.fa-wordpress:before{content:"\f19a"}.fa-openid:before{content:"\f19b"}.fa-bank:before,.fa-institution:before,.fa-university:before{content:"\f19c"}.fa-graduation-cap:before,.fa-mortar-board:before{content:"\f19d"}.fa-yahoo:before{content:"\f19e"}.fa-google:before{content:"\f1a0"}.fa-reddit:before{content:"\f1a1"}.fa-reddit-square:before{content:"\f1a2"}.fa-stumbleupon-circle:before{content:"\f1a3"}.fa-stumbleupon:before{content:"\f1a4"}.fa-delicious:before{content:"\f1a5"}.fa-digg:before{content:"\f1a6"}.fa-pied-piper-pp:before{content:"\f1a7"}.fa-pied-piper-alt:before{content:"\f1a8"}.fa-drupal:before{content:"\f1a9"}.fa-joomla:before{content:"\f1aa"}.fa-language:before{content:"\f1ab"}.fa-fax:before{content:"\f1ac"}.fa-building:before{content:"\f1ad"}.fa-child:before{content:"\f1ae"}.fa-paw:before{content:"\f1b0"}.fa-spoon:before{content:"\f1b1"}.fa-cube:before{content:"\f1b2"}.fa-cubes:before{content:"\f1b3"}.fa-behance:before{content:"\f1b4"}.fa-behance-square:before{content:"\f1b5"}.fa-steam:before{content:"\f1b6"}.fa-steam-square:before{content:"\f1b7"}.fa-recycle:before{content:"\f1b8"}.fa-automobile:before,.fa-car:before{content:"\f1b9"}.fa-cab:before,.fa-taxi:before{content:"\f1ba"}.fa-tree:before{content:"\f1bb"}.fa-spotify:before{content:"\f1bc"}.fa-deviantart:before{content:"\f1bd"}.fa-soundcloud:before{content:"\f1be"}.fa-database:before{content:"\f1c0"}.fa-file-pdf-o:before{content:"\f1c1"}.fa-file-word-o:before{content:"\f1c2"}.fa-file-excel-o:before{content:"\f1c3"}.fa-file-powerpoint-o:before{content:"\f1c4"}.fa-file-image-o:before,.fa-file-photo-o:before,.fa-file-picture-o:before{content:"\f1c5"}.fa-file-archive-o:before,.fa-file-zip-o:before{content:"\f1c6"}.fa-file-audio-o:before,.fa-file-sound-o:before{content:"\f1c7"}.fa-file-movie-o:before,.fa-file-video-o:before{content:"\f1c8"}.fa-file-code-o:before{content:"\f1c9"}.fa-vine:before{content:"\f1ca"}.fa-codepen:before{content:"\f1cb"}.fa-jsfiddle:before{content:"\f1cc"}.fa-life-bouy:before,.fa-life-buoy:before,.fa-life-ring:before,.fa-life-saver:before,.fa-support:before{content:"\f1cd"}.fa-circle-o-notch:before{content:"\f1ce"}.fa-ra:before,.fa-rebel:before,.fa-resistance:before{content:"\f1d0"}.fa-empire:before,.fa-ge:before{content:"\f1d1"}.fa-git-square:before{content:"\f1d2"}.fa-git:before{content:"\f1d3"}.fa-hacker-news:before,.fa-y-combinator-square:before,.fa-yc-square:before{content:"\f1d4"}.fa-tencent-weibo:before{content:"\f1d5"}.fa-qq:before{content:"\f1d6"}.fa-wechat:before,.fa-weixin:before{content:"\f1d7"}.fa-paper-plane:before,.fa-send:before{content:"\f1d8"}.fa-paper-plane-o:before,.fa-send-o:before{content:"\f1d9"}.fa-history:before{content:"\f1da"}.fa-circle-thin:before{content:"\f1db"}.fa-header:before{content:"\f1dc"}.fa-paragraph:before{content:"\f1dd"}.fa-sliders:before{content:"\f1de"}.fa-share-alt:before{content:"\f1e0"}.fa-share-alt-square:before{content:"\f1e1"}.fa-bomb:before{content:"\f1e2"}.fa-futbol-o:before,.fa-soccer-ball-o:before{content:"\f1e3"}.fa-tty:before{content:"\f1e4"}.fa-binoculars:before{content:"\f1e5"}.fa-plug:before{content:"\f1e6"}.fa-slideshare:before{content:"\f1e7"}.fa-twitch:before{content:"\f1e8"}.fa-yelp:before{content:"\f1e9"}.fa-newspaper-o:before{content:"\f1ea"}.fa-wifi:before{content:"\f1eb"}.fa-calculator:before{content:"\f1ec"}.fa-paypal:before{content:"\f1ed"}.fa-google-wallet:before{content:"\f1ee"}.fa-cc-visa:before{content:"\f1f0"}.fa-cc-mastercard:before{content:"\f1f1"}.fa-cc-discover:before{content:"\f1f2"}.fa-cc-amex:before{content:"\f1f3"}.fa-cc-paypal:before{content:"\f1f4"}.fa-cc-stripe:before{content:"\f1f5"}.fa-bell-slash:before{content:"\f1f6"}.fa-bell-slash-o:before{content:"\f1f7"}.fa-trash:before{content:"\f1f8"}.fa-copyright:before{content:"\f1f9"}.fa-at:before{content:"\f1fa"}.fa-eyedropper:before{content:"\f1fb"}.fa-paint-brush:before{content:"\f1fc"}.fa-birthday-cake:before{content:"\f1fd"}.fa-area-chart:before{content:"\f1fe"}.fa-pie-chart:before{content:"\f200"}.fa-line-chart:before{content:"\f201"}.fa-lastfm:before{content:"\f202"}.fa-lastfm-square:before{content:"\f203"}.fa-toggle-off:before{content:"\f204"}.fa-toggle-on:before{content:"\f205"}.fa-bicycle:before{content:"\f206"}.fa-bus:before{content:"\f207"}.fa-ioxhost:before{content:"\f208"}.fa-angellist:before{content:"\f209"}.fa-cc:before{content:"\f20a"}.fa-ils:before,.fa-shekel:before,.fa-sheqel:before{content:"\f20b"}.fa-meanpath:before{content:"\f20c"}.fa-buysellads:before{content:"\f20d"}.fa-connectdevelop:before{content:"\f20e"}.fa-dashcube:before{content:"\f210"}.fa-forumbee:before{content:"\f211"}.fa-leanpub:before{content:"\f212"}.fa-sellsy:before{content:"\f213"}.fa-shirtsinbulk:before{content:"\f214"}.fa-simplybuilt:before{content:"\f215"}.fa-skyatlas:before{content:"\f216"}.fa-cart-plus:before{content:"\f217"}.fa-cart-arrow-down:before{content:"\f218"}.fa-diamond:before{content:"\f219"}.fa-ship:before{content:"\f21a"}.fa-user-secret:before{content:"\f21b"}.fa-motorcycle:before{content:"\f21c"}.fa-street-view:before{content:"\f21d"}.fa-heartbeat:before{content:"\f21e"}.fa-venus:before{content:"\f221"}.fa-mars:before{content:"\f222"}.fa-mercury:before{content:"\f223"}.fa-intersex:before,.fa-transgender:before{content:"\f224"}.fa-transgender-alt:before{content:"\f225"}.fa-venus-double:before{content:"\f226"}.fa-mars-double:before{content:"\f227"}.fa-venus-mars:before{content:"\f228"}.fa-mars-stroke:before{content:"\f229"}.fa-mars-stroke-v:before{content:"\f22a"}.fa-mars-stroke-h:before{content:"\f22b"}.fa-neuter:before{content:"\f22c"}.fa-genderless:before{content:"\f22d"}.fa-facebook-official:before{content:"\f230"}.fa-pinterest-p:before{content:"\f231"}.fa-whatsapp:before{content:"\f232"}.fa-server:before{content:"\f233"}.fa-user-plus:before{content:"\f234"}.fa-user-times:before{content:"\f235"}.fa-bed:before,.fa-hotel:before{content:"\f236"}.fa-viacoin:before{content:"\f237"}.fa-train:before{content:"\f238"}.fa-subway:before{content:"\f239"}.fa-medium:before{content:"\f23a"}.fa-y-combinator:before,.fa-yc:before{content:"\f23b"}.fa-optin-monster:before{content:"\f23c"}.fa-opencart:before{content:"\f23d"}.fa-expeditedssl:before{content:"\f23e"}.fa-battery-4:before,.fa-battery-full:before{content:"\f240"}.fa-battery-3:before,.fa-battery-three-quarters:before{content:"\f241"}.fa-battery-2:before,.fa-battery-half:before{content:"\f242"}.fa-battery-1:before,.fa-battery-quarter:before{content:"\f243"}.fa-battery-0:before,.fa-battery-empty:before{content:"\f244"}.fa-mouse-pointer:before{content:"\f245"}.fa-i-cursor:before{content:"\f246"}.fa-object-group:before{content:"\f247"}.fa-object-ungroup:before{content:"\f248"}.fa-sticky-note:before{content:"\f249"}.fa-sticky-note-o:before{content:"\f24a"}.fa-cc-jcb:before{content:"\f24b"}.fa-cc-diners-club:before{content:"\f24c"}.fa-clone:before{content:"\f24d"}.fa-balance-scale:before{content:"\f24e"}.fa-hourglass-o:before{content:"\f250"}.fa-hourglass-1:before,.fa-hourglass-start:before{content:"\f251"}.fa-hourglass-2:before,.fa-hourglass-half:before{content:"\f252"}.fa-hourglass-3:before,.fa-hourglass-end:before{content:"\f253"}.fa-hourglass:before{content:"\f254"}.fa-hand-grab-o:before,.fa-hand-rock-o:before{content:"\f255"}.fa-hand-paper-o:before,.fa-hand-stop-o:before{content:"\f256"}.fa-hand-scissors-o:before{content:"\f257"}.fa-hand-lizard-o:before{content:"\f258"}.fa-hand-spock-o:before{content:"\f259"}.fa-hand-pointer-o:before{content:"\f25a"}.fa-hand-peace-o:before{content:"\f25b"}.fa-trademark:before{content:"\f25c"}.fa-registered:before{content:"\f25d"}.fa-creative-commons:before{content:"\f25e"}.fa-gg:before{content:"\f260"}.fa-gg-circle:before{content:"\f261"}.fa-tripadvisor:before{content:"\f262"}.fa-odnoklassniki:before{content:"\f263"}.fa-odnoklassniki-square:before{content:"\f264"}.fa-get-pocket:before{content:"\f265"}.fa-wikipedia-w:before{content:"\f266"}.fa-safari:before{content:"\f267"}.fa-chrome:before{content:"\f268"}.fa-firefox:before{content:"\f269"}.fa-opera:before{content:"\f26a"}.fa-internet-explorer:before{content:"\f26b"}.fa-television:before,.fa-tv:before{content:"\f26c"}.fa-contao:before{content:"\f26d"}.fa-500px:before{content:"\f26e"}.fa-amazon:before{content:"\f270"}.fa-calendar-plus-o:before{content:"\f271"}.fa-calendar-minus-o:before{content:"\f272"}.fa-calendar-times-o:before{content:"\f273"}.fa-calendar-check-o:before{content:"\f274"}.fa-industry:before{content:"\f275"}.fa-map-pin:before{content:"\f276"}.fa-map-signs:before{content:"\f277"}.fa-map-o:before{content:"\f278"}.fa-map:before{content:"\f279"}.fa-commenting:before{content:"\f27a"}.fa-commenting-o:before{content:"\f27b"}.fa-houzz:before{content:"\f27c"}.fa-vimeo:before{content:"\f27d"}.fa-black-tie:before{content:"\f27e"}.fa-fonticons:before{content:"\f280"}.fa-reddit-alien:before{content:"\f281"}.fa-edge:before{content:"\f282"}.fa-credit-card-alt:before{content:"\f283"}.fa-codiepie:before{content:"\f284"}.fa-modx:before{content:"\f285"}.fa-fort-awesome:before{content:"\f286"}.fa-usb:before{content:"\f287"}.fa-product-hunt:before{content:"\f288"}.fa-mixcloud:before{content:"\f289"}.fa-scribd:before{content:"\f28a"}.fa-pause-circle:before{content:"\f28b"}.fa-pause-circle-o:before{content:"\f28c"}.fa-stop-circle:before{content:"\f28d"}.fa-stop-circle-o:before{content:"\f28e"}.fa-shopping-bag:before{content:"\f290"}.fa-shopping-basket:before{content:"\f291"}.fa-hashtag:before{content:"\f292"}.fa-bluetooth:before{content:"\f293"}.fa-bluetooth-b:before{content:"\f294"}.fa-percent:before{content:"\f295"}.fa-gitlab:before{content:"\f296"}.fa-wpbeginner:before{content:"\f297"}.fa-wpforms:before{content:"\f298"}.fa-envira:before{content:"\f299"}.fa-universal-access:before{content:"\f29a"}.fa-wheelchair-alt:before{content:"\f29b"}.fa-question-circle-o:before{content:"\f29c"}.fa-blind:before{content:"\f29d"}.fa-audio-description:before{content:"\f29e"}.fa-volume-control-phone:before{content:"\f2a0"}.fa-braille:before{content:"\f2a1"}.fa-assistive-listening-systems:before{content:"\f2a2"}.fa-american-sign-language-interpreting:before,.fa-asl-interpreting:before{content:"\f2a3"}.fa-deaf:before,.fa-deafness:before,.fa-hard-of-hearing:before{content:"\f2a4"}.fa-glide:before{content:"\f2a5"}.fa-glide-g:before{content:"\f2a6"}.fa-sign-language:before,.fa-signing:before{content:"\f2a7"}.fa-low-vision:before{content:"\f2a8"}.fa-viadeo:before{content:"\f2a9"}.fa-viadeo-square:before{content:"\f2aa"}.fa-snapchat:before{content:"\f2ab"}.fa-snapchat-ghost:before{content:"\f2ac"}.fa-snapchat-square:before{content:"\f2ad"}.fa-pied-piper:before{content:"\f2ae"}.fa-first-order:before{content:"\f2b0"}.fa-yoast:before{content:"\f2b1"}.fa-themeisle:before{content:"\f2b2"}.fa-google-plus-circle:before,.fa-google-plus-official:before{content:"\f2b3"}.fa-fa:before,.fa-font-awesome:before{content:"\f2b4"}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0}.sr-only-focusable:active,.sr-only-focusable:focus{position:static;width:auto;height:auto;margin:0;overflow:visible;clip:auto}/*! + * Preboot v2 + * git+https://github.com/mdo/preboot.git#4aab4edd85f076d50609cbe28e4fe66cc0771701 + * + * Open sourced under MIT license by @mdo. + * Some variables and mixins from Bootstrap (Apache 2 license). + */.book-langs-index{width:100%;height:100%;padding:40px 0;margin:0;overflow:auto}@media (max-width:600px){.book-langs-index{padding:0}}.book-langs-index .inner{max-width:600px;width:100%;margin:0 auto;padding:30px;background:#fff;border-radius:3px}.book-langs-index .inner h3{margin:0}.book-langs-index .inner .languages{list-style:none;padding:20px 30px;margin-top:20px;border-top:1px solid #eee}.book-langs-index .inner .languages:after,.book-langs-index .inner .languages:before{content:" ";display:table;line-height:0}.book-langs-index .inner .languages:after{clear:both}.book-langs-index .inner .languages li{width:50%;float:left;padding:10px 5px;font-size:16px}@media (max-width:600px){.book-langs-index .inner .languages li{width:100%;max-width:100%}}.book-header{font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;overflow:visible;height:50px;padding:0 8px;z-index:2;font-size:.85em;color:#7e888b;background:0 0}.book-header .btn{display:block;height:50px;padding:0 15px;border-bottom:none;color:#ccc;text-transform:uppercase;line-height:50px;-webkit-box-shadow:none!important;box-shadow:none!important;position:relative;font-size:14px}.book-header .btn:hover{position:relative;text-decoration:none;color:#444;background:0 0}.book-header .btn:focus{outline:0}.book-header h1{margin:0;font-size:20px;font-weight:200;text-align:center;line-height:50px;opacity:0;-webkit-transition:opacity ease .4s;-moz-transition:opacity ease .4s;-o-transition:opacity ease .4s;transition:opacity ease .4s;padding-left:200px;padding-right:200px;-webkit-transition:opacity .2s ease;-moz-transition:opacity .2s ease;-o-transition:opacity .2s ease;transition:opacity .2s ease;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.book-header h1 a,.book-header h1 a:hover{color:inherit;text-decoration:none}@media screen and (max-width:1000px){.book-header h1{display:none}}.book-header h1 i{display:none}.book-header:hover h1{opacity:1}.book.is-loading .book-header h1 i{display:inline-block}.book.is-loading .book-header h1 a{display:none}@media print{.book-header{display:none}}.dropdown{position:relative}.dropdown-menu{position:absolute;top:100%;left:0;z-index:100;display:none;float:left;min-width:160px;padding:0;margin:2px 0 0;list-style:none;font-size:14px;background-color:#fafafa;border:1px solid rgba(0,0,0,.07);border-radius:1px;-webkit-box-shadow:0 6px 12px rgba(0,0,0,.175);box-shadow:0 6px 12px rgba(0,0,0,.175);background-clip:padding-box}.dropdown-menu.open{display:block}.dropdown-menu.dropdown-left{left:auto;right:4%}.dropdown-menu.dropdown-left .dropdown-caret{right:14px;left:auto}.dropdown-menu .dropdown-caret{position:absolute;top:-8px;left:14px;width:18px;height:10px;float:left;overflow:hidden}.dropdown-menu .dropdown-caret .caret-outer{position:absolute;border-left:9px solid transparent;border-right:9px solid transparent;border-bottom:9px solid rgba(0,0,0,.1);height:auto;left:0;top:0;width:auto;display:inline-block;margin-left:-1px}.dropdown-menu .dropdown-caret .caret-inner{position:absolute;display:inline-block;margin-top:-1px;top:0;top:1px;border-left:9px solid transparent;border-right:9px solid transparent;border-bottom:9px solid #fafafa}.dropdown-menu .buttons{border-bottom:1px solid rgba(0,0,0,.07)}.dropdown-menu .buttons:after,.dropdown-menu .buttons:before{content:" ";display:table;line-height:0}.dropdown-menu .buttons:after{clear:both}.dropdown-menu .buttons:last-child{border-bottom:none}.dropdown-menu .buttons .button{border:0;background-color:transparent;color:#a6a6a6;width:100%;text-align:center;float:left;line-height:1.42857143;padding:8px 4px}.dropdown-menu .buttons .button:hover{color:#444}.dropdown-menu .buttons .button:focus,.dropdown-menu .buttons .button:hover{outline:0}.dropdown-menu .buttons .button.size-2{width:50%}.dropdown-menu .buttons .button.size-3{width:33%}.book-summary{font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;position:absolute;top:0;left:-300px;bottom:0;z-index:1;overflow-y:auto;width:300px;color:#364149;background:#fafafa;border-right:1px solid rgba(0,0,0,.07);-webkit-transition:left 250ms ease;-moz-transition:left 250ms ease;-o-transition:left 250ms ease;transition:left 250ms ease}.book-summary ul.summary{list-style:none;margin:0;padding:0;-webkit-transition:top .5s ease;-moz-transition:top .5s ease;-o-transition:top .5s ease;transition:top .5s ease}.book-summary ul.summary li{list-style:none}.book-summary ul.summary li.header{padding:10px 15px;padding-top:20px;text-transform:uppercase;color:#939da3}.book-summary ul.summary li.divider{height:1px;margin:7px 0;overflow:hidden;background:rgba(0,0,0,.07)}.book-summary ul.summary li i.fa-check{display:none;position:absolute;right:9px;top:16px;font-size:9px;color:#3c3}.book-summary ul.summary li.done>a{color:#364149;font-weight:400}.book-summary ul.summary li.done>a i{display:inline}.book-summary ul.summary li a,.book-summary ul.summary li span{display:block;padding:10px 15px;border-bottom:none;color:#364149;background:0 0;text-overflow:ellipsis;overflow:hidden;white-space:nowrap;position:relative}.book-summary ul.summary li a:hover{text-decoration:underline}.book-summary ul.summary li a:focus{outline:0}.book-summary ul.summary li.active>a{color:#008cff;background:0 0;text-decoration:none}.book-summary ul.summary li ul{padding-left:20px}@media screen and (max-width:600px){.book-summary{width:calc(100% - 60px);bottom:0;left:-100%}}.book.with-summary .book-summary{left:0}.book.without-animation .book-summary{-webkit-transition:none!important;-moz-transition:none!important;-o-transition:none!important;transition:none!important}@media print{.book-summary{display:none}.book-body{left:0}}.book{position:relative;width:100%;height:100%}@media screen and (min-width:600px){.book.with-summary .book-body{left:300px}}@media screen and (max-width:600px){.book.with-summary{overflow:hidden}.book.with-summary .book-body{-webkit-transform:translate(calc(100% - 60px),0);-moz-transform:translate(calc(100% - 60px),0);-ms-transform:translate(calc(100% - 60px),0);-o-transform:translate(calc(100% - 60px),0);transform:translate(calc(100% - 60px),0)}}.book.without-animation .book-body{-webkit-transition:none!important;-moz-transition:none!important;-o-transition:none!important;transition:none!important}.book-body{position:absolute;top:0;right:0;left:0;bottom:0;overflow-y:auto;color:#000;background:#fff;-webkit-transition:left 250ms ease;-moz-transition:left 250ms ease;-o-transition:left 250ms ease;transition:left 250ms ease}.book-body .body-inner{position:absolute;top:0;right:0;left:0;bottom:0;overflow-y:auto}@media screen and (max-width:1240px){.book-body{-webkit-transition:-webkit-transform 250ms ease;-moz-transition:-moz-transform 250ms ease;-o-transition:-o-transform 250ms ease;transition:transform 250ms ease;padding-bottom:20px}.book-body .body-inner{position:static;min-height:calc(100% - 50px)}}.honkit-cloak{display:none}@media print{.book{position:static}.book-body{position:static}.book-body .body-inner{position:static}}.page-wrapper{position:relative;outline:0}.page-inner{position:relative;max-width:800px;margin:0 auto;padding:20px 15px 40px 15px}.page-inner .btn-group .btn{border-radius:0;background:#eee;border:0}.buttons:after,.buttons:before{content:" ";display:table;line-height:0}.buttons:after{clear:both}.button{border:0;background-color:transparent;background:#eee;color:#666;width:100%;text-align:center;float:left;line-height:1.42857143;padding:8px 4px}.button:hover{color:#444}.button:focus,.button:hover{outline:0}.button.size-2{width:50%}.button.size-3{width:33%}.markdown-section{display:block;word-wrap:break-word;overflow:hidden;color:#333;line-height:1.7;text-size-adjust:100%;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%}.markdown-section *{box-sizing:border-box;-webkit-box-sizing:border-box;font-size:inherit}.markdown-section>:first-child{margin-top:0!important}.markdown-section>:last-child{margin-bottom:0!important}.markdown-section blockquote,.markdown-section code,.markdown-section figure,.markdown-section img,.markdown-section pre,.markdown-section table,.markdown-section tr{page-break-inside:avoid}.markdown-section h2,.markdown-section h3,.markdown-section h4,.markdown-section h5,.markdown-section p{orphans:3;widows:3}.markdown-section h1,.markdown-section h2,.markdown-section h3,.markdown-section h4,.markdown-section h5{page-break-after:avoid}.markdown-section b,.markdown-section strong{font-weight:700}.markdown-section em{font-style:italic}.markdown-section blockquote,.markdown-section dl,.markdown-section ol,.markdown-section p,.markdown-section table,.markdown-section ul{margin-top:0;margin-bottom:.85em}.markdown-section a{color:#4183c4;text-decoration:none;background:0 0}.markdown-section a:active,.markdown-section a:focus,.markdown-section a:hover{outline:0;text-decoration:underline}.markdown-section img{border:0;max-width:100%}.markdown-section hr{height:4px;padding:0;margin:1.7em 0;overflow:hidden;background-color:#e7e7e7;border:none}.markdown-section hr:after,.markdown-section hr:before{display:table;content:" "}.markdown-section hr:after{clear:both}.markdown-section h1,.markdown-section h2,.markdown-section h3,.markdown-section h4,.markdown-section h5,.markdown-section h6{margin-top:1.275em;margin-bottom:.85em;font-weight:700}.markdown-section h1{font-size:2em}.markdown-section h2{font-size:1.75em}.markdown-section h3{font-size:1.5em}.markdown-section h4{font-size:1.25em}.markdown-section h5{font-size:1em}.markdown-section h6{font-size:1em;color:#777}.markdown-section code,.markdown-section pre{font-family:Consolas,"Liberation Mono",Menlo,Courier,monospace;direction:ltr;margin:0;padding:0;border:none;color:inherit}.markdown-section pre{overflow:auto;word-wrap:normal;margin:0;padding:.85em 1em;margin-bottom:1.275em;background:#f7f7f7}.markdown-section pre>code{display:inline;max-width:initial;padding:0;margin:0;overflow:initial;line-height:inherit;font-size:.85em;white-space:pre;background:0 0}.markdown-section pre>code:after,.markdown-section pre>code:before{content:normal}.markdown-section code{padding:.2em;margin:0;font-size:.85em;background-color:#f7f7f7}.markdown-section code:after,.markdown-section code:before{letter-spacing:-.2em;content:"\00a0"}.markdown-section table{display:table;width:100%;border-collapse:collapse;border-spacing:0;overflow:auto}.markdown-section table td,.markdown-section table th{padding:6px 13px;border:1px solid #ddd}.markdown-section table tr{background-color:#fff;border-top:1px solid #ccc}.markdown-section table tr:nth-child(2n){background-color:#f8f8f8}.markdown-section table th{font-weight:700}.markdown-section ol,.markdown-section ul{padding:0;margin:0;margin-bottom:.85em;padding-left:2em}.markdown-section ol ol,.markdown-section ol ul,.markdown-section ul ol,.markdown-section ul ul{margin-top:0;margin-bottom:0}.markdown-section ol ol{list-style-type:lower-roman}.markdown-section blockquote{margin:0;margin-bottom:.85em;padding:0 15px;color:#858585;border-left:4px solid #e5e5e5}.markdown-section blockquote:first-child{margin-top:0}.markdown-section blockquote:last-child{margin-bottom:0}.markdown-section dl{padding:0}.markdown-section dl dt{padding:0;margin-top:.85em;font-style:italic;font-weight:700}.markdown-section dl dd{padding:0 .85em;margin-bottom:.85em}.markdown-section dd{margin-left:0}.markdown-section .glossary-term{cursor:help;text-decoration:underline}.navigation{position:absolute;top:50px;bottom:0;margin:0;max-width:150px;min-width:90px;display:flex;justify-content:center;align-content:center;flex-direction:column;font-size:40px;color:#ccc;text-align:center;-webkit-transition:all 350ms ease;-moz-transition:all 350ms ease;-o-transition:all 350ms ease;transition:all 350ms ease}.navigation:hover{text-decoration:none;color:#444}.navigation.navigation-next{right:0}.navigation.navigation-prev{left:0}@media screen and (max-width:1240px){.navigation{position:static;top:auto;max-width:50%;width:50%;display:inline-block;float:left}.navigation.navigation-unique{max-width:100%;width:100%}}@media print{.navigation{display:none}}#book-search-input{padding:6px;background:0 0;transition:top .5s ease;background:#fff;border-bottom:1px solid rgba(0,0,0,.07);border-top:1px solid rgba(0,0,0,.07);margin-bottom:10px;margin-top:-1px}#book-search-input input,#book-search-input input:focus,#book-search-input input:hover{width:100%;background:0 0;border:1px solid transparent;box-shadow:none;outline:0;line-height:22px;padding:7px 7px;color:inherit}#book-search-results{opacity:1}#book-search-results .search-results .search-results-title{text-transform:uppercase;text-align:center;font-weight:200;margin-bottom:35px;opacity:.6}#book-search-results .search-results .has-results .search-results-item{display:block;word-wrap:break-word;overflow:hidden;color:#333;line-height:1.7;text-size-adjust:100%;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%}#book-search-results .search-results .has-results .search-results-item *{box-sizing:border-box;-webkit-box-sizing:border-box;font-size:inherit}#book-search-results .search-results .has-results .search-results-item>:first-child{margin-top:0!important}#book-search-results .search-results .has-results .search-results-item>:last-child{margin-bottom:0!important}#book-search-results .search-results .has-results .search-results-item blockquote,#book-search-results .search-results .has-results .search-results-item code,#book-search-results .search-results .has-results .search-results-item figure,#book-search-results .search-results .has-results .search-results-item img,#book-search-results .search-results .has-results .search-results-item pre,#book-search-results .search-results .has-results .search-results-item table,#book-search-results .search-results .has-results .search-results-item tr{page-break-inside:avoid}#book-search-results .search-results .has-results .search-results-item h2,#book-search-results .search-results .has-results .search-results-item h3,#book-search-results .search-results .has-results .search-results-item h4,#book-search-results .search-results .has-results .search-results-item h5,#book-search-results .search-results .has-results .search-results-item p{orphans:3;widows:3}#book-search-results .search-results .has-results .search-results-item h1,#book-search-results .search-results .has-results .search-results-item h2,#book-search-results .search-results .has-results .search-results-item h3,#book-search-results .search-results .has-results .search-results-item h4,#book-search-results .search-results .has-results .search-results-item h5{page-break-after:avoid}#book-search-results .search-results .has-results .search-results-item b,#book-search-results .search-results .has-results .search-results-item strong{font-weight:700}#book-search-results .search-results .has-results .search-results-item em{font-style:italic}#book-search-results .search-results .has-results .search-results-item blockquote,#book-search-results .search-results .has-results .search-results-item dl,#book-search-results .search-results .has-results .search-results-item ol,#book-search-results .search-results .has-results .search-results-item p,#book-search-results .search-results .has-results .search-results-item table,#book-search-results .search-results .has-results .search-results-item ul{margin-top:0;margin-bottom:.85em}#book-search-results .search-results .has-results .search-results-item a{color:#4183c4;text-decoration:none;background:0 0}#book-search-results .search-results .has-results .search-results-item a:active,#book-search-results .search-results .has-results .search-results-item a:focus,#book-search-results .search-results .has-results .search-results-item a:hover{outline:0;text-decoration:underline}#book-search-results .search-results .has-results .search-results-item img{border:0;max-width:100%}#book-search-results .search-results .has-results .search-results-item hr{height:4px;padding:0;margin:1.7em 0;overflow:hidden;background-color:#e7e7e7;border:none}#book-search-results .search-results .has-results .search-results-item hr:after,#book-search-results .search-results .has-results .search-results-item hr:before{display:table;content:" "}#book-search-results .search-results .has-results .search-results-item hr:after{clear:both}#book-search-results .search-results .has-results .search-results-item h1,#book-search-results .search-results .has-results .search-results-item h2,#book-search-results .search-results .has-results .search-results-item h3,#book-search-results .search-results .has-results .search-results-item h4,#book-search-results .search-results .has-results .search-results-item h5,#book-search-results .search-results .has-results .search-results-item h6{margin-top:1.275em;margin-bottom:.85em;font-weight:700}#book-search-results .search-results .has-results .search-results-item h1{font-size:2em}#book-search-results .search-results .has-results .search-results-item h2{font-size:1.75em}#book-search-results .search-results .has-results .search-results-item h3{font-size:1.5em}#book-search-results .search-results .has-results .search-results-item h4{font-size:1.25em}#book-search-results .search-results .has-results .search-results-item h5{font-size:1em}#book-search-results .search-results .has-results .search-results-item h6{font-size:1em;color:#777}#book-search-results .search-results .has-results .search-results-item code,#book-search-results .search-results .has-results .search-results-item pre{font-family:Consolas,"Liberation Mono",Menlo,Courier,monospace;direction:ltr;margin:0;padding:0;border:none;color:inherit}#book-search-results .search-results .has-results .search-results-item pre{overflow:auto;word-wrap:normal;margin:0;padding:.85em 1em;margin-bottom:1.275em;background:#f7f7f7}#book-search-results .search-results .has-results .search-results-item pre>code{display:inline;max-width:initial;padding:0;margin:0;overflow:initial;line-height:inherit;font-size:.85em;white-space:pre;background:0 0}#book-search-results .search-results .has-results .search-results-item pre>code:after,#book-search-results .search-results .has-results .search-results-item pre>code:before{content:normal}#book-search-results .search-results .has-results .search-results-item code{padding:.2em;margin:0;font-size:.85em;background-color:#f7f7f7}#book-search-results .search-results .has-results .search-results-item code:after,#book-search-results .search-results .has-results .search-results-item code:before{letter-spacing:-.2em;content:"\00a0"}#book-search-results .search-results .has-results .search-results-item table{display:table;width:100%;border-collapse:collapse;border-spacing:0;overflow:auto}#book-search-results .search-results .has-results .search-results-item table td,#book-search-results .search-results .has-results .search-results-item table th{padding:6px 13px;border:1px solid #ddd}#book-search-results .search-results .has-results .search-results-item table tr{background-color:#fff;border-top:1px solid #ccc}#book-search-results .search-results .has-results .search-results-item table tr:nth-child(2n){background-color:#f8f8f8}#book-search-results .search-results .has-results .search-results-item table th{font-weight:700}#book-search-results .search-results .has-results .search-results-item ol,#book-search-results .search-results .has-results .search-results-item ul{padding:0;margin:0;margin-bottom:.85em;padding-left:2em}#book-search-results .search-results .has-results .search-results-item ol ol,#book-search-results .search-results .has-results .search-results-item ol ul,#book-search-results .search-results .has-results .search-results-item ul ol,#book-search-results .search-results .has-results .search-results-item ul ul{margin-top:0;margin-bottom:0}#book-search-results .search-results .has-results .search-results-item ol ol{list-style-type:lower-roman}#book-search-results .search-results .has-results .search-results-item blockquote{margin:0;margin-bottom:.85em;padding:0 15px;color:#858585;border-left:4px solid #e5e5e5}#book-search-results .search-results .has-results .search-results-item blockquote:first-child{margin-top:0}#book-search-results .search-results .has-results .search-results-item blockquote:last-child{margin-bottom:0}#book-search-results .search-results .has-results .search-results-item dl{padding:0}#book-search-results .search-results .has-results .search-results-item dl dt{padding:0;margin-top:.85em;font-style:italic;font-weight:700}#book-search-results .search-results .has-results .search-results-item dl dd{padding:0 .85em;margin-bottom:.85em}#book-search-results .search-results .has-results .search-results-item dd{margin-left:0}#book-search-results .search-results .has-results .search-results-item h3{margin-top:0;margin-bottom:0}#book-search-results .search-results .no-results{padding:40px 0}body.search-loading #book-search-results{opacity:.3}body.with-search .navigation{display:none}*{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;-webkit-overflow-scrolling:touch;-webkit-tap-highlight-color:transparent;-webkit-text-size-adjust:none;-webkit-touch-callout:none;-webkit-font-smoothing:antialiased}a{text-decoration:none}body,html{height:100%}html{font-size:62.5%}body{text-rendering:optimizeLegibility;font-smoothing:antialiased;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:14px;letter-spacing:.2px;text-size-adjust:100%;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%} \ No newline at end of file diff --git a/docs/manuals/ADMIN/html/gitbook/theme.js b/docs/manuals/ADMIN/html/gitbook/theme.js new file mode 100644 index 00000000..1768ac6e --- /dev/null +++ b/docs/manuals/ADMIN/html/gitbook/theme.js @@ -0,0 +1 @@ +!function r(o,i,a){function s(t,e){if(!i[t]){if(!o[t]){var n="function"==typeof require&&require;if(!e&&n)return n(t,!0);if(l)return l(t,!0);throw(e=new Error("Cannot find module '"+t+"'")).code="MODULE_NOT_FOUND",e}n=i[t]={exports:{}},o[t][0].call(n.exports,function(e){return s(o[t][1][e]||e)},n,n.exports,r,o,i,a)}return i[t].exports}for(var l="function"==typeof require&&require,e=0;e= 0x80 (not a basic code point)","invalid-input":"Invalid input"},p=m-1,b=Math.floor,x=String.fromCharCode;function w(e){throw new RangeError(f[e])}function d(e,t){for(var n=e.length,r=[];n--;)r[n]=t(e[n]);return r}function h(e,t){var n=e.split("@"),r="",n=(1>>10&1023|55296),e=56320|1023&e),t+=x(e)}).join("")}function j(e,t){return e+22+75*(e<26)-((0!=t)<<5)}function A(e,t,n){var r=0;for(e=n?b(e/s):e>>1,e+=b(e/t);p*v>>1b((g-c)/i))&&w("overflow"),c+=s*i,!(s<(s=a<=p?1:p+v<=a?v:a-p));a+=m)i>b(g/(s=m-s))&&w("overflow"),i*=s;p=A(c-o,t=l.length+1,0==o),b(c/t)>g-f&&w("overflow"),f+=b(c/t),c%=t,l.splice(c++,0,f)}return y(l)}function C(e){for(var t,n,r,o,i,a,s,l,u,c,f=[],p=(e=S(e)).length,d=128,h=72,y=t=0;yb((g-t)/(l=n+1))&&w("overflow"),t+=(o-d)*l,d=o,y=0;yg&&w("overflow"),s==d){for(i=t,a=m;!(i<(u=a<=h?1:h+v<=a?v:a-h));a+=m)f.push(x(j(u+(c=i-u)%(u=m-u),0))),i=b(c/u);f.push(x(j(i,0))),h=A(t,l,n==r),t=0,++n}++t,++d}return f.join("")}if(o={version:"1.4.1",ucs2:{decode:S,encode:y},decode:k,encode:C,toASCII:function(e){return h(e,function(e){return u.test(e)?"xn--"+C(e):e})},toUnicode:function(e){return h(e,function(e){return l.test(e)?k(e.slice(4).toLowerCase()):e})}},"function"==typeof define&&"object"==typeof define.amd&&define.amd)define("punycode",function(){return o});else if(t&&n)if(E.exports==t)n.exports=o;else for(i in o)o.hasOwnProperty(i)&&(t[i]=o[i]);else e.punycode=o}.call(this)}.call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{}],3:[function(e,t,n){"use strict";var r=e("get-intrinsic"),o=e("./"),i=o(r("String.prototype.indexOf"));t.exports=function(e,t){t=r(e,!!t);return"function"==typeof t&&-1=n.length?(l=!!(f=h(i,u)))&&"get"in f&&!("originalValue"in f.get)?f.get:i[u]:(l=b(i,u),i[u]),l&&!a&&(g[c]=i)}}return i}},{"function-bind":6,has:11,"has-proto":8,"has-symbols":9}],8:[function(e,t,n){"use strict";var r={foo:{}},o=Object;t.exports=function(){return{__proto__:r}.foo===r.foo&&!({__proto__:null}instanceof o)}},{}],9:[function(e,t,n){"use strict";var r="undefined"!=typeof Symbol&&Symbol,o=e("./shams");t.exports=function(){return"function"==typeof r&&("function"==typeof Symbol&&("symbol"==typeof r("foo")&&("symbol"==typeof Symbol("bar")&&o())))}},{"./shams":10}],10:[function(e,t,n){"use strict";t.exports=function(){if("function"!=typeof Symbol||"function"!=typeof Object.getOwnPropertySymbols)return!1;if("symbol"!=typeof Symbol.iterator){var e={},t=Symbol("test"),n=Object(t);if("string"==typeof t)return!1;if("[object Symbol]"!==Object.prototype.toString.call(t))return!1;if("[object Symbol]"!==Object.prototype.toString.call(n))return!1;for(t in e[t]=42,e)return!1;if("function"==typeof Object.keys&&0!==Object.keys(e).length)return!1;if("function"==typeof Object.getOwnPropertyNames&&0!==Object.getOwnPropertyNames(e).length)return!1;n=Object.getOwnPropertySymbols(e);if(1!==n.length||n[0]!==t)return!1;if(!Object.prototype.propertyIsEnumerable.call(e,t))return!1;if("function"==typeof Object.getOwnPropertyDescriptor){n=Object.getOwnPropertyDescriptor(e,t);if(42!==n.value||!0!==n.enumerable)return!1}}return!0}},{}],11:[function(e,t,n){"use strict";e=e("function-bind");t.exports=e.call(Function.call,Object.prototype.hasOwnProperty)},{"function-bind":6}],12:[function(e,n,t){!function(e,t){"use strict";"object"==typeof n&&"object"==typeof n.exports?n.exports=e.document?t(e,!0):function(e){if(e.document)return t(e);throw new Error("jQuery requires a window with a document")}:t(e)}("undefined"!=typeof window?window:this,function(w,I){"use strict";function v(e){return"function"==typeof e&&"number"!=typeof e.nodeType}function y(e){return null!=e&&e===e.window}var t=[],M=Object.getPrototypeOf,s=t.slice,F=t.flat?function(e){return t.flat.call(e)}:function(e){return t.concat.apply([],e)},H=t.push,_=t.indexOf,B={},W=B.toString,$=B.hasOwnProperty,U=$.toString,z=U.call(Object),g={},S=w.document,G={type:!0,src:!0,nonce:!0,noModule:!0};function V(e,t,n){var r,o,i=(n=n||S).createElement("script");if(i.text=e,t)for(r in G)(o=t[r]||t.getAttribute&&t.getAttribute(r))&&i.setAttribute(r,o);n.head.appendChild(i).parentNode.removeChild(i)}function h(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?B[W.call(e)]||"object":typeof e}var j=function(e,t){return new j.fn.init(e,t)};function X(e){var t=!!e&&"length"in e&&e.length,n=h(e);return!v(e)&&!y(e)&&("array"===n||0===t||"number"==typeof t&&0>10|55296,1023&e|56320))}function M(e,t){return t?"\0"===e?"�":e.slice(0,-1)+"\\"+e.charCodeAt(e.length-1).toString(16)+" ":"\\"+e}function F(){S()}var e,p,x,i,H,d,_,B,w,l,u,S,j,n,A,h,r,o,y,k="sizzle"+ +new Date,c=I.document,C=0,W=0,$=P(),U=P(),z=P(),g=P(),G=function(e,t){return e===t&&(u=!0),0},V={}.hasOwnProperty,t=[],X=t.pop,K=t.push,T=t.push,Q=t.slice,v=function(e,t){for(var n=0,r=e.length;n+~]|"+a+")"+a+"*"),re=new RegExp(a+"|>"),oe=new RegExp(Z),ie=new RegExp("^"+s+"$"),b={ID:new RegExp("^#("+s+")"),CLASS:new RegExp("^\\.("+s+")"),TAG:new RegExp("^("+s+"|[*])"),ATTR:new RegExp("^"+Y),PSEUDO:new RegExp("^"+Z),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+a+"*(even|odd|(([+-]|)(\\d*)n|)"+a+"*(?:([+-]|)"+a+"*(\\d+)|))"+a+"*\\)|)","i"),bool:new RegExp("^(?:"+J+")$","i"),needsContext:new RegExp("^"+a+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+a+"*((?:-\\d)?\\d*)"+a+"*\\)|)(?=[^-]|$)","i")},ae=/HTML$/i,se=/^(?:input|select|textarea|button)$/i,le=/^h\d$/i,E=/^[^{]+\{\s*\[native \w/,ue=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,ce=/[+~]/,O=new RegExp("\\\\[\\da-fA-F]{1,6}"+a+"?|\\\\([^\\r\\n\\f])","g"),fe=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,pe=ve(function(e){return!0===e.disabled&&"fieldset"===e.nodeName.toLowerCase()},{dir:"parentNode",next:"legend"});try{T.apply(t=Q.call(c.childNodes),c.childNodes),t[c.childNodes.length].nodeType}catch(e){T={apply:t.length?function(e,t){K.apply(e,Q.call(t))}:function(e,t){for(var n=e.length,r=0;e[n++]=t[r++];);e.length=n-1}}}function N(t,e,n,r){var o,i,a,s,l,u,c=e&&e.ownerDocument,f=e?e.nodeType:9;if(n=n||[],"string"!=typeof t||!t||1!==f&&9!==f&&11!==f)return n;if(!r&&(S(e),e=e||j,A)){if(11!==f&&(s=ue.exec(t)))if(o=s[1]){if(9===f){if(!(u=e.getElementById(o)))return n;if(u.id===o)return n.push(u),n}else if(c&&(u=c.getElementById(o))&&y(e,u)&&u.id===o)return n.push(u),n}else{if(s[2])return T.apply(n,e.getElementsByTagName(t)),n;if((o=s[3])&&p.getElementsByClassName&&e.getElementsByClassName)return T.apply(n,e.getElementsByClassName(o)),n}if(p.qsa&&!g[t+" "]&&(!h||!h.test(t))&&(1!==f||"object"!==e.nodeName.toLowerCase())){if(u=t,c=e,1===f&&(re.test(t)||ne.test(t))){for((c=ce.test(t)&&ge(e.parentNode)||e)===e&&p.scope||((a=e.getAttribute("id"))?a=a.replace(fe,M):e.setAttribute("id",a=k)),i=(l=d(t)).length;i--;)l[i]=(a?"#"+a:":scope")+" "+R(l[i]);u=l.join(",")}try{return T.apply(n,c.querySelectorAll(u)),n}catch(e){g(t,!0)}finally{a===k&&e.removeAttribute("id")}}}return B(t.replace(m,"$1"),e,n,r)}function P(){var n=[];function r(e,t){return n.push(e+" ")>x.cacheLength&&delete r[n.shift()],r[e+" "]=t}return r}function D(e){return e[k]=!0,e}function q(e){var t=j.createElement("fieldset");try{return!!e(t)}catch(e){return!1}finally{t.parentNode&&t.parentNode.removeChild(t)}}function de(e,t){for(var n=e.split("|"),r=n.length;r--;)x.attrHandle[n[r]]=t}function he(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&e.sourceIndex-t.sourceIndex;if(r)return r;if(n)for(;n=n.nextSibling;)if(n===t)return-1;return e?1:-1}function ye(t){return function(e){return"form"in e?e.parentNode&&!1===e.disabled?"label"in e?"label"in e.parentNode?e.parentNode.disabled===t:e.disabled===t:e.isDisabled===t||e.isDisabled!==!t&&pe(e)===t:e.disabled===t:"label"in e&&e.disabled===t}}function L(a){return D(function(i){return i=+i,D(function(e,t){for(var n,r=a([],e.length,i),o=r.length;o--;)e[n=r[o]]&&(e[n]=!(t[n]=e[n]))})})}function ge(e){return e&&void 0!==e.getElementsByTagName&&e}for(e in p=N.support={},H=N.isXML=function(e){var t=e.namespaceURI,e=(e.ownerDocument||e).documentElement;return!ae.test(t||e&&e.nodeName||"HTML")},S=N.setDocument=function(e){var e=e?e.ownerDocument||e:c;return e!=j&&9===e.nodeType&&e.documentElement&&(n=(j=e).documentElement,A=!H(j),c!=j&&(e=j.defaultView)&&e.top!==e&&(e.addEventListener?e.addEventListener("unload",F,!1):e.attachEvent&&e.attachEvent("onunload",F)),p.scope=q(function(e){return n.appendChild(e).appendChild(j.createElement("div")),void 0!==e.querySelectorAll&&!e.querySelectorAll(":scope fieldset div").length}),p.attributes=q(function(e){return e.className="i",!e.getAttribute("className")}),p.getElementsByTagName=q(function(e){return e.appendChild(j.createComment("")),!e.getElementsByTagName("*").length}),p.getElementsByClassName=E.test(j.getElementsByClassName),p.getById=q(function(e){return n.appendChild(e).id=k,!j.getElementsByName||!j.getElementsByName(k).length}),p.getById?(x.filter.ID=function(e){var t=e.replace(O,f);return function(e){return e.getAttribute("id")===t}},x.find.ID=function(e,t){if(void 0!==t.getElementById&&A)return(t=t.getElementById(e))?[t]:[]}):(x.filter.ID=function(e){var t=e.replace(O,f);return function(e){e=void 0!==e.getAttributeNode&&e.getAttributeNode("id");return e&&e.value===t}},x.find.ID=function(e,t){if(void 0!==t.getElementById&&A){var n,r,o,i=t.getElementById(e);if(i){if((n=i.getAttributeNode("id"))&&n.value===e)return[i];for(o=t.getElementsByName(e),r=0;i=o[r++];)if((n=i.getAttributeNode("id"))&&n.value===e)return[i]}return[]}}),x.find.TAG=p.getElementsByTagName?function(e,t){return void 0!==t.getElementsByTagName?t.getElementsByTagName(e):p.qsa?t.querySelectorAll(e):void 0}:function(e,t){var n,r=[],o=0,i=t.getElementsByTagName(e);if("*"!==e)return i;for(;n=i[o++];)1===n.nodeType&&r.push(n);return r},x.find.CLASS=p.getElementsByClassName&&function(e,t){if(void 0!==t.getElementsByClassName&&A)return t.getElementsByClassName(e)},r=[],h=[],(p.qsa=E.test(j.querySelectorAll))&&(q(function(e){var t;n.appendChild(e).innerHTML="",e.querySelectorAll("[msallowcapture^='']").length&&h.push("[*^$]="+a+"*(?:''|\"\")"),e.querySelectorAll("[selected]").length||h.push("\\["+a+"*(?:value|"+J+")"),e.querySelectorAll("[id~="+k+"-]").length||h.push("~="),(t=j.createElement("input")).setAttribute("name",""),e.appendChild(t),e.querySelectorAll("[name='']").length||h.push("\\["+a+"*name"+a+"*="+a+"*(?:''|\"\")"),e.querySelectorAll(":checked").length||h.push(":checked"),e.querySelectorAll("a#"+k+"+*").length||h.push(".#.+[+~]"),e.querySelectorAll("\\\f"),h.push("[\\r\\n\\f]")}),q(function(e){e.innerHTML="";var t=j.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),e.querySelectorAll("[name=d]").length&&h.push("name"+a+"*[*^$|!~]?="),2!==e.querySelectorAll(":enabled").length&&h.push(":enabled",":disabled"),n.appendChild(e).disabled=!0,2!==e.querySelectorAll(":disabled").length&&h.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),h.push(",.*:")})),(p.matchesSelector=E.test(o=n.matches||n.webkitMatchesSelector||n.mozMatchesSelector||n.oMatchesSelector||n.msMatchesSelector))&&q(function(e){p.disconnectedMatch=o.call(e,"*"),o.call(e,"[s!='']:x"),r.push("!=",Z)}),h=h.length&&new RegExp(h.join("|")),r=r.length&&new RegExp(r.join("|")),e=E.test(n.compareDocumentPosition),y=e||E.test(n.contains)?function(e,t){var n=9===e.nodeType?e.documentElement:e,t=t&&t.parentNode;return e===t||!(!t||1!==t.nodeType||!(n.contains?n.contains(t):e.compareDocumentPosition&&16&e.compareDocumentPosition(t)))}:function(e,t){if(t)for(;t=t.parentNode;)if(t===e)return!0;return!1},G=e?function(e,t){var n;return e===t?(u=!0,0):(n=!e.compareDocumentPosition-!t.compareDocumentPosition)||(1&(n=(e.ownerDocument||e)==(t.ownerDocument||t)?e.compareDocumentPosition(t):1)||!p.sortDetached&&t.compareDocumentPosition(e)===n?e==j||e.ownerDocument==c&&y(c,e)?-1:t==j||t.ownerDocument==c&&y(c,t)?1:l?v(l,e)-v(l,t):0:4&n?-1:1)}:function(e,t){if(e===t)return u=!0,0;var n,r=0,o=e.parentNode,i=t.parentNode,a=[e],s=[t];if(!o||!i)return e==j?-1:t==j?1:o?-1:i?1:l?v(l,e)-v(l,t):0;if(o===i)return he(e,t);for(n=e;n=n.parentNode;)a.unshift(n);for(n=t;n=n.parentNode;)s.unshift(n);for(;a[r]===s[r];)r++;return r?he(a[r],s[r]):a[r]==c?-1:s[r]==c?1:0}),j},N.matches=function(e,t){return N(e,null,null,t)},N.matchesSelector=function(e,t){if(S(e),p.matchesSelector&&A&&!g[t+" "]&&(!r||!r.test(t))&&(!h||!h.test(t)))try{var n=o.call(e,t);if(n||p.disconnectedMatch||e.document&&11!==e.document.nodeType)return n}catch(e){g(t,!0)}return 0":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(O,f),e[3]=(e[3]||e[4]||e[5]||"").replace(O,f),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||N.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&N.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return b.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&oe.test(n)&&(t=d(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(O,f).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=$[e+" "];return t||(t=new RegExp("(^|"+a+")"+e+"("+a+"|$)"))&&$(e,function(e){return t.test("string"==typeof e.className&&e.className||void 0!==e.getAttribute&&e.getAttribute("class")||"")})},ATTR:function(t,n,r){return function(e){e=N.attr(e,t);return null==e?"!="===n:!n||(e+="","="===n?e===r:"!="===n?e!==r:"^="===n?r&&0===e.indexOf(r):"*="===n?r&&-1:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i;function Y(e,n,r){return v(n)?j.grep(e,function(e,t){return!!n.call(e,t,e)!==r}):n.nodeType?j.grep(e,function(e){return e===n!==r}):"string"!=typeof n?j.grep(e,function(e){return-1<_.call(n,e)!==r}):j.filter(n,e,r)}j.filter=function(e,t,n){var r=t[0];return n&&(e=":not("+e+")"),1===t.length&&1===r.nodeType?j.find.matchesSelector(r,e)?[r]:[]:j.find.matches(e,j.grep(t,function(e){return 1===e.nodeType}))},j.fn.extend({find:function(e){var t,n,r=this.length,o=this;if("string"!=typeof e)return this.pushStack(j(e).filter(function(){for(t=0;t)[^>]*|#([\w-]+))$/,te=((j.fn.init=function(e,t,n){if(e){if(n=n||Z,"string"!=typeof e)return e.nodeType?(this[0]=e,this.length=1,this):v(e)?void 0!==n.ready?n.ready(e):e(j):j.makeArray(e,this);if(!(r="<"===e[0]&&">"===e[e.length-1]&&3<=e.length?[null,e,null]:ee.exec(e))||!r[1]&&t)return(!t||t.jquery?t||n:this.constructor(t)).find(e);if(r[1]){if(t=t instanceof j?t[0]:t,j.merge(this,j.parseHTML(r[1],t&&t.nodeType?t.ownerDocument||t:S,!0)),J.test(r[1])&&j.isPlainObject(t))for(var r in t)v(this[r])?this[r](t[r]):this.attr(r,t[r])}else(n=S.getElementById(r[2]))&&(this[0]=n,this.length=1)}return this}).prototype=j.fn,Z=j(S),/^(?:parents|prev(?:Until|All))/),ne={children:!0,contents:!0,next:!0,prev:!0};function re(e,t){for(;(e=e[t])&&1!==e.nodeType;);return e}j.fn.extend({has:function(e){var t=j(e,this),n=t.length;return this.filter(function(){for(var e=0;e\x20\t\r\n\f]*)/i,je=/^$|^module$|\/(?:java|ecma)script/i,E=(D=S.createDocumentFragment().appendChild(S.createElement("div")),(a=S.createElement("input")).setAttribute("type","radio"),a.setAttribute("checked","checked"),a.setAttribute("name","t"),D.appendChild(a),g.checkClone=D.cloneNode(!0).cloneNode(!0).lastChild.checked,D.innerHTML="",g.noCloneChecked=!!D.cloneNode(!0).lastChild.defaultValue,D.innerHTML="",g.option=!!D.lastChild,{thead:[1,"","
      "],col:[2,"","
      "],tr:[2,"","
      "],td:[3,"","
      "],_default:[0,"",""]});function O(e,t){var n=void 0!==e.getElementsByTagName?e.getElementsByTagName(t||"*"):void 0!==e.querySelectorAll?e.querySelectorAll(t||"*"):[];return void 0===t||t&&l(e,t)?j.merge([e],n):n}function Ae(e,t){for(var n=0,r=e.length;n",""]);var ke=/<|&#?\w+;/;function Ce(e,t,n,r,o){for(var i,a,s,l,u,c=t.createDocumentFragment(),f=[],p=0,d=e.length;p\s*$/g;function Ie(e,t){return l(e,"table")&&l(11!==t.nodeType?t:t.firstChild,"tr")&&j(e).children("tbody")[0]||e}function Me(e){return e.type=(null!==e.getAttribute("type"))+"/"+e.type,e}function Fe(e){return"true/"===(e.type||"").slice(0,5)?e.type=e.type.slice(5):e.removeAttribute("type"),e}function He(e,t){var n,r,o,i;if(1===t.nodeType){if(x.hasData(e)&&(i=x.get(e).events))for(o in x.remove(t,"handle events"),i)for(n=0,r=i[o].length;n").attr(n.scriptAttrs||{}).prop({charset:n.scriptCharset,src:n.url}).on("load error",o=function(e){r.remove(),o=null,e&&t("error"===e.type?404:200,e.type)}),S.head.appendChild(r[0])},abort:function(){o&&o()}}}),[]),Jt=/(=)\?(?=&|$)|\?\?/,Yt=(j.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=Qt.pop()||j.expando+"_"+Ot.guid++;return this[e]=!0,e}}),j.ajaxPrefilter("json jsonp",function(e,t,n){var r,o,i,a=!1!==e.jsonp&&(Jt.test(e.url)?"url":"string"==typeof e.data&&0===(e.contentType||"").indexOf("application/x-www-form-urlencoded")&&Jt.test(e.data)&&"data");if(a||"jsonp"===e.dataTypes[0])return r=e.jsonpCallback=v(e.jsonpCallback)?e.jsonpCallback():e.jsonpCallback,a?e[a]=e[a].replace(Jt,"$1"+r):!1!==e.jsonp&&(e.url+=(Nt.test(e.url)?"&":"?")+e.jsonp+"="+r),e.converters["script json"]=function(){return i||j.error(r+" was not called"),i[0]},e.dataTypes[0]="json",o=w[r],w[r]=function(){i=arguments},n.always(function(){void 0===o?j(w).removeProp(r):w[r]=o,e[r]&&(e.jsonpCallback=t.jsonpCallback,Qt.push(r)),i&&v(o)&&o(i[0]),i=o=void 0}),"script"}),g.createHTMLDocument=((e=S.implementation.createHTMLDocument("").body).innerHTML="
      ",2===e.childNodes.length),j.parseHTML=function(e,t,n){var r;return"string"!=typeof e?[]:("boolean"==typeof t&&(n=t,t=!1),t||(g.createHTMLDocument?((r=(t=S.implementation.createHTMLDocument("")).createElement("base")).href=S.location.href,t.head.appendChild(r)):t=S),r=!n&&[],(n=J.exec(e))?[t.createElement(n[1])]:(n=Ce([e],t,r),r&&r.length&&j(r).remove(),j.merge([],n.childNodes)))},j.fn.load=function(e,t,n){var r,o,i,a=this,s=e.indexOf(" ");return-1").append(j.parseHTML(e)).find(r):e)}).always(n&&function(e,t){a.each(function(){n.apply(this,i||[e.responseText,t,e])})}),this},j.expr.pseudos.animated=function(t){return j.grep(j.timers,function(e){return t===e.elem}).length},j.offset={setOffset:function(e,t,n){var r,o,i,a,s=j.css(e,"position"),l=j(e),u={};"static"===s&&(e.style.position="relative"),i=l.offset(),r=j.css(e,"top"),a=j.css(e,"left"),s=("absolute"===s||"fixed"===s)&&-1<(r+a).indexOf("auto")?(o=(s=l.position()).top,s.left):(o=parseFloat(r)||0,parseFloat(a)||0),null!=(t=v(t)?t.call(e,n,j.extend({},i)):t).top&&(u.top=t.top-i.top+o),null!=t.left&&(u.left=t.left-i.left+s),"using"in t?t.using.call(e,u):("number"==typeof u.top&&(u.top+="px"),"number"==typeof u.left&&(u.left+="px"),l.css(u))}},j.fn.extend({offset:function(t){var e,n;return arguments.length?void 0===t?this:this.each(function(e){j.offset.setOffset(this,t,e)}):(n=this[0])?n.getClientRects().length?(e=n.getBoundingClientRect(),n=n.ownerDocument.defaultView,{top:e.top+n.pageYOffset,left:e.left+n.pageXOffset}):{top:0,left:0}:void 0},position:function(){if(this[0]){var e,t,n,r=this[0],o={top:0,left:0};if("fixed"===j.css(r,"position"))t=r.getBoundingClientRect();else{for(t=this.offset(),n=r.ownerDocument,e=r.offsetParent||n.documentElement;e&&(e===n.body||e===n.documentElement)&&"static"===j.css(e,"position");)e=e.parentNode;e&&e!==r&&1===e.nodeType&&((o=j(e).offset()).top+=j.css(e,"borderTopWidth",!0),o.left+=j.css(e,"borderLeftWidth",!0))}return{top:t.top-o.top-j.css(r,"marginTop",!0),left:t.left-o.left-j.css(r,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){for(var e=this.offsetParent;e&&"static"===j.css(e,"position");)e=e.offsetParent;return e||k})}}),j.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(t,o){var i="pageYOffset"===o;j.fn[t]=function(e){return f(this,function(e,t,n){var r;if(y(e)?r=e:9===e.nodeType&&(r=e.defaultView),void 0===n)return r?r[o]:e[t];r?r.scrollTo(i?r.pageXOffset:n,i?n:r.pageYOffset):e[t]=n},t,e,arguments.length)}}),j.each(["top","left"],function(e,n){j.cssHooks[n]=tt(g.pixelPosition,function(e,t){if(t)return t=et(e,n),Qe.test(t)?j(e).position()[n]+"px":t})}),j.each({Height:"height",Width:"width"},function(a,s){j.each({padding:"inner"+a,content:s,"":"outer"+a},function(r,i){j.fn[i]=function(e,t){var n=arguments.length&&(r||"boolean"!=typeof e),o=r||(!0===e||!0===t?"margin":"border");return f(this,function(e,t,n){var r;return y(e)?0===i.indexOf("outer")?e["inner"+a]:e.document.documentElement["client"+a]:9===e.nodeType?(r=e.documentElement,Math.max(e.body["scroll"+a],r["scroll"+a],e.body["offset"+a],r["offset"+a],r["client"+a])):void 0===n?j.css(e,t,o):j.style(e,t,n,o)},s,n?e:void 0,n)}})}),j.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,t){j.fn[t]=function(e){return this.on(t,e)}}),j.fn.extend({bind:function(e,t,n){return this.on(e,null,t,n)},unbind:function(e,t){return this.off(e,null,t)},delegate:function(e,t,n,r){return this.on(t,e,n,r)},undelegate:function(e,t,n){return 1===arguments.length?this.off(e,"**"):this.off(t,e||"**",n)},hover:function(e,t){return this.mouseenter(e).mouseleave(t||e)}}),j.each("blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "),function(e,n){j.fn[n]=function(e,t){return 0":".","?":"/","|":"\\"},u={option:"alt",command:"meta",return:"enter",escape:"esc",plus:"+",mod:/Mac|iPod|iPhone|iPad/.test(navigator.platform)?"meta":"ctrl"},c=1;c<20;++c)a[111+c]="f"+c;for(c=0;c<=9;++c)a[c+96]=c;S.prototype.bind=function(e,t,n){return e=e instanceof Array?e:[e],this._bindMultiple.call(this,e,t,n),this},S.prototype.unbind=function(e,t){return this.bind.call(this,e,function(){},t)},S.prototype.trigger=function(e,t){return this._directMap[e+":"+t]&&this._directMap[e+":"+t]({},e),this},S.prototype.reset=function(){return this._callbacks={},this._directMap={},this},S.prototype.stopCallback=function(e,t){return!(-1<(" "+t.className+" ").indexOf(" mousetrap "))&&(!function e(t,n){return null!==t&&t!==o&&(t===n||e(t.parentNode,n))}(t,this.target)&&("INPUT"==t.tagName||"SELECT"==t.tagName||"TEXTAREA"==t.tagName||t.isContentEditable))},S.prototype.handleKey=function(){return this._handleKey.apply(this,arguments)},S.addKeycodes=function(e){for(var t in e)e.hasOwnProperty(t)&&(a[t]=e[t]);i=null},(S.init=function(){var e,t=S(o);for(e in t)"_"!==e.charAt(0)&&(S[e]=function(e){return function(){return t[e].apply(t,arguments)}}(e))})(),r.Mousetrap=S,void 0!==t&&t.exports&&(t.exports=S),"function"==typeof define&&define.amd&&define(function(){return S})}function v(e,t,n){e.addEventListener?e.addEventListener(t,n,!1):e.attachEvent("on"+t,n)}function b(e){var t;return"keypress"==e.type?(t=String.fromCharCode(e.which),e.shiftKey?t:t.toLowerCase()):a[e.which]||s[e.which]||String.fromCharCode(e.which).toLowerCase()}function x(e){return"shift"==e||"ctrl"==e||"alt"==e||"meta"==e}function f(e,t,n){return n="keypress"==(n=n||(function(){if(!i)for(var e in i={},a)95 0, or `null`');if(U(a,"numericSeparator")&&"boolean"!=typeof a.numericSeparator)throw new TypeError('option "numericSeparator", if provided, must be `true` or `false`');var t=a.numericSeparator;if(void 0===n)return"undefined";if(null===n)return"null";if("boolean"==typeof n)return n?"true":"false";if("string"==typeof n)return function e(t,n){if(t.length>n.maxStringLength)return r=t.length-n.maxStringLength,r="... "+r+" more character"+(1"}if(B(n))return 0===n.length?"[]":(l=K(n,y),h&&!function(e){for(var t=0;t "+y(e,n))}),ne("Map",b.call(n),u,h)):function(e){if(w&&e&&"object"==typeof e)try{w.call(e);try{b.call(e)}catch(e){return 1}return e instanceof Set}catch(e){}return}(n)?(c=[],S&&S.call(n,function(e){c.push(y(e,n))}),ne("Set",w.call(n),c,h)):function(e){if(j&&e&&"object"==typeof e)try{j.call(e,j);try{A.call(e,A)}catch(e){return 1}return e instanceof WeakMap}catch(e){}return}(n)?V("WeakMap"):function(e){if(A&&e&&"object"==typeof e)try{A.call(e,A);try{j.call(e,j)}catch(e){return 1}return e instanceof WeakSet}catch(e){}return}(n)?V("WeakSet"):function(e){if(k&&e&&"object"==typeof e)try{return k.call(e),1}catch(e){}return}(n)?V("WeakRef"):"[object Number]"!==z(f=n)||L&&"object"==typeof f&&L in f?function(e){if(e&&"object"==typeof e&&P)try{return P.call(e),1}catch(e){}return}(n)?G(y(P.call(n))):"[object Boolean]"!==z(t=n)||L&&"object"==typeof t&&L in t?"[object String]"!==z(e=n)||L&&"object"==typeof e&&L in e?("[object Date]"!==z(t=n)||L&&"object"==typeof t&&L in t)&&!W(n)?(e=K(n,y),t=I?I(n)===Object.prototype:n instanceof Object||n.constructor===Object,p=n instanceof Object?"":"null prototype",d=!t&&L&&Object(n)===n&&L in n?C.call(z(n),8,-1):p?"Object":"",t=(!t&&"function"==typeof n.constructor&&n.constructor.name?n.constructor.name+" ":"")+(d||p?"["+N.call(O.call([],d||[],p||[]),": ")+"] ":""),0===e.length?t+"{}":h?t+"{"+X(e,h)+"}":t+"{ "+N.call(e,", ")+" }"):String(n):G(y(String(n))):G(Q.call(n)):G(y(Number(n)))};var l=Object.prototype.hasOwnProperty||function(e){return e in this};function U(e,t){return l.call(e,t)}function z(e){return a.call(e)}function ee(e,t){if(e.indexOf)return e.indexOf(t);for(var n=0,r=e.length;n>6]+c[128|63&l]:l<55296||57344<=l?a+=c[224|l>>12]+c[128|l>>6&63]+c[128|63&l]:(s+=1,l=65536+((1023&l)<<10|1023&i.charCodeAt(s)),a+=c[240|l>>18]+c[128|l>>12&63]+c[128|l>>6&63]+c[128|63&l])}return a},isBuffer:function(e){return!(!e||"object"!=typeof e)&&!!(e.constructor&&e.constructor.isBuffer&&e.constructor.isBuffer(e))},isRegExp:function(e){return"[object RegExp]"===Object.prototype.toString.call(e)},maybeMap:function(e,t){if(y(e)){for(var n=[],r=0;r",'"',"`"," ","\r","\n","\t"]),C=["'"].concat(o),T=["%","/","?",";","#"].concat(C),E=["/","?","#"],O=/^[+a-z0-9A-Z_-]{0,63}$/,N=/^([+a-z0-9A-Z_-]{0,63})(.*)$/,P={javascript:!0,"javascript:":!0},D={javascript:!0,"javascript:":!0},q={http:!0,https:!0,ftp:!0,gopher:!0,file:!0,"http:":!0,"https:":!0,"ftp:":!0,"gopher:":!0,"file:":!0},L=e("qs");function i(e,t,n){var r;return e&&"object"==typeof e&&e instanceof w?e:((r=new w).parse(e,t,n),r)}w.prototype.parse=function(e,t,n){if("string"!=typeof e)throw new TypeError("Parameter 'url' must be a string, not "+typeof e);var r=e.indexOf("?"),r=-1!==r&&r]*)>/i,function(e,t,n,r){return"<"+t+"div"+(t?"":' data-element="'+n+'"')+r+">"}).replace(/<(\/?)(head)([^>]*)>/i,function(e,t,n,r){return"<"+t+"div"+(t?"":' data-element="'+n+'"')+r+">"}).replace(/<(\/?)(body)([^>]*)>/i,function(e,t,n,r){return"<"+t+"div"+(t?"":' data-element="'+n+'"')+r+">"}),c(e)),i=o.find(".book");if(0===i.length)return r=new Error("Invalid gitbook page, redirecting..."),a.reject(r);s&&history.pushState({path:n},null,n),r=(o=c(e)).find("[data-element=head]"),i=o.find(".book"),document.title=r.find("title").text();n=c("head"),n.find("link[rel=prev]").remove(),n.find("link[rel=next]").remove(),n.append(r.find("link[rel=prev]")),n.append(r.find("link[rel=next]")),e=c(".book").attr("class"),o=c(".book-summary").scrollTop();i.toggleClass("with-summary",c(".book").hasClass("with-summary")),c(".book").replaceWith(i),c(".book").attr("class",e),c(".book-summary").scrollTop(o),f.state.$book=c(".book"),w(!u),u&&d(u),a.resolve()}})}).promise();return a.show(n.fail(function(e){console.log(e)}))}location.href=e}function x(){var e=parseInt(c(".body-inner").css("width"),10),t=parseInt(c(".page-wrapper").css("width"),10),e=(c(".navigation-next").css("margin-right",e-t+"px"),l());e.unbind("scroll"),e.scroll(m)}function w(e){var t=c(".book-body").find(".body-inner").find(".page-wrapper"),t=(x(),t&&t[0]&&t[0].focus({preventScroll:!0}),l());e&&t.scrollTop(0),1<(i=c(".book-summary .summary .chapter").filter(function(){var e=c(this).children("a"),t=null;return!!e.length&&(t=e.attr("href").split("#")[0],e=o.resolve(window.location.pathname,t),window.location.pathname==e)})).length?t.scroll(m):r=i.first()}function S(e){var t,n=c(this),r=n.attr("target");(t=e).metaKey||t.altKey||t.ctrlKey||t.shiftKey||0!==e.button||r||(e.stopPropagation(),e.preventDefault(),(t=n.attr("href"))&&b(t,!0))}t.exports={init:function(){c.ajaxSetup({cache:!1}),history.replaceState({path:window.location.href},""),window.onpopstate=function(e){if(null!==e.state)return b(e.state.path,!1)},c(document).on("click",".navigation-prev",S),c(document).on("click",".navigation-next",S),c(document).on("click",".summary [data-path] a",S),c(document).on("click",".page-inner a",S),c(window).resize(x),w(!1)},goNext:function(){var e=c(".navigation-next").attr("href");e&&b(e,!0)},goPrev:function(){var e=c(".navigation-prev").attr("href");e&&b(e,!0)}}},{"./loading":25,"./platform":27,jquery:12,url:21}],27:[function(e,t,n){var r=e("jquery");t.exports={isMobile:function(){return r(document).width()<=600},isSmallScreen:function(){return r(document).width()<=1240}}},{jquery:12}],28:[function(e,t,n){var r=e("jquery"),o=e("./platform"),i=window.gitbook;function a(e,t){null!=i.state&&s()==e||(i.state.$book.toggleClass("without-animation",!(t=null==t?!0:t)),i.state.$book.toggleClass("with-summary",e),i.storage.set("sidebar",s()))}function s(){return i.state.$book.hasClass("with-summary")}t.exports={init:function(){r(document).on("click",".book-summary li.chapter a",function(e){o.isMobile()&&a(!1,!1)})},isOpen:s,toggle:a,filter:function(t){r(".book-summary").find("li").each(function(){var e=r(this).data("path"),e=null==t||-1!==t.indexOf(e);r(this).toggle(e),e&&r(this).parents("li").show()})}}},{"./platform":27,jquery:12}],29:[function(e,t,n){var l=e("jquery"),e=window.gitbook,r=[],o=0;function u(e){e.preventDefault()}function i(e){var t,o,n,r=l(".book-header"),i=r.find("h1"),a="pull-"+e.position,s=l("",{class:"btn",text:e.text?" "+e.text:"","aria-label":e.label,href:"#"});s.click(e.onClick),e.icon&&l("",{class:e.icon}).prependTo(s),(t=e.dropdown?(n=l("
      ",{class:"dropdown "+a+" "+e.className}),s.addClass("toggle-dropdown"),n.append(s),t=e.dropdown,o=l("
      ",{class:"dropdown-menu",html:''}),"string"==typeof t?o.append(t):t.map(function(e){return l.isArray(e)?e:[e]}).forEach(function(e){var n=l("
      ",{class:"buttons"}),r="size-"+e.length;e.forEach(function(e){e=l.extend({text:"",className:"",onClick:u},e||{});var t=l("