Merge branch 'develop' of https://bdgit.trustie.net/hushasha/bigdata into develop
This commit is contained in:
commit
ce362108f5
|
|
@ -1,54 +0,0 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="DataSourceManagerImpl" format="xml" hash="1691105180">
|
||||
<data-source source="LOCAL" name="Rails bigdate: production" uuid="adee68b8-199d-47ec-bc4e-eaf7d580fa6c">
|
||||
<driver-ref>mysql</driver-ref>
|
||||
<jdbc-driver>com.mysql.jdbc.Driver</jdbc-driver>
|
||||
<jdbc-url>jdbc:mysql://127.0.0.1/trustie</jdbc-url>
|
||||
<user-name>root</user-name>
|
||||
<user-password>df9bdf98df99df9e</user-password>
|
||||
<libraries />
|
||||
</data-source>
|
||||
<data-source source="LOCAL" name="Rails bigdate: development" uuid="f43a223e-937a-457d-9c1a-d91100b6257b">
|
||||
<driver-ref>mysql</driver-ref>
|
||||
<jdbc-driver>com.mysql.jdbc.Driver</jdbc-driver>
|
||||
<jdbc-url>jdbc:mysql://127.0.0.1/trustie</jdbc-url>
|
||||
<user-name>root</user-name>
|
||||
<user-password>dfc5dfd8dfcbdfc9dfc6dfcfdf9bdf9adfcd</user-password>
|
||||
<libraries />
|
||||
</data-source>
|
||||
<data-source source="LOCAL" name="Rails bigdate: test" uuid="e85434eb-4b0f-4e83-a8a4-933a0fed85bc">
|
||||
<driver-ref>mysql</driver-ref>
|
||||
<jdbc-driver>com.mysql.jdbc.Driver</jdbc-driver>
|
||||
<jdbc-url>jdbc:mysql://127.0.0.1/0623newblank</jdbc-url>
|
||||
<user-name>root</user-name>
|
||||
<user-password>dfc5dfd8dfcbdfc9dfc6dfcfdf9bdf9adfcd</user-password>
|
||||
<libraries />
|
||||
</data-source>
|
||||
<data-source source="LOCAL" name="Rails bigdata: production" uuid="a2967bb5-941b-447d-ba0e-5e62ade5fb7d">
|
||||
<driver-ref>mysql</driver-ref>
|
||||
<jdbc-driver>com.mysql.jdbc.Driver</jdbc-driver>
|
||||
<jdbc-url>jdbc:mysql://127.0.0.1/trustie</jdbc-url>
|
||||
<user-name>root</user-name>
|
||||
<user-password>dfcbdfc6dfcbdfc4dfc6dfc5dfc4dfcd</user-password>
|
||||
<libraries />
|
||||
</data-source>
|
||||
<data-source source="LOCAL" name="Rails bigdata: development" uuid="ea7cc5a3-1ef5-4a23-93bb-2c9650c10d07">
|
||||
<driver-ref>mysql</driver-ref>
|
||||
<jdbc-driver>com.mysql.jdbc.Driver</jdbc-driver>
|
||||
<jdbc-url>jdbc:mysql://127.0.0.1/trustie</jdbc-url>
|
||||
<user-name>root</user-name>
|
||||
<user-password>dfcbdfc6dfcbdfc4dfc6dfc5dfc4dfcd</user-password>
|
||||
<libraries />
|
||||
</data-source>
|
||||
<data-source source="LOCAL" name="Rails bigdata: test" uuid="9f93a163-6133-42ac-a16d-9bd67f458fd6">
|
||||
<driver-ref>mysql</driver-ref>
|
||||
<jdbc-driver>com.mysql.jdbc.Driver</jdbc-driver>
|
||||
<jdbc-url>jdbc:mysql://127.0.0.1/trustie</jdbc-url>
|
||||
<user-name>root</user-name>
|
||||
<user-password>dfcbdfc6dfcbdfc4dfc6dfc5dfc4dfcd</user-password>
|
||||
<libraries />
|
||||
</data-source>
|
||||
</component>
|
||||
</project>
|
||||
|
||||
|
|
@ -581,7 +581,7 @@ class AccountController < ApplicationController
|
|||
def apply_trail
|
||||
apply_action = ApplyAction.where(:user_id => User.current.id, :container_type => "TrialAuthorization", :status => 0).first
|
||||
if apply_action.blank?
|
||||
ApplyAction.create(:user_id => User.current.id, :status => 0, :container_type => "TrialAuthorization")
|
||||
ApplyAction.create(:user_id => User.current.id, :status => 0, :container_type => "TrialAuthorization", :apply_reason => params[:apply_reason])
|
||||
end
|
||||
respond_to do |format|
|
||||
format.js
|
||||
|
|
|
|||
|
|
@ -8,9 +8,17 @@ class ShixunsController < ApplicationController
|
|||
before_filter :shixun_view_allow, :only => [:show]
|
||||
before_filter :require_manager, :only => [ :settings, :add_script, :publish, :collaborators_delete, :shixun_members_added, :add_collaborators]
|
||||
before_filter :validation_email, :only => [:new]
|
||||
#skip_before_filter :verify_authenticity_token, :only => :update_propaedeutics
|
||||
skip_before_filter :verify_authenticity_token, :only => [:gitlab_hook]
|
||||
|
||||
include ApplicationHelper
|
||||
CODES = %W(2 3 4 5 6 7 8 9 A B C D E F G H J K L N M O P Q R S T U V W X Y Z)
|
||||
DCODES = %W(2 3 4 5 6 7 8 9 a b c f e f g h i j k l m n o p q r s t u v w x y z)
|
||||
|
||||
# push代码的时候会触发gitlab hook
|
||||
def ghook
|
||||
shixun_modify_status_without_publish(@shixun, 1)
|
||||
render :json => {status: "success"}
|
||||
end
|
||||
|
||||
def shixun_migrate
|
||||
unless User.current.admin?
|
||||
|
|
@ -82,6 +90,7 @@ class ShixunsController < ApplicationController
|
|||
@rev = params[:rev]
|
||||
file_content = g.files(@shixun.gpid, @path, @rev).content
|
||||
@content = tran_base64_decode64(file_content)
|
||||
|
||||
respond_to do |format|
|
||||
format.js
|
||||
end
|
||||
|
|
@ -446,7 +455,6 @@ class ShixunsController < ApplicationController
|
|||
end
|
||||
end
|
||||
|
||||
CODES = %W(2 3 4 5 6 7 8 9 A B C D E F G H J K L N M O P Q R S T U V W X Y Z)
|
||||
def create
|
||||
identifier = generate_identifier
|
||||
@shixun = Shixun.new(params[:shixun])
|
||||
|
|
@ -476,6 +484,9 @@ class ShixunsController < ApplicationController
|
|||
s = Trustie::Gitlab::Sync.new
|
||||
gproject = s.create_shixun(@shixun, repository)
|
||||
raise "版本库创建失败" if @shixun.gpid.blank? # 若和gitlab没同步成功,则抛出异常
|
||||
g = Gitlab.client
|
||||
hook_url = Setting.protocol + "://" + Setting.host_name + "/shixuns/#{@shixun.identifier}" + "/ghook"
|
||||
g.add_project_hook(@shixun.gpid, hook_url)
|
||||
redirect_to shixun_path @shixun, notice: l(:notice_successful_create)
|
||||
rescue Exception => e
|
||||
respond_to do |format|
|
||||
|
|
@ -493,14 +504,12 @@ class ShixunsController < ApplicationController
|
|||
end
|
||||
end
|
||||
|
||||
CODES = %W(2 3 4 5 6 7 8 9 A B C D E F G H J K L N M O P Q R S T U V W X Y Z)
|
||||
def generate_identifier
|
||||
code = CODES.sample(8).join
|
||||
code = DCODES.sample(8).join
|
||||
return generate_identifier if Shixun.where(identifier: code).present?
|
||||
code
|
||||
end
|
||||
|
||||
DCODES = %W(2 3 4 5 6 7 8 9 a b c f e f g h i j k l m n o p q r s t u v w x y z)
|
||||
def down_generate_identifier type
|
||||
if type == "game"
|
||||
code = DCODES.sample(12).join
|
||||
|
|
|
|||
|
|
@ -185,7 +185,7 @@ module ApplicationHelper
|
|||
|
||||
# 实训语言的种类
|
||||
def shixun_language
|
||||
["Java", "C", "C++", "Python2.7", "Python3.6", "MySQL/Java", "Html", "JFinal", "Docker", "Ethereum", "Dynamips"]
|
||||
["Java", "C", "C++", "Python2.7", "Python3.6", "MySQL/Java", "Html", "JFinal", "Docker", "Ethereum", "Dynamips", "MachineLearning"]
|
||||
end
|
||||
|
||||
# 实训试用专业
|
||||
|
|
|
|||
|
|
@ -18,7 +18,7 @@ module ChallengesHelper
|
|||
when 0
|
||||
"<a title='待完成'><i class='fa fa-unlock-alt fr font-18 mt5 -text-danger w20_center'></i></a>".html_safe
|
||||
when 1
|
||||
"评测中"
|
||||
"<a title='评测中'><i class='fa fa-unlock-alt fr font-18 mt5 -text-danger w20_center'></i></a>".html_safe
|
||||
when 2
|
||||
"<a title='已解决'><i class='fa fa-unlock fr font-18 mt5 color-light-green w20_center' ></i></a>".html_safe
|
||||
when 3,nil
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
# status:0 审核中 1 同意 2 拒绝 3 撤销
|
||||
class ApplyAction < ActiveRecord::Base
|
||||
default_scope :order => 'updated_at desc'
|
||||
attr_accessible :container_id, :container_type, :dealer_id, :reason, :user_id, :status
|
||||
attr_accessible :container_id, :container_type, :dealer_id, :reason, :user_id, :status, :apply_reason
|
||||
|
||||
belongs_to :user
|
||||
end
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
<%= stylesheet_link_tag '/editormd/css/editormd','/editormd/css/editormd.min.css' %>
|
||||
<%= javascript_include_tag '/editormd/editormd.min.js','/editormd/examples/js/jquery.min.js' %>
|
||||
<%= javascript_include_tag '/editormd/editormd','/editormd/examples/js/jquery.min.js' %>
|
||||
<style>
|
||||
.CodeMirror-scroll{
|
||||
overflow: auto !important;
|
||||
|
|
|
|||
|
|
@ -1,11 +1,14 @@
|
|||
<%= javascript_include_tag "/codemirror/lib/matchbrackets" %>
|
||||
|
||||
<style type="text/css">
|
||||
.CodeMirror{line-height: 1.2; font-size: 14px}
|
||||
.cm-s-railscasts span.cm-error{background:none;color: #d4cfc9;}
|
||||
.CodeMirror-matchingbracket { color: #fff34d; }
|
||||
</style>
|
||||
|
||||
<form action="<%= file_update_myshixun_game_path(@game, :myshixun_id => @myshixun, :path => @path) %>" method="post" id="file_update_id" data-remote="true">
|
||||
<li class="clearfix" xmlns="http://www.w3.org/1999/html" id="edit_code_contents">
|
||||
<textarea class="" id="challenge-answer-edit-small" name="content"><%= Redmine::CodesetUtil.replace_invalid_utf8(@content) %></textarea>
|
||||
<textarea class="undis" id="challenge-answer-edit-small" name="content"><%= Redmine::CodesetUtil.replace_invalid_utf8(@content) %></textarea>
|
||||
</li>
|
||||
</form>
|
||||
|
||||
|
|
|
|||
|
|
@ -64,7 +64,7 @@
|
|||
</div>
|
||||
</div>
|
||||
<div class="-layout-h -padding-h-16 -horizontal -footer-left">
|
||||
<ul class="-task-ml80">
|
||||
<ul class="-task-ml80" style="height:40px;">
|
||||
<%= render :partial => "games/shixun_comment_block" %>
|
||||
<li class="fl mt10 ml20"><a href="javascript:void(0);" onclick="send_dis_to_shixun()" class="course-bth-blue color_white">发送</a></li>
|
||||
<li class="fl ml20 mt15">
|
||||
|
|
|
|||
|
|
@ -19,7 +19,7 @@
|
|||
<div class="cl"></div>
|
||||
</ul>
|
||||
<div class="cl"></div>
|
||||
<div id="codetab_con_1">
|
||||
<div id="codetab_con_1" style="background: #2b2b2b;">
|
||||
<div class="panel-header clearfix" id="top_repository" style="border-bottom:0">
|
||||
<h3 class="fl">
|
||||
<%= render :partial => 'myshixun_breadcrumbs', :locals => {:path => @path, :kind => 'dir'} %>
|
||||
|
|
@ -28,9 +28,9 @@
|
|||
</div>
|
||||
<div class="-flex -relative">
|
||||
<div class="fit">
|
||||
<div class="-layout-v -fit loading-center undis" id="coding_ajax_loading">
|
||||
<embed src='/images/bigdata/loading2.svg' />
|
||||
</div>
|
||||
<!-- <div class="-layout-v -fit loading-center undis" id="coding_ajax_loading">
|
||||
<embed src='/images/bigdata/loading2.svg' />
|
||||
</div>-->
|
||||
<div class="-layout-v -fit" id="coding_area">
|
||||
<div class="-flex">
|
||||
<div class="content-editor-inner">
|
||||
|
|
@ -49,24 +49,21 @@
|
|||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div id="codetab_con_2" class="undis -relative">
|
||||
|
||||
|
||||
|
||||
</div>
|
||||
<div id="codetab_con_2" class="undis -relative"></div>
|
||||
<div id="current_repository_path" class="undis"><%= file_update_myshixun_game_path(@game, :myshixun_id => @myshixun, :path => @path) %></div>
|
||||
<script>
|
||||
$(function(){
|
||||
LoadingWebssh();
|
||||
});
|
||||
var H = 2;
|
||||
$(function(){
|
||||
<% if @myshixun.shixun.try(:webssh) %>
|
||||
LoadingWebssh();
|
||||
<% end %>
|
||||
});
|
||||
var H = 2;
|
||||
function g_l(o){return document.getElementById(o);}
|
||||
function HoverLi_new(n){
|
||||
console.log("n:" + n);
|
||||
for(var i=1;i<=H;i++){
|
||||
$('#codetab_nav_'+i).removeClass('blacktab_hover');
|
||||
$('#codetab_nav_'+i).addClass('blacktab_nomal');
|
||||
$('#codetab_con_'+i).hide();
|
||||
|
||||
}
|
||||
if(n==1){
|
||||
$("#games_repository_contents").removeClass("-bg-weightblack").addClass("-bg-black");
|
||||
|
|
@ -85,9 +82,7 @@
|
|||
HoverLi_new(2);
|
||||
});
|
||||
<% end %>
|
||||
|
||||
$('#codetab_nav_add').click(function(){
|
||||
//console.log(1);
|
||||
if($(".add-webssh").length < 5){
|
||||
H += 1;
|
||||
$(this).before("<li id=\"codetab_nav_"+H+"\" data-tab="+ H +" class=\"add-webssh\">"+
|
||||
|
|
@ -95,34 +90,25 @@
|
|||
"<span>×</span>" +
|
||||
"</li>");
|
||||
$("#games_repository_contents").append("<div id=\"codetab_con_"+H+"\" class=\"undis -relative\">"+
|
||||
|
||||
|
||||
"</div>");
|
||||
console.log("##################################"+$(".add-webssh").length);
|
||||
"</div>");
|
||||
if($(".add-webssh").length == 5){
|
||||
$(this).hide();
|
||||
}
|
||||
LoadingWebssh();
|
||||
|
||||
|
||||
$('#blacktab_nav').find("li").click(function(){
|
||||
//console.log($(this).attr("class"));
|
||||
if($(this).attr("id")==$("#codetab_nav_add").attr("id")){
|
||||
return;
|
||||
}
|
||||
if($(this).attr("id")=="codetab_nav_"+H+""){
|
||||
|
||||
HoverLi_new(H);
|
||||
}
|
||||
|
||||
});
|
||||
$('.add-webssh').find("span").click(function(){
|
||||
$(this).parent().hide();
|
||||
$(this).parent().removeClass("add-webssh");
|
||||
});
|
||||
//当给span添加点击事件的时候,每次打开一个webssh窗口添加一次,会造成多次事件的绑定,所以执行逻辑前需要解除之前绑定的事件。
|
||||
$('.add-webssh').find("span").unbind("click").click(function(e){
|
||||
$("#codetab_con_"+$(this).parent().attr("data-tab")).hide();
|
||||
$('#codetab_nav_add').show();
|
||||
HoverLi_new($(this).parent().prevAll().first(".add-webssh").attr("data-tab"));
|
||||
var index = $($(this).parent().prevAll()[0]).attr("data-tab");
|
||||
$(this).parent().remove();
|
||||
HoverLi_new(index);
|
||||
});
|
||||
|
||||
HoverLi_new(H);
|
||||
}
|
||||
});
|
||||
|
|
@ -134,19 +120,17 @@
|
|||
if(data.error){
|
||||
return;
|
||||
}else{
|
||||
var h = $("#games_repository_contents").height() - $("#top_repository").height() - 10;
|
||||
var h = $("#games_repository_contents").height() - 50;
|
||||
var rows = parseInt(h / 18);
|
||||
|
||||
// 测试版
|
||||
var html = "<iframe src='<%= Redmine::Configuration['webssh'] %>/?Host=" + data.host + "&Port=" + data.port + "&Username=" + data.username + "&Password=" + data.password + "&Gameid=" + data.game_id + "&rows=" + rows + "'" + " style='width:100%;border:0;' scrolling='no' class='game_webssh'></iframe><div class='-brother undis'></div>";
|
||||
var html = "<iframe src='<%= Redmine::Configuration['webssh'] %>?Host=" + data.host + "&Port=" + data.port + "&Username=" + data.username + "&Password=" + data.password + "&Gameid=" + data.game_id + "&Rows=" + rows + "'" + " style='width:100%;border:0;' scrolling='no' class='game_webssh'></iframe><div class='-brother undis'></div>";
|
||||
// 本地版
|
||||
var html_local ="<iframe src='http://127.0.0.1:9527?Host=106.75.96.108&Port=40054&Username=root&Password=123123&Gameid=" +data.game_id + "&rows=" + rows + "'" + " style='width:100%;border:0;' scrolling='no' class='game_webssh'></iframe><div class='-brother undis'></div>";
|
||||
// $("#LazyLoading").remove();
|
||||
var html_local ="<iframe src='http://127.0.0.1:9527?Host=106.75.96.108&Port=40054&Username=root&Password=123123&Gameid=" +data.game_id + "&Rows=" + rows + "'" + " style='width:100%;border:0;' scrolling='no' class='game_webssh'></iframe><div class='-brother undis'></div>";
|
||||
// $("#LazyLoading").remove();
|
||||
console.log(html);
|
||||
$("#codetab_con_"+H).html(html);
|
||||
$(".game_webssh").css("min-height", h);
|
||||
// HoverLi_new(2);
|
||||
|
||||
|
||||
// HoverLi_new(2);
|
||||
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -3,5 +3,5 @@
|
|||
<% else %>
|
||||
$("#games_repository_contents").html('<%= escape_javascript(render :partial => 'games/repository') %>');
|
||||
<% end %>
|
||||
$("#coding_area").show();
|
||||
//$("#coding_area").show();
|
||||
$("#coding_ajax_loading").css("display", "none");
|
||||
|
|
@ -30,7 +30,7 @@
|
|||
});
|
||||
</script>
|
||||
</head>
|
||||
<body onload="prettyPrint();">
|
||||
<body onload="prettyPrint();" style="height: 100%">
|
||||
<div class="newContainer"> <!-- 页面全部内容 -->
|
||||
<div class="newHeader"> <!-- 头部 -->
|
||||
<%= render :partial => User.current.logged? ? 'layouts/logined_header' : 'layouts/unlogin_header' %>
|
||||
|
|
|
|||
|
|
@ -16,7 +16,7 @@
|
|||
<%= yield :header_tags -%>
|
||||
</head>
|
||||
<!--add by huang-->
|
||||
<body onload="setupAjaxIndicator();">
|
||||
<body onload="setupAjaxIndicator();" style="height: 100%">
|
||||
<div class="cl"></div>
|
||||
|
||||
<div class="page -layout-v -fit ">
|
||||
|
|
|
|||
|
|
@ -15,7 +15,7 @@
|
|||
<%= yield :header_tags -%>
|
||||
</head>
|
||||
<!--add by huang-->
|
||||
<body onload="prettyPrint();">
|
||||
<body onload="prettyPrint();" style="height: 100%">
|
||||
<div class="newContainer"> <!-- 页面全部内容 -->
|
||||
<div class="newHeader"> <!-- 头部 -->
|
||||
<%= render :partial => User.current.logged? ? 'layouts/logined_header' : 'layouts/unlogin_header' %>
|
||||
|
|
|
|||
|
|
@ -18,7 +18,7 @@
|
|||
<%= yield :header_tags -%>
|
||||
</head>
|
||||
<!--add by huang-->
|
||||
<body onload="prettyPrint();">
|
||||
<body onload="prettyPrint();" style="height: 100%;">
|
||||
<div class="newContainer edu-bg"> <!-- 页面全部内容 -->
|
||||
<div class="newHeader"> <!-- 头部 -->
|
||||
<%= render :partial => User.current.logged? ? 'layouts/logined_header' : 'layouts/unlogin_header' %>
|
||||
|
|
|
|||
|
|
@ -13,7 +13,7 @@
|
|||
<a href="javascript:void(0);" class="fr color-orange" onclick="reject_authentication_reason(this);" >拒绝</a>
|
||||
<a href="javascript:void(0);" class="fr mr15 color-orange" data-remote="true" onclick="trial_authorization_gree('<%= authorization.id %>');">同意</a>
|
||||
</li>
|
||||
<li class="clearfix mb10">
|
||||
<li class="clearfix mb5">
|
||||
<% if !user.try(:user_extensions).school_id.blank? && user.try(:user_extensions).try(:school) %>
|
||||
<span><%= user.try(:user_extensions).school.name %><%= user.try(:user_extensions).department ? ' - '+user.try(:user_extensions).department.name.to_s : '' %></span>
|
||||
<% end %>
|
||||
|
|
@ -26,6 +26,9 @@
|
|||
<span class="ml30 color-yellow"><%= user_certification_status(user) %></span>
|
||||
<span class="ml30 color-yellow"><%= pro_certification_status(user) %></span>
|
||||
</li>
|
||||
<li class="clearfix mb5">
|
||||
<span>申请理由:<%= authorization.apply_reason %></span>
|
||||
</li>
|
||||
<div class="undis">
|
||||
<li class="clearfix edu-form-border mb10">
|
||||
<label class="edu-form-label fl">原因:</label>
|
||||
|
|
|
|||
|
|
@ -12,7 +12,7 @@
|
|||
<span class="fl ml30 font-12 color-grey"><%= time_from_now(authorization.updated_at) %></span>
|
||||
<a class=" task-btn <%= authorization.status == 1 ? 'task-btn-green' : '' %> fr "><%= authorization.status == 1 ? "已同意" : "已拒绝" %></a>
|
||||
</li>
|
||||
<li class="clearfix mb10">
|
||||
<li class="clearfix mb5">
|
||||
<% if !user.try(:user_extensions).school_id.blank? && user.try(:user_extensions).try(:school) %>
|
||||
<span><%= user.try(:user_extensions).school.name %><%= user.try(:user_extensions).department ? ' - '+user.try(:user_extensions).department.name.to_s : '' %></span>
|
||||
<% end %>
|
||||
|
|
@ -25,6 +25,9 @@
|
|||
<span class="ml30 color-yellow"><%= user_certification_status(user) %></span>
|
||||
<span class="ml30 color-yellow"><%= pro_certification_status(user) %></span>
|
||||
</li>
|
||||
<li class="clearfix mb5">
|
||||
<span>申请理由:<%= authorization.apply_reason %></span>
|
||||
</li>
|
||||
<% if authorization.status == 2 %>
|
||||
<li>原因:<span class="color-orange"><%= authorization.reason.blank? ? "空" : authorization.reason %></span></li>
|
||||
<% end %>
|
||||
|
|
|
|||
|
|
@ -7,7 +7,7 @@
|
|||
</style>
|
||||
<form action="<%= entry_update_shixun_path(@shixun, :rev => @rev, :path => @path) %>" method="post" id="shixun_entry_update_id" data-remote="true">
|
||||
<li class="clearfix" xmlns="http://www.w3.org/1999/html" id="edit_code_contents">
|
||||
<textarea class="" id="content_shixun_entry" name="content"><%= Redmine::CodesetUtil.replace_invalid_utf8(@content) %></textarea>
|
||||
<textarea class="undis" id="content_shixun_entry" name="content"><%= Redmine::CodesetUtil.replace_invalid_utf8(@content) %></textarea>
|
||||
</li>
|
||||
</form>
|
||||
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
<%= stylesheet_link_tag '/editormd/css/editormd','/editormd/css/editormd.min.css' %>
|
||||
<%= javascript_include_tag '/editormd/editormd.min.js' %>
|
||||
<%= stylesheet_link_tag '/editormd/css/editormd' %>
|
||||
<%= javascript_include_tag '/editormd/editormd' %>
|
||||
<div class="edu-con-bg01 user_bg_shadow mb20" style="padding:30px 0;">
|
||||
<div class="ml30 mr30">
|
||||
<div>
|
||||
|
|
|
|||
|
|
@ -8,7 +8,7 @@
|
|||
url2:左侧按钮的链接
|
||||
按钮如果不要跳转 传javascript:void(0), 如果按钮使用js效果使用其id进行绑定,不要写在公共的js里面
|
||||
-->
|
||||
<div class="task-popup-warp" style="background-color: rgba(0,0,0,0.7);;position: fixed;left: 0;top: 0;">
|
||||
<div class="task-popup-warp" style="background-color: rgba(0,0,0,0.7);;position: fixed;left: 0;top: 0;">
|
||||
<div class="task-popup" style="width:500px;position: fixed;left: 40%;top: 30%">
|
||||
<div class=" task-popup-title clearfix task-popup-bggrey">
|
||||
<h3 class="fl">提示</h3>
|
||||
|
|
@ -30,10 +30,22 @@
|
|||
</div>
|
||||
<% else %>
|
||||
<div class="clearfix task-popup-submit" style="width:180px;">
|
||||
<a href="<%= url1 %>" class="task-btn task-btn-blue fr" id="mask-left-btn" onclick="$('.task-popup-warp').remove();" data-remote="true"><%= btn1 %></a>
|
||||
<a href="<%= url2 %>" class="task-btn task-btn-blue fr mr10" id="mask-right-btn" onclick="$('.task-popup-warp').remove();"><%= btn2 %></a>
|
||||
<a href="javascript:void(0);" class="task-btn task-btn-blue fr" id="mask-left-btn"><%= btn1 %></a>
|
||||
<a href="<%= url2 %>" class="task-btn task-btn-blue fr mr10" id="mask-right-btn" onclick="$('.task-popup-warp').remove();"><%= btn2 %></a>
|
||||
</div>
|
||||
<% end %>
|
||||
<div class="cl"></div>
|
||||
<div class="mt10 undis" id="apply_reason_form">
|
||||
<%= form_tag(url1, :remote => true,:name=>"apply_trail_form",:id=>'apply_trail_form') do %>
|
||||
<textarea class="reUploadDetail" id="apply_reason" name="apply_reason" placeholder="请在此填写推荐人信息或申请理由(必填)"></textarea>
|
||||
<div class="cl"></div>
|
||||
<div class="mt10">
|
||||
<p id="hint_message" class="color-orange fl undis">请填写推荐人信息或申请理由</p>
|
||||
<a href="javascript:void(0);" id="apply_trail_submit_btn" class="task-btn task-btn-blue fr sure">确定</a>
|
||||
<div class="cl"></div>
|
||||
</div>
|
||||
<% end %>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -1 +1 @@
|
|||
Rails.application.config.session_store ActionDispatch::Session::CacheStore, :expire_after => 90.minutes, :key => '_educoder_session', :domain => :all
|
||||
Rails.application.config.session_store ActionDispatch::Session::CacheStore, :expire_after => 8.hours, :key => '_educoder_session', :domain => :all
|
||||
|
|
|
|||
|
|
@ -101,6 +101,7 @@ RedmineApp::Application.routes.draw do
|
|||
get 'entry_edit'
|
||||
match 'entry_update'
|
||||
get 'shixun_discuss'
|
||||
match 'ghook'
|
||||
end
|
||||
collection do
|
||||
get 'shixun_courses'
|
||||
|
|
@ -762,7 +763,7 @@ RedmineApp::Application.routes.draw do
|
|||
match 'account/avatar', :to => 'account#avatar', :via => :get, :as => "avatar_account"
|
||||
match 'account/authentication', :to => 'account#authentication', :via => :get, :as => "authentication_account"
|
||||
match 'account/professional_certification', :to => 'account#professional_certification', :via => :get, :as => "professional_certification_account"
|
||||
match 'account/apply_trail', :to => 'account#apply_trail', :via => :get, :as => "apply_trail_account"
|
||||
match 'account/apply_trail', :to => 'account#apply_trail', :via => :post, :as => "apply_trail_account"
|
||||
match 'account/user_auth', :to => 'account#user_auth', :via => :get, :as => "user_auth_account"
|
||||
match 'account/security_settings', :to => 'account#security_settings', :via => :get, :as => "security_settings"
|
||||
match 'account/change_psd', :to => 'account#change_psd', :via => :get, :as => "change_psd"
|
||||
|
|
|
|||
|
|
@ -0,0 +1,5 @@
|
|||
class AddApplyReasonToApplyAction < ActiveRecord::Migration
|
||||
def change
|
||||
add_column :apply_actions, :apply_reason, :text
|
||||
end
|
||||
end
|
||||
|
|
@ -0,0 +1,140 @@
|
|||
// CodeMirror, copyright (c) by Marijn Haverbeke and others
|
||||
// Distributed under an MIT license: http://codemirror.net/LICENSE
|
||||
|
||||
(function(mod) {
|
||||
if (typeof exports == "object" && typeof module == "object") // CommonJS
|
||||
mod(require("/lib/codemirror"));
|
||||
else if (typeof define == "function" && define.amd) // AMD
|
||||
define(["/lib/codemirror"], mod);
|
||||
else // Plain browser env
|
||||
mod(CodeMirror);
|
||||
})(function(CodeMirror) {
|
||||
var ie_lt8 = /MSIE \d/.test(navigator.userAgent) &&
|
||||
(document.documentMode == null || document.documentMode < 8);
|
||||
|
||||
var Pos = CodeMirror.Pos;
|
||||
|
||||
var matching = {"(": ")>", ")": "(<", "[": "]>", "]": "[<", "{": "}>", "}": "{<"};
|
||||
|
||||
function findMatchingBracket(cm, where, config) {
|
||||
var line = cm.getLineHandle(where.line), pos = where.ch - 1;
|
||||
var afterCursor = config && config.afterCursor
|
||||
if (afterCursor == null)
|
||||
afterCursor = /(^| )cm-fat-cursor($| )/.test(cm.getWrapperElement().className)
|
||||
|
||||
// A cursor is defined as between two characters, but in in vim command mode
|
||||
// (i.e. not insert mode), the cursor is visually represented as a
|
||||
// highlighted box on top of the 2nd character. Otherwise, we allow matches
|
||||
// from before or after the cursor.
|
||||
var match = (!afterCursor && pos >= 0 && matching[line.text.charAt(pos)]) ||
|
||||
matching[line.text.charAt(++pos)];
|
||||
if (!match) return null;
|
||||
var dir = match.charAt(1) == ">" ? 1 : -1;
|
||||
if (config && config.strict && (dir > 0) != (pos == where.ch)) return null;
|
||||
var style = cm.getTokenTypeAt(Pos(where.line, pos + 1));
|
||||
|
||||
var found = scanForBracket(cm, Pos(where.line, pos + (dir > 0 ? 1 : 0)), dir, style || null, config);
|
||||
if (found == null) return null;
|
||||
return {from: Pos(where.line, pos), to: found && found.pos,
|
||||
match: found && found.ch == match.charAt(0), forward: dir > 0};
|
||||
}
|
||||
|
||||
// bracketRegex is used to specify which type of bracket to scan
|
||||
// should be a regexp, e.g. /[[\]]/
|
||||
//
|
||||
// Note: If "where" is on an open bracket, then this bracket is ignored.
|
||||
//
|
||||
// Returns false when no bracket was found, null when it reached
|
||||
// maxScanLines and gave up
|
||||
function scanForBracket(cm, where, dir, style, config) {
|
||||
var maxScanLen = (config && config.maxScanLineLength) || 10000;
|
||||
var maxScanLines = (config && config.maxScanLines) || 1000;
|
||||
|
||||
var stack = [];
|
||||
var re = config && config.bracketRegex ? config.bracketRegex : /[(){}[\]]/;
|
||||
var lineEnd = dir > 0 ? Math.min(where.line + maxScanLines, cm.lastLine() + 1)
|
||||
: Math.max(cm.firstLine() - 1, where.line - maxScanLines);
|
||||
for (var lineNo = where.line; lineNo != lineEnd; lineNo += dir) {
|
||||
var line = cm.getLine(lineNo);
|
||||
if (!line) continue;
|
||||
var pos = dir > 0 ? 0 : line.length - 1, end = dir > 0 ? line.length : -1;
|
||||
if (line.length > maxScanLen) continue;
|
||||
if (lineNo == where.line) pos = where.ch - (dir < 0 ? 1 : 0);
|
||||
for (; pos != end; pos += dir) {
|
||||
var ch = line.charAt(pos);
|
||||
if (re.test(ch) && (style === undefined || cm.getTokenTypeAt(Pos(lineNo, pos + 1)) == style)) {
|
||||
var match = matching[ch];
|
||||
if ((match.charAt(1) == ">") == (dir > 0)) stack.push(ch);
|
||||
else if (!stack.length) return {pos: Pos(lineNo, pos), ch: ch};
|
||||
else stack.pop();
|
||||
}
|
||||
}
|
||||
}
|
||||
return lineNo - dir == (dir > 0 ? cm.lastLine() : cm.firstLine()) ? false : null;
|
||||
}
|
||||
|
||||
function matchBrackets(cm, autoclear, config) {
|
||||
// Disable brace matching in long lines, since it'll cause hugely slow updates
|
||||
var maxHighlightLen = cm.state.matchBrackets.maxHighlightLineLength || 1000;
|
||||
var marks = [], ranges = cm.listSelections();
|
||||
for (var i = 0; i < ranges.length; i++) {
|
||||
var match = ranges[i].empty() && findMatchingBracket(cm, ranges[i].head, config);
|
||||
if (match && cm.getLine(match.from.line).length <= maxHighlightLen) {
|
||||
var style = match.match ? "CodeMirror-matchingbracket" : "CodeMirror-nonmatchingbracket";
|
||||
marks.push(cm.markText(match.from, Pos(match.from.line, match.from.ch + 1), {className: style}));
|
||||
if (match.to && cm.getLine(match.to.line).length <= maxHighlightLen)
|
||||
marks.push(cm.markText(match.to, Pos(match.to.line, match.to.ch + 1), {className: style}));
|
||||
}
|
||||
}
|
||||
|
||||
if (marks.length) {
|
||||
// Kludge to work around the IE bug from issue #1193, where text
|
||||
// input stops going to the textare whever this fires.
|
||||
if (ie_lt8 && cm.state.focused) cm.focus();
|
||||
|
||||
var clear = function() {
|
||||
cm.operation(function() {
|
||||
for (var i = 0; i < marks.length; i++) marks[i].clear();
|
||||
});
|
||||
};
|
||||
if (autoclear) setTimeout(clear, 800);
|
||||
else return clear;
|
||||
}
|
||||
}
|
||||
|
||||
var currentlyHighlighted = null;
|
||||
function doMatchBrackets(cm) {
|
||||
cm.operation(function() {
|
||||
if (currentlyHighlighted) {currentlyHighlighted(); currentlyHighlighted = null;}
|
||||
currentlyHighlighted = matchBrackets(cm, false, cm.state.matchBrackets);
|
||||
});
|
||||
}
|
||||
|
||||
CodeMirror.defineOption("matchBrackets", false, function(cm, val, old) {
|
||||
if (old && old != CodeMirror.Init) {
|
||||
cm.off("cursorActivity", doMatchBrackets);
|
||||
if (currentlyHighlighted) {currentlyHighlighted(); currentlyHighlighted = null;}
|
||||
}
|
||||
if (val) {
|
||||
cm.state.matchBrackets = typeof val == "object" ? val : {};
|
||||
cm.on("cursorActivity", doMatchBrackets);
|
||||
}
|
||||
});
|
||||
|
||||
CodeMirror.defineExtension("matchBrackets", function() {matchBrackets(this, true);});
|
||||
CodeMirror.defineExtension("findMatchingBracket", function(pos, config, oldConfig){
|
||||
// Backwards-compatibility kludge
|
||||
if (oldConfig || typeof config == "boolean") {
|
||||
if (!oldConfig) {
|
||||
config = config ? {strict: true} : null
|
||||
} else {
|
||||
oldConfig.strict = config
|
||||
config = oldConfig
|
||||
}
|
||||
}
|
||||
return findMatchingBracket(this, pos, config)
|
||||
});
|
||||
CodeMirror.defineExtension("scanForBracket", function(pos, dir, style, config){
|
||||
return scanForBracket(this, pos, dir, style, config);
|
||||
});
|
||||
});
|
||||
|
|
@ -55,6 +55,7 @@
|
|||
-moz-appearance: none;
|
||||
-ms-appearance: none;
|
||||
appearance: none;
|
||||
line-height: normal;
|
||||
}
|
||||
.editormd ::-webkit-scrollbar {
|
||||
height: 10px;
|
||||
|
|
|
|||
|
|
@ -4451,7 +4451,7 @@
|
|||
}
|
||||
|
||||
editormd.dialogZindex += 2;
|
||||
|
||||
$("body").removeAttr("style");
|
||||
return dialog;
|
||||
};
|
||||
|
||||
|
|
|
|||
|
|
@ -69,6 +69,20 @@ $(function(){
|
|||
$("#user_auth_submit_a").on('click',function(){
|
||||
submit_user_auth();
|
||||
});
|
||||
|
||||
$("#mask-left-btn").on('click', function(){
|
||||
$("#apply_reason_form").show();
|
||||
});
|
||||
|
||||
$("#apply_trail_submit_btn").on('click', function(){
|
||||
if($("#apply_reason").val().trim() == ""){
|
||||
$("#hint_message").show();
|
||||
} else{
|
||||
$("#hint_message").hide();
|
||||
$("#apply_trail_form").submit();
|
||||
$('.task-popup-warp').remove();
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
function cancel_edit_account(status) {
|
||||
|
|
|
|||
|
|
@ -88,12 +88,24 @@ $(function(){
|
|||
// opacity:0
|
||||
// }).hide();
|
||||
// });
|
||||
var $desc = $("<div class=\"-task-title\">"+
|
||||
var $desc = $("<div class=\"-task-title\">"+
|
||||
"<div class=\"data-tip-down\"></div>"+
|
||||
"<div class=\"data-tip-left\"></div>"+
|
||||
"<div class=\"data-tip-right\"></div>"+
|
||||
"</div>").appendTo("body");
|
||||
$("[data-tip-down]").hover(function(){
|
||||
//Dom:绑定事件的节点对象,ChangeDOM:操作的相关节点,
|
||||
function LeaveTitle(Dom,ChangeDom){
|
||||
Dom.live("mouseleave",function(){
|
||||
ChangeDom.html("").hide();
|
||||
$desc.css({
|
||||
opacity:0
|
||||
}).hide();
|
||||
})
|
||||
}
|
||||
LeaveTitle($("[data-tip-down]"),$(".data-tip-down"));
|
||||
LeaveTitle($("[data-tip-right]"),$(".data-tip-left"));
|
||||
LeaveTitle($("[data-tip-left]"),$(".data-tip-right"));
|
||||
$("[data-tip-down]").live("mouseenter",function(){
|
||||
var $tool = $(this).attr("data-tip-down");
|
||||
$(".data-tip-down").show().html($tool);
|
||||
$desc.show().css({
|
||||
|
|
@ -101,13 +113,8 @@ $(function(){
|
|||
opacity:0.7,
|
||||
top:$(this).offset().top+30
|
||||
});
|
||||
},function(){
|
||||
$(".data-tip-down").html("").hide();
|
||||
$desc.css({
|
||||
opacity:0
|
||||
}).hide();
|
||||
});
|
||||
$("[data-tip-right]").hover(function(){
|
||||
$("[data-tip-right]").live("mouseenter",function(){
|
||||
var $tool = $(this).attr("data-tip-right");
|
||||
$(".data-tip-left").show().html($tool);
|
||||
$desc.show().css({
|
||||
|
|
@ -115,13 +122,8 @@ $(function(){
|
|||
opacity:0.7,
|
||||
top:$(this).offset().top-$desc.height()/4
|
||||
});
|
||||
},function(){
|
||||
$(".data-tip-left").html("").hide();
|
||||
$desc.css({
|
||||
opacity:0
|
||||
}).hide();
|
||||
});
|
||||
$("[data-tip-left]").hover(function(){
|
||||
$("[data-tip-left]").live("mouseenter",function(){
|
||||
var $tool = $(this).attr("data-tip-left");
|
||||
$(".data-tip-right").show().html($tool);
|
||||
$desc.show().css({
|
||||
|
|
@ -129,12 +131,8 @@ $(function(){
|
|||
opacity:0.7,
|
||||
top:$(this).offset().top-$desc.height()/4
|
||||
});
|
||||
},function(){
|
||||
$(".data-tip-right").html("").hide();
|
||||
$desc.css({
|
||||
opacity:0
|
||||
}).hide();
|
||||
});
|
||||
|
||||
//下拉框
|
||||
$("[select-for]").append("<i class='fa fa-sort-desc lesson_img'></i>");
|
||||
$("[select-for]").hover(function(){
|
||||
|
|
|
|||
|
|
@ -43,13 +43,15 @@ $(function(){
|
|||
}
|
||||
if(flag){
|
||||
clickY = e.pageY;
|
||||
if(clickY > topOffset+100) {
|
||||
if(clickY > topOffset+150) {
|
||||
cen.css('top', clickY - 7 - topOffset + 'px');
|
||||
cen.prev().height( clickY-topOffset + 'px');
|
||||
nextW1 = clickY-topOffset;
|
||||
cen.next().height( wrapHeight - nextW1 + 'px');
|
||||
var h = $("#games_repository_contents").height() - $("#top_repository").height() - 50;
|
||||
$("#game_webssh").css("min-height", h);
|
||||
var m = $("#games_repository_contents").height() - 50;
|
||||
$(".game_webssh").css("min-height", m);
|
||||
var rows = parseInt(m / 18);
|
||||
$("#file_entry_content").find(".CodeMirror-scroll").css("min-height", h);
|
||||
$("#file_entry_content").find(".CodeMirror-scroll").css("max-height", h);
|
||||
} else {
|
||||
|
|
@ -309,11 +311,7 @@ function game_tread(obj_id){
|
|||
}
|
||||
// end
|
||||
|
||||
|
||||
|
||||
function setupAjaxIndicatorBase() {
|
||||
console.log(1);
|
||||
console.log($('#ajax-indicator-base').length);
|
||||
$('#ajax-indicator-base').bind('ajaxSend', function(event, xhr, settings) {
|
||||
console.log($('.ajax-loading'));
|
||||
if(settings && settings.url
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
$(function() {
|
||||
$("#search_not_collaborators").live('input', function (e) {
|
||||
$("#search_not_collaborators").on('input', function (e) {
|
||||
throttle(search_not_teacher_f, window, e);
|
||||
});
|
||||
});
|
||||
|
|
|
|||
|
|
@ -1,5 +1,6 @@
|
|||
@charset "utf-8";
|
||||
html,body{ font-size:14px; line-height:2.0; height:100%;}
|
||||
body{font-size:14px; line-height:2.0;}
|
||||
html{height:100%;}
|
||||
.newContainer{ min-height:100%; height: auto !important; height: 100%; /*IE6不识别min-height*/position: relative;}
|
||||
.newMain{ margin: 0 auto; padding-bottom: 155px; }
|
||||
.newFooter{ position: absolute; bottom: 0; width: 100%; height: 155px;background: #323232; clear:both; min-width: 1200px}
|
||||
|
|
@ -404,9 +405,9 @@ input::-ms-clear{display:none;}
|
|||
/*.tip-right{right:-4px;top:50%;margin-top:-14px;}*/
|
||||
|
||||
|
||||
.-task-title{opacity:0;position:absolute;left:0;top:0;display:none;}
|
||||
.-task-title{opacity:0;position:absolute;left:0;top:0;display:none;z-index:9999;}
|
||||
.data-tip-down,.data-tip-left,.data-tip-right{ position:relative; box-shadow:0px 0px 8px rgba(142,142,142,.1); background:#fff; color:#000; max-width:300px;
|
||||
word-wrap: break-word; text-align:center; border-radius:10px; padding:1px 10px; border:1px solid #ccc; display:none; }
|
||||
word-wrap: break-word; text-align:center; border-radius:4px; padding:1px 10px; border:1px solid #ccc; display:none; }
|
||||
.data-tip-down:after,.data-tip-down:before,.data-tip-left:before,.data-tip-right:before,.data-tip-left:after,.data-tip-right:after{
|
||||
position: absolute;content:''; width:0; height:0;}
|
||||
.data-tip-down:after,.data-tip-down:before{left: 45%;top:-10px;
|
||||
|
|
@ -428,4 +429,4 @@ input::-ms-clear{display:none;}
|
|||
/*-------------------------旋转-------------------------*/
|
||||
.transform90{transform: rotate(90deg);}
|
||||
/*---------------------编辑器边框------------------------*/
|
||||
.kindeditor{background: #F0F0EE;height:22px;border:1px solid #CCCCCC;border-bottom: none}
|
||||
.kindeditor{background: #F0F0EE;height:22px;border:1px solid #CCCCCC;border-bottom: none}
|
||||
|
|
|
|||
|
|
@ -239,3 +239,5 @@ input.new_loggin_input_test{ -webkit-box-shadow: 0 0 0px 1000px white inset; ou
|
|||
.panel-cer-content .edu-table tr td{padding: 0px;border: none;border: 1px solid #ccc;padding: 6px 10px;}
|
||||
.panel-cer-content .edu-table tr td:nth-child(1){text-align:right;width: 25%;color: #666666}
|
||||
.panel-cer-content .edu-table tr td:nth-child(2){text-align:left;color: #333333;}
|
||||
|
||||
.reUploadDetail{border:1px solid #dddddd; padding: 0 5px; float:left; resize:none; width:418px; height:80px; overflow-y:auto;outline: none;}
|
||||
|
|
@ -96,11 +96,6 @@ a.opnionButton:hover{background: #297fb8; }
|
|||
.hiddent{ overflow:hidden; white-space: nowrap; text-overflow:ellipsis;}
|
||||
.font_bold{font-weight: bold;}
|
||||
/***** Ajax indicator ******/
|
||||
#ajax-indicator { position: absolute; /* fixed not supported by IE */ background-color:#eee;border: 1px solid #bbb; top:35%; left:40%; width:50%; font-weight:bold; text-align:center;
|
||||
padding:0.6em; z-index:100000; opacity: 0.5;}
|
||||
html>body #ajax-indicator { position: fixed; }
|
||||
/*#ajax-indicator span { background-position: 0% 40%; vertical-align: bottom;}*/
|
||||
div.modal { border-radius: 5px; background: #fff; z-index: 50; padding: 4px;}
|
||||
.ui-widget-content { border: 1px solid #ddd; color: #333;}
|
||||
.ui-widget { font-family: Verdana, sans-serif; font-size: 1.1em;}
|
||||
.ui-dialog .ui-dialog-content { position: relative; border: 0; padding: .5em 1em; background: none; overflow: auto; zoom: 1;}
|
||||
|
|
|
|||
|
|
@ -1,5 +1,6 @@
|
|||
/************新版公共****************/
|
||||
html,body{ font-size:14px; line-height:2.0; height:100%;}
|
||||
body{font-size:14px; line-height:2.0;}
|
||||
html{height:100%;}
|
||||
/*.newContainer{ min-height:100%; height: auto !important; height: 100%; position: relative;}
|
||||
.newMain{ margin: 0 auto; padding-bottom: 155px; }
|
||||
.newFooter{ position: absolute; bottom: 0; width: 100%; height: 155px;background: #323232; clear:both; min-width: 1200px}
|
||||
|
|
|
|||
|
|
@ -795,23 +795,6 @@ a.opnionButton:hover{background: #297fb8; }
|
|||
.font_bold{font-weight: bold;}
|
||||
|
||||
|
||||
/***** Ajax indicator ******/
|
||||
#ajax-indicator {
|
||||
position: absolute; /* fixed not supported by IE */
|
||||
background-color:#eee;
|
||||
border: 1px solid #bbb;
|
||||
top:35%;
|
||||
left:40%;
|
||||
width:20%;
|
||||
font-weight:bold;
|
||||
text-align:center;
|
||||
padding:0.6em;
|
||||
z-index:100000;
|
||||
opacity: 0.5;
|
||||
}
|
||||
|
||||
html>body #ajax-indicator { position: fixed; }
|
||||
|
||||
/*#ajax-indicator span {*/
|
||||
/*background-position: 0% 40%;*/
|
||||
/*background-repeat: no-repeat;*/
|
||||
|
|
|
|||
Loading…
Reference in New Issue