forked from External/greenlight
localize views
This commit is contained in:
@ -1,4 +1,4 @@
|
||||
<h1 class="text-center mt-7">Features</h1>
|
||||
<h1 class="text-center mt-7"><%= t("features.title") %></h1>
|
||||
|
||||
<div class="container text-center">
|
||||
<div class="row mt-8">
|
||||
@ -6,19 +6,19 @@
|
||||
<span class="stamp feature-stamp bg-cyan">
|
||||
<i class="fas fa-chalkboard-teacher fa-3x feature-icon"></i>
|
||||
</span>
|
||||
<h4 class="mt-5 text-muted">Personalized Rooms</h4>
|
||||
<h4 class="mt-5 text-muted"><%= t("features.rooms") %></h4>
|
||||
</div>
|
||||
<div class="col-4">
|
||||
<span class="stamp feature-stamp bg-cyan">
|
||||
<i class="fas fa-film fa-3x feature-icon"></i>
|
||||
</span>
|
||||
<h4 class="mt-5 text-muted">Recording Management</h4>
|
||||
<h4 class="mt-5 text-muted"><%= t("features.recordings") %></h4>
|
||||
</div>
|
||||
<div class="col-4">
|
||||
<span class="stamp feature-stamp bg-cyan">
|
||||
<i class="fas fa-pencil-alt fa-3x feature-icon"></i>
|
||||
</span>
|
||||
<h4 class="mt-5 text-muted">Custom Designs</h4>
|
||||
<h4 class="mt-5 text-muted"><%= t("features.designs") %></h4>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
@ -1,3 +1,3 @@
|
||||
<footer class="footer page-footer">
|
||||
<h5 class="text-center">Powered by <a target="_blank" href="http://bigbluebutton.org/">BigBlueButton</a>.</h5>
|
||||
<h5 class="text-center"><%= t("footer.powered_by", href: link_to(t("bigbluebutton"), "http://bigbluebutton.org/", target: "_blank")).html_safe %></h5>
|
||||
</footer>
|
||||
|
@ -9,7 +9,7 @@
|
||||
<div class="d-flex ml-auto">
|
||||
<% if current_user %>
|
||||
<a class="px-5 ml-2 mt-1" href="" data-toggle="modal" data-target="#createRoomModal">
|
||||
<i class="fas fa-plus"></i> Create Room
|
||||
<i class="fas fa-plus"></i> <%= t("header.create_room") %>
|
||||
</a>
|
||||
<div class="dropdown">
|
||||
<a href="#" class="nav-link pr-0" data-toggle="dropdown">
|
||||
@ -24,29 +24,29 @@
|
||||
</a>
|
||||
<div class="dropdown-menu dropdown-menu-right dropdown-menu-arrow" x-placement="bottom-end">
|
||||
<%= link_to current_user.main_room, class: "dropdown-item" do %>
|
||||
<i class="dropdown-icon fas fa-home"></i> Home Room
|
||||
<i class="dropdown-icon fas fa-home"></i> <%= t("header.dropdown.home") %>
|
||||
<% end %>
|
||||
<%= link_to edit_user_path(current_user), class: "dropdown-item" do %>
|
||||
<i class="dropdown-icon fas fa-cog"></i> Settings
|
||||
<i class="dropdown-icon fas fa-cog"></i> <%= t("header.dropdown.settings") %>
|
||||
<% end %>
|
||||
<div class="dropdown-divider"></div>
|
||||
<a class="dropdown-item" href="http://docs.bigbluebutton.org/install/greenlight.html" target="_blank">
|
||||
<i class="dropdown-icon far fa-question-circle"></i> Need help?
|
||||
<i class="dropdown-icon far fa-question-circle"></i> <%= t("header.dropdown.help") %>
|
||||
</a>
|
||||
<%= link_to logout_path, class: "dropdown-item" do %>
|
||||
<i class="dropdown-icon fas fa-sign-out-alt"></i> Sign out
|
||||
<i class="dropdown-icon fas fa-sign-out-alt"></i> <%= t("header.dropdown.signout") %>
|
||||
<% end %>
|
||||
</div>
|
||||
</div>
|
||||
<% else %>
|
||||
<% if Rails.configuration.omniauth_bn_launcher && !current_user %>
|
||||
<%= link_to "Login", "#{Rails.configuration.relative_url_root}/auth/bn_launcher", :class => "btn btn-pill btn-outline-primary mx-2" %>
|
||||
<% if Rails.configuration.omniauth_bn_launcher && !current_user %>
|
||||
<%= link_to t("login"), "#{Rails.configuration.relative_url_root}/auth/bn_launcher", :class => "btn btn-pill btn-outline-primary mx-2" %>
|
||||
<% else %>
|
||||
<%= link_to "Login", "#loginModal", :class => "btn btn-pill btn-outline-primary mx-2", "data-toggle": "modal" %>
|
||||
<%= link_to t("login"), "#loginModal", :class => "btn btn-pill btn-outline-primary mx-2", "data-toggle": "modal" %>
|
||||
<% end %>
|
||||
|
||||
<% if allow_user_signup? %>
|
||||
<%= link_to "Signup", signup_path, :class => "btn btn-pill btn-outline-primary mx-2" %>
|
||||
<%= link_to t("signup.title"), signup_path, :class => "btn btn-pill btn-outline-primary mx-2" %>
|
||||
<% end %>
|
||||
|
||||
<%= render "shared/modals/login_modal" %>
|
||||
|
@ -2,7 +2,7 @@
|
||||
<div class="container">
|
||||
<div class="row pt-9">
|
||||
<div class="col-lg-12 col-sm-12">
|
||||
<h4 class="text-left">You have been invited to join</h4>
|
||||
<h4 class="text-left"><%= t("room.invited") %></h4>
|
||||
<h1 class="display-3 text-left mb-3 font-weight-400"><%= @room.name %></h1>
|
||||
<hr class="mt-2 float-left w-25">
|
||||
</div>
|
||||
@ -15,7 +15,7 @@
|
||||
<% else %>
|
||||
<span class="avatar" style="background-image: url(<%= @room.owner.image %>)"></span>
|
||||
<% end %>
|
||||
<h5 class="font-weight-normal ml-4 mt-3"><%= @room.owner.name %> (Owner)</h5>
|
||||
<h5 class="font-weight-normal ml-4 mt-3"><%= @room.owner.name %> (<%= t("room.invited") %>)</h5>
|
||||
</div>
|
||||
|
||||
<div class="col-lg-6 col-md-4 col-sm-12">
|
||||
|
@ -1,7 +1,7 @@
|
||||
<div class="sessions pb-5">
|
||||
<div class="container pt-6">
|
||||
|
||||
<%= render "shared/components/subtitle", subtitle: (only_public ? "Public " : "") + "Recordings", search: true %>
|
||||
<%= render "shared/components/subtitle", subtitle: (only_public ? t("recording.visibility.public") + " " : "") + t("room.recordings"), search: true %>
|
||||
<div class="row">
|
||||
<div class="col-12">
|
||||
<div class="card">
|
||||
@ -9,12 +9,12 @@
|
||||
<table class="table table-hover table-outline table-vcenter text-nowrap card-table">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Name</th>
|
||||
<th>Thumbnails</th>
|
||||
<th class="text-left">Length</th>
|
||||
<th class="text-left">Users</th>
|
||||
<th class="text-left">Visibility</th>
|
||||
<th>Formats</th>
|
||||
<th><%= t("recording.table.name") %></th>
|
||||
<th><%= t("recording.table.thumbnails") %></th>
|
||||
<th class="text-left"><%= t("recording.table.length") %></th>
|
||||
<th class="text-left"><%= t("recording.table.users") %></th>
|
||||
<th class="text-left"><%= t("recording.table.visibility") %></th>
|
||||
<th><%= t("recording.table.formats") %></th>
|
||||
<% unless only_public %>
|
||||
<th class="text-center"><i class="icon-settings"></i></th>
|
||||
<% end %>
|
||||
@ -24,7 +24,7 @@
|
||||
<% if recordings.empty? %>
|
||||
<tr>
|
||||
<td colspan="7" class="text-center h4 p-6 font-weight-normal">
|
||||
<%= "This room has no #{(only_public ? "public " : "")} recordings." %>
|
||||
<%= t("recording.no_recordings", inject: only_public ? t("recording.visibility.public").downcase + " " : "") %>
|
||||
</td>
|
||||
</tr>
|
||||
<% else %>
|
||||
@ -39,7 +39,7 @@
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
@ -2,7 +2,7 @@
|
||||
<td>
|
||||
<div><%= recording[:name] %></div>
|
||||
<div class="small text-muted">
|
||||
Recorded on <%= recording_date(recording[:startTime]) %>
|
||||
<%= t("recording.recorded_on", date: recording_date(recording[:startTime])) %>
|
||||
</div>
|
||||
</td>
|
||||
<td>
|
||||
@ -15,22 +15,22 @@
|
||||
</td>
|
||||
<td class="text-left">
|
||||
<div class="small text-muted text-uppercase">
|
||||
Length
|
||||
<%= t("recording.table.length") %>
|
||||
</div>
|
||||
<%= recording_length(recording[:startTime], recording[:endTime]) %>
|
||||
</td>
|
||||
<td class="text-left">
|
||||
<div class="small text-muted text-uppercase">
|
||||
Users
|
||||
<%= t("recording.table.users") %>
|
||||
</div>
|
||||
<%= recording[:participants] %>
|
||||
</td>
|
||||
<td class="text-left">
|
||||
<div class="dropdown">
|
||||
<% if recording[:metadata][:"gl-listed"] == "true" %>
|
||||
<i class="dropdown-icon fas fa-globe px-2"></i> Public
|
||||
<i class="dropdown-icon fas fa-globe px-2"></i> <%= t("recording.visibility.public") %>
|
||||
<% else %>
|
||||
<i class="dropdown-icon fas fa-link px-2"></i> Unlisted
|
||||
<i class="dropdown-icon fas fa-link px-2"></i> <%= t("recording.visibility.unlisted") %>
|
||||
<% end %>
|
||||
</div>
|
||||
</td>
|
||||
|
@ -2,7 +2,7 @@
|
||||
<td>
|
||||
<div><%= recording[:name] %></div>
|
||||
<div class="small text-muted">
|
||||
Recorded on <%= recording_date(recording[:startTime]) %>
|
||||
<%= t("recording.recorded_on", date: recording_date(recording[:startTime])) %>
|
||||
</div>
|
||||
</td>
|
||||
<td>
|
||||
@ -15,29 +15,29 @@
|
||||
</td>
|
||||
<td class="text-left">
|
||||
<div class="small text-muted text-uppercase">
|
||||
Length
|
||||
<%= t("recording.table.length") %>
|
||||
</div>
|
||||
<%= recording_length(recording[:startTime], recording[:endTime]) %>
|
||||
</td>
|
||||
<td class="text-left">
|
||||
<div class="small text-muted text-uppercase">
|
||||
Users
|
||||
<%= t("recording.table.users") %>
|
||||
</div>
|
||||
<%= recording[:participants] %>
|
||||
</td>
|
||||
<td class="text-left">
|
||||
<div class="dropdown">
|
||||
<% if recording[:metadata][:"gl-listed"] == "true" %>
|
||||
<button class="btn btn-sm btn-secondary dropdown-toggle" data-toggle="dropdown"><i class="dropdown-icon fas fa-globe px-2"></i> Public</button>
|
||||
<button class="btn btn-sm btn-secondary dropdown-toggle" data-toggle="dropdown"><i class="dropdown-icon fas fa-globe px-2"></i> <%= t("recording.visibility.public") %></button>
|
||||
<% else %>
|
||||
<button class="btn btn-sm btn-secondary dropdown-toggle" data-toggle="dropdown"><i class="dropdown-icon fas fa-link px-2"></i> Unlisted</button>
|
||||
<button class="btn btn-sm btn-secondary dropdown-toggle" data-toggle="dropdown"><i class="dropdown-icon fas fa-link px-2"></i> <%= t("recording.visibility.unlisted") %></button>
|
||||
<% end %>
|
||||
<div class="dropdown-menu" aria-labelledby="dropdownMenuButton">
|
||||
<%= button_to update_recording_path(@room, record_id: recording[:recordID], state: "public"), class: "dropdown-item" do %>
|
||||
<i class="dropdown-icon fas fa-globe"></i> Public
|
||||
<i class="dropdown-icon fas fa-globe"></i> <%= t("recording.visibility.public") %>
|
||||
<% end %>
|
||||
<%= button_to update_recording_path(@room, record_id: recording[:recordID], state: "unlisted"), class: "dropdown-item" do %>
|
||||
<i class="dropdown-icon fas fa-link"></i> Unlisted
|
||||
<i class="dropdown-icon fas fa-link"></i> <%= t("recording.visibility.unlisted") %>
|
||||
<% end %>
|
||||
</div>
|
||||
</div>
|
||||
@ -51,10 +51,10 @@
|
||||
<div class="item-action dropdown">
|
||||
<a href="javascript:void(0)" data-toggle="dropdown" class="icon"><i class="fas fa-ellipsis-v"></i></a>
|
||||
<div class="dropdown-menu dropdown-menu-right">
|
||||
<a class="dropdown-item email-link" data-pres-link="<%= p[:url] %>"><i class="dropdown-icon far fa-envelope"></i> Email Recording</a>
|
||||
<a class="dropdown-item email-link" data-pres-link="<%= p[:url] %>"><i class="dropdown-icon far fa-envelope"></i> <%= t("recording.email") %></a>
|
||||
<div class="dropdown-divider"></div>
|
||||
<%= button_to delete_recording_path(@room, record_id: recording[:recordID]), method: :delete, class: "dropdown-item" do %>
|
||||
<i class="dropdown-icon far fa-trash-alt"></i> Delete
|
||||
<i class="dropdown-icon far fa-trash-alt"></i> <%= t("delete") %>
|
||||
<% end %>
|
||||
</div>
|
||||
</div>
|
||||
|
@ -15,9 +15,9 @@
|
||||
<h4 class="m-0 force-text-normal"><%= room.name %></h4>
|
||||
<div class="small text-muted">
|
||||
<% if room.sessions > 0 %>
|
||||
<i>Last session on <%= recording_date(room.last_session) %></i>
|
||||
<i><%= t("room.last_session", session: recording_date(room.last_session)) %></i>
|
||||
<% else %>
|
||||
<i>This room has no sessions, yet!</i>
|
||||
<i><%= t("room.no_sessions") %></i>
|
||||
<% end %>
|
||||
</div>
|
||||
</td>
|
||||
@ -28,11 +28,11 @@
|
||||
<div class="dropdown-menu">
|
||||
<!--
|
||||
<%= link_to room, class: "dropdown-item" do %>
|
||||
<i class="dropdown-icon fas fa-cog"></i> Room Settings
|
||||
<i class="dropdown-icon fas fa-cog"></i> <%= t("room.settings") %>
|
||||
<% end %>
|
||||
-->
|
||||
<a href="" data-toggle="modal" data-target="#deleteRoomModal_<%= room.uid %>"class="dropdown-item">
|
||||
<i class="dropdown-icon far fa-trash-alt"></i> Delete
|
||||
<i class="dropdown-icon far fa-trash-alt"></i> <%= t("delete") %>
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
|
@ -4,7 +4,7 @@
|
||||
<div class="modal-body">
|
||||
<div class="card-body p-6">
|
||||
<div class="card-title">
|
||||
<h3>Create New Room</h3>
|
||||
<h3><%= t("modal.create_room.title") %></h3>
|
||||
</div>
|
||||
|
||||
<%= form_for(:room, url: rooms_path) do |f| %>
|
||||
@ -12,13 +12,13 @@
|
||||
<span class="input-icon-addon">
|
||||
<i class="fas fa-chalkboard-teacher"></i>
|
||||
</span>
|
||||
<%= f.text_field :name, id: "room-name", class: "form-control", value: "", placeholder: "Enter a room name...", autocomplete: :off %>
|
||||
<div class="invalid-feedback text-left">Room name cannot be blank.</div>
|
||||
<%= f.text_field :name, id: "room-name", class: "form-control", value: "", placeholder: t("modal.create_room.name_placeholder"), autocomplete: :off %>
|
||||
<div class="invalid-feedback text-left"><%= t("modal.create_room.not_blank") %></div>
|
||||
</div>
|
||||
<label class="custom-switch mt-5 mb-5 float-left">
|
||||
<%= f.check_box :auto_join, class: "custom-switch-input", checked: false %>
|
||||
<span class="custom-switch-indicator"></span>
|
||||
<span class="custom-switch-description">Automatically join me into the room.</span>
|
||||
<span class="custom-switch-description"><%= t("modal.create_room.auto_join") %></span>
|
||||
</label>
|
||||
<div class="form-footer">
|
||||
<%= f.submit "Create Room", id: "create-room-submit", class: "btn btn-outline-primary btn-block btn-pill" %>
|
||||
@ -26,7 +26,7 @@
|
||||
<% end %>
|
||||
</div>
|
||||
<div class="card-footer">
|
||||
<p>You will be free to delete this room at any time.</p>
|
||||
<p><%= t("modal.create_room.free_delete") %></p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
@ -4,20 +4,20 @@
|
||||
<div class="modal-body">
|
||||
<div class="card-body p-6">
|
||||
<div class="card-title">
|
||||
<h3>Are you sure you want to delete <%= room.name %>?</h3>
|
||||
<h3><%= t("modal.delete_room.confirm", room: room.name) %></h3>
|
||||
</div>
|
||||
|
||||
<button type="button" class="btn btn-pill btn-info my-1 btn-del-room" data-dismiss="modal">
|
||||
On second thought, I'll keep it.
|
||||
<%= t("modal.delete_room.keep") %>
|
||||
</button>
|
||||
|
||||
<%= button_to room, method: :delete, id: "delete-confirm", class: "btn btn-pill btn-danger my-1 btn-del-room" do %>
|
||||
I'm sure, delete this room.
|
||||
<%= t("modal.delete_room.delete") %>
|
||||
<% end %>
|
||||
|
||||
</div>
|
||||
<div class="card-footer">
|
||||
<p>You will <b>not</b> be able to recover this room or any of its associated recordings.</p>
|
||||
<p><%= t("modal.delete_room.warning").html_safe %></p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
@ -4,18 +4,22 @@
|
||||
<div class="modal-body">
|
||||
<div class="card-body p-6">
|
||||
<div class="card-title">
|
||||
<h3>Login</h3>
|
||||
<h3><%= t("login") %></h3>
|
||||
</div>
|
||||
|
||||
<% unless configured_providers.length.zero? %>
|
||||
<% configured_providers.each do |provider| %>
|
||||
<%= link_to omniauth_login_url(provider), class: "btn btn-pill btn-#{provider} btn-block" do %>
|
||||
<i class="fab fa-<%= provider %>"></i> <%= "Login with #{provider.capitalize}" %>
|
||||
<i class="fab fa-<%= provider %>"></i> <%= t("modal.login.with", provider: provider.capitalize) %>
|
||||
<% end %>
|
||||
<% end %>
|
||||
|
||||
<div class="or-line my-6">
|
||||
<div><span class="text-uppercase">or</span></div>
|
||||
<div>
|
||||
<span class="text-uppercase">
|
||||
<%= t("modal.login.or") %>
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
<% end %>
|
||||
|
||||
@ -25,7 +29,7 @@
|
||||
<span class="input-icon-addon">
|
||||
<i class="fas fa-at"></i>
|
||||
</span>
|
||||
<%= f.text_field :email, class: "form-control", placeholder: "Email", value: "" %>
|
||||
<%= f.text_field :email, class: "form-control", placeholder: t("email"), value: "" %>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@ -34,12 +38,12 @@
|
||||
<span class="input-icon-addon">
|
||||
<i class="fas fa-key"></i>
|
||||
</span>
|
||||
<%= f.password_field :password, class: "form-control", placeholder: "Password", value: "" %>
|
||||
<%= f.password_field :password, class: "form-control", placeholder: t("password"), value: "" %>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-footer">
|
||||
<%= f.submit "Login", class: "btn btn-outline-primary btn-block btn-pill" %>
|
||||
<%= f.submit t("login"), class: "btn btn-outline-primary btn-block btn-pill" %>
|
||||
</div>
|
||||
<% end %>
|
||||
</div>
|
||||
|
@ -3,24 +3,24 @@
|
||||
<div class="form-group">
|
||||
<div class="row">
|
||||
<div class="col-6">
|
||||
<%= f.label "Fullname", class: "form-label" %>
|
||||
<%= f.label t("settings.account.fullname"), class: "form-label" %>
|
||||
<div class="input-icon">
|
||||
<%= f.text_field :name, class: "form-control #{form_is_invalid?(@user, :name)}", placeholder: "Fullname" %>
|
||||
<%= f.text_field :name, class: "form-control #{form_is_invalid?(@user, :name)}", placeholder: t("settings.account.fullname") %>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="col-6">
|
||||
<%= f.label "Email", class: "form-label" %>
|
||||
<%= f.label t("email"), class: "form-label" %>
|
||||
<div class="input-icon">
|
||||
<%= f.text_field :email, class: "form-control #{form_is_invalid?(@user, :email)}", placeholder: "Email" %>
|
||||
<%= f.text_field :email, class: "form-control #{form_is_invalid?(@user, :email)}", placeholder: t("email") %>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<br>
|
||||
<%= f.label "Provider", class: "form-label" %>
|
||||
<%= f.label t("settings.account.provider"), class: "form-label" %>
|
||||
<%= f.text_field :provider, class: "form-control", readonly: "" %>
|
||||
|
||||
<%= f.label "Image", class: "form-label mt-5" %>
|
||||
<%= f.label t("settings.account.image"), class: "form-label mt-5" %>
|
||||
<div class="row">
|
||||
<div class="col-2">
|
||||
<% if current_user.image.blank? %>
|
||||
@ -30,11 +30,11 @@
|
||||
<% end %>
|
||||
</div>
|
||||
<div class="col-10 mt-5">
|
||||
<%= f.text_field :image, class: "form-control #{form_is_invalid?(@user, :image)}", placeholder: "Profile Image URL" %>
|
||||
<%= f.text_field :image, class: "form-control #{form_is_invalid?(@user, :image)}", placeholder: t("settings.account.image_url") %>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="card-footer">
|
||||
<%= f.submit "Update", class: "btn btn-primary float-right" %>
|
||||
<%= f.submit t("update"), class: "btn btn-primary float-right" %>
|
||||
</div>
|
||||
<% end %>
|
||||
|
@ -1,7 +1,7 @@
|
||||
<div class="form-group">
|
||||
<div class="row">
|
||||
<div class="col-12">
|
||||
<center>Customization not currently supported.</center>
|
||||
<center><%= t("settings.design.not_supported") %></center>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
@ -3,18 +3,18 @@
|
||||
<div class="form-group">
|
||||
<div class="row">
|
||||
<div class="col-8">
|
||||
<%= f.label "Old Password", class: "form-label" %>
|
||||
<%= f.label t("settings.password.old"), class: "form-label" %>
|
||||
<%= f.password_field :password, class: "form-control #{form_is_invalid?(@user, :password)}" %>
|
||||
<br>
|
||||
<%= f.label "New Password", class: "form-label" %>
|
||||
<%= f.label t("settings.password.new"), class: "form-label" %>
|
||||
<%= f.password_field :new_password, class: "form-control #{form_is_invalid?(@user, :password)}" %>
|
||||
<br>
|
||||
<%= f.label "New Password Confirmation", class: "form-label" %>
|
||||
<%= f.label t("settings.password.confirmation"), class: "form-label" %>
|
||||
<%= f.password_field :password_confirmation, class: "form-control #{form_is_invalid?(@user, :password_confirmation)}" %>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="card-footer">
|
||||
<%= f.submit "Update", class: "btn btn-primary float-right" %>
|
||||
<%= f.submit t("update"), class: "btn btn-primary float-right" %>
|
||||
</div>
|
||||
<% end %>
|
||||
|
Reference in New Issue
Block a user