mirror of
https://gitlink.org.cn/Gitlink/forgeplus.git
synced 2026-05-17 10:15:57 +08:00
init project
This commit is contained in:
8
app/views/admins/mirror_repositories/edit.html.erb
Normal file
8
app/views/admins/mirror_repositories/edit.html.erb
Normal file
@@ -0,0 +1,8 @@
|
||||
<%
|
||||
define_admin_breadcrumbs do
|
||||
add_admin_breadcrumb('镜像管理', admins_mirror_repositories_path)
|
||||
add_admin_breadcrumb('镜像详情')
|
||||
end
|
||||
%>
|
||||
|
||||
<%= render partial: 'admins/mirror_repositories/shared/form', locals: { mirror: @mirror, form_action: 'update' } %>
|
||||
23
app/views/admins/mirror_repositories/index.html.erb
Normal file
23
app/views/admins/mirror_repositories/index.html.erb
Normal file
@@ -0,0 +1,23 @@
|
||||
<% define_admin_breadcrumbs do %>
|
||||
<% add_admin_breadcrumb('镜像管理') %>
|
||||
<% end %>
|
||||
|
||||
<div class="box search-form-container mirror-repository-list-form">
|
||||
<form class="flex-1"></form>
|
||||
<%= link_to '新建', new_admins_mirror_repository_path, class: 'btn btn-primary' %>
|
||||
</div>
|
||||
|
||||
<% if @error_mirror_names.present? %>
|
||||
<div class="box pb-0">
|
||||
以下镜像异常:
|
||||
<% @error_mirror_names.each do |mirror_name| %>
|
||||
<span class="ml-2 text-danger"><%= mirror_name %></span>
|
||||
<% end %>
|
||||
</div>
|
||||
<% end %>
|
||||
|
||||
<div class="box admin-list-container mirror-repository-list-container">
|
||||
<%= render partial: 'admins/mirror_repositories/shared/list', locals: { mirrors: @mirrors } %>
|
||||
</div>
|
||||
|
||||
<%= render 'admins/mirror_repositories/shared/replace_mirror_modal' %>
|
||||
1
app/views/admins/mirror_repositories/index.js.erb
Normal file
1
app/views/admins/mirror_repositories/index.js.erb
Normal file
@@ -0,0 +1 @@
|
||||
$('.mirror-repository-list-container').html("<%= j( render partial: 'admins/mirror_repositories/shared/list', locals: { mirrors: @mirrors } ) %>");
|
||||
5
app/views/admins/mirror_repositories/merge.js.erb
Normal file
5
app/views/admins/mirror_repositories/merge.js.erb
Normal file
@@ -0,0 +1,5 @@
|
||||
$.notify({ message: '操作成功' },{ type: 'success' });
|
||||
|
||||
setTimeout(function(){
|
||||
window.location.reload();
|
||||
}, 500)
|
||||
8
app/views/admins/mirror_repositories/new.html.erb
Normal file
8
app/views/admins/mirror_repositories/new.html.erb
Normal file
@@ -0,0 +1,8 @@
|
||||
<%
|
||||
define_admin_breadcrumbs do
|
||||
add_admin_breadcrumb('镜像管理', admins_mirror_repositories_path)
|
||||
add_admin_breadcrumb('新建镜像')
|
||||
end
|
||||
%>
|
||||
|
||||
<%= render partial: 'admins/mirror_repositories/shared/form', locals: { mirror: @mirror, form_action: 'create' } %>
|
||||
@@ -0,0 +1,42 @@
|
||||
<div class="modal fade admin-choose-mirror-modal" tabindex="-1" role="dialog" aria-hidden="true">
|
||||
<div class="modal-dialog modal-dialog-centered" role="document">
|
||||
<div class="modal-content">
|
||||
<div class="modal-header">
|
||||
<h5 class="modal-title">更新镜像仓库</h5>
|
||||
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
|
||||
<span aria-hidden="true">×</span>
|
||||
</button>
|
||||
</div>
|
||||
<div class="modal-body">
|
||||
<%= form_tag(admins_choose_mirror_repositories_path(mirror_id: mirror.id), method: :post, class: 'admin-choose-mirror-form') do %>
|
||||
<div class="form-group row">
|
||||
<div class="col-md-2"></div>
|
||||
<div class="col-md-5">ID</div>
|
||||
<div class="col-md-5">名称</div>
|
||||
</div>
|
||||
<div class="form-group row">
|
||||
<div class="col-md-2">旧镜像</div>
|
||||
<div class="col-md-5 form-check">
|
||||
<input class="form-check-input" type="radio" name="mirror_number" id="old-mirror-check" value="<%= mirror.mirrorID %>">
|
||||
<label class="form-check-label" for="old-mirror-check"><%= mirror.mirrorID %></label>
|
||||
</div>
|
||||
<div class="col-md-5"><%= mirror.name %></div>
|
||||
</div>
|
||||
<div class="form-group row">
|
||||
<div class="col-md-2">新镜像</div>
|
||||
<div class="col-md-5 form-check">
|
||||
<input class="form-check-input" type="radio" name="mirror_number" id="new-mirror-check" value="<%= new_mirror.mirror_id %>">
|
||||
<label class="form-check-label" for="new-mirror-check"><%= new_mirror.mirror_id %></label>
|
||||
</div>
|
||||
<div class="col-md-5"><%= new_mirror.mirror_name %></div>
|
||||
</div>
|
||||
<div class="mt-2 error text-danger"></div>
|
||||
<% end %>
|
||||
</div>
|
||||
<div class="modal-footer">
|
||||
<button type="button" class="btn btn-secondary" data-dismiss="modal">取消</button>
|
||||
<button type="button" class="btn btn-primary submit-btn">确认</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
42
app/views/admins/mirror_repositories/shared/_form.html.erb
Normal file
42
app/views/admins/mirror_repositories/shared/_form.html.erb
Normal file
@@ -0,0 +1,42 @@
|
||||
<div class="box edit-mirror-repository-container">
|
||||
<%= simple_form_for([:admins, mirror], url: { action: form_action }, html: { class: 'edit-mirror col-md-12' }, defaults: { wrapper_html: { class: 'col-md-4' } }) do |f| %>
|
||||
<% unless mirror.new_record? %>
|
||||
<div class="row">
|
||||
<%= f.input :mirrorID, label: '镜像ID', input_html: { readonly: true, class: 'form-control-plaintext' } %>
|
||||
<%= f.input :name, label: '镜像名称', input_html: { readonly: true, class: 'form-control-plaintext' } %>
|
||||
</div>
|
||||
<% end %>
|
||||
|
||||
<div class="row">
|
||||
<%= f.input :type_name, as: :string, label: '镜像别名 *' %>
|
||||
|
||||
<div class="form-group select optional col-md-4">
|
||||
<%= f.label :main_type, label: '类别' %>
|
||||
<%= f.select :main_type, [['主类别', 1],['小类别', 0]], {}, class: 'form-control optional' %>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row">
|
||||
<%= f.input :time_limit, as: :integer, label: '评测时限(S)' %>
|
||||
<%= f.input :resource_limit, as: :integer, label: '磁盘限制(K)' %>
|
||||
</div>
|
||||
|
||||
<div class="row">
|
||||
<%= f.input :cpu_limit, as: :integer, label: 'CPU限制(核)' %>
|
||||
<%= f.input :memory_limit, as: :integer, label: '内存限制(M)' %>
|
||||
</div>
|
||||
|
||||
<div class="row">
|
||||
<%= f.input :description, as: :text, label: '描述', wrapper_html: { class: 'col-md-8' } %>
|
||||
</div>
|
||||
|
||||
<div class="row">
|
||||
<%= f.input :status, as: :radio_buttons, label: '状态', collection: [%w(未发布 0), %w(已发布 1)], wrapper_html: { class: 'col-md-4' } %>
|
||||
</div>
|
||||
|
||||
<div class="row">
|
||||
<%= f.button :submit, value: '保存', class: 'btn-primary mr-3 px-4', 'data-disable-with': '保存中...' %>
|
||||
<%= link_to '取消', admins_mirror_repositories_path, class: 'btn btn-secondary px-4' %>
|
||||
</div>
|
||||
<% end %>
|
||||
</div>
|
||||
54
app/views/admins/mirror_repositories/shared/_list.html.erb
Normal file
54
app/views/admins/mirror_repositories/shared/_list.html.erb
Normal file
@@ -0,0 +1,54 @@
|
||||
<table class="table table-hover text-center mirror-repository-list-table">
|
||||
<thead class="thead-light">
|
||||
<tr>
|
||||
<th width="6%">ID</th>
|
||||
<th width="6%">类别</th>
|
||||
<th width="12%" class="text-left">镜像别名</th>
|
||||
<th width="16%" class="text-left">镜像名称</th>
|
||||
<th width="22%" class="text-left">镜像描述</th>
|
||||
<th width="14%">修改时间</th>
|
||||
<th width="6%">脚本</th>
|
||||
<th width="6%">状态</th>
|
||||
<th width="12%">操作</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<% if mirrors.present? %>
|
||||
<% mirrors.each do |mirror| %>
|
||||
<tr class="mirror-repository-item-<%= mirror.id %>">
|
||||
<td><%= mirror.id %></td>
|
||||
<td><%= mirror_type_tag(mirror) %></td>
|
||||
<td class="text-left"><%= display_text(mirror.type_name) %></td>
|
||||
<td class="text-left"><%= overflow_hidden_span mirror.name, width: 150 %></td>
|
||||
<td class="text-left"><%= overflow_hidden_span mirror.description, width: 240 %></td>
|
||||
<td><%= mirror.updated_at.strftime('%Y-%m-%d %H:%M') %></td>
|
||||
<td>
|
||||
<% if mirror.main_type == "1" %>
|
||||
<%= link_to admins_mirror_repository_mirror_scripts_path(mirror) do %>
|
||||
<i class="fa fa-file-text <%= mirror.mirror_scripts.blank? ? 'text-danger' : 'text-success' %>" aria-hidden="true" data-toggle="tooltip" data-title="查看脚本"></i>
|
||||
<% end %>
|
||||
<% end %>
|
||||
</td>
|
||||
<td><%= mirror_status_tag mirror %></td>
|
||||
<td class="action-container">
|
||||
<%= link_to '编辑', edit_admins_mirror_repository_path(mirror), class: 'action edit-action' %>
|
||||
|
||||
<% if mirror.status == 2 %>
|
||||
<%= link_to '同步', new_admins_choose_mirror_repository_path(mirror_id: mirror.id), remote: true, class: 'action sync-action' %>
|
||||
<% end %>
|
||||
|
||||
<%= javascript_void_link '替换', class: 'action replace-action', data: { toggle: 'modal', target: '.admin-replace-mirror-modal', id: mirror.id, name: mirror.name } %>
|
||||
|
||||
<% if mirror.deletable? %>
|
||||
<%= delete_link '删除', admins_mirror_repository_path(mirror, element: ".mirror-repository-item-#{mirror.id}"), class: 'delete-mirror-repository-action' %>
|
||||
<% end %>
|
||||
</td>
|
||||
</tr>
|
||||
<% end %>
|
||||
<% else %>
|
||||
<%= render 'admins/shared/no_data_for_table' %>
|
||||
<% end %>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
<%= render partial: 'admins/shared/paginate', locals: { objects: mirrors } %>
|
||||
@@ -0,0 +1,33 @@
|
||||
<div class="modal fade admin-replace-mirror-modal" tabindex="-1" role="dialog" aria-hidden="true">
|
||||
<div class="modal-dialog modal-dialog-centered" role="document">
|
||||
<div class="modal-content">
|
||||
<div class="modal-header">
|
||||
<h5 class="modal-title">镜像替换</h5>
|
||||
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
|
||||
<span aria-hidden="true">×</span>
|
||||
</button>
|
||||
</div>
|
||||
<div class="modal-body">
|
||||
<form class="admin-replace-mirror-form" data-url="<%= merge_admins_mirror_repositories_path %>">
|
||||
<%= hidden_field_tag(:mirror_id, nil) %>
|
||||
<div class="form-group d-flex">
|
||||
<div>被替换镜像:</div>
|
||||
<div class="ml-2">ID:<span class="mx-1 text-info mirror-id-container"></span></div>
|
||||
<div class="ml-2">名称:<span class="mx-1 text-info mirror-name-container"></span></div>
|
||||
</div>
|
||||
<div class="form-group d-flex">
|
||||
<label for="new_mirror_id" class="col-form-label">选择新镜像:</label>
|
||||
<div class="d-flex flex-column-reverse w-75">
|
||||
<select id="new_mirror_id" name="new_mirror_id" class="form-control new-mirror-select"></select>
|
||||
</div>
|
||||
</div>
|
||||
<div class="error text-danger"></div>
|
||||
</form>
|
||||
</div>
|
||||
<div class="modal-footer">
|
||||
<button type="button" class="btn btn-secondary" data-dismiss="modal">取消</button>
|
||||
<button type="button" class="btn btn-primary submit-btn">确认</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
Reference in New Issue
Block a user