Commit 751c77d31ed4bbf4f3edd09c5be4eb91978af8e1
1 parent
b00b9ab0
check errors, add reset password function
Showing
23 changed files
with
214 additions
and
56 deletions
| @@ -1944,6 +1944,7 @@ var flashHandler = function(e, params) { | @@ -1944,6 +1944,7 @@ var flashHandler = function(e, params) { | ||
| 1944 | var type = params.type; | 1944 | var type = params.type; |
| 1945 | if (type == 'alert') type = 'info'; | 1945 | if (type == 'alert') type = 'info'; |
| 1946 | if (type == 'notice') type = 'info'; | 1946 | if (type == 'notice') type = 'info'; |
| 1947 | + if (type == 'error') type = 'danger'; | ||
| 1947 | 1948 | ||
| 1948 | $.notify(params.message, { | 1949 | $.notify(params.message, { |
| 1949 | status: type, | 1950 | status: type, |
| @@ -56,6 +56,8 @@ jQuery(document).ready(function(){ | @@ -56,6 +56,8 @@ jQuery(document).ready(function(){ | ||
| 56 | $cell.data('class', class_value); | 56 | $cell.data('class', class_value); |
| 57 | } | 57 | } |
| 58 | 58 | ||
| 59 | + $this.popover('hide'); | ||
| 60 | + | ||
| 59 | return false; | 61 | return false; |
| 60 | }); | 62 | }); |
| 61 | 63 | ||
| @@ -269,6 +271,8 @@ jQuery(document).ready(function(){ | @@ -269,6 +271,8 @@ jQuery(document).ready(function(){ | ||
| 269 | $('.html-generator').on('click', '.col-operation .col-content, .row-operation .col-content', function(){ | 271 | $('.html-generator').on('click', '.col-operation .col-content, .row-operation .col-content', function(){ |
| 270 | var $this = $(this); | 272 | var $this = $(this); |
| 271 | 273 | ||
| 274 | + $('body').trigger('click'); | ||
| 275 | + | ||
| 272 | if($this.closest('.row-element-block').length > 0){ | 276 | if($this.closest('.row-element-block').length > 0){ |
| 273 | var $cell = $this.closest('.row-element-block'); | 277 | var $cell = $this.closest('.row-element-block'); |
| 274 | }else{ | 278 | }else{ |
| @@ -291,6 +295,16 @@ jQuery(document).ready(function(){ | @@ -291,6 +295,16 @@ jQuery(document).ready(function(){ | ||
| 291 | $('#work_area').slideDown('slow', function(){ | 295 | $('#work_area').slideDown('slow', function(){ |
| 292 | initializeFieldForm($('#page_content_form')); | 296 | initializeFieldForm($('#page_content_form')); |
| 293 | }); | 297 | }); |
| 298 | + | ||
| 299 | + $('#work_area .editor-content').find('.cancel-content').click(function(){ | ||
| 300 | + $('#work_area').slideUp('fast', function(){ | ||
| 301 | + $('#work_area .editor-content').html(''); | ||
| 302 | + $('#structure_area').slideDown('slow', function(){ | ||
| 303 | + }); | ||
| 304 | + }); | ||
| 305 | + return false; | ||
| 306 | + }); | ||
| 307 | + | ||
| 294 | }); | 308 | }); |
| 295 | } | 309 | } |
| 296 | }); | 310 | }); |
| @@ -26,6 +26,27 @@ module Kanjai | @@ -26,6 +26,27 @@ module Kanjai | ||
| 26 | def edit | 26 | def edit |
| 27 | @page_template = PageTemplate.find(params[:id]) | 27 | @page_template = PageTemplate.find(params[:id]) |
| 28 | @url = @page_template.file_expiring_url | 28 | @url = @page_template.file_expiring_url |
| 29 | + | ||
| 30 | + lang = params[:lang] | ||
| 31 | + | ||
| 32 | + if @page_template.unzip | ||
| 33 | + exist_markers = @page_template.page_content_markers.where(lang: lang).collect(&:marker) | ||
| 34 | + | ||
| 35 | + @page_template.template_statics.where.not(marker: exist_markers).each do |item| | ||
| 36 | + @page_template.page_content_markers.create( | ||
| 37 | + marker: item.marker, | ||
| 38 | + marker_type: item.marker_type, | ||
| 39 | + marker_name: item.marker_name, | ||
| 40 | + lang: lang | ||
| 41 | + ) | ||
| 42 | + end | ||
| 43 | + | ||
| 44 | + | ||
| 45 | + | ||
| 46 | + @markers = @page_template.page_content_markers.where(lang: lang) | ||
| 47 | + end | ||
| 48 | + | ||
| 49 | + | ||
| 29 | end | 50 | end |
| 30 | 51 | ||
| 31 | def update | 52 | def update |
| 1 | +require 'unobtrusive_flash' | ||
| 2 | + | ||
| 3 | +module Kanjai | ||
| 4 | + module Admin | ||
| 5 | + class PasswordsController < Devise::PasswordsController | ||
| 6 | + include UnobtrusiveFlash::ControllerMixin | ||
| 7 | + layout 'kanjai/admin_login' | ||
| 8 | + | ||
| 9 | + after_action :prepare_unobtrusive_flash | ||
| 10 | + | ||
| 11 | + def create | ||
| 12 | + self.resource = resource_class.send_reset_password_instructions(resource_params) | ||
| 13 | + yield resource if block_given? | ||
| 14 | + | ||
| 15 | + if successfully_sent?(resource) | ||
| 16 | + respond_with({}, location: after_sending_reset_password_instructions_path_for(resource_name)) | ||
| 17 | + else | ||
| 18 | + flash[:error] = t('password_reset_error') | ||
| 19 | + respond_with(resource) | ||
| 20 | + end | ||
| 21 | + end | ||
| 22 | + | ||
| 23 | + protected | ||
| 24 | + | ||
| 25 | + def after_sign_in_path_for(resource) | ||
| 26 | + admin_dashboard_path | ||
| 27 | + end | ||
| 28 | + | ||
| 29 | + def after_sign_out_path_for(resource) | ||
| 30 | + new_admin_user_session_path | ||
| 31 | + end | ||
| 32 | + | ||
| 33 | + end | ||
| 34 | + end | ||
| 35 | +end |
| @@ -2,7 +2,7 @@ module Kanjai | @@ -2,7 +2,7 @@ module Kanjai | ||
| 2 | class AdminUser < ActiveRecord::Base | 2 | class AdminUser < ActiveRecord::Base |
| 3 | # Include default devise modules. Others available are: | 3 | # Include default devise modules. Others available are: |
| 4 | # :confirmable, :lockable, :timeoutable and :omniauthable | 4 | # :confirmable, :lockable, :timeoutable and :omniauthable |
| 5 | - devise :database_authenticatable, :rememberable, :trackable, :validatable | 5 | + devise :database_authenticatable, :rememberable, :trackable, :validatable, :recoverable |
| 6 | 6 | ||
| 7 | 7 | ||
| 8 | end | 8 | end |
| @@ -18,7 +18,7 @@ module Kanjai | @@ -18,7 +18,7 @@ module Kanjai | ||
| 18 | has_many :page_data, dependent: :destroy | 18 | has_many :page_data, dependent: :destroy |
| 19 | accepts_nested_attributes_for :page_data | 19 | accepts_nested_attributes_for :page_data |
| 20 | 20 | ||
| 21 | - #validates :title, :url, presence: true | 21 | + validates :title, presence: true |
| 22 | 22 | ||
| 23 | #serialize :template_content, Array | 23 | #serialize :template_content, Array |
| 24 | 24 |
| @@ -189,6 +189,16 @@ module Kanjai | @@ -189,6 +189,16 @@ module Kanjai | ||
| 189 | url | 189 | url |
| 190 | end | 190 | end |
| 191 | 191 | ||
| 192 | + def human_title | ||
| 193 | + if original_file_name.to_s.empty? | ||
| 194 | + I18n.t('admin.template_status.not_file') | ||
| 195 | + elsif unzip | ||
| 196 | + I18n.t('admin.template_status.unzip') | ||
| 197 | + else | ||
| 198 | + I18n.t('admin.template_status.zip') | ||
| 199 | + end | ||
| 200 | + end | ||
| 201 | + | ||
| 192 | private | 202 | private |
| 193 | 203 | ||
| 194 | def move_file | 204 | def move_file |
| 1 | -<div class="container"> | ||
| 2 | - <div class="col-md-4" style="float:none;margin:0 auto;"> | ||
| 3 | - <h1>Forgot your password?</h1> | ||
| 4 | - | ||
| 5 | - <%= form_for(resource, as: resource_name, url: password_path(resource_name), html: { method: :post }) do |f| %> | ||
| 6 | - <%= devise_error_messages! %> | ||
| 7 | - | ||
| 8 | - <div class="form-group"> | ||
| 9 | - <%= f.label :email %><br /> | ||
| 10 | - <%= f.email_field :email, autofocus: true, :class => 'form-control' %> | ||
| 11 | - </div> | ||
| 12 | - | ||
| 13 | - | ||
| 14 | - <%= f.submit "Send me reset password instructions", :class => 'btn btn-default' %> | ||
| 15 | - | ||
| 16 | - <% end %> | ||
| 17 | - | ||
| 18 | - <%= render "devise/shared/links" %> | ||
| 19 | - </div> | ||
| 20 | -</div> | ||
| 1 | +<div class="card-body"> | ||
| 2 | + <p class="text-center py-2"><%= t('password_reset_title') %></p> | ||
| 3 | + <%= form_for(resource, as: resource_name, url: password_path(resource_name), html: { method: :post }) do |f| %> | ||
| 4 | + <p class="text-center"><%= t('password_reset_text') %></p> | ||
| 5 | + <div class="form-group"><label class="text-muted" for="resetInputEmail1"><%= t('password_reset_email') %></label> | ||
| 6 | + <div class="input-group with-focus"> | ||
| 7 | + <%= f.email_field :email, autofocus: true, :class => 'form-control border-right-0', autocomplete: 'off' %> | ||
| 8 | + <div class="input-group-append"><span class="input-group-text text-muted bg-transparent border-left-0"><em class="fa fa-envelope"></em></span></div> | ||
| 9 | + </div> | ||
| 10 | + </div><button class="btn btn-danger btn-block" type="submit">Reset</button> | ||
| 11 | + <% end %> | ||
| 12 | +</div> |
| @@ -22,6 +22,9 @@ | @@ -22,6 +22,9 @@ | ||
| 22 | <%= t('admin.login.remember_me') %> | 22 | <%= t('admin.login.remember_me') %> |
| 23 | </label> | 23 | </label> |
| 24 | </div> | 24 | </div> |
| 25 | + <div class="float-right"> | ||
| 26 | + <%= link_to t('forgot_password'), new_password_path(resource_name), class: 'text-muted' %> | ||
| 27 | + </div> | ||
| 25 | <% end -%> | 28 | <% end -%> |
| 26 | 29 | ||
| 27 | </div> | 30 | </div> |
| @@ -21,9 +21,14 @@ | @@ -21,9 +21,14 @@ | ||
| 21 | 21 | ||
| 22 | <div class="card-footer mt-20"> | 22 | <div class="card-footer mt-20"> |
| 23 | <div class="clearfix"> | 23 | <div class="clearfix"> |
| 24 | - <div class="float-right"> | ||
| 25 | - <%= link_to t('actions.cancel'), admin_admin_users_url, class: 'btn btn-secondary' %> | ||
| 26 | - <button class="btn btn-primary" type="submit"><%= t('actions.save') %></button> | 24 | + <div class="row"> |
| 25 | + <div class="col-md-6"> | ||
| 26 | + <p class="mt-1"><%= t('mandatory_fields') %></p> | ||
| 27 | + </div> | ||
| 28 | + <div class="col-md-6 text-right"> | ||
| 29 | + <%= link_to t('actions.cancel'), admin_admin_users_url, class: 'btn btn-secondary' %> | ||
| 30 | + <button class="btn btn-primary" type="submit"><%= t('actions.save') %></button> | ||
| 31 | + </div> | ||
| 27 | </div> | 32 | </div> |
| 28 | </div> | 33 | </div> |
| 29 | </div> | 34 | </div> |
| @@ -22,9 +22,14 @@ | @@ -22,9 +22,14 @@ | ||
| 22 | 22 | ||
| 23 | <div class="card-footer mt-20"> | 23 | <div class="card-footer mt-20"> |
| 24 | <div class="clearfix"> | 24 | <div class="clearfix"> |
| 25 | - <div class="float-right"> | ||
| 26 | - <%= link_to t('actions.cancel'), admin_page_langs_url, class: 'btn btn-secondary' %> | ||
| 27 | - <button class="btn btn-primary" type="submit"><%= t('actions.save') %></button> | 25 | + <div class="row"> |
| 26 | + <div class="col-md-6"> | ||
| 27 | + <p class="mt-1"><%= t('mandatory_fields') %></p> | ||
| 28 | + </div> | ||
| 29 | + <div class="col-md-6 text-right"> | ||
| 30 | + <%= link_to t('actions.cancel'), admin_page_langs_url, class: 'btn btn-secondary' %> | ||
| 31 | + <button class="btn btn-primary" type="submit"><%= t('actions.save') %></button> | ||
| 32 | + </div> | ||
| 28 | </div> | 33 | </div> |
| 29 | </div> | 34 | </div> |
| 30 | </div> | 35 | </div> |
| @@ -29,9 +29,14 @@ | @@ -29,9 +29,14 @@ | ||
| 29 | 29 | ||
| 30 | <div class="card-footer mt-20"> | 30 | <div class="card-footer mt-20"> |
| 31 | <div class="clearfix"> | 31 | <div class="clearfix"> |
| 32 | - <div class="float-right"> | ||
| 33 | - <%= link_to t('actions.cancel'), admin_page_templates_url, class: 'btn btn-secondary' %> | ||
| 34 | - <button class="btn btn-primary" type="submit"><%= t('actions.save') %></button> | 32 | + <div class="row"> |
| 33 | + <div class="col-md-6"> | ||
| 34 | + <p class="mt-1"><%= t('mandatory_fields') %></p> | ||
| 35 | + </div> | ||
| 36 | + <div class="col-md-6 text-right"> | ||
| 37 | + <%= link_to t('actions.cancel'), admin_page_templates_url, class: 'btn btn-secondary' %> | ||
| 38 | + <button class="btn btn-primary" type="submit"><%= t('actions.save') %></button> | ||
| 39 | + </div> | ||
| 35 | </div> | 40 | </div> |
| 36 | </div> | 41 | </div> |
| 37 | </div> | 42 | </div> |
| 1 | <div class="content-wrapper"> | 1 | <div class="content-wrapper"> |
| 2 | <div class="row"> | 2 | <div class="row"> |
| 3 | - <div class="col-xl-12"> | ||
| 4 | - | ||
| 5 | - <%= form_for @page_template, url: admin_page_template_url(@page_template), html: {class: 'form-horizontal ajax-file-upload-form simple_submit'} do |f| %> | ||
| 6 | - <div class="card card-default"> | ||
| 7 | - <div class="card-header"> | ||
| 8 | - <div class="card-title"><%= t('admin.templates.edit') %></div> | ||
| 9 | - </div> | ||
| 10 | - <%= render partial: 'form', locals: {f: f} %> | 3 | + <div class="col-xl-12"> |
| 4 | + <div class="card card-default"> | ||
| 5 | + <div class="card-header"> | ||
| 6 | + <div class="card-title"><%= t('admin.templates.edit') %></div> | ||
| 7 | + </div> | ||
| 8 | + | ||
| 9 | + <ul class="nav nav-tabs" role="tablist"> | ||
| 10 | + <li class="nav-item" role="presentation"><a class="nav-link <%= controller_name == 'page_templates' ? 'active' : '' %>" href="#general" aria-controls="general" role="tab" data-toggle="tab">General</a></li> | ||
| 11 | + <li class="nav-item" role="presentation"><a class="nav-link <%= controller_name == 'page_templates2' ? 'active' : '' %>" href="#static" aria-controls="meta" role="tab" data-toggle="tab">Static</a></li> | ||
| 12 | + <% if Kanjai::PageLang.count > 0 %> | ||
| 13 | + <li class="choose-lang"> | ||
| 14 | + <div class="text-right"> | ||
| 15 | + <%= select_tag :choose_lang, options_for_select(Kanjai::PageLang.all.collect{|lang| [lang.title, lang.code, data: {url: edit_admin_page_template_url(@page_template, lang: lang.code)}] }, params[:lang]), class: 'form-control' %> | ||
| 16 | + </div> | ||
| 17 | + </li> | ||
| 18 | + <% end %> | ||
| 19 | + </ul><!-- Tab panes--> | ||
| 20 | + <div class="tab-content"> | ||
| 21 | + <div class="tab-pane <%= controller_name == 'page_templates' ? 'active' : '' %>" id="general" role="tabpanel"> | ||
| 22 | + <%= form_for @page_template, url: admin_page_template_url(@page_template), html: {class: 'form-horizontal ajax-file-upload-form simple_submit'} do |f| %> | ||
| 23 | + <%= render partial: 'form', locals: {f: f} %> | ||
| 24 | + <% end %> | ||
| 25 | + </div> | ||
| 26 | + | ||
| 27 | + <div class="tab-pane <%= controller_name == 'page_templates2' ? 'active' : '' %>" id="static" role="tabpanel"> | ||
| 28 | + <%= form_for(@page_template, :url => update_marker_admin_page_template_url, :html => {:method => 'POST', :class => "form-horizontal ajax-file-upload-form simple_submit"}) do |form| %> | ||
| 29 | + | ||
| 30 | + <%= form.fields_for :page_content_markers, @markers do |form2| %> | ||
| 31 | + | ||
| 32 | + <div class="form-group"> | ||
| 33 | + <%= form2.label :text_value, form2.object.marker, :class => "control-label" %> | ||
| 34 | + <% if form2.object.marker_type == 'string' %> | ||
| 35 | + <%= form2.text_field :text_value, :class => "form-control" %> | ||
| 36 | + <% end %> | ||
| 37 | + <% if form2.object.marker_type == 'text' %> | ||
| 38 | + <%= form2.text_area :text_value, :class => "form-control page_html_content" %> | ||
| 39 | + <% end %> | ||
| 40 | + <% if form2.object.marker_type == 'file' %> | ||
| 41 | + <% s3_direct_post = S3_BUCKET.presigned_post(key: "#{form2.object.get_file_path}${filename}", success_action_status: '201', acl: 'public-read') %> | ||
| 42 | + <%= form2.file_field :text_value, :class => "", 'data-url' => s3_direct_post.url, 'data-form-data' => s3_direct_post.fields.to_json, 'data-host' => URI.parse(s3_direct_post.url).host , 'data-type' => 'zip' %> | ||
| 43 | + <% if form2.object.text_value.present? %> | ||
| 44 | + <%= link_to 'file', form2.object.text_value %> | ||
| 45 | + <% end %> | ||
| 46 | + <% end %> | ||
| 47 | + | ||
| 48 | + </div> | ||
| 49 | + | ||
| 50 | + | ||
| 51 | + <% end %> | ||
| 52 | + | ||
| 53 | + <div class="card-footer mt-20"> | ||
| 54 | + <div class="clearfix"> | ||
| 55 | + <div class="float-right"> | ||
| 56 | + <%= link_to t('actions.cancel'), admin_page_templates_url, class: 'btn btn-secondary' %> | ||
| 57 | + <button class="btn btn-primary save" type="submit"><%= t('actions.save') %></button> | ||
| 58 | + </div> | ||
| 59 | + </div> | ||
| 60 | + </div> | ||
| 61 | + | ||
| 62 | + <% end %> | ||
| 11 | </div> | 63 | </div> |
| 12 | - <% end %> | 64 | + </div> |
| 13 | 65 | ||
| 66 | + </div> | ||
| 14 | </div> | 67 | </div> |
| 15 | </div> | 68 | </div> |
| 16 | </div> | 69 | </div> |
| @@ -30,7 +30,7 @@ | @@ -30,7 +30,7 @@ | ||
| 30 | <% @collection.each do |item| %> | 30 | <% @collection.each do |item| %> |
| 31 | <tr id='<%= dom_id(item) %>'> | 31 | <tr id='<%= dom_id(item) %>'> |
| 32 | <td><%= item.title %></td> | 32 | <td><%= item.title %></td> |
| 33 | - <td><%= (item.unzip ? 'unzip' : 'zip') %></td> | 33 | + <td><%= item.human_title %></td> |
| 34 | <td><%= I18n.l(item.updated_at) %></td> | 34 | <td><%= I18n.l(item.updated_at) %></td> |
| 35 | <td><%= item.notice %></td> | 35 | <td><%= item.notice %></td> |
| 36 | <td> | 36 | <td> |
| @@ -41,9 +41,6 @@ | @@ -41,9 +41,6 @@ | ||
| 41 | <ul class="dropdown-menu"> | 41 | <ul class="dropdown-menu"> |
| 42 | <li class="dropdown-item"><%= link_to t('actions.edit'), edit_admin_page_template_url(item), class: 'dropdown-item' %></li> | 42 | <li class="dropdown-item"><%= link_to t('actions.edit'), edit_admin_page_template_url(item), class: 'dropdown-item' %></li> |
| 43 | <li class="dropdown-item"><%= link_to t('actions.delete'), admin_page_template_url(item), :class => 'delete-row-item dropdown-item' %></li> | 43 | <li class="dropdown-item"><%= link_to t('actions.delete'), admin_page_template_url(item), :class => 'delete-row-item dropdown-item' %></li> |
| 44 | - <% Kanjai::PageLang.all.each do |lang| %> | ||
| 45 | - <li class="dropdown-item"><%= link_to t('actions.edit_static_element', lang: lang.code), marker_admin_page_template_url(item, :lang => lang.code), class: 'dropdown-item' %></li> | ||
| 46 | - <% end %> | ||
| 47 | </ul> | 44 | </ul> |
| 48 | </div> | 45 | </div> |
| 49 | </td> | 46 | </td> |
| @@ -28,6 +28,7 @@ | @@ -28,6 +28,7 @@ | ||
| 28 | 28 | ||
| 29 | <%= render :partial => 'kanjai/shared/edit_resource_links', locals: {collection_url: admin_page_templates_url} %> | 29 | <%= render :partial => 'kanjai/shared/edit_resource_links', locals: {collection_url: admin_page_templates_url} %> |
| 30 | 30 | ||
| 31 | + | ||
| 31 | <% end %> | 32 | <% end %> |
| 32 | 33 | ||
| 33 | </div> | 34 | </div> |
| @@ -5,7 +5,7 @@ | @@ -5,7 +5,7 @@ | ||
| 5 | 5 | ||
| 6 | <% if @page.new_record? %> | 6 | <% if @page.new_record? %> |
| 7 | <div class="form-group row"> | 7 | <div class="form-group row"> |
| 8 | - <%= form.label :title, Kanjai::Page.human_attribute_name(:title), :class => "col-md-2 col-form-label" %> | 8 | + <%= form.label :title, Kanjai::Page.human_attribute_name(:title) + '*', :class => "col-md-2 col-form-label" %> |
| 9 | <div class="col-md-10"> | 9 | <div class="col-md-10"> |
| 10 | <%= form.text_field :title, :class => "form-control" %> | 10 | <%= form.text_field :title, :class => "form-control" %> |
| 11 | <%= error_messages(@page, :title) %> | 11 | <%= error_messages(@page, :title) %> |
| @@ -57,17 +57,16 @@ | @@ -57,17 +57,16 @@ | ||
| 57 | </div> | 57 | </div> |
| 58 | </div> | 58 | </div> |
| 59 | </fieldset> | 59 | </fieldset> |
| 60 | - | ||
| 61 | <% unless @page.new_record? %> | 60 | <% unless @page.new_record? %> |
| 62 | <fieldset> | 61 | <fieldset> |
| 63 | <legend><%= t('admin.pages.edit_lang_content', :lang => params[:lang]) %></legend> | 62 | <legend><%= t('admin.pages.edit_lang_content', :lang => params[:lang]) %></legend> |
| 64 | - <%= form.fields_for :page_data, @page.page_data.where(lang: params[:lang]) do |form2| %> | ||
| 65 | - | 63 | + <%= form.fields_for :page_data, @page.page_data.select{|item| item.lang == params[:lang] } do |form2| %> |
| 66 | 64 | ||
| 67 | <div class="form-group row"> | 65 | <div class="form-group row"> |
| 68 | <%= form2.label :title, Kanjai::Page.human_attribute_name(:title) + '*', :class => "col-sm-2 col-form-label" %> | 66 | <%= form2.label :title, Kanjai::Page.human_attribute_name(:title) + '*', :class => "col-sm-2 col-form-label" %> |
| 69 | <div class="col-sm-10"> | 67 | <div class="col-sm-10"> |
| 70 | - <%= form2.text_field :title, :class => "form-control" %> | 68 | + <%= form2.text_field :title, :class => "form-control #{@page.errors.include?('page_data.title') ? 'parsley-error' : ''}" %> |
| 69 | + <%= error_messages(form.object, 'page_data.title') %> | ||
| 71 | </div> | 70 | </div> |
| 72 | </div> | 71 | </div> |
| 73 | 72 | ||
| @@ -77,6 +76,7 @@ | @@ -77,6 +76,7 @@ | ||
| 77 | <%= form2.text_field :url, :class => "form-control" %> | 76 | <%= form2.text_field :url, :class => "form-control" %> |
| 78 | </div> | 77 | </div> |
| 79 | </div> | 78 | </div> |
| 79 | + | ||
| 80 | <% end %> | 80 | <% end %> |
| 81 | </fieldset> | 81 | </fieldset> |
| 82 | <% end %> | 82 | <% end %> |
| @@ -85,7 +85,7 @@ | @@ -85,7 +85,7 @@ | ||
| 85 | <div class="clearfix"> | 85 | <div class="clearfix"> |
| 86 | <div class="row"> | 86 | <div class="row"> |
| 87 | <div class="col-md-6"> | 87 | <div class="col-md-6"> |
| 88 | - <p class="mt-1">* Please at mandatory fields</p> | 88 | + <p class="mt-1"><%= t('mandatory_fields') %></p> |
| 89 | </div> | 89 | </div> |
| 90 | <div class="col-md-6"> | 90 | <div class="col-md-6"> |
| 91 | <div class="float-right"> | 91 | <div class="float-right"> |
| @@ -21,7 +21,7 @@ | @@ -21,7 +21,7 @@ | ||
| 21 | <div class="card-footer mt-20"> | 21 | <div class="card-footer mt-20"> |
| 22 | <div class="clearfix"> | 22 | <div class="clearfix"> |
| 23 | <div class="float-right"> | 23 | <div class="float-right"> |
| 24 | - <%= link_to t('actions.cancel'), admin_pages_url, class: 'btn btn-secondary' %> | 24 | + <%= link_to t('actions.cancel'), '#', class: 'btn btn-secondary cancel-content' %> |
| 25 | <button class="btn btn-primary" type="submit"><%= t('actions.save') %></button> | 25 | <button class="btn btn-primary" type="submit"><%= t('actions.save') %></button> |
| 26 | </div> | 26 | </div> |
| 27 | </div> | 27 | </div> |
| @@ -7,7 +7,7 @@ | @@ -7,7 +7,7 @@ | ||
| 7 | 7 | ||
| 8 | <%= csrf_meta_tags %> | 8 | <%= csrf_meta_tags %> |
| 9 | 9 | ||
| 10 | - <title>Angle - Bootstrap Admin Template</title><!-- =============== VENDOR STYLES ===============--> | 10 | + <title><%= t('meta_title') %></title><!-- =============== VENDOR STYLES ===============--> |
| 11 | <!-- FONT AWESOME--> | 11 | <!-- FONT AWESOME--> |
| 12 | <%= stylesheet_link_tag "kanjai/general" %> | 12 | <%= stylesheet_link_tag "kanjai/general" %> |
| 13 | </head> | 13 | </head> |
| @@ -4,7 +4,7 @@ | @@ -4,7 +4,7 @@ | ||
| 4 | <head> | 4 | <head> |
| 5 | <meta charset="utf-8"> | 5 | <meta charset="utf-8"> |
| 6 | <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1"> | 6 | <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1"> |
| 7 | - <title>Angle - Bootstrap Admin Template</title> | 7 | + <title><%= t('meta_title') %></title> |
| 8 | <%= stylesheet_link_tag "kanjai/general" %> | 8 | <%= stylesheet_link_tag "kanjai/general" %> |
| 9 | </head> | 9 | </head> |
| 10 | 10 |
| 1 | template = ERB.new File.new("#{Rails.root}/config/admin.yml").read | 1 | template = ERB.new File.new("#{Rails.root}/config/admin.yml").read |
| 2 | processed = template.result(binding) | 2 | processed = template.result(binding) |
| 3 | 3 | ||
| 4 | -ADMIN_CONFIG = YAML.load(processed)[Rails.env] | ||
| 4 | +ADMIN_CONFIG = YAML.load(processed)[Rails.env] | ||
| 5 | + | ||
| 6 | +ActionView::Base.field_error_proc = Proc.new do |html_tag, instance| | ||
| 7 | + html_tag.html_safe | ||
| 8 | +end |
| @@ -35,6 +35,13 @@ en: | @@ -35,6 +35,13 @@ en: | ||
| 35 | copyright: "© 2020 - kanjai.org" | 35 | copyright: "© 2020 - kanjai.org" |
| 36 | logout: 'Logout' | 36 | logout: 'Logout' |
| 37 | please_wait: "Please, wait ..." | 37 | please_wait: "Please, wait ..." |
| 38 | + mandatory_fields: "* Mandatory fields" | ||
| 39 | + meta_title: "Kanjai - Bootstrap CMS" | ||
| 40 | + forgot_password: "Forgot your password?" | ||
| 41 | + password_reset_title: "PASSWORD RESET" | ||
| 42 | + password_reset_text: "Fill with your mail to receive instructions on how to reset your password." | ||
| 43 | + password_reset_email: "Email address" | ||
| 44 | + password_reset_error: "Can not send instrution, please check email" | ||
| 38 | 45 | ||
| 39 | 46 | ||
| 40 | date: | 47 | date: |
| @@ -78,6 +85,7 @@ en: | @@ -78,6 +85,7 @@ en: | ||
| 78 | updated_at: "Updated at" | 85 | updated_at: "Updated at" |
| 79 | unzip: "Status" | 86 | unzip: "Status" |
| 80 | notice: "Notice" | 87 | notice: "Notice" |
| 88 | + attachment: "Template" | ||
| 81 | kanjai/image: | 89 | kanjai/image: |
| 82 | name: "Name" | 90 | name: "Name" |
| 83 | tags: "Tags" | 91 | tags: "Tags" |
| @@ -141,4 +149,8 @@ en: | @@ -141,4 +149,8 @@ en: | ||
| 141 | empty_text: "You don't have template" | 149 | empty_text: "You don't have template" |
| 142 | edit: "Edit template" | 150 | edit: "Edit template" |
| 143 | create: "Add new template" | 151 | create: "Add new template" |
| 152 | + template_status: | ||
| 153 | + not_file: "" | ||
| 154 | + unzip: "In Progress" | ||
| 155 | + zip: "Ready" | ||
| 144 | 156 |
| @@ -3,7 +3,7 @@ Kanjai::Engine.routes.draw do | @@ -3,7 +3,7 @@ Kanjai::Engine.routes.draw do | ||
| 3 | 3 | ||
| 4 | devise_for :admin_users, { | 4 | devise_for :admin_users, { |
| 5 | path_names: {sign_in: 'login', sign_out: 'logout'}, | 5 | path_names: {sign_in: 'login', sign_out: 'logout'}, |
| 6 | - controllers: {sessions: 'kanjai/admin/sessions'}, | 6 | + controllers: {sessions: 'kanjai/admin/sessions', passwords: 'kanjai/admin/passwords'}, |
| 7 | class_name: "Kanjai::AdminUser", module: :devise | 7 | class_name: "Kanjai::AdminUser", module: :devise |
| 8 | } | 8 | } |
| 9 | 9 |