Use bootstrap-vue on /plugins/installed

Signed-off-by: Kenji Okimoto <okimoto@clear-code.com>
This commit is contained in:
Kenji Okimoto 2018-10-04 14:31:03 +09:00
parent 947883c72d
commit 9e9a0f352f
No known key found for this signature in database
GPG Key ID: F9E3E329A5C5E4A1

View File

@ -1,67 +1,56 @@
- page_title t('.page_title') - page_title t('.page_title')
%table{class: "table table-striped table-hover", id: "plugins-table"} #plugin-table
%thead %b-form-group.float-right(horizontal){"label" => t("terms.search")}
%tr %b-input-group
%th{scope: "col"} %b-form-input{"v-model" => "filter"}
%th{scope: "col"}= t('plugins.common.name') %b-input-group-append
%th{scope: "col"}= t('plugins.common.authors') %b-btn{ "v-bind:disabled" => "!filter", "v-on:click" => "filter = ''" }
%th{scope: "col"}= t('plugins.common.summary') = t("terms.clear")
%th{scope: "col"}= t('plugins.common.installed_version') %b-table(stripped hover small){"v-bind:items" => "items",
%th{scope: "col"}= t('plugins.common.latest_version') "v-bind:fields" => "fields",
%th{scope: "col"} "v-bind:filter" => "filter"}
%tbody %template{"slot" => "uninstall_button", "slot-scope" => "row"}
- @plugins.each do |plugin| %b-button{"variant" => "danger", "v-b-modal" => "row.item.uninstall_button"}
%tr = t("terms.uninstall")
%td %b-modal{"v-bind:id" => "row.item.uninstall_button",
%button{class: "btn btn-danger", data: {toggle: "modal", target:" #plugin-modal-#{plugin.gem_name}"}} "v-bind:title" => "row.item.name"}
= t "terms.uninstall" = t("terms.confirm_body", action: t("terms.uninstall"))
.modal.fade{id: "plugin-modal-#{plugin.gem_name}"} %template{"slot" => "modal-footer"}
.modal-dialog = form_tag(uninstall_plugins_path, method: :patch) do
.modal-content %b-button{"v-on:click" => "show=false"}
.modal-header Close
%button.close{"data-dismiss" => "modal"} %input{"type" => "hidden", "name" => "plugins[]", "v-bind:value" => "row.item.name"}
= raw "&times;" %b-button{"type" => "submit", "variant" => "danger"}
%h4.modal-title = t("terms.uninstall")
= plugin.gem_name %template{"slot" => "is_latest_version", "slot-scope" => "row"}
.modal-body %template{"v-if" => "row.value"}
= t('terms.confirm_body', action: t('terms.uninstall')) = t("plugins.common.latest_version")
.modal-footer %template(v-else)
= form_tag(uninstall_plugins_path, method: :patch) do = form_tag(upgrade_plugins_path, method: :patch) do
%button.btn.btn-secondary{"data-dismiss" => "modal"} %input{"type" => "hidden", "name" => "plugins[name]", "v-bind:value" => "row.item.name"}
Close %input{"type" => "hidden", "name" => "plugins[version]", "v-bind:value" => "row.item.latest_version"}
= hidden_field_tag("plugins[]", plugin.gem_name) = submit_tag(t('plugins.common.install_latest_version'), class: "btn btn-primary")
= submit_tag t('terms.uninstall'), class: "btn btn-danger"
%td
%label{for: "plugin_#{plugin.gem_name}"}
= plugin.gem_name
%td
= plugin.authors
%td
= plugin.summary
%td
= plugin.installed_version
%td
= plugin.latest_version
%td
- if plugin.latest_version?
= t('plugins.common.latest_version')
- else
= form_tag(upgrade_plugins_path, method: :patch) do
= hidden_field_tag("plugins[name]", plugin.gem_name)
= hidden_field_tag("plugins[version]", plugin.latest_version)
= submit_tag t('plugins.common.install_latest_version'), class: "btn btn-primary"
:javascript :javascript
window.addEventListener("load", () => { window.addEventListener("load", () => {
$('#plugins-table').dataTable({ new Vue({
"autoWidth": false, name: "InstalledPlugins",
"ordering": true, el: "#plugin-table",
"paging": false, data() {
"info": false, return {
"searching": true, fields: {
"language": { uninstall_button: { label: "" },
"search": "#{t("terms.search")} " name: { label: "#{t("plugins.common.name")}", sortable: true },
authors: { label: "#{t("plugins.common.authors")}", sortable: true },
summary: { label: "#{t("plugins.common.summary")}", sortable: true },
installed_version: { label: "#{t("plugins.common.installed_version")}", sortable: true },
latest_version: { label: "#{t("plugins.common.latest_version")}", sortable: true },
is_latest_version: { label: "" }
},
items: #{plugins_json.html_safe},
filter: null
}
} }
}); });
}); });