2022-06-30 18:30:50 +08:00
|
|
|
<DModalBody @class="install-theme" @title="admin.customize.theme.install">
|
2021-02-19 01:51:44 +08:00
|
|
|
{{#unless directRepoInstall}}
|
|
|
|
<div class="install-theme-items">
|
2022-06-30 18:30:50 +08:00
|
|
|
<InstallThemeItem @value="popular" @selection={{selection}} @label="admin.customize.theme.install_popular" />
|
|
|
|
<InstallThemeItem @value="local" @selection={{selection}} @label="admin.customize.theme.install_upload" />
|
|
|
|
<InstallThemeItem @value="remote" @selection={{selection}} @label="admin.customize.theme.install_git_repo" />
|
|
|
|
<InstallThemeItem @value="create" @selection={{selection}} @label="admin.customize.theme.install_create" @showIcon={{true}} />
|
2021-02-19 01:51:44 +08:00
|
|
|
</div>
|
|
|
|
{{/unless}}
|
2019-02-21 03:58:31 +08:00
|
|
|
<div class="install-theme-content">
|
|
|
|
{{#if popular}}
|
|
|
|
<div class="popular-theme-items">
|
|
|
|
{{#each themes as |theme|}}
|
2020-05-09 03:38:41 +08:00
|
|
|
<div class="popular-theme-item" data-name={{theme.name}}>
|
2019-02-21 03:58:31 +08:00
|
|
|
<div class="popular-theme-name">
|
2020-04-17 04:38:10 +08:00
|
|
|
<a href={{theme.meta_url}} rel="noopener noreferrer" target="_blank">
|
2019-02-21 03:58:31 +08:00
|
|
|
{{#if theme.component}}
|
|
|
|
{{d-icon "puzzle-piece" title="admin.customize.theme.component"}}
|
|
|
|
{{/if}}
|
|
|
|
{{theme.name}}
|
|
|
|
</a>
|
|
|
|
<div class="popular-theme-description">
|
|
|
|
{{theme.description}}
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
|
|
|
|
<div class="popular-theme-buttons">
|
|
|
|
{{#if theme.installed}}
|
2020-03-11 16:23:10 +08:00
|
|
|
<span>{{i18n "admin.customize.theme.installed"}}</span>
|
2019-02-21 03:58:31 +08:00
|
|
|
{{else}}
|
2022-06-30 18:30:50 +08:00
|
|
|
<DButton @class="btn-small" @label="admin.customize.theme.install" @disabled={{installDisabled}} @icon="upload" @action={{action "installThemeFromList" theme.value}} />
|
2019-02-21 03:58:31 +08:00
|
|
|
|
|
|
|
{{#if theme.preview}}
|
2020-04-17 04:38:10 +08:00
|
|
|
<a href={{theme.preview}} rel="noopener noreferrer" target="_blank">{{d-icon "desktop"}} {{i18n "admin.customize.theme.preview"}}</a>
|
2019-02-21 03:58:31 +08:00
|
|
|
{{/if}}
|
|
|
|
{{/if}}
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
{{/each}}
|
|
|
|
</div>
|
|
|
|
{{/if}}
|
|
|
|
|
|
|
|
{{#if local}}
|
|
|
|
<div class="inputs">
|
2019-07-18 20:34:48 +08:00
|
|
|
<input onchange={{action "uploadLocaleFile"}} type="file" id="file-input" accept=".dcstyle.json,application/json,.tar.gz,application/x-gzip,.zip,application/zip"><br>
|
2019-02-21 03:58:31 +08:00
|
|
|
<span class="description">{{i18n "admin.customize.theme.import_file_tip"}}</span>
|
|
|
|
</div>
|
|
|
|
{{/if}}
|
|
|
|
|
|
|
|
{{#if remote}}
|
|
|
|
<div class="inputs">
|
|
|
|
<div class="repo">
|
|
|
|
<div class="label">{{i18n "admin.customize.theme.import_web_tip"}}</div>
|
2022-06-30 18:30:50 +08:00
|
|
|
<Input @value={{uploadUrl}} placeholder={{urlPlaceholder}} />
|
2019-02-21 03:58:31 +08:00
|
|
|
</div>
|
|
|
|
|
2022-06-30 18:30:50 +08:00
|
|
|
<DButton @class="btn-small advanced-repo" @action={{action "toggleAdvanced"}} @label="admin.customize.theme.import_web_advanced" />
|
2019-02-21 03:58:31 +08:00
|
|
|
|
|
|
|
{{#if advancedVisible}}
|
|
|
|
<div class="branch">
|
|
|
|
<div class="label">{{i18n "admin.customize.theme.remote_branch"}}</div>
|
2022-06-30 18:30:50 +08:00
|
|
|
<Input @value={{branch}} placeholder="main" />
|
2019-02-21 03:58:31 +08:00
|
|
|
</div>
|
|
|
|
|
|
|
|
<div class="check-private">
|
|
|
|
<label>
|
2022-06-30 18:30:50 +08:00
|
|
|
<Input @type="checkbox" @checked={{privateChecked}} />
|
2019-02-21 03:58:31 +08:00
|
|
|
{{i18n "admin.customize.theme.is_private"}}
|
|
|
|
</label>
|
|
|
|
</div>
|
|
|
|
{{#if showPublicKey}}
|
|
|
|
<div class="public-key">
|
|
|
|
<div class="label">{{i18n "admin.customize.theme.public_key"}}</div>
|
2021-07-13 02:34:08 +08:00
|
|
|
<div class="public-key-text-wrapper">
|
2022-06-30 18:30:50 +08:00
|
|
|
<Textarea class="public-key-value" @readonly={{true}} @value={{publicKey}} />
|
|
|
|
<CopyButton @selector="textarea.public-key-value" />
|
2021-07-13 02:34:08 +08:00
|
|
|
</div>
|
2019-02-21 03:58:31 +08:00
|
|
|
</div>
|
2021-04-17 00:46:34 +08:00
|
|
|
{{else}}
|
|
|
|
{{#if privateChecked}}
|
|
|
|
<div class="public-key-note">{{i18n "admin.customize.theme.public_key_note"}}</div>
|
|
|
|
{{/if}}
|
2019-02-21 03:58:31 +08:00
|
|
|
{{/if}}
|
|
|
|
{{/if}}
|
|
|
|
</div>
|
|
|
|
{{/if}}
|
|
|
|
|
|
|
|
{{#if create}}
|
|
|
|
<div class="inputs">
|
2020-03-11 16:23:10 +08:00
|
|
|
<div class="label">{{i18n "admin.customize.theme.create_name"}}</div>
|
2022-06-30 18:30:50 +08:00
|
|
|
<Input @value={{name}} placeholder={{placeholder}} />
|
2019-02-21 03:58:31 +08:00
|
|
|
|
2020-03-11 16:23:10 +08:00
|
|
|
<div class="label">{{i18n "admin.customize.theme.create_type"}}</div>
|
2022-06-30 18:30:50 +08:00
|
|
|
<ComboBox @valueProperty="value" @content={{createTypes}} @value={{selectedType}} @onChange={{action (mut selectedType)}} />
|
2019-02-21 03:58:31 +08:00
|
|
|
</div>
|
|
|
|
{{/if}}
|
2021-02-19 01:51:44 +08:00
|
|
|
|
|
|
|
{{#if directRepoInstall}}
|
|
|
|
<div class="repo">
|
|
|
|
<div class="label">{{html-safe (i18n "admin.customize.theme.direct_install_tip" name=uploadName)}}</div>
|
|
|
|
<pre><code>{{uploadUrl}}</code></pre>
|
|
|
|
</div>
|
|
|
|
{{/if}}
|
2019-02-21 03:58:31 +08:00
|
|
|
</div>
|
|
|
|
|
2022-06-30 18:30:50 +08:00
|
|
|
</DModalBody>
|
2019-02-21 03:58:31 +08:00
|
|
|
|
|
|
|
{{#unless popular}}
|
|
|
|
<div class="modal-footer">
|
2021-01-08 02:03:35 +08:00
|
|
|
{{#if duplicateRemoteThemeWarning}}
|
|
|
|
<div class="install-theme-warning">
|
|
|
|
⚠️ {{duplicateRemoteThemeWarning}}
|
|
|
|
</div>
|
|
|
|
{{/if}}
|
2022-06-30 18:30:50 +08:00
|
|
|
<DButton @action={{action "installTheme"}} @disabled={{installDisabled}} @class="btn btn-primary" @label={{submitLabel}} />
|
|
|
|
<DModalCancel @close={{route-action "closeModal"}} />
|
2019-02-21 03:58:31 +08:00
|
|
|
</div>
|
|
|
|
{{/unless}}
|