mirror of
https://github.com/projekteuler/projekteuler.git
synced 2025-12-10 08:46:41 +01:00
Improve translation creation form by using codemirror
This commit is contained in:
parent
a127fbcf15
commit
5c1709ba7e
1
Gemfile
1
Gemfile
@ -41,6 +41,7 @@ gem 'mathjax-rails'
|
|||||||
gem 'devise', '~> 3.4.1'
|
gem 'devise', '~> 3.4.1'
|
||||||
gem 'devise-bootstrap-views'
|
gem 'devise-bootstrap-views'
|
||||||
|
|
||||||
|
gem 'codemirror-rails'
|
||||||
# Use ActiveModel has_secure_password
|
# Use ActiveModel has_secure_password
|
||||||
# gem 'bcrypt', '~> 3.1.7'
|
# gem 'bcrypt', '~> 3.1.7'
|
||||||
|
|
||||||
|
|||||||
@ -48,6 +48,8 @@ GEM
|
|||||||
bootstrap-sass (3.3.1.0)
|
bootstrap-sass (3.3.1.0)
|
||||||
sass (~> 3.2)
|
sass (~> 3.2)
|
||||||
builder (3.2.2)
|
builder (3.2.2)
|
||||||
|
codemirror-rails (4.8)
|
||||||
|
railties (>= 3.0, < 5)
|
||||||
coffee-rails (4.1.0)
|
coffee-rails (4.1.0)
|
||||||
coffee-script (>= 2.2.0)
|
coffee-script (>= 2.2.0)
|
||||||
railties (>= 4.0.0, < 5.0)
|
railties (>= 4.0.0, < 5.0)
|
||||||
@ -190,6 +192,7 @@ DEPENDENCIES
|
|||||||
autoprefixer-rails
|
autoprefixer-rails
|
||||||
bh (~> 1.2)
|
bh (~> 1.2)
|
||||||
bootstrap-sass (~> 3.3.1)
|
bootstrap-sass (~> 3.3.1)
|
||||||
|
codemirror-rails
|
||||||
coffee-rails (~> 4.1.0)
|
coffee-rails (~> 4.1.0)
|
||||||
coveralls (~> 0.7.2)
|
coveralls (~> 0.7.2)
|
||||||
devise (~> 3.4.1)
|
devise (~> 3.4.1)
|
||||||
|
|||||||
@ -14,4 +14,11 @@
|
|||||||
//= require jquery_ujs
|
//= require jquery_ujs
|
||||||
//= require turbolinks
|
//= require turbolinks
|
||||||
//= require bootstrap-sprockets
|
//= require bootstrap-sprockets
|
||||||
|
//= require codemirror
|
||||||
|
//= require codemirror/addons/display/placeholder
|
||||||
|
//= require codemirror/modes/xml
|
||||||
|
//= require codemirror/modes/css
|
||||||
|
//= require codemirror/modes/javascript
|
||||||
|
//= require codemirror/modes/htmlmixed
|
||||||
|
//= require translations
|
||||||
//= require_tree .
|
//= require_tree .
|
||||||
|
|||||||
@ -1,3 +1,20 @@
|
|||||||
# Place all the behaviors and hooks related to the matching controller here.
|
# Place all the behaviors and hooks related to the matching controller here.
|
||||||
# All this logic will automatically be available in application.js.
|
# All this logic will automatically be available in application.js.
|
||||||
# You can use CoffeeScript in this file: http://coffeescript.org/
|
# You can use CoffeeScript in this file: http://coffeescript.org/
|
||||||
|
|
||||||
|
cm = null
|
||||||
|
|
||||||
|
loadCodeMirror = ->
|
||||||
|
$('#translationNav li:first').addClass('active')
|
||||||
|
$("textarea").each ->
|
||||||
|
cm = CodeMirror.fromTextArea($(this).get(0), {
|
||||||
|
lineNumbers: false,
|
||||||
|
lineWrapping: true,
|
||||||
|
mode: "text/html"
|
||||||
|
})
|
||||||
|
|
||||||
|
$(document).ready loadCodeMirror
|
||||||
|
$(document).on "page:load", loadCodeMirror
|
||||||
|
|
||||||
|
$(document).on "click", '#translationNav a[href="#preview"]', ->
|
||||||
|
$('#preview .problem-content').html(cm.getValue())
|
||||||
@ -12,6 +12,7 @@
|
|||||||
*
|
*
|
||||||
*= require_tree .
|
*= require_tree .
|
||||||
*= require devise_bootstrap_views
|
*= require devise_bootstrap_views
|
||||||
|
*= require codemirror
|
||||||
*= require_self
|
*= require_self
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
|||||||
@ -1,3 +1,35 @@
|
|||||||
// Place all the styles related to the Translations controller here.
|
// Place all the styles related to the Translations controller here.
|
||||||
// They will automatically be included in application.css.scss.
|
// They will automatically be included in application.css.scss.
|
||||||
// You can use Sass (SCSS) here: http://sass-lang.com/
|
// You can use Sass (SCSS) here: http://sass-lang.com/
|
||||||
|
|
||||||
|
.CodeMirror {
|
||||||
|
/* Bootstrap Settings */
|
||||||
|
box-sizing: border-box;
|
||||||
|
margin: 0;
|
||||||
|
font: inherit;
|
||||||
|
display: block;
|
||||||
|
width: 100%;
|
||||||
|
padding: 6px 12px;
|
||||||
|
font-size: 14px;
|
||||||
|
line-height: 1.42857143;
|
||||||
|
color: #555;
|
||||||
|
background: #fff none;
|
||||||
|
border: 1px solid #ccc;
|
||||||
|
border-radius: 4px;
|
||||||
|
box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075);
|
||||||
|
transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s;
|
||||||
|
/* Code Mirror Settings */
|
||||||
|
font-family: monospace;
|
||||||
|
position: relative;
|
||||||
|
overflow: hidden;
|
||||||
|
}
|
||||||
|
|
||||||
|
.CodeMirror-focused {
|
||||||
|
/* Bootstrap Settings */
|
||||||
|
border-color: #66afe9;
|
||||||
|
outline: 0;
|
||||||
|
box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(102, 175, 233, .6);
|
||||||
|
transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s;
|
||||||
|
}
|
||||||
|
|
||||||
|
.CodeMirror-empty pre.CodeMirror-placeholder { color: #999; }
|
||||||
@ -1,5 +1,17 @@
|
|||||||
<%= form_for [@problem, @translation], layout: :basic do |f| %>
|
<%= form_for [@problem, @translation], layout: :basic do |f| %>
|
||||||
<%= f.text_field :title %>
|
<%= f.text_field :title %>
|
||||||
<%= f.text_area :content %>
|
<%= nav id: 'translationNav' do %>
|
||||||
<%= f.submit %>
|
<%= link_to t('.source_code'), '#source', data: {toggle: 'tab'} %>
|
||||||
|
<%= link_to t('.preview'), '#preview', data: {toggle: 'tab'} %>
|
||||||
|
<% end %>
|
||||||
|
<div class="tab-content">
|
||||||
|
<div class="tab-pane active" id="source">
|
||||||
|
<%= f.text_area :content, placeholder: t('.translation_source_explanation') %>
|
||||||
|
</div>
|
||||||
|
<%= panel class: 'tab-pane', id: 'preview' do %>
|
||||||
|
<div class="panel-body problem-content">
|
||||||
|
</div>
|
||||||
|
<% end %>
|
||||||
|
</div>
|
||||||
|
<%= f.submit %>
|
||||||
<% end %>
|
<% end %>
|
||||||
|
|||||||
@ -1,5 +1,3 @@
|
|||||||
<h1><%= t '.new_translation', id: @problem.id %></h1>
|
<h1><%= t '.new_translation', id: @problem.id %></h1>
|
||||||
|
|
||||||
<%= render 'form' %>
|
<%= render 'form' %>
|
||||||
|
|
||||||
<%= link_to t('.back'), :back, class: 'btn btn-default' %>
|
|
||||||
|
|||||||
@ -2,6 +2,10 @@
|
|||||||
|
|
||||||
de:
|
de:
|
||||||
translations:
|
translations:
|
||||||
|
form:
|
||||||
|
preview: Vorschau
|
||||||
|
source_code: Quelltext
|
||||||
|
translation_source_explanation: Hier kommt der HTML-Quelltext der Übersetzung hin.
|
||||||
new:
|
new:
|
||||||
back: Zurück
|
back: Zurück
|
||||||
new_translation: Neue Übersetzung für Problem %{id}
|
new_translation: Neue Übersetzung für Problem %{id}
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user