语言条用封装

This commit is contained in:
huang 2017-03-31 10:51:05 +08:00
parent e694c93d8a
commit 8f37ca1158
6 changed files with 26 additions and 3 deletions

View File

@ -6,6 +6,7 @@ class ChallengesController < ApplicationController
before_filter :build_challege_from_params, :only => [:new, :create] before_filter :build_challege_from_params, :only => [:new, :create]
before_filter :tpi_manager_allowed, :only => [:challenge_build, :destroy, :show, :edit, :new, :create] before_filter :tpi_manager_allowed, :only => [:challenge_build, :destroy, :show, :edit, :new, :create]
before_filter :query_challeges, :only => [:show, :edit, :update] before_filter :query_challeges, :only => [:show, :edit, :update]
before_filter :find_language, :only => [:show, :new, :edit]
include ApplicationHelper include ApplicationHelper
@ -204,4 +205,9 @@ class ChallengesController < ApplicationController
render_404 render_404
end end
def find_language
language = @shixun.language
@language = language_switch language
end
end end

View File

@ -26,6 +26,8 @@ class GamesController < ApplicationController
@rev = @rev.nil? ? "master" : @rev @rev = @rev.nil? ? "master" : @rev
@git_url = git_repository_url(@myshixun, "Myshixun") @git_url = git_repository_url(@myshixun, "Myshixun")
@type = params[:type] @type = params[:type]
language = @shixun.myshixuns.try(:language)
@language = language_switch(language)
# 默认打开文件 # 默认打开文件
if @path == "" && !game_path.nil? && !@repository.cat(game_path, @rev).blank? && @type != "root" if @path == "" && !game_path.nil? && !@repository.cat(game_path, @rev).blank? && @type != "root"
@path = game_path @path = game_path

View File

@ -33,6 +33,21 @@ module ApplicationHelper
extend Forwardable extend Forwardable
def_delegators :wiki_helper, :wikitoolbar_for, :heads_for_wiki_formatter def_delegators :wiki_helper, :wikitoolbar_for, :heads_for_wiki_formatter
# codeMirror语言转换
def language_switch language
case language
when "Java"
"text/c-java"
when "C"
"text/x-csrc"
when "C++"
"text/x-c++src"
when "Python"
"text/x-python"
when "Ruby"
"text/x-ruby"
end
end
# 定义实训相关方法 # 定义实训相关方法
# myshixun 最高分 # myshixun 最高分

View File

@ -272,7 +272,7 @@
} }
var editor = CodeMirror.fromTextArea(document.getElementById("challenge_answer"), { var editor = CodeMirror.fromTextArea(document.getElementById("challenge_answer"), {
mode: {name: 'text/x-java', mode: {name: 'text/x-<%= @language %>',
version: 2, version: 2,
singleLineStringErrors: false}, singleLineStringErrors: false},
lineNumbers: true, lineNumbers: true,

View File

@ -13,7 +13,7 @@
<script type="text/javascript"> <script type="text/javascript">
var editor_CodeMirror = CodeMirror.fromTextArea(document.getElementById("challenge-answer-edit-small"), { var editor_CodeMirror = CodeMirror.fromTextArea(document.getElementById("challenge-answer-edit-small"), {
mode: {name: 'text/x-ruby', mode: {name: 'text/x-<%= @language %>',
version: 2, version: 2,
singleLineStringErrors: false}, singleLineStringErrors: false},
lineNumbers: true, lineNumbers: true,

View File

@ -51,7 +51,7 @@
var myMirror = $("#game_answer_show")[0]; var myMirror = $("#game_answer_show")[0];
var myCodeMirror = CodeMirror(myMirror, { var myCodeMirror = CodeMirror(myMirror, {
value: $("#hidden_game_answer").text(), value: $("#hidden_game_answer").text(),
mode: "text/x-java", mode: "text/x-<%= @language %>",
readOnly: "nocursor", //只读 readOnly: "nocursor", //只读
//cursorBlinkRate: -1, //隐藏光标 //cursorBlinkRate: -1, //隐藏光标
autofocus: true, autofocus: true,