Merge branch 'develop' into cxt_course
Conflicts: app/controllers/issues_controller.rb app/views/issues/_issue_replies.html.erb app/views/issues/_issue_reply_ke_form.html.erb db/schema.rb
This commit is contained in:
commit
71b5fe1273
2
Gemfile
2
Gemfile
|
@ -51,7 +51,7 @@ gem 'elasticsearch-rails'
|
||||||
|
|
||||||
|
|
||||||
### profile
|
### profile
|
||||||
#gem 'oneapm_rpm'
|
gem 'oneapm_rpm'
|
||||||
|
|
||||||
group :development do
|
group :development do
|
||||||
gem 'grape-swagger'
|
gem 'grape-swagger'
|
||||||
|
|
114
Gemfile~
114
Gemfile~
|
@ -1,114 +0,0 @@
|
||||||
source 'https://ruby.taobao.org/'
|
|
||||||
|
|
||||||
unless RUBY_PLATFORM =~ /w32/
|
|
||||||
# unix-like only
|
|
||||||
gem 'iconv'
|
|
||||||
gem "rmagick", ">= 2.0.0"
|
|
||||||
gem 'certified'
|
|
||||||
end
|
|
||||||
|
|
||||||
gem 'net-ssh', '2.9.1'
|
|
||||||
gem 'jenkins_api_client'
|
|
||||||
gem 'nokogiri'
|
|
||||||
|
|
||||||
gem 'wechat',path: 'lib/wechat'
|
|
||||||
gem 'grack', path:'lib/grack'
|
|
||||||
gem 'gitlab', path: 'lib/gitlab-cli'
|
|
||||||
gem 'rest-client'
|
|
||||||
gem "mysql2", "= 0.3.18"
|
|
||||||
gem 'redis-rails'
|
|
||||||
gem 'rubyzip'
|
|
||||||
gem 'delayed_job_active_record'#, :group => :production
|
|
||||||
gem 'daemons'
|
|
||||||
gem 'grape', '~> 0.9.0'
|
|
||||||
gem 'grape-entity'
|
|
||||||
gem 'rack-cors', :require => 'rack/cors'
|
|
||||||
gem 'seems_rateable', '~> 1.0.13'
|
|
||||||
gem 'rails', '~> 3.2'
|
|
||||||
gem "jquery-rails", "~> 2.0.2"
|
|
||||||
gem "i18n", "~> 0.6.0"
|
|
||||||
gem 'coderay', '~> 1.1.0'
|
|
||||||
gem "fastercsv", "~> 1.5.0", :platforms => [:mri_18, :mingw_18, :jruby]
|
|
||||||
gem "builder", "3.0.0"
|
|
||||||
gem 'acts-as-taggable-on', '2.4.1'
|
|
||||||
gem 'spreadsheet'
|
|
||||||
gem 'ruby-ole'
|
|
||||||
gem 'rails_kindeditor',path:'lib/rails_kindeditor'
|
|
||||||
gem 'binding_of_caller'
|
|
||||||
gem 'chinese_pinyin'
|
|
||||||
# gem 'sunspot_rails', '~> 1.3.3'
|
|
||||||
# gem 'sunspot_solr'
|
|
||||||
# gem 'sunspot'
|
|
||||||
# gem 'progress_bar'
|
|
||||||
gem 'ansi'
|
|
||||||
|
|
||||||
gem 'kaminari'
|
|
||||||
gem 'elasticsearch-model'
|
|
||||||
gem 'elasticsearch-rails'
|
|
||||||
|
|
||||||
|
|
||||||
### profile
|
|
||||||
#gem 'oneapm_rpm'
|
|
||||||
|
|
||||||
group :development do
|
|
||||||
gem 'grape-swagger'
|
|
||||||
gem 'better_errors', '~> 1.1.0'
|
|
||||||
# gem "query_reviewer"
|
|
||||||
# gem 'rack-mini-profiler', '~> 0.9.3'
|
|
||||||
if RUBY_PLATFORM =~ /w32/
|
|
||||||
gem 'win32console'
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
group :development, :test do
|
|
||||||
unless RUBY_PLATFORM =~ /w32/
|
|
||||||
gem 'pry-rails'
|
|
||||||
if RUBY_VERSION >= '2.0.0'
|
|
||||||
gem 'pry-byebug'
|
|
||||||
end
|
|
||||||
gem 'pry-stack_explorer'
|
|
||||||
if RUBY_PLATFORM =~ /darwin/
|
|
||||||
gem 'puma'
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
gem 'rspec-rails', '~> 3.0'
|
|
||||||
gem 'factory_girl_rails'
|
|
||||||
end
|
|
||||||
|
|
||||||
# Gems used only for assets and not required
|
|
||||||
# in production environments by default.
|
|
||||||
group :assets do
|
|
||||||
gem 'sass-rails', '~> 3.2.3'
|
|
||||||
gem 'coffee-rails', '~> 3.2.1'
|
|
||||||
|
|
||||||
# See https://github.com/sstephenson/execjs#readme for more supported runtimes
|
|
||||||
# gem 'therubyracer', :platforms => :ruby
|
|
||||||
|
|
||||||
gem 'uglifier', '>= 1.0.3'
|
|
||||||
end
|
|
||||||
|
|
||||||
# Optional gem for LDAP authentication
|
|
||||||
group :ldap do
|
|
||||||
gem "net-ldap", "~> 0.3.1"
|
|
||||||
end
|
|
||||||
|
|
||||||
|
|
||||||
# Optional gem for OpenID authentication
|
|
||||||
group :openid do
|
|
||||||
gem "ruby-openid", "~> 2.1.4", :require => "openid"
|
|
||||||
gem "rack-openid"
|
|
||||||
end
|
|
||||||
|
|
||||||
|
|
||||||
database_file = File.join(File.dirname(__FILE__), "config/database.yml")
|
|
||||||
if File.exist?(database_file)
|
|
||||||
else
|
|
||||||
warn("Please configure your config/database.yml first")
|
|
||||||
end
|
|
||||||
|
|
||||||
# Load plugins' Gemfiles
|
|
||||||
Dir.glob File.expand_path("../plugins/*/Gemfile", __FILE__) do |file|
|
|
||||||
puts "Loading #{file} ..." if $DEBUG # `ruby -d` or `bundle -v`
|
|
||||||
instance_eval File.read(file)
|
|
||||||
end
|
|
|
@ -17,7 +17,7 @@ module Mobile
|
||||||
authenticate!
|
authenticate!
|
||||||
cs = CoursesService.new
|
cs = CoursesService.new
|
||||||
courses = cs.user_courses_list(current_user)
|
courses = cs.user_courses_list(current_user)
|
||||||
present :data, courses, with: Mobile::Entities::Course
|
present :data, courses, with: Mobile::Entities::Course,user: current_user
|
||||||
present :status, 0
|
present :status, 0
|
||||||
end
|
end
|
||||||
|
|
||||||
|
@ -56,7 +56,7 @@ module Mobile
|
||||||
class_period: params[:class_period]
|
class_period: params[:class_period]
|
||||||
}
|
}
|
||||||
courses = cs.create_course(cs_params, current_user)
|
courses = cs.create_course(cs_params, current_user)
|
||||||
present :data, courses, with: Mobile::Entities::Course
|
present :data, courses, with: Mobile::Entities::Course,user: current_user
|
||||||
present :status, 0
|
present :status, 0
|
||||||
end
|
end
|
||||||
|
|
||||||
|
@ -90,7 +90,7 @@ module Mobile
|
||||||
end
|
end
|
||||||
cs.edit_course_authorize(current_user,course)
|
cs.edit_course_authorize(current_user,course)
|
||||||
course = cs.edit_course(cs_params, course,current_user)
|
course = cs.edit_course(cs_params, course,current_user)
|
||||||
present :data, course, with: Mobile::Entities::Course
|
present :data, course, with: Mobile::Entities::Course,user: current_user
|
||||||
present :status, 0
|
present :status, 0
|
||||||
end
|
end
|
||||||
post do
|
post do
|
||||||
|
@ -138,7 +138,7 @@ module Mobile
|
||||||
get 'search' do
|
get 'search' do
|
||||||
cs = CoursesService.new
|
cs = CoursesService.new
|
||||||
courses = cs.search_course(params,current_user.nil? ? User.find(2):current_user)
|
courses = cs.search_course(params,current_user.nil? ? User.find(2):current_user)
|
||||||
present :data, courses, with: Mobile::Entities::Course
|
present :data, courses, with: Mobile::Entities::Course,user: current_user
|
||||||
present :status, 0
|
present :status, 0
|
||||||
end
|
end
|
||||||
|
|
||||||
|
@ -193,15 +193,14 @@ module Mobile
|
||||||
desc "返回单个课程"
|
desc "返回单个课程"
|
||||||
params do
|
params do
|
||||||
requires :id, type: Integer
|
requires :id, type: Integer
|
||||||
optional :token, type: String
|
requires :token,type:String
|
||||||
end
|
end
|
||||||
route_param :id do
|
route_param :id do
|
||||||
get do
|
get do
|
||||||
authenticate!
|
# course = Course.find(params[:id])
|
||||||
cs = CoursesService.new
|
cs = CoursesService.new
|
||||||
course = cs.show_course(params,(current_user.nil? ? User.find(2):current_user))
|
course = cs.show_course(params,current_user)
|
||||||
#course = Course.find(params[:id])
|
present :data, course, with: Mobile::Entities::Course,user: current_user
|
||||||
present :data, course, with: Mobile::Entities::Course
|
|
||||||
{ status: 0}
|
{ status: 0}
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
@ -391,7 +390,9 @@ module Mobile
|
||||||
end
|
end
|
||||||
get ':course_id/exercises' do
|
get ':course_id/exercises' do
|
||||||
authenticate!
|
authenticate!
|
||||||
exercises = Course.find(params[:course_id]).exercises
|
|
||||||
|
course = Course.find(params[:course_id])
|
||||||
|
exercises = course.exercises.where("exercise_status <> 1").order("created_at desc")
|
||||||
present :data,exercises,with:Mobile::Entities::Exercise
|
present :data,exercises,with:Mobile::Entities::Exercise
|
||||||
present :status,0
|
present :status,0
|
||||||
end
|
end
|
||||||
|
|
|
@ -8,11 +8,23 @@ module Mobile
|
||||||
desc '获取所有课件'
|
desc '获取所有课件'
|
||||||
params do
|
params do
|
||||||
requires :token, type: String
|
requires :token, type: String
|
||||||
|
requires :page, type: Integer
|
||||||
end
|
end
|
||||||
get do
|
post do
|
||||||
authenticate!
|
authenticate!
|
||||||
data = current_user.course_attachments
|
page = params[:page] ? params[:page] : 0
|
||||||
present :data, data, with: Mobile::Entities::Attachment
|
|
||||||
|
rs = ResourcesService.new
|
||||||
|
# data = current_user.course_attachments
|
||||||
|
data = rs.all_course_attachments current_user
|
||||||
|
all_count = data.count
|
||||||
|
data = data.limit(10).offset(page * 10)
|
||||||
|
count = data.count
|
||||||
|
|
||||||
|
present :data, data, with: Mobile::Entities::Attachment,user: current_user
|
||||||
|
present :all_count, all_count
|
||||||
|
present :count, count
|
||||||
|
present :page, page
|
||||||
present :status, 0
|
present :status, 0
|
||||||
|
|
||||||
end
|
end
|
||||||
|
@ -22,13 +34,24 @@ module Mobile
|
||||||
desc '获取所有作业'
|
desc '获取所有作业'
|
||||||
params do
|
params do
|
||||||
requires :token, type: String
|
requires :token, type: String
|
||||||
|
requires :page, type: Integer
|
||||||
end
|
end
|
||||||
get 'homeworks' do
|
post 'homeworks' do
|
||||||
authenticate!
|
authenticate!
|
||||||
|
|
||||||
homeworks = current_user.homework_commons
|
page = params[:page] ? params[:page] : 0
|
||||||
|
|
||||||
present :data, homeworks, with: Mobile::Entities::Homework
|
rs = ResourcesService.new
|
||||||
|
homeworks = rs.all_homework_commons current_user
|
||||||
|
|
||||||
|
all_count = homeworks.count
|
||||||
|
homeworks = homeworks.limit(10).offset(page * 10)
|
||||||
|
count = homeworks.count
|
||||||
|
|
||||||
|
present :data, homeworks, with: Mobile::Entities::Homework,user: current_user
|
||||||
|
present :all_count, all_count
|
||||||
|
present :count, count
|
||||||
|
present :page, page
|
||||||
present :status, 0
|
present :status, 0
|
||||||
|
|
||||||
end
|
end
|
||||||
|
@ -36,12 +59,23 @@ module Mobile
|
||||||
desc '获取所有测验'
|
desc '获取所有测验'
|
||||||
params do
|
params do
|
||||||
requires :token, type: String
|
requires :token, type: String
|
||||||
|
requires :page, type: Integer
|
||||||
end
|
end
|
||||||
get 'exercies' do
|
post 'exercises' do
|
||||||
authenticate!
|
authenticate!
|
||||||
|
|
||||||
exercises = current_user.exercises
|
page = params[:page] ? params[:page] : 0
|
||||||
present :data, exercises, with: Mobile::Entities::Exercise
|
|
||||||
|
rs = ResourcesService.new
|
||||||
|
exercises = rs.all_exercises current_user
|
||||||
|
all_count = exercises.count
|
||||||
|
exercises = exercises.limit(10).offset(page * 10)
|
||||||
|
count = exercises.count
|
||||||
|
|
||||||
|
present :data, exercises, with: Mobile::Entities::Exercise,user: current_user
|
||||||
|
present :all_count, all_count
|
||||||
|
present :count, count
|
||||||
|
present :page, page
|
||||||
present :status, 0
|
present :status, 0
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
|
@ -14,7 +14,7 @@ module Mobile
|
||||||
|
|
||||||
cs = SyllabusesService.new
|
cs = SyllabusesService.new
|
||||||
courses = cs.user_syllabus(current_user)
|
courses = cs.user_syllabus(current_user)
|
||||||
present :data, courses, with: Mobile::Entities::Syllabus
|
present :data, courses, with: Mobile::Entities::Syllabus,user: current_user
|
||||||
present :status, 0
|
present :status, 0
|
||||||
end
|
end
|
||||||
|
|
||||||
|
@ -29,9 +29,8 @@ module Mobile
|
||||||
|
|
||||||
sy = ::Syllabus.find(params[:id])
|
sy = ::Syllabus.find(params[:id])
|
||||||
sy.courses = sy.courses.not_deleted
|
sy.courses = sy.courses.not_deleted
|
||||||
sy = ss.judge_can_setting(sy,current_user)
|
|
||||||
|
|
||||||
present :data, sy, with: Mobile::Entities::Syllabus
|
present :data, sy, with: Mobile::Entities::Syllabus,user: current_user
|
||||||
present :status, 0
|
present :status, 0
|
||||||
end
|
end
|
||||||
|
|
||||||
|
@ -68,7 +67,7 @@ module Mobile
|
||||||
if sy.new_record?
|
if sy.new_record?
|
||||||
{status:-1, message: '创建大纲失败' }
|
{status:-1, message: '创建大纲失败' }
|
||||||
else
|
else
|
||||||
present :data, sy, with: Mobile::Entities::Syllabus
|
present :data, sy, with: Mobile::Entities::Syllabus,user: current_user
|
||||||
present :status, 0
|
present :status, 0
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
|
@ -41,8 +41,8 @@ module Mobile
|
||||||
openid: openid,
|
openid: openid,
|
||||||
user: user
|
user: user
|
||||||
)
|
)
|
||||||
# ws = WechatService.new
|
ws = WechatService.new
|
||||||
# ws.binding_succ_notice(user.id, "您已成功绑定Trustie平台", user.login, format_time(Time.now))
|
ws.binding_succ_notice(user.id, "您已成功绑定Trustie平台", user.login, Time.now.strftime("%Y-%m-%d"))
|
||||||
present status: 0, message: '您已成功绑定Trustie平台'
|
present status: 0, message: '您已成功绑定Trustie平台'
|
||||||
end
|
end
|
||||||
|
|
||||||
|
@ -67,7 +67,8 @@ module Mobile
|
||||||
openid: openid,
|
openid: openid,
|
||||||
user: user
|
user: user
|
||||||
)
|
)
|
||||||
|
ws = WechatService.new
|
||||||
|
ws.binding_succ_notice(user.id, "您已成功绑定Trustie平台", user.login, Time.now.strftime("%Y-%m-%d"))
|
||||||
present :data, user, with: Mobile::Entities::User
|
present :data, user, with: Mobile::Entities::User
|
||||||
present :status, 0
|
present :status, 0
|
||||||
end
|
end
|
||||||
|
|
|
@ -2,6 +2,7 @@ module Mobile
|
||||||
module Entities
|
module Entities
|
||||||
class Attachment < Grape::Entity
|
class Attachment < Grape::Entity
|
||||||
include Redmine::I18n
|
include Redmine::I18n
|
||||||
|
include ActionView::Helpers::NumberHelper
|
||||||
def self.attachment_expose(field)
|
def self.attachment_expose(field)
|
||||||
expose field do |f,opt|
|
expose field do |f,opt|
|
||||||
if f.is_a?(Hash) && f.key?(field)
|
if f.is_a?(Hash) && f.key?(field)
|
||||||
|
@ -17,6 +18,10 @@ module Mobile
|
||||||
case field
|
case field
|
||||||
when :file_dir
|
when :file_dir
|
||||||
"attachments/download/" << f.send(:id).to_s << '/'
|
"attachments/download/" << f.send(:id).to_s << '/'
|
||||||
|
when :attafile_size
|
||||||
|
(number_to_human_size(f.filesize)).gsub("ytes", "").to_s
|
||||||
|
when :coursename
|
||||||
|
f.course.nil? ? "" : f.course.name
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
@ -29,6 +34,8 @@ module Mobile
|
||||||
attachment_expose :quotes
|
attachment_expose :quotes
|
||||||
attachment_expose :created_on
|
attachment_expose :created_on
|
||||||
attachment_expose :file_dir
|
attachment_expose :file_dir
|
||||||
|
attachment_expose :attafile_size
|
||||||
|
attachment_expose :coursename #所属班级名
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
|
@ -2,6 +2,8 @@ module Mobile
|
||||||
module Entities
|
module Entities
|
||||||
class Course < Grape::Entity
|
class Course < Grape::Entity
|
||||||
include Redmine::I18n
|
include Redmine::I18n
|
||||||
|
include ApplicationHelper
|
||||||
|
include ApiHelper
|
||||||
def self.course_expose(field)
|
def self.course_expose(field)
|
||||||
expose field do |f,opt|
|
expose field do |f,opt|
|
||||||
c = nil
|
c = nil
|
||||||
|
@ -52,7 +54,28 @@ module Mobile
|
||||||
course_expose :updated_at
|
course_expose :updated_at
|
||||||
course_expose :course_student_num
|
course_expose :course_student_num
|
||||||
course_expose :member_count
|
course_expose :member_count
|
||||||
course_expose :can_setting
|
expose :can_setting, if: lambda { |instance, options| options[:user] } do |instance, options|
|
||||||
|
current_user = options[:user]
|
||||||
|
can_setting = false
|
||||||
|
|
||||||
|
if instance[:course]
|
||||||
|
course = instance[:course]
|
||||||
|
else
|
||||||
|
course = instance
|
||||||
|
end
|
||||||
|
|
||||||
|
member = course.members.where("user_id=#{current_user.id} and course_id=#{course.id}")[0]
|
||||||
|
roleName = member.roles[0].name if member
|
||||||
|
|
||||||
|
if roleName && (roleName == "TeachingAsistant" || roleName == "Teacher" )
|
||||||
|
can_setting = true
|
||||||
|
end
|
||||||
|
|
||||||
|
if course.tea_id == current_user.id
|
||||||
|
can_setting = true
|
||||||
|
end
|
||||||
|
can_setting
|
||||||
|
end
|
||||||
expose :teacher, using: Mobile::Entities::User do |c, opt|
|
expose :teacher, using: Mobile::Entities::User do |c, opt|
|
||||||
if c.is_a? ::Course
|
if c.is_a? ::Course
|
||||||
c.teacher
|
c.teacher
|
||||||
|
|
|
@ -1,8 +1,32 @@
|
||||||
module Mobile
|
module Mobile
|
||||||
module Entities
|
module Entities
|
||||||
class Exercise < Grape::Entity
|
class Exercise < Grape::Entity
|
||||||
|
include Redmine::I18n
|
||||||
|
include ApplicationHelper
|
||||||
|
include ApiHelper
|
||||||
|
def self.exercise_expose(field)
|
||||||
|
expose field do |f,opt|
|
||||||
|
if f.is_a?(Hash) && f.key?(field)
|
||||||
|
if field == :created_on
|
||||||
|
format_time(f[field])
|
||||||
|
else
|
||||||
|
f[field]
|
||||||
|
end
|
||||||
|
elsif f.is_a?(::Exercise)
|
||||||
|
if f.respond_to?(field)
|
||||||
|
f.send(field)
|
||||||
|
else
|
||||||
|
case field
|
||||||
|
when :coursename
|
||||||
|
f.course.nil? ? "" : f.course.name
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
expose :exercise_name
|
expose :exercise_name
|
||||||
expose :exercise_description
|
expose :exercise_description
|
||||||
|
exercise_expose :coursename #所属班级名
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
|
@ -37,6 +37,8 @@ module Mobile
|
||||||
when :homework_anony_type
|
when :homework_anony_type
|
||||||
val = f.homework_type == 1 && !f.homework_detail_manual.nil?
|
val = f.homework_type == 1 && !f.homework_detail_manual.nil?
|
||||||
val
|
val
|
||||||
|
when :coursename
|
||||||
|
f.course.nil? ? "" : f.course.name
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
@ -94,6 +96,8 @@ module Mobile
|
||||||
|
|
||||||
homework_expose :homework_anony_type #是否是匿评作业
|
homework_expose :homework_anony_type #是否是匿评作业
|
||||||
|
|
||||||
|
homework_expose :coursename #所属班级名
|
||||||
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
|
@ -1,12 +1,14 @@
|
||||||
module Mobile
|
module Mobile
|
||||||
module Entities
|
module Entities
|
||||||
class Syllabus < Grape::Entity
|
class Syllabus < Grape::Entity
|
||||||
include ApplicationHelper
|
|
||||||
|
|
||||||
expose :title
|
expose :title
|
||||||
expose :id
|
expose :id
|
||||||
expose :can_setting
|
expose :can_setting, if: lambda { |instance, options| options[:user] } do |instance, options|
|
||||||
|
current_user = options[:user]
|
||||||
|
can_setting = instance.user_id == current_user.id ? true : false
|
||||||
|
can_setting = false if instance.id.nil?
|
||||||
|
can_setting
|
||||||
|
end
|
||||||
expose :courses, using: Mobile::Entities::Course
|
expose :courses, using: Mobile::Entities::Course
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
|
@ -18,6 +18,8 @@
|
||||||
class AttachmentsController < ApplicationController
|
class AttachmentsController < ApplicationController
|
||||||
layout "users_base"
|
layout "users_base"
|
||||||
|
|
||||||
|
before_filter :verify_authenticity_token, only: [:uploa]
|
||||||
|
|
||||||
before_filter :find_project, :only => [:show, :download, :thumbnail, :destroy, :delete_homework]#, :except => [:upload, :autocomplete]
|
before_filter :find_project, :only => [:show, :download, :thumbnail, :destroy, :delete_homework]#, :except => [:upload, :autocomplete]
|
||||||
before_filter :file_readable, :read_authorize, :only => [:show, :thumbnail]#Modified by young
|
before_filter :file_readable, :read_authorize, :only => [:show, :thumbnail]#Modified by young
|
||||||
before_filter :delete_authorize, :only => [:destroy]
|
before_filter :delete_authorize, :only => [:destroy]
|
||||||
|
|
|
@ -635,6 +635,9 @@ class CoursesController < ApplicationController
|
||||||
=end
|
=end
|
||||||
end
|
end
|
||||||
if @course
|
if @course
|
||||||
|
#发送微信消息
|
||||||
|
ss = SyllabusesService.new
|
||||||
|
ss.send_wechat_create_class_notice User.current,@course
|
||||||
respond_to do |format|
|
respond_to do |format|
|
||||||
flash[:notice] = l(:notice_successful_create)
|
flash[:notice] = l(:notice_successful_create)
|
||||||
format.html {redirect_to course_url(@course)}
|
format.html {redirect_to course_url(@course)}
|
||||||
|
@ -970,7 +973,7 @@ class CoursesController < ApplicationController
|
||||||
|
|
||||||
@homework = HomeworkCommon.find params[:homework]
|
@homework = HomeworkCommon.find params[:homework]
|
||||||
#order("#{@order} #{@b_sort}"
|
#order("#{@order} #{@b_sort}"
|
||||||
@student_works = search_homework_member @homework.student_works.select("student_works.*,IF(final_score is null,null,IF(final_score = 0, 0, final_score - absence_penalty - late_penalty)) as score").order("simi_value desc"),@name
|
@student_works = search_homework_member @homework.student_works.select("student_works.*,IF(final_score is null,null,IF(final_score = 0, 0, final_score - absence_penalty - late_penalty)) as score").order("simi_value desc").has_committed,@name
|
||||||
|
|
||||||
@works_hash = {}
|
@works_hash = {}
|
||||||
|
|
||||||
|
|
|
@ -2,7 +2,7 @@ class QualityAnalysisController < ApplicationController
|
||||||
before_filter :find_project_by_project_id#, :except => [:getattachtype]
|
before_filter :find_project_by_project_id#, :except => [:getattachtype]
|
||||||
before_filter :find_quality_analysis, :only => [:edit, :update_jenkins_job]
|
before_filter :find_quality_analysis, :only => [:edit, :update_jenkins_job]
|
||||||
before_filter :authorize
|
before_filter :authorize
|
||||||
before_filter :connect_jenkins, :only => [:create, :edit, :update_jenkins_job, :index]
|
before_filter :connect_jenkins, :only => [:create, :edit, :update_jenkins_job, :index, :delete]
|
||||||
layout "base_projects"
|
layout "base_projects"
|
||||||
include ApplicationHelper
|
include ApplicationHelper
|
||||||
include QualityAnalysisHelper
|
include QualityAnalysisHelper
|
||||||
|
@ -33,7 +33,6 @@ class QualityAnalysisController < ApplicationController
|
||||||
arr = JSON.parse(projects_date).map {|m| m["nm"]} # eg: ["Hjqreturn:cc_rep", "Hjqreturn:putong", "Hjqreturn:sonar_rep2", "shitou:sonar_rep"]
|
arr = JSON.parse(projects_date).map {|m| m["nm"]} # eg: ["Hjqreturn:cc_rep", "Hjqreturn:putong", "Hjqreturn:sonar_rep2", "shitou:sonar_rep"]
|
||||||
quality_an = QualityAnalysis.where(:sonar_name => sonar_name).first
|
quality_an = QualityAnalysis.where(:sonar_name => sonar_name).first
|
||||||
if @client.job.exists?(job_name) && QualityAnalysis.where(:sonar_name => sonar_name).select{|qa| arr.include?(qa.sonar_name)}.blank?
|
if @client.job.exists?(job_name) && QualityAnalysis.where(:sonar_name => sonar_name).select{|qa| arr.include?(qa.sonar_name)}.blank?
|
||||||
logger.info("88888888888888888888")
|
|
||||||
aa = @client.job.delete("#{job_name}")
|
aa = @client.job.delete("#{job_name}")
|
||||||
quality_an.delete unless quality_an.blank?
|
quality_an.delete unless quality_an.blank?
|
||||||
end
|
end
|
||||||
|
@ -83,8 +82,8 @@ class QualityAnalysisController < ApplicationController
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
# sonar 缓冲,取数据
|
# sonar 缓冲,sonar生成数据
|
||||||
sleep(5)
|
sleep(10)
|
||||||
|
|
||||||
# 获取sonar output结果
|
# 获取sonar output结果
|
||||||
console_build = @client.job.get_console_output("#{job_name}", build_num = 0, start = 0, mode = 'text')["output"]
|
console_build = @client.job.get_console_output("#{job_name}", build_num = 0, start = 0, mode = 'text')["output"]
|
||||||
|
@ -152,11 +151,31 @@ class QualityAnalysisController < ApplicationController
|
||||||
@gitlab_default_branch = @g.project(@project.gpid).default_branch
|
@gitlab_default_branch = @g.project(@project.gpid).default_branch
|
||||||
end
|
end
|
||||||
|
|
||||||
|
# 删除的时候主要删除三方面数据:1/Trustie数据 2/jenkins数据 3/sonar数据
|
||||||
|
# 如果只删除数据1,则新建的时候会有冲突
|
||||||
|
def delete
|
||||||
|
begin
|
||||||
|
qa = QualityAnalysis.find(params[:id])
|
||||||
|
rep_id = Repository.where(:project_id => @project.id, :identifier => qa.rep_identifier).first.try(:id)
|
||||||
|
job_name = "#{qa.author_login}-#{rep_id}"
|
||||||
|
logger.info("result: job_name ###################==>#{job_name}")
|
||||||
|
logger.info("result: @client.job ###################==>#{@client.job}")
|
||||||
|
|
||||||
|
d_job = @client.job.delete(job_name)
|
||||||
|
logger.info("result: delete job ###################==>#{d_job}")
|
||||||
|
qa.delete
|
||||||
|
respond_to do |format|
|
||||||
|
format.html{redirect_to project_quality_analysis_path(:project_id => @project.id)}
|
||||||
|
end
|
||||||
|
rescue Exception => e
|
||||||
|
puts e
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
# 更新Jenkins job,主要包括相关配置文件参数的更新,Trustie平台数据的更新
|
# 更新Jenkins job,主要包括相关配置文件参数的更新,Trustie平台数据的更新
|
||||||
def update_jenkins_job
|
def update_jenkins_job
|
||||||
begin
|
begin
|
||||||
rep_id = Repository.where(:project_id => @project.id).first.try(:id)
|
rep_id = Repository.where(:project_id => @project.id).first.try(:id)
|
||||||
logger.error("#############################===>666")
|
|
||||||
sonar_name = @quality_analysis.sonar_name
|
sonar_name = @quality_analysis.sonar_name
|
||||||
job_name = "#{@quality_analysis.author_login}-#{rep_id}"
|
job_name = "#{@quality_analysis.author_login}-#{rep_id}"
|
||||||
version = @quality_analysis.sonar_version
|
version = @quality_analysis.sonar_version
|
||||||
|
@ -223,7 +242,7 @@ class QualityAnalysisController < ApplicationController
|
||||||
if key == "sqale_index"
|
if key == "sqale_index"
|
||||||
value = com["frmt_val"]
|
value = com["frmt_val"]
|
||||||
else
|
else
|
||||||
value = com["val"].to_i
|
value = com["val"]
|
||||||
end
|
end
|
||||||
@ha.store(key,value)
|
@ha.store(key,value)
|
||||||
end
|
end
|
||||||
|
@ -260,9 +279,11 @@ class QualityAnalysisController < ApplicationController
|
||||||
def connect_jenkins
|
def connect_jenkins
|
||||||
@gitlab_address = Redmine::Configuration['gitlab_address']
|
@gitlab_address = Redmine::Configuration['gitlab_address']
|
||||||
@jenkins_address = Redmine::Configuration['jenkins_address']
|
@jenkins_address = Redmine::Configuration['jenkins_address']
|
||||||
|
jenkins_username = Redmine::Configuration['jenkins_username']
|
||||||
|
jenkins_password = Redmine::Configuration['jenkins_password']
|
||||||
|
|
||||||
# connect jenkins
|
# connect jenkins
|
||||||
@client = JenkinsApi::Client.new(:server_url => @jenkins_address, :username => "temp", :password => '123123')
|
@client = JenkinsApi::Client.new(:server_url => @jenkins_address, :username => jenkins_username, :password => jenkins_password)
|
||||||
rescue => e
|
rescue => e
|
||||||
logger.error("failed to connect Jenkins ==> #{e}")
|
logger.error("failed to connect Jenkins ==> #{e}")
|
||||||
end
|
end
|
||||||
|
|
|
@ -38,7 +38,7 @@ class RepositoriesController < ApplicationController
|
||||||
before_filter :find_changeset, :only => [:revision, :add_related_issue, :remove_related_issue]
|
before_filter :find_changeset, :only => [:revision, :add_related_issue, :remove_related_issue]
|
||||||
before_filter :authorize , :except => [:newrepo,:newcreate,:fork, :to_gitlab, :forked, :commit_diff, :project_archive, :quality_analysis]
|
before_filter :authorize , :except => [:newrepo,:newcreate,:fork, :to_gitlab, :forked, :commit_diff, :project_archive, :quality_analysis]
|
||||||
# 链接gitlab
|
# 链接gitlab
|
||||||
before_filter :connect_gitlab, :only => [:quality_analysis, :show]
|
before_filter :connect_gitlab, :only => [:quality_analysis, :show, :commit_diff, :find_project_repository]
|
||||||
# 版本库新增权限
|
# 版本库新增权限
|
||||||
before_filter :show_rep, :only => [:show]
|
before_filter :show_rep, :only => [:show]
|
||||||
accept_rss_auth :revisions
|
accept_rss_auth :revisions
|
||||||
|
@ -48,7 +48,6 @@ class RepositoriesController < ApplicationController
|
||||||
include RepositoriesHelper
|
include RepositoriesHelper
|
||||||
helper :project_score
|
helper :project_score
|
||||||
#@root_path = RepositoriesHelper::ROOT_PATH
|
#@root_path = RepositoriesHelper::ROOT_PATH
|
||||||
$g=Gitlab.client
|
|
||||||
require 'net/ssh'
|
require 'net/ssh'
|
||||||
|
|
||||||
rescue_from Redmine::Scm::Adapters::CommandFailed, :with => :show_error_command_failed
|
rescue_from Redmine::Scm::Adapters::CommandFailed, :with => :show_error_command_failed
|
||||||
|
@ -548,8 +547,8 @@ update
|
||||||
|
|
||||||
# 每次提交对应的文件差异
|
# 每次提交对应的文件差异
|
||||||
def commit_diff
|
def commit_diff
|
||||||
@commit_diff = $g.commit_diff(@project.gpid, params[:changeset])
|
@commit_diff = @g.commit_diff(@project.gpid, params[:changeset])
|
||||||
@commit_details = $g.commit(@project.gpid, params[:changeset])
|
@commit_details = @g.commit(@project.gpid, params[:changeset])
|
||||||
render :layout => 'base_projects'
|
render :layout => 'base_projects'
|
||||||
end
|
end
|
||||||
|
|
||||||
|
@ -700,7 +699,8 @@ update
|
||||||
(render_404; return false) unless @repository
|
(render_404; return false) unless @repository
|
||||||
@path = params[:path].is_a?(Array) ? params[:path].join('/') : params[:path].to_s
|
@path = params[:path].is_a?(Array) ? params[:path].join('/') : params[:path].to_s
|
||||||
# gitlab端获取默认分支
|
# gitlab端获取默认分支
|
||||||
gitlab_branchs = $g.project(@project.gpid).default_branch
|
g = Gitlab.client
|
||||||
|
gitlab_branchs = g.project(@project.gpid).default_branch
|
||||||
@project.gpid.nil? ? (@rev = params[:rev].blank? ? @repository.default_branch : params[:rev].to_s.strip) : (@rev = params[:rev].blank? ? gitlab_branchs : params[:rev].to_s.strip)
|
@project.gpid.nil? ? (@rev = params[:rev].blank? ? @repository.default_branch : params[:rev].to_s.strip) : (@rev = params[:rev].blank? ? gitlab_branchs : params[:rev].to_s.strip)
|
||||||
@rev_to = params[:rev_to]
|
@rev_to = params[:rev_to]
|
||||||
unless @rev.to_s.match(REV_PARAM_RE) && @rev_to.to_s.match(REV_PARAM_RE)
|
unless @rev.to_s.match(REV_PARAM_RE) && @rev_to.to_s.match(REV_PARAM_RE)
|
||||||
|
|
|
@ -110,9 +110,9 @@ class StudentWorkController < ApplicationController
|
||||||
#status 0:答案正确 -5program_test_ex 函数出错 -4judge代码出错 -3http超时 -2:编译错误 -1:答案错误 2:程序运行超时
|
#status 0:答案正确 -5program_test_ex 函数出错 -4judge代码出错 -3http超时 -2:编译错误 -1:答案错误 2:程序运行超时
|
||||||
resultObj[:status] = -3
|
resultObj[:status] = -3
|
||||||
CodeTests.create(:homework_id=>@homework.id,:language=>@homework.homework_detail_programing.language,:status=>-3,:wait_time=>tUsedtime,:student_work_id=>student_work.id)
|
CodeTests.create(:homework_id=>@homework.id,:language=>@homework.homework_detail_programing.language,:status=>-3,:wait_time=>tUsedtime,:student_work_id=>student_work.id)
|
||||||
rescue
|
rescue => e
|
||||||
#-4 judge代码 出错
|
#-4 judge代码 出错
|
||||||
logger.debug "program_test_error 1"
|
logger.debug "program_test_error #{e}"
|
||||||
resultObj[:status] = -4
|
resultObj[:status] = -4
|
||||||
tmpstatus = -4
|
tmpstatus = -4
|
||||||
CodeTests.create(:homework_id=>@homework.id,:language=>@homework.homework_detail_programing.language,:status=>tmpstatus,:time_used=>0,:wait_time=>0,:student_work_id=>student_work.id)
|
CodeTests.create(:homework_id=>@homework.id,:language=>@homework.homework_detail_programing.language,:status=>tmpstatus,:time_used=>0,:wait_time=>0,:student_work_id=>student_work.id)
|
||||||
|
@ -197,7 +197,7 @@ class StudentWorkController < ApplicationController
|
||||||
resultObj[:status] = 0
|
resultObj[:status] = 0
|
||||||
end
|
end
|
||||||
student_work.save!
|
student_work.save!
|
||||||
resultObj[:time] = student_work_test.created_at.to_s(:db)
|
resultObj[:time] = student_work_test.created_at.strftime(format='%Y-%m-%d %H:%M:%S')
|
||||||
resultObj[:index] = student_work.student_work_tests.count
|
resultObj[:index] = student_work.student_work_tests.count
|
||||||
end
|
end
|
||||||
|
|
||||||
|
@ -271,7 +271,7 @@ class StudentWorkController < ApplicationController
|
||||||
|
|
||||||
all_studentwork = find_all_student_work_by_homeid()
|
all_studentwork = find_all_student_work_by_homeid()
|
||||||
|
|
||||||
@work_count = all_studentwork.count
|
@work_count = all_studentwork.has_committed.count
|
||||||
end
|
end
|
||||||
|
|
||||||
#代码查重 status: 0完成 -2不需要查重 -1查重失败不支持该语言
|
#代码查重 status: 0完成 -2不需要查重 -1查重失败不支持该语言
|
||||||
|
@ -282,7 +282,7 @@ class StudentWorkController < ApplicationController
|
||||||
|
|
||||||
@homework = HomeworkCommon.find params[:homework]
|
@homework = HomeworkCommon.find params[:homework]
|
||||||
|
|
||||||
all_studentwork = find_all_student_work_by_homeid()
|
all_studentwork = find_all_student_work_by_homeid().has_committed
|
||||||
|
|
||||||
if all_studentwork == nil
|
if all_studentwork == nil
|
||||||
resultObj[:status] = -2
|
resultObj[:status] = -2
|
||||||
|
|
|
@ -2174,6 +2174,7 @@ class UsersController < ApplicationController
|
||||||
# 添加资源到对应的项目
|
# 添加资源到对应的项目
|
||||||
def add_exist_file_to_project
|
def add_exist_file_to_project
|
||||||
@flag = true
|
@flag = true
|
||||||
|
# 发送单个资源
|
||||||
if params[:send_id].present?
|
if params[:send_id].present?
|
||||||
send_id = params[:send_id]
|
send_id = params[:send_id]
|
||||||
project_ids = params[:projects_ids]
|
project_ids = params[:projects_ids]
|
||||||
|
@ -2210,6 +2211,8 @@ class UsersController < ApplicationController
|
||||||
quotes = ori.quotes.to_i + 1
|
quotes = ori.quotes.to_i + 1
|
||||||
ori.update_attribute(:quotes, quotes) unless ori.nil?
|
ori.update_attribute(:quotes, quotes) unless ori.nil?
|
||||||
ori.forwards << Forward.new(:to_type => attach_copied_obj.class.name, :to_id => attach_copied_obj.id,:created_at => Time.now)
|
ori.forwards << Forward.new(:to_type => attach_copied_obj.class.name, :to_id => attach_copied_obj.id,:created_at => Time.now)
|
||||||
|
# 项目中添加动态
|
||||||
|
ForgeActivity.create(:user_id => User.current.id, :project_id => project_id, :forge_act_id => attach_copied_obj.id, :forge_act_type => "Attachment" )
|
||||||
end
|
end
|
||||||
unless Project.find(project_id).project_score.nil?
|
unless Project.find(project_id).project_score.nil?
|
||||||
Project.find(project_id).project_score.update_attribute(:attach_num,
|
Project.find(project_id).project_score.update_attribute(:attach_num,
|
||||||
|
@ -2218,6 +2221,7 @@ class UsersController < ApplicationController
|
||||||
end
|
end
|
||||||
@ori = ori
|
@ori = ori
|
||||||
end
|
end
|
||||||
|
# 发送多个资源
|
||||||
elsif params[:send_ids].present?
|
elsif params[:send_ids].present?
|
||||||
send_ids = params[:send_ids].split(",")
|
send_ids = params[:send_ids].split(",")
|
||||||
project_ids = params[:projects_ids]
|
project_ids = params[:projects_ids]
|
||||||
|
@ -2256,6 +2260,8 @@ class UsersController < ApplicationController
|
||||||
quotes = ori.quotes.to_i + 1
|
quotes = ori.quotes.to_i + 1
|
||||||
ori.update_attribute(:quotes, quotes) unless ori.nil?
|
ori.update_attribute(:quotes, quotes) unless ori.nil?
|
||||||
ori.forwards << Forward.new(:to_type => attach_copied_obj.class.name, :to_id => attach_copied_obj.id,:created_at => Time.now)
|
ori.forwards << Forward.new(:to_type => attach_copied_obj.class.name, :to_id => attach_copied_obj.id,:created_at => Time.now)
|
||||||
|
# 项目中添加动态
|
||||||
|
ForgeActivity.create(:user_id => User.current.id, :project_id => project_id, :forge_act_id => attach_copied_obj.id, :forge_act_type => "Attachment" )
|
||||||
end
|
end
|
||||||
unless Project.find(project_id).project_score.nil?
|
unless Project.find(project_id).project_score.nil?
|
||||||
Project.find(project_id).project_score.update_attribute(:attach_num, Project.find(project_id).project_score.attach_num + 1)
|
Project.find(project_id).project_score.update_attribute(:attach_num, Project.find(project_id).project_score.attach_num + 1)
|
||||||
|
|
|
@ -69,11 +69,21 @@ class WechatsController < ActionController::Base
|
||||||
end
|
end
|
||||||
|
|
||||||
on :click, with: 'DEV' do |request, key|
|
on :click, with: 'DEV' do |request, key|
|
||||||
request.reply.text "此功能正在开发中,很快就会上线,谢谢!"
|
uw = user_binded?(request[:FromUserName])
|
||||||
|
unless uw
|
||||||
|
sendBind(request)
|
||||||
|
else
|
||||||
|
request.reply.text "此功能正在开发中,很快就会上线,谢谢!"
|
||||||
|
end
|
||||||
end
|
end
|
||||||
# When user view URL in the menu button
|
# When user view URL in the menu button
|
||||||
on :view, with: 'http://wechat.somewhere.com/view_url' do |request, view|
|
on :view, with: 'http://wechat.somewhere.com/view_url' do |request, view|
|
||||||
request.reply.text "#{request[:FromUserName]} view #{view}"
|
uw = user_binded?(request[:FromUserName])
|
||||||
|
unless uw
|
||||||
|
sendBind(request)
|
||||||
|
else
|
||||||
|
request.reply.text "#{request[:FromUserName]} view #{view}"
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
# When user sent the imsage
|
# When user sent the imsage
|
||||||
|
@ -139,8 +149,8 @@ class WechatsController < ActionController::Base
|
||||||
|
|
||||||
on :click, with: 'JOIN_CLASS' do |request, key|
|
on :click, with: 'JOIN_CLASS' do |request, key|
|
||||||
uw = user_binded?(request[:FromUserName])
|
uw = user_binded?(request[:FromUserName])
|
||||||
unless uw
|
unless uw
|
||||||
sendBind(request)
|
sendBind(request)
|
||||||
else
|
else
|
||||||
request.reply.text "请直接回复5位班级邀请码\n(不区分大小写):"
|
request.reply.text "请直接回复5位班级邀请码\n(不区分大小写):"
|
||||||
end
|
end
|
||||||
|
@ -198,6 +208,9 @@ class WechatsController < ActionController::Base
|
||||||
course = Course.where(invite_code: params[:invite_code]).first if params[:invite_code]
|
course = Course.where(invite_code: params[:invite_code]).first if params[:invite_code]
|
||||||
raise "班级不存在,请确认您的邀请码是否输入正确,谢谢!" unless course
|
raise "班级不存在,请确认您的邀请码是否输入正确,谢谢!" unless course
|
||||||
|
|
||||||
|
#取出用户角色类型
|
||||||
|
role = 10
|
||||||
|
|
||||||
cs = CoursesService.new
|
cs = CoursesService.new
|
||||||
status = cs.join_course({invite_code: course.invite_code}, user)
|
status = cs.join_course({invite_code: course.invite_code}, user)
|
||||||
logger.info status
|
logger.info status
|
||||||
|
@ -208,7 +221,7 @@ class WechatsController < ActionController::Base
|
||||||
news = (1..1).each_with_object([]) { |n, memo| memo << { title: '恭喜您成功加入班级,开始学习吧!',
|
news = (1..1).each_with_object([]) { |n, memo| memo << { title: '恭喜您成功加入班级,开始学习吧!',
|
||||||
content: "课程名称: #{course.name}\n班级名称: #{course.name}\n任课老师: #{course.teacher.show_name}\n进入班级,和小伙伴愉快的学习吧!"} }
|
content: "课程名称: #{course.name}\n班级名称: #{course.name}\n任课老师: #{course.teacher.show_name}\n进入班级,和小伙伴愉快的学习吧!"} }
|
||||||
return request.reply.news(news) do |article, n, index| # article is return object
|
return request.reply.news(news) do |article, n, index| # article is return object
|
||||||
url = "https://open.weixin.qq.com/connect/oauth2/authorize?appid=#{Wechat.config.appid}&redirect_uri=#{ROOT_URL+'/wechat/user_activities?id='+course.id.to_s}&response_type=code&scope=snsapi_base&state=myclass#wechat_redirect"
|
url = "https://open.weixin.qq.com/connect/oauth2/authorize?appid=#{Wechat.config.appid}&redirect_uri=#{ROOT_URL+'/wechat/user_activities#/class?id='+course.id.to_s}&response_type=code&scope=snsapi_base&state=myclass#wechat_redirect"
|
||||||
pic_url = "#{ROOT_URL}/images/wechat/class.jpg"
|
pic_url = "#{ROOT_URL}/images/wechat/class.jpg"
|
||||||
article.item title: "#{n[:title]}",
|
article.item title: "#{n[:title]}",
|
||||||
description: n[:content],
|
description: n[:content],
|
||||||
|
|
|
@ -385,6 +385,7 @@ module ApplicationHelper
|
||||||
subject = truncate(subject, :length => 60)
|
subject = truncate(subject, :length => 60)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
# status_id:3、已解决 5、已关闭
|
||||||
if issue.status_id == 3
|
if issue.status_id == 3
|
||||||
s = link_to text, issue_path(issue), :class => "text_line_s", :title => title
|
s = link_to text, issue_path(issue), :class => "text_line_s", :title => title
|
||||||
elsif issue.status_id == 5
|
elsif issue.status_id == 5
|
||||||
|
@ -1765,20 +1766,21 @@ module ApplicationHelper
|
||||||
link_to_function(l(:button_uncheck_all), "checkAll('#{form_name}', false)")
|
link_to_function(l(:button_uncheck_all), "checkAll('#{form_name}', false)")
|
||||||
end
|
end
|
||||||
|
|
||||||
|
# 本次修改,修改为只显示关闭的所占%比
|
||||||
def progress_bar(pcts, options={})
|
def progress_bar(pcts, options={})
|
||||||
pcts = [pcts, pcts] unless pcts.is_a?(Array)
|
pcts = [pcts] unless pcts.is_a?(Array)
|
||||||
pcts = pcts.collect(&:round)
|
pcts = pcts.collect(&:round)
|
||||||
pcts[1] = pcts[1] - pcts[0]
|
# pcts[1] = pcts[1] + pcts[0]
|
||||||
pcts << (100 - pcts[1] - pcts[0])
|
pcts << (100 - pcts[0])
|
||||||
width = options[:width] || '100px;'
|
width = options[:width] || '100px;'
|
||||||
legend = options[:legend] || ''
|
legend = options[:legend] || ''
|
||||||
content_tag('table',
|
content_tag('table',
|
||||||
content_tag('tr',
|
content_tag('tr',
|
||||||
(pcts[0] > 0 ? content_tag('td', '', :style => "width: #{pcts[0]}%;", :class => 'closed') : ''.html_safe) +
|
(pcts[0] > 0 ? content_tag('td', '', :style => "width: #{pcts[0]}%;", :class => 'closed', :title => "已关闭:#{pcts[0]}%") : ''.html_safe) +
|
||||||
(pcts[1] > 0 ? content_tag('td', '', :style => "width: #{pcts[1]}%;", :class => 'done') : ''.html_safe) +
|
# (pcts[1] > 0 ? content_tag('td', '', :style => "width: #{pcts[1]}%;", :class => 'done', :title => "开发中:#{pcts[1]}%") : ''.html_safe) +
|
||||||
(pcts[2] > 0 ? content_tag('td', '', :style => "width: #{pcts[2]}%;", :class => 'todo') : ''.html_safe)
|
(pcts[1] > 0 ? content_tag('td', '', :style => "width: #{pcts[1]}%;", :class => 'todo', :title => "未完成:#{pcts[1]}%") : ''.html_safe), :style => "width: #{width}"
|
||||||
), :class => 'progress', :style => "width: #{width};").html_safe +
|
), :class => 'progress').html_safe
|
||||||
content_tag('p', legend, :class => 'percent').html_safe
|
# + content_tag('p', legend, :class => 'percent').html_safe
|
||||||
end
|
end
|
||||||
|
|
||||||
def checked_image(checked=true)
|
def checked_image(checked=true)
|
||||||
|
@ -2990,6 +2992,7 @@ int main(int argc, char** argv){
|
||||||
unless projects.empty?
|
unless projects.empty?
|
||||||
project_ids = '('+projects.map{|pro|pro.project_id}.join(',')+')'
|
project_ids = '('+projects.map{|pro|pro.project_id}.join(',')+')'
|
||||||
sort_projects = ForgeActivity.find_by_sql("SELECT MAX(updated_at) AS updated_at,user_id, project_id FROM forge_activities WHERE project_id IN #{project_ids} GROUP BY project_id ORDER BY MAX(updated_at) DESC")
|
sort_projects = ForgeActivity.find_by_sql("SELECT MAX(updated_at) AS updated_at,user_id, project_id FROM forge_activities WHERE project_id IN #{project_ids} GROUP BY project_id ORDER BY MAX(updated_at) DESC")
|
||||||
|
#sort_projects = sort_projects.sort_by{|sp| (!sp.project.project_score.nil? && !sp.project.project_score.commit_time.nil?) ? '' : sp.project.project_score.commit_time}
|
||||||
return sort_projects
|
return sort_projects
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
@ -3289,7 +3292,7 @@ def strip_html(text,len=0,endss="...")
|
||||||
ss = ""
|
ss = ""
|
||||||
if !text.nil? && text.length>0
|
if !text.nil? && text.length>0
|
||||||
ss=text.gsub(/<\/?.*?>/, '').strip
|
ss=text.gsub(/<\/?.*?>/, '').strip
|
||||||
ss = ss.gsub(/ /, ' ')
|
ss = ss.gsub(/ */, ' ')
|
||||||
|
|
||||||
if len > 0 && ss.length > len
|
if len > 0 && ss.length > len
|
||||||
ss = ss[0, len] + endss
|
ss = ss[0, len] + endss
|
||||||
|
@ -3303,6 +3306,7 @@ end
|
||||||
|
|
||||||
def message_content content
|
def message_content content
|
||||||
content = (strip_html content).strip
|
content = (strip_html content).strip
|
||||||
|
content = content.gsub(/\s+/, " ")
|
||||||
if content.gsub(" ", "") == ""
|
if content.gsub(" ", "") == ""
|
||||||
content = "[非文本消息]"
|
content = "[非文本消息]"
|
||||||
end
|
end
|
||||||
|
|
|
@ -47,13 +47,11 @@ module RepositoriesHelper
|
||||||
end
|
end
|
||||||
|
|
||||||
# 获取文件目录的最新动态
|
# 获取文件目录的最新动态
|
||||||
def get_trees_last_changes(project_id, rev, ent_name)
|
def get_trees_last_changes(project_id, rev, ent_name, g)
|
||||||
g = Gitlab.client
|
|
||||||
begin
|
begin
|
||||||
tree_changes = g.rep_last_changes(project_id, :rev => rev, :path => ent_name)
|
tree_changes = g.rep_last_changes(project_id, :rev => rev, :path => ent_name)
|
||||||
tree_changes
|
rescue Exception => e
|
||||||
rescue
|
puts e
|
||||||
logger.error("faile to get tress activities!")
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
@ -65,7 +63,7 @@ module RepositoriesHelper
|
||||||
|
|
||||||
# 获取diff内容行号
|
# 获取diff内容行号
|
||||||
def diff_line_num content
|
def diff_line_num content
|
||||||
content.scan(/@@ -(\d+),\d+ \+\d+,\d+ @@/).first.join("").to_i
|
content.scan(/@@ -(\d+),\d+ \+\d+,\d+ @@/).first.nil? ? "" : content.scan(/@@ -(\d+),\d+ \+\d+,\d+ @@/).first.join("").to_i
|
||||||
end
|
end
|
||||||
|
|
||||||
# 处理内容
|
# 处理内容
|
||||||
|
|
|
@ -64,14 +64,12 @@ class Changeset < ActiveRecord::Base
|
||||||
includes(:repository => :project).where(Project.allowed_to_condition(args.shift || User.current, :view_changesets, *args))
|
includes(:repository => :project).where(Project.allowed_to_condition(args.shift || User.current, :view_changesets, *args))
|
||||||
}
|
}
|
||||||
|
|
||||||
after_create :scan_for_issues,:refresh_changests#:be_user_score # user_score
|
# after_create :scan_for_issues,:refresh_changests#:be_user_score # user_score
|
||||||
after_update :be_user_score
|
# after_update :be_user_score
|
||||||
after_destroy :down_user_score
|
after_destroy :down_user_score
|
||||||
before_create :before_create_cs
|
# before_create :before_create_cs
|
||||||
|
after_create :act_as_forge_activity
|
||||||
# fq
|
|
||||||
# after_create :act_as_activity
|
|
||||||
# end
|
|
||||||
|
|
||||||
def revision=(r)
|
def revision=(r)
|
||||||
write_attribute :revision, (r.nil? ? nil : r.to_s)
|
write_attribute :revision, (r.nil? ? nil : r.to_s)
|
||||||
|
@ -117,6 +115,12 @@ class Changeset < ActiveRecord::Base
|
||||||
self.user = repository.find_committer_user(self.committer)
|
self.user = repository.find_committer_user(self.committer)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
# 项目中提交动态,类型Changeset
|
||||||
|
# type:0 为老版本即Trsutie数据 1为gitlab中获取的动态
|
||||||
|
def act_as_forge_activity
|
||||||
|
self.acts << ForgeActivity.new(:user_id => self.user_id, :project_id => self.project_id, :type => true)
|
||||||
|
end
|
||||||
|
|
||||||
def scan_for_issues
|
def scan_for_issues
|
||||||
scan_comment_for_issue_ids
|
scan_comment_for_issue_ids
|
||||||
end
|
end
|
||||||
|
|
|
@ -23,46 +23,52 @@ class ForgeActivity < ActiveRecord::Base
|
||||||
after_create :add_user_activity, :add_org_activity
|
after_create :add_user_activity, :add_org_activity
|
||||||
before_destroy :destroy_user_activity, :destroy_org_activity
|
before_destroy :destroy_user_activity, :destroy_org_activity
|
||||||
|
|
||||||
#在个人动态里面增加当前动态
|
# 在个人动态里面增加当前动态
|
||||||
|
# 版本库提交动态不显示在用户动态中
|
||||||
def add_user_activity
|
def add_user_activity
|
||||||
user_activity = UserActivity.where("act_type = '#{self.forge_act_type.to_s}' and act_id = '#{self.forge_act_id}'").first
|
if self.forge_act_type != "Changeset"
|
||||||
if user_activity
|
user_activity = UserActivity.where("act_type = '#{self.forge_act_type.to_s}' and act_id = '#{self.forge_act_id}'").first
|
||||||
user_activity.save
|
if user_activity
|
||||||
else
|
|
||||||
if self.forge_act_type == 'Message' && !self.forge_act.parent_id.nil?
|
|
||||||
user_activity = UserActivity.where("act_type = 'Message' and act_id = #{self.forge_act.parent.id}").first
|
|
||||||
user_activity.created_at = self.created_at
|
|
||||||
user_activity.save
|
user_activity.save
|
||||||
else
|
else
|
||||||
user_activity = UserActivity.new
|
if self.forge_act_type == 'Message' && !self.forge_act.parent_id.nil?
|
||||||
user_activity.act_id = self.forge_act_id
|
user_activity = UserActivity.where("act_type = 'Message' and act_id = #{self.forge_act.parent.id}").first
|
||||||
user_activity.act_type = self.forge_act_type
|
user_activity.created_at = self.created_at
|
||||||
user_activity.container_type = "Project"
|
user_activity.save
|
||||||
user_activity.container_id = self.project_id
|
else
|
||||||
user_activity.user_id = self.user_id
|
user_activity = UserActivity.new
|
||||||
user_activity.save
|
user_activity.act_id = self.forge_act_id
|
||||||
|
user_activity.act_type = self.forge_act_type
|
||||||
|
user_activity.container_type = "Project"
|
||||||
|
user_activity.container_id = self.project_id
|
||||||
|
user_activity.user_id = self.user_id
|
||||||
|
user_activity.save
|
||||||
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
# 项目提交动态不显示在组织动态中
|
||||||
def add_org_activity
|
def add_org_activity
|
||||||
org_activity = OrgActivity.where("org_act_type = '#{self.forge_act_type.to_s}' and org_act_id = #{self.forge_act_id}").first
|
if self.forge_act_type != "Changeset"
|
||||||
if org_activity
|
org_activity = OrgActivity.where("org_act_type = '#{self.forge_act_type.to_s}' and org_act_id = #{self.forge_act_id}").first
|
||||||
org_activity.updated_at = self.updated_at
|
if org_activity
|
||||||
org_activity.save
|
org_activity.updated_at = self.updated_at
|
||||||
else
|
|
||||||
if self.forge_act_type == 'Message' && !self.forge_act.parent_id.nil?
|
|
||||||
org_activity = OrgActivity.where("org_act_type = 'Message' and org_act_id = #{self.forge_act.parent.id}").first
|
|
||||||
org_activity.created_at = self.created_at
|
|
||||||
org_activity.save
|
org_activity.save
|
||||||
else
|
else
|
||||||
OrgActivity.create(:user_id => self.user_id,
|
if self.forge_act_type == 'Message' && !self.forge_act.parent_id.nil?
|
||||||
:org_act_id => self.forge_act_id,
|
org_activity = OrgActivity.where("org_act_type = 'Message' and org_act_id = #{self.forge_act.parent.id}").first
|
||||||
:org_act_type => self.forge_act_type,
|
org_activity.created_at = self.created_at
|
||||||
:container_id => self.project_id,
|
org_activity.save
|
||||||
:container_type => 'Project',
|
else
|
||||||
:created_at => self.created_at,
|
OrgActivity.create(:user_id => self.user_id,
|
||||||
:updated_at => self.updated_at)
|
:org_act_id => self.forge_act_id,
|
||||||
|
:org_act_type => self.forge_act_type,
|
||||||
|
:container_id => self.project_id,
|
||||||
|
:container_type => 'Project',
|
||||||
|
:created_at => self.created_at,
|
||||||
|
:updated_at => self.updated_at)
|
||||||
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
|
@ -45,7 +45,7 @@ class StudentWorkTest < ActiveRecord::Base
|
||||||
private
|
private
|
||||||
def get_success_count
|
def get_success_count
|
||||||
self.results.inject(0) do |sum, result|
|
self.results.inject(0) do |sum, result|
|
||||||
sum += (result["status"] && result["status"].to_i == 0 ? 1 : 0)
|
sum += (result["status"] && result["status"].class == ::Fixnum && result["status"].to_i == 0 ? 1 : 0)
|
||||||
end || 0
|
end || 0
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
|
@ -187,10 +187,10 @@ class CoursesService
|
||||||
else
|
else
|
||||||
work_unit = get_user_work_unit course.teacher
|
work_unit = get_user_work_unit course.teacher
|
||||||
end
|
end
|
||||||
unless (course.is_public == 1 || current_user.member_of_course?(course) || current_user.admin?)
|
# unless (course.is_public == 1 || current_user.member_of_course?(course) || current_user.admin?)
|
||||||
raise '403'
|
# raise '403'
|
||||||
end
|
# end
|
||||||
{:course => course,:work_unit => work_unit, :img_url => url_to_avatar(course),:current_user_is_member => current_user.member_of_course?(course),:current_user_is_teacher => is_course_teacher(current_user,course),:course_student_num => course ? course.student.count.to_s : 0}
|
{:course => course,:work_unit => work_unit, :img_url => url_to_avatar(course),:current_user_is_member => current_user.nil? ? false : current_user.member_of_course?(course),:current_user_is_teacher => current_user.nil? ? false : is_course_teacher(current_user,course),:course_student_num => course ? course.student.count.to_s : 0}
|
||||||
end
|
end
|
||||||
|
|
||||||
#创建课程
|
#创建课程
|
||||||
|
@ -326,8 +326,8 @@ class CoursesService
|
||||||
define_error [
|
define_error [
|
||||||
0, '加入成功',
|
0, '加入成功',
|
||||||
1, '密码错误',
|
1, '密码错误',
|
||||||
2, '课程已过期 请联系课程管理员重启课程。',
|
2, '班级已过期 请联系班级管理员重启班级。',
|
||||||
3, '您已经加入了课程',
|
3, '您已经加入了班级',
|
||||||
4, '您的邀请码不正确',
|
4, '您的邀请码不正确',
|
||||||
5, '您还未登录',
|
5, '您还未登录',
|
||||||
6, '申请成功,请等待审核完毕',
|
6, '申请成功,请等待审核完毕',
|
||||||
|
@ -354,54 +354,27 @@ class CoursesService
|
||||||
roleName = member.roles[0].name if member
|
roleName = member.roles[0].name if member
|
||||||
if params[:invite_code].present?
|
if params[:invite_code].present?
|
||||||
#如果加入角色为学生 并且当前是学生
|
#如果加入角色为学生 并且当前是学生
|
||||||
if params[:role] == "10" && roleName == "Student"
|
if roleName == "Student"
|
||||||
@state = 3
|
@state = 3
|
||||||
#如果加入的角色为老师,并且当前已经是老师
|
#如果加入的角色为老师,并且当前已经是老师
|
||||||
elsif params[:role] == "9" && roleName == "Teacher"
|
elsif roleName == "Teacher"
|
||||||
@state = 8
|
@state = 8
|
||||||
#如果加入的角色教辅并且当前为教辅
|
#如果加入的角色教辅并且当前为教辅
|
||||||
elsif params[:role] == "7" && roleName == "TeachingAsistant"
|
elsif roleName == "TeachingAsistant"
|
||||||
@state = 9
|
@state = 9
|
||||||
elsif roleName == "Manager"
|
elsif roleName == "Manager"
|
||||||
@state = 10
|
@state = 10
|
||||||
#如果加入角色为教师或者教辅,并且当前是学生,或者是要成为教辅,当前不是教辅,或者要成为教师,当前不是教师。那么要发送请求
|
|
||||||
elsif (params[:role] != "10" && roleName == "Student") || (params[:role] == "7" && roleName != "TeachingAsistant" ) || (params[:role] == "9" && roleName != "Teacher" )
|
|
||||||
#如果已经发送过消息了,那么就要给个提示
|
|
||||||
if CourseMessage.where("course_message_type = 'JoinCourseRequest' and user_id = #{course.tea_id} and course_message_id = #{User.current.id} and course_id = #{course.id} and status = 0 ").count != 0
|
|
||||||
@state = 7
|
|
||||||
else
|
|
||||||
Mailer.run.join_course_request(course, User.current, params[:role])
|
|
||||||
CourseMessage.create(:user_id => course.tea_id, :course_id => course.id, :viewed => false,:content=> params[:role],:course_message_id=>User.current.id,:course_message_type=>'JoinCourseRequest',:status=>0)
|
|
||||||
@state = 6
|
|
||||||
end
|
|
||||||
#如果加入角色是学生,但是是当前课程的教师或者教辅
|
|
||||||
elsif params[:role] == "10" && roleName != "Student"
|
|
||||||
member.role_ids = [params[:role]]
|
|
||||||
member.save
|
|
||||||
StudentsForCourse.create(:student_id => current_user.id, :course_id => course.id)
|
|
||||||
@state = 0
|
|
||||||
end
|
end
|
||||||
else
|
else
|
||||||
@state = 1
|
@state = 1
|
||||||
end
|
end
|
||||||
else
|
else
|
||||||
if params[:invite_code].present?
|
if params[:invite_code].present?
|
||||||
if params[:role] == "10" || params[:role] == nil
|
|
||||||
members = []
|
members = []
|
||||||
members << Member.new(:role_ids => [10], :user_id => current_user.id)
|
members << Member.new(:role_ids => [10], :user_id => current_user.id)
|
||||||
course.members << members
|
course.members << members
|
||||||
StudentsForCourse.create(:student_id => current_user.id, :course_id => course.id)
|
StudentsForCourse.create(:student_id => current_user.id, :course_id => course.id)
|
||||||
@state = 0
|
@state = 0
|
||||||
else
|
|
||||||
#如果已经发送过消息了,那么就要给个提示
|
|
||||||
if CourseMessage.where("course_message_type = 'JoinCourseRequest' and user_id = #{course.tea_id} and content = #{params[:role]} and course_message_id = #{User.current.id} and course_id = #{course.id} and status = 0").count != 0
|
|
||||||
@state = 7
|
|
||||||
else
|
|
||||||
Mailer.run.join_course_request(course, User.current, params[:role])
|
|
||||||
CourseMessage.create(:user_id => course.tea_id, :course_id => course.id, :viewed => false,:content=> params[:role],:course_message_id=>User.current.id,:course_message_type=>'JoinCourseRequest',:status=>0)
|
|
||||||
@state = 6
|
|
||||||
end
|
|
||||||
end
|
|
||||||
else
|
else
|
||||||
@state = 1
|
@state = 1
|
||||||
end
|
end
|
||||||
|
@ -419,7 +392,7 @@ class CoursesService
|
||||||
def homework_list params,current_user
|
def homework_list params,current_user
|
||||||
course = Course.find(params[:id])
|
course = Course.find(params[:id])
|
||||||
if course.is_public != 0 || current_user.member_of_course?(course)
|
if course.is_public != 0 || current_user.member_of_course?(course)
|
||||||
bids = course.homework_commons.page(params[:page] || 1).per(20).order('created_at DESC')
|
bids = course.homework_commons.where("publish_time <= ?",Time.now.strftime("%Y-%m-%d")).page(params[:page] || 1).per(20).order('created_at DESC')
|
||||||
bids = bids.like(params[:name]) if params[:name].present?
|
bids = bids.like(params[:name]) if params[:name].present?
|
||||||
homeworks = []
|
homeworks = []
|
||||||
bids.each do |bid|
|
bids.each do |bid|
|
||||||
|
@ -522,7 +495,7 @@ class CoursesService
|
||||||
def course_attachments params
|
def course_attachments params
|
||||||
result = []
|
result = []
|
||||||
course = Course.find(params[:course_id])
|
course = Course.find(params[:course_id])
|
||||||
attachments = course.attachments.order("created_on ")
|
attachments = course.attachments.where("is_publish = 1").order("created_on desc")
|
||||||
if !params[:name].nil? && params[:name] != ""
|
if !params[:name].nil? && params[:name] != ""
|
||||||
attachments.each do |atta|
|
attachments.each do |atta|
|
||||||
result << atta if atta.filename.include?(params[:name])
|
result << atta if atta.filename.include?(params[:name])
|
||||||
|
|
|
@ -1,7 +1,6 @@
|
||||||
#coding=utf-8
|
#coding=utf-8
|
||||||
|
|
||||||
class ResourcesService
|
class ResourcesService
|
||||||
|
|
||||||
#发送资源到课程
|
#发送资源到课程
|
||||||
def send_resource_to_course user,params
|
def send_resource_to_course user,params
|
||||||
send_id = params[:send_id]
|
send_id = params[:send_id]
|
||||||
|
@ -50,4 +49,56 @@ class ResourcesService
|
||||||
[@ori, @flag, @save_message]
|
[@ori, @flag, @save_message]
|
||||||
end
|
end
|
||||||
|
|
||||||
|
# 我的资源-课件 已发布的
|
||||||
|
def all_course_attachments user
|
||||||
|
|
||||||
|
courses = user.courses.not_deleted
|
||||||
|
|
||||||
|
courses_ids = courses.empty? ? '(-1)' :"(" + courses.map(&:id).join(",") + ")"
|
||||||
|
|
||||||
|
attchments = Attachment.where("(author_id = #{user.id} and is_publish = 1 and container_id in #{courses_ids} and container_type = 'Course') or (container_type = 'Course' and is_publish = 1 and container_id in #{courses_ids})" ).order("created_on desc")
|
||||||
|
|
||||||
|
# attchments.each do |v|
|
||||||
|
# course = Course.where("id=?",v.container_id).first
|
||||||
|
# v[:coursename] = course.nil? ? "未知" : course.name
|
||||||
|
# v[:attafile_size] = (number_to_human_size(v[:filesize])).gsub("ytes", "").to_s
|
||||||
|
# end
|
||||||
|
|
||||||
|
attchments
|
||||||
|
end
|
||||||
|
|
||||||
|
# 我的资源-作业 已发布的
|
||||||
|
def all_homework_commons user
|
||||||
|
|
||||||
|
courses = user.courses.not_deleted
|
||||||
|
|
||||||
|
courses_ids = courses.empty? ? '(-1)' :"(" + courses.map(&:id).join(",") + ")"
|
||||||
|
|
||||||
|
homeworks = HomeworkCommon.where("course_id in #{courses_ids} and publish_time <= ?",Time.now.strftime("%Y-%m-%d")).order("created_at desc")
|
||||||
|
|
||||||
|
# homeworks.each do |v|
|
||||||
|
# course = Course.where("id=?",v.course_id).first
|
||||||
|
# v[:coursename] = course.nil? ? "未知" : course.name
|
||||||
|
# end
|
||||||
|
|
||||||
|
homeworks
|
||||||
|
end
|
||||||
|
|
||||||
|
# 我的资源-测验 已发布的
|
||||||
|
def all_exercises user
|
||||||
|
|
||||||
|
courses = user.courses.not_deleted
|
||||||
|
|
||||||
|
courses_ids = courses.empty? ? '(-1)' :"(" + courses.map(&:id).join(",") + ")"
|
||||||
|
|
||||||
|
exercises = Exercise.where("exercise_status <> 1 and course_id in #{courses_ids}").order("created_at desc")
|
||||||
|
|
||||||
|
# exercises.each do |v|
|
||||||
|
# course = Course.where("id=?",v.course_id).first
|
||||||
|
# v[:coursename] = course.nil? ? "未知" : course.name
|
||||||
|
# end
|
||||||
|
|
||||||
|
exercises
|
||||||
|
end
|
||||||
|
|
||||||
end
|
end
|
|
@ -29,19 +29,13 @@ class SyllabusesService
|
||||||
end
|
end
|
||||||
#获取指定用户的课程大纲
|
#获取指定用户的课程大纲
|
||||||
def user_syllabus(user)
|
def user_syllabus(user)
|
||||||
courses = CoursesService.new.user_courses_list(user)
|
# courses = CoursesService.new.user_courses_list(user)
|
||||||
|
|
||||||
other = Syllabus.new(title: '未命名课程',user_id: user.id)
|
|
||||||
|
|
||||||
courses.each do |c|
|
|
||||||
other.courses << c[:course] unless c[:course].syllabus
|
|
||||||
end
|
|
||||||
|
|
||||||
# user.syllabuses.each do |syllabus|
|
|
||||||
# syllabus.courses = syllabus.courses.not_deleted
|
|
||||||
# end
|
|
||||||
#
|
#
|
||||||
# user.syllabuses.to_a << other
|
# other = Syllabus.new(title: '未命名课程',user_id: user.id)
|
||||||
|
#
|
||||||
|
# courses.each do |c|
|
||||||
|
# other.courses << c[:course] unless c[:course].syllabus
|
||||||
|
# end
|
||||||
|
|
||||||
courses = user.courses.not_deleted
|
courses = user.courses.not_deleted
|
||||||
syllabus_ids = courses.empty? ? '(-1)' : "(" + courses.map{|course| !course.syllabus_id.nil? && course.syllabus_id}.join(",") + ")"
|
syllabus_ids = courses.empty? ? '(-1)' : "(" + courses.map{|course| !course.syllabus_id.nil? && course.syllabus_id}.join(",") + ")"
|
||||||
|
@ -51,12 +45,13 @@ class SyllabusesService
|
||||||
syllabus.courses = courses.where("syllabus_id = #{syllabus.id}").select("courses.*,(SELECT MAX(updated_at) FROM `course_activities` WHERE course_activities.course_id = courses.id) AS updatetime").order("time desc")
|
syllabus.courses = courses.where("syllabus_id = #{syllabus.id}").select("courses.*,(SELECT MAX(updated_at) FROM `course_activities` WHERE course_activities.course_id = courses.id) AS updatetime").order("time desc")
|
||||||
end
|
end
|
||||||
|
|
||||||
syllabuses.to_a << other
|
# syllabuses.to_a << other
|
||||||
|
|
||||||
|
syllabuses.to_a
|
||||||
#管理权限 can_setting
|
#管理权限 can_setting
|
||||||
syllabuses.each do |s|
|
# syllabuses.each do |s|
|
||||||
s = judge_can_setting(s,user)
|
# s = judge_can_setting(s,user)
|
||||||
end
|
# end
|
||||||
|
|
||||||
syllabuses
|
syllabuses
|
||||||
end
|
end
|
||||||
|
@ -72,6 +67,15 @@ class SyllabusesService
|
||||||
course.course_infos << course_info
|
course.course_infos << course_info
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def send_wechat_create_class_notice user,course
|
||||||
|
count = ShieldWechatMessage.where("container_type='User' and container_id=#{user.id} and shield_type='Course' and shield_id=#{course.id}").count
|
||||||
|
if count == 0
|
||||||
|
ws = WechatService.new
|
||||||
|
title = "恭喜您创建班级成功"
|
||||||
|
ws.create_class_notice user.id, "create_course_notice", course.id,title, course.name, user.show_name, 0, "点击查看班级详情"
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
#创建大纲
|
#创建大纲
|
||||||
# params {title: '大纲名称', [{course}, {course}]}
|
# params {title: '大纲名称', [{course}, {course}]}
|
||||||
def create(user, title, courses = [])
|
def create(user, title, courses = [])
|
||||||
|
@ -83,6 +87,7 @@ class SyllabusesService
|
||||||
if ::Course === course
|
if ::Course === course
|
||||||
course.syllabus_id = sy.id
|
course.syllabus_id = sy.id
|
||||||
course.save!
|
course.save!
|
||||||
|
send_wechat_create_class_notice user,course
|
||||||
elsif Hash === course
|
elsif Hash === course
|
||||||
c = ::Course.new(course)
|
c = ::Course.new(course)
|
||||||
c.tea_id = user.id
|
c.tea_id = user.id
|
||||||
|
@ -91,6 +96,7 @@ class SyllabusesService
|
||||||
c.is_public = 0
|
c.is_public = 0
|
||||||
c.save!
|
c.save!
|
||||||
after_create_course(c, user)
|
after_create_course(c, user)
|
||||||
|
send_wechat_create_class_notice user,c
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
@ -134,6 +140,7 @@ class SyllabusesService
|
||||||
course.is_public = 0
|
course.is_public = 0
|
||||||
course.save!
|
course.save!
|
||||||
after_create_course(course, user)
|
after_create_course(course, user)
|
||||||
|
send_wechat_create_class_notice user,course
|
||||||
end
|
end
|
||||||
status = 0
|
status = 0
|
||||||
end
|
end
|
||||||
|
|
|
@ -115,7 +115,7 @@ class WechatService
|
||||||
data = {
|
data = {
|
||||||
touser:openid,
|
touser:openid,
|
||||||
template_id:template_id,
|
template_id:template_id,
|
||||||
url:"#{Setting.protocol}://#{Setting.host_name}/assets/wechat/app.html#/#{type}/#{id}",
|
url:"#{Setting.protocol}://#{Setting.host_name}/wechat/user_activities#/#{type}/#{id}",#/assets/wechat/app.html#/#{type}/#{id}
|
||||||
topcolor:"#FF0000",
|
topcolor:"#FF0000",
|
||||||
data:{
|
data:{
|
||||||
first: {
|
first: {
|
||||||
|
@ -139,11 +139,43 @@ class WechatService
|
||||||
data
|
data
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def three_keys_template(openid, template_id, type, id, first, key1, key2, key3, remark="")
|
||||||
|
data = {
|
||||||
|
touser:openid,
|
||||||
|
template_id:template_id,
|
||||||
|
url:"#{Setting.protocol}://#{Setting.host_name}/wechat/user_activities#/#{type}/#{id}",#/assets/wechat/app.html#/#{type}/#{id}
|
||||||
|
topcolor:"#FF0000",
|
||||||
|
data:{
|
||||||
|
first: {
|
||||||
|
value:first,
|
||||||
|
color:"#707070"
|
||||||
|
},
|
||||||
|
keyword1:{
|
||||||
|
value:key1,
|
||||||
|
color:"#707070"
|
||||||
|
},
|
||||||
|
keyword2:{
|
||||||
|
value:key2,
|
||||||
|
color:"#707070"
|
||||||
|
},
|
||||||
|
keyword3:{
|
||||||
|
value:key3,
|
||||||
|
color:"#707070"
|
||||||
|
},
|
||||||
|
remark:{
|
||||||
|
value:remark,
|
||||||
|
color:"#707070"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
data
|
||||||
|
end
|
||||||
|
|
||||||
def four_keys_template(openid, template_id, type, id, first, key1, key2, key3, key4, remark="")
|
def four_keys_template(openid, template_id, type, id, first, key1, key2, key3, key4, remark="")
|
||||||
data = {
|
data = {
|
||||||
touser:openid,
|
touser:openid,
|
||||||
template_id:template_id,
|
template_id:template_id,
|
||||||
url:"#{Setting.protocol}://#{Setting.host_name}/assets/wechat/app.html#/#{type}/#{id}",
|
url:"#{Setting.protocol}://#{Setting.host_name}/wechat/user_activities#/#{type}/#{id}", #/assets/wechat/app.html#/#{type}/#{id}
|
||||||
topcolor:"#FF0000",
|
topcolor:"#FF0000",
|
||||||
data:{
|
data:{
|
||||||
first: {
|
first: {
|
||||||
|
@ -250,4 +282,45 @@ class WechatService
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def create_class_notice(user_id, type, id, first, key1, key2, key3, remark="")
|
||||||
|
uw = UserWechat.where(user_id: user_id).first
|
||||||
|
unless uw.nil?
|
||||||
|
data = {
|
||||||
|
touser:uw.openid,
|
||||||
|
template_id:Wechat.config.create_class_notice,
|
||||||
|
url:"#{Setting.protocol}://#{Setting.host_name}/wechat/user_activities#/class?id="+id.to_s,
|
||||||
|
topcolor:"#FF0000",
|
||||||
|
data:{
|
||||||
|
first: {
|
||||||
|
value:first,
|
||||||
|
color:"#707070"
|
||||||
|
},
|
||||||
|
keyword1:{
|
||||||
|
value:key1,
|
||||||
|
color:"#707070"
|
||||||
|
},
|
||||||
|
keyword2:{
|
||||||
|
value:key2,
|
||||||
|
color:"#707070"
|
||||||
|
},
|
||||||
|
keyword3:{
|
||||||
|
value:key3,
|
||||||
|
color:"#707070"
|
||||||
|
},
|
||||||
|
remark:{
|
||||||
|
value:remark,
|
||||||
|
color:"#707070"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
#data = three_keys_template uw.openid,Wechat.config.create_class_notice, type, id, first, key1, key2, key3, remark
|
||||||
|
begin
|
||||||
|
req = Wechat.api.template_message_send Wechat::Message.to(uw.openid).template(data)
|
||||||
|
rescue Exception => e
|
||||||
|
Rails.logger.error "[wechat_create_class_notice] ===> #{e}"
|
||||||
|
end
|
||||||
|
Rails.logger.info "send over. #{req}"
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
end
|
end
|
|
@ -1,4 +1,4 @@
|
||||||
<%= stylesheet_link_tag 'new_user'%>
|
<%= stylesheet_link_tag 'css/public'%>
|
||||||
<div class="homepageContent BgBox">
|
<div class="homepageContent BgBox">
|
||||||
<h2 class="BgBox_h2">关于我们</h2>
|
<h2 class="BgBox_h2">关于我们</h2>
|
||||||
<div class="AgreementBox">
|
<div class="AgreementBox">
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
<%= stylesheet_link_tag 'new_user'%>
|
<%= stylesheet_link_tag 'css/public'%>
|
||||||
<!--<div class="homepageContentContainer mb20" >-->
|
<!--<div class="homepageContentContainer mb20" >-->
|
||||||
<div class="homepageContent BgBox mt10">
|
<div class="homepageContent BgBox mt10">
|
||||||
<h2 class="BgBox_h2">Trustie服务协议</h2>
|
<h2 class="BgBox_h2">Trustie服务协议</h2>
|
||||||
|
@ -28,24 +28,5 @@
|
||||||
|
|
||||||
|
|
||||||
</div><!---BgBox end--->
|
</div><!---BgBox end--->
|
||||||
<!--</div><!–-homepageContentContainer end-–>-->
|
<!--</div>-->
|
||||||
<script>
|
|
||||||
$(".resourcesList").mousedown(function(e) {
|
|
||||||
if (3 == e.which) {
|
|
||||||
document.oncontextmenu = function() {return false;}
|
|
||||||
$("#contextMenu").hide();
|
|
||||||
$("#contextMenu").attr("style","display: block; position: fixed; top:"
|
|
||||||
+ e.pageY
|
|
||||||
+ "px; left:"
|
|
||||||
+ e.pageX
|
|
||||||
+ "px; width: 80px;");
|
|
||||||
$("#contextMenu").show();
|
|
||||||
}
|
|
||||||
|
|
||||||
});
|
|
||||||
$(".resourcesList").click(function(e) {
|
|
||||||
$("#contextMenu").hide();
|
|
||||||
document.oncontextmenu = function() {return true;}
|
|
||||||
});
|
|
||||||
</script>
|
|
||||||
|
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
<%= stylesheet_link_tag 'new_user'%>
|
<%= stylesheet_link_tag 'css/common'%>
|
||||||
<%= stylesheet_link_tag 'leftside'%>
|
<%= stylesheet_link_tag 'css/public'%>
|
||||||
|
|
||||||
<script type="text/javascript">
|
<script type="text/javascript">
|
||||||
$(document).ready(function(){
|
$(document).ready(function(){
|
||||||
|
@ -62,7 +62,7 @@
|
||||||
});
|
});
|
||||||
|
|
||||||
$mail.blur(function (event) {
|
$mail.blur(function (event) {
|
||||||
if (/^[a-z0-9]+([._\\-]*[a-z0-9])*@([a-z0-9]+[-a-z0-9]*[a-z0-9]+.){1,63}[a-z0-9]+$/.test(this.value) == false){
|
if (/^[a-zA-Z0-9]+([._\\]*[a-z0-9])*@([a-z0-9]+[-a-z0-9]*[a-z0-9]+.){1,63}[a-z0-9]+$/.test(this.value) == false){
|
||||||
$('#mail_req').html( '<span style="color: #c00202">邮件格式不对</span>').show();
|
$('#mail_req').html( '<span style="color: #c00202">邮件格式不对</span>').show();
|
||||||
$mail_correct = false;
|
$mail_correct = false;
|
||||||
return ;
|
return ;
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
<%= stylesheet_link_tag 'new_user'%>
|
<%= stylesheet_link_tag 'css/public'%>
|
||||||
|
|
||||||
<div class="homepageContentContainer ">
|
<div class="homepageContentContainer ">
|
||||||
<div class="homepageContent BgBox">
|
<div class="homepageContent BgBox">
|
||||||
|
|
|
@ -9,7 +9,7 @@
|
||||||
</span>
|
</span>
|
||||||
<span class="add_attachment">
|
<span class="add_attachment">
|
||||||
<% id ="file#{container.id}"%>
|
<% id ="file#{container.id}"%>
|
||||||
<a href="javascript:void(0);" class="AnnexBtn fl" style= "<%= ie8? ? 'display:none' : ''%>" onclick="$('#'+'<%= id %>').click();">上传附件</a>
|
<a href="javascript:void(0);" class="AnnexBtn fl mr10" style= "<%= ie8? ? 'display:none' : ''%>" onclick="$('#'+'<%= id %>').click();">上传附件</a>
|
||||||
<%= file_field_tag 'attachments[dummy][file]',
|
<%= file_field_tag 'attachments[dummy][file]',
|
||||||
:id => "file#{container.id}",
|
:id => "file#{container.id}",
|
||||||
:class => 'file_selector',
|
:class => 'file_selector',
|
||||||
|
|
|
@ -16,7 +16,7 @@
|
||||||
<span class="attachment">
|
<span class="attachment">
|
||||||
<%= link_to truncate(history.filename,length: 35, omission: '...'),
|
<%= link_to truncate(history.filename,length: 35, omission: '...'),
|
||||||
download_history_attachment_path(history.id, history.filename),
|
download_history_attachment_path(history.id, history.filename),
|
||||||
:title => history.filename+"\n"+history.description.to_s, :style => "overflow: hidden; white-space: nowrap;text-overflow: ellipsis; max-width:300px;",:class => "linkBlue f_14 f_b link_file_a2 fl" %>
|
:title => history.filename+"\n"+history.description.to_s, :style => "overflow: hidden; white-space: nowrap;text-overflow: ellipsis; max-width:300px;",:class => "linkBlue f_14 f_b upload_filename fl" %>
|
||||||
<span class="fr">版本号:<%= history.version %></span>
|
<span class="fr">版本号:<%= history.version %></span>
|
||||||
<div class="cl"></div>
|
<div class="cl"></div>
|
||||||
</span>
|
</span>
|
||||||
|
|
|
@ -46,7 +46,7 @@
|
||||||
</li>
|
</li>
|
||||||
<li class=" ml90" >
|
<li class=" ml90" >
|
||||||
<a class="blue_btn fl c_white" onclick="submit_new_bid('<%= bid_id%>');" href="javascript:void(0)"><%= l(:button_create)%></a>
|
<a class="blue_btn fl c_white" onclick="submit_new_bid('<%= bid_id%>');" href="javascript:void(0)"><%= l(:button_create)%></a>
|
||||||
<%= link_to l(:button_cancel), homework_course_path(@course), :class => "blue_btn grey_btn fl c_white"%>
|
<%= link_to l(:button_cancel), homework_course_path(@course), :class => "grey_btn fl c_white ml10"%>
|
||||||
<div class="cl"></div>
|
<div class="cl"></div>
|
||||||
</li>
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
|
|
|
@ -13,7 +13,7 @@
|
||||||
<%= render :partial => 'form_project',
|
<%= render :partial => 'form_project',
|
||||||
:locals => {:f => f, :replying => !topic.parent.nil?, :topic => topic} %>
|
:locals => {:f => f, :replying => !topic.parent.nil?, :topic => topic} %>
|
||||||
<div class="ml55 fl" nhname="toolbar_container"></div>
|
<div class="ml55 fl" nhname="toolbar_container"></div>
|
||||||
<a href="javascript:void(0)" nhname='cancelbtn' class="blue_btn grey_btn fr c_white ml10"><%= l(:button_cancel) %></a>
|
<a href="javascript:void(0)" nhname='cancelbtn' class="grey_btn fr c_white ml10"><%= l(:button_cancel) %></a>
|
||||||
<a href="javascript:void(0)" nhname='submitbtn' class="blue_btn fr c_white" ><%= l(:button_submit)%></a>
|
<a href="javascript:void(0)" nhname='submitbtn' class="blue_btn fr c_white" ><%= l(:button_submit)%></a>
|
||||||
<%#= link_to l(:button_cancel), board_message_url(topic.board, topic.root, :r => (topic.parent_id && topic.id)), :class => "blue_btn grey_btn fl c_white" %>
|
<%#= link_to l(:button_cancel), board_message_url(topic.board, topic.root, :r => (topic.parent_id && topic.id)), :class => "blue_btn grey_btn fl c_white" %>
|
||||||
</ul>
|
</ul>
|
||||||
|
@ -33,7 +33,7 @@
|
||||||
<%= render :partial => 'form_course',
|
<%= render :partial => 'form_course',
|
||||||
:locals => {:f => f, :replying => !topic.parent.nil?, :topic => topic} %>
|
:locals => {:f => f, :replying => !topic.parent.nil?, :topic => topic} %>
|
||||||
<div class="ml55 fl" nhname="toolbar_container"></div>
|
<div class="ml55 fl" nhname="toolbar_container"></div>
|
||||||
<a href="javascript:void(0)" nhname='cancelbtn' class="blue_btn grey_btn fr c_white ml10"><%= l(:button_cancel) %></a>
|
<a href="javascript:void(0)" nhname='cancelbtn' class="grey_btn fr c_white ml10"><%= l(:button_cancel) %></a>
|
||||||
<a href="javascript:void(0)" nhname='submitbtn' class="blue_btn fr c_white"><%= l(:button_submit)%></a>
|
<a href="javascript:void(0)" nhname='submitbtn' class="blue_btn fr c_white"><%= l(:button_submit)%></a>
|
||||||
|
|
||||||
<% end %>
|
<% end %>
|
||||||
|
|
|
@ -35,8 +35,8 @@
|
||||||
<div nhname='toolbar_container_' ></div>
|
<div nhname='toolbar_container_' ></div>
|
||||||
<textarea placeholder="有问题或有建议,请直接给我留言吧!" nhname='new_message_textarea_' name="new_form[course_message]"></textarea>
|
<textarea placeholder="有问题或有建议,请直接给我留言吧!" nhname='new_message_textarea_' name="new_form[course_message]"></textarea>
|
||||||
<p nhname='contentmsg_'></p>
|
<p nhname='contentmsg_'></p>
|
||||||
<a id="new_message_cancel_btn_" href="javascript:void(0)" class="grey_btn fr mt10">取消</a>
|
<a id="new_message_cancel_btn_" href="javascript:void(0)" class="grey_btn fr mt10 ml10 mb10">取消</a>
|
||||||
<a href="javascript:void(0);" class="blue_btn fr ml10 mt10" id="new_message_submit_btn_" >留言</a>
|
<a href="javascript:void(0);" class="blue_btn fr mt10" id="new_message_submit_btn_" >留言</a>
|
||||||
<% end %>
|
<% end %>
|
||||||
</div>
|
</div>
|
||||||
<% end %>
|
<% end %>
|
||||||
|
|
|
@ -10,12 +10,12 @@
|
||||||
<% elsif @state == 1 %>
|
<% elsif @state == 1 %>
|
||||||
alert("密码错误");
|
alert("密码错误");
|
||||||
<% elsif @state == 2 %>
|
<% elsif @state == 2 %>
|
||||||
alert("课程已过期\n请联系课程管理员重启课程。(在配置课程处)");
|
alert("班级已过期\n请联系班级管理员重启班级。(在配置班级处)");
|
||||||
<% elsif @state == 3 %>
|
<% elsif @state == 3 %>
|
||||||
alert("您已经加入了课程");
|
alert("您已经加入了班级");
|
||||||
window.location.href= "http://"+"<%= Setting.host_name%>"+"/courses/" + "<%= course.id%>"
|
window.location.href= "http://"+"<%= Setting.host_name%>"+"/courses/" + "<%= course.id%>"
|
||||||
<% elsif @state == 4 %>
|
<% elsif @state == 4 %>
|
||||||
alert("您加入的课程不存在");
|
alert("您加入的班级不存在");
|
||||||
<% elsif @state == 5 %>
|
<% elsif @state == 5 %>
|
||||||
alert("您还未登录");
|
alert("您还未登录");
|
||||||
<% elsif @state == 6 %>
|
<% elsif @state == 6 %>
|
||||||
|
|
|
@ -75,7 +75,7 @@
|
||||||
</li>
|
</li>
|
||||||
<li class=" ml90" >
|
<li class=" ml90" >
|
||||||
<a href="javascript:void(0)" class="blue_btn fl c_white" onclick="submit_new_course();" >提交</a>
|
<a href="javascript:void(0)" class="blue_btn fl c_white" onclick="submit_new_course();" >提交</a>
|
||||||
<%= link_to "取消",user_activities_path(User.current.id),:class => "blue_btn grey_btn fl c_white"%>
|
<%= link_to "取消",user_activities_path(User.current.id),:class => "grey_btn fl c_white ml10"%>
|
||||||
<div class="cl"></div>
|
<div class="cl"></div>
|
||||||
</li>
|
</li>
|
||||||
<% end%>
|
<% end%>
|
||||||
|
|
|
@ -92,7 +92,7 @@
|
||||||
</li>
|
</li>
|
||||||
<li class=" ml90" >
|
<li class=" ml90" >
|
||||||
<a href="javascript:void(0)" class="blue_btn fl c_white" onclick="submit_edit_course(<%= @course.id%>);" >提交</a>
|
<a href="javascript:void(0)" class="blue_btn fl c_white" onclick="submit_edit_course(<%= @course.id%>);" >提交</a>
|
||||||
<%= link_to l(:button_cancel), course_path(@course), :class => "blue_btn grey_btn fl c_white" %>
|
<%= link_to l(:button_cancel), course_path(@course), :class => "grey_btn fl c_white ml10" %>
|
||||||
<div class="cl"></div>
|
<div class="cl"></div>
|
||||||
</li>
|
</li>
|
||||||
<% end %>
|
<% end %>
|
||||||
|
|
|
@ -5,7 +5,7 @@
|
||||||
|
|
||||||
<!--</div>-->
|
<!--</div>-->
|
||||||
<!--</div>-->
|
<!--</div>-->
|
||||||
<%= stylesheet_link_tag 'org' %>
|
<%= stylesheet_link_tag 'css/org' %>
|
||||||
|
|
||||||
<div>
|
<div>
|
||||||
<div class="relateOrg fl">
|
<div class="relateOrg fl">
|
||||||
|
|
|
@ -12,7 +12,7 @@
|
||||||
<div class="NewsBannerName">班级动态</div>
|
<div class="NewsBannerName">班级动态</div>
|
||||||
<ul class="resourcesSelect">
|
<ul class="resourcesSelect">
|
||||||
<li class="resourcesSelected"><a href="javascript:void(0);" class="resourcesIcon"></a>
|
<li class="resourcesSelected"><a href="javascript:void(0);" class="resourcesIcon"></a>
|
||||||
<ul class="homepagePostType">
|
<ul class="homepagePostType" style="width:90px; left:-80px;">
|
||||||
<li>
|
<li>
|
||||||
<ul class="homepagePostTypeHomework fl">
|
<ul class="homepagePostTypeHomework fl">
|
||||||
<li><%= link_to "全部动态", {:controller => "courses", :action => "show", :type => nil}, :class =>"homepagePostTypeAll postTypeGrey"%></li>
|
<li><%= link_to "全部动态", {:controller => "courses", :action => "show", :type => nil}, :class =>"homepagePostTypeAll postTypeGrey"%></li>
|
||||||
|
|
|
@ -34,7 +34,7 @@
|
||||||
<div id="poll_answers_<%=exercise_question.id%>">
|
<div id="poll_answers_<%=exercise_question.id%>">
|
||||||
<% exercise_question.exercise_choices.reorder("choice_position").each_with_index do |exercise_choice,index| %>
|
<% exercise_question.exercise_choices.reorder("choice_position").each_with_index do |exercise_choice,index| %>
|
||||||
<li class="ur_item">
|
<li class="ur_item">
|
||||||
<label name='select_items' class='w56'>选项<%=convert_to_char (index+1).to_s %><span class="ur_index"></span>: </label>
|
<label name='select_items' class='w60'>选项<%=convert_to_char (index+1).to_s %><span class="ur_index"></span>: </label>
|
||||||
<input maxlength="200" type='text' name='question_answer[<%=exercise_choice.id %>]' placeholder='输入选项内容' value="<%=exercise_choice.choice_text %>">
|
<input maxlength="200" type='text' name='question_answer[<%=exercise_choice.id %>]' placeholder='输入选项内容' value="<%=exercise_choice.choice_text %>">
|
||||||
<a class="icon_add" title="向下插入选项" onclick="add_single_answer($(this));"></a>
|
<a class="icon_add" title="向下插入选项" onclick="add_single_answer($(this));"></a>
|
||||||
<a class="icon_remove" title="删除" onclick="remove_single_answer($(this))"></a>
|
<a class="icon_remove" title="删除" onclick="remove_single_answer($(this))"></a>
|
||||||
|
|
|
@ -18,28 +18,28 @@
|
||||||
<div class="cl"></div>
|
<div class="cl"></div>
|
||||||
<div>
|
<div>
|
||||||
<li class="ur_item">
|
<li class="ur_item">
|
||||||
<label name='select_items' class='w56'>选项A<span class="ur_index"></span>: </label>
|
<label name='select_items' class='w60'>选项A<span class="ur_index"></span>: </label>
|
||||||
<input maxlength="200" type='text' name='question_answer[0]' placeholder='输入选项内容'>
|
<input maxlength="200" type='text' name='question_answer[0]' placeholder='输入选项内容'>
|
||||||
<a class="icon_add" title="向下插入选项" onclick="add_single_answer($(this));"></a>
|
<a class="icon_add" title="向下插入选项" onclick="add_single_answer($(this));"></a>
|
||||||
<a class="icon_remove" title="删除" onclick="remove_single_answer($(this))"></a>
|
<a class="icon_remove" title="删除" onclick="remove_single_answer($(this))"></a>
|
||||||
</li>
|
</li>
|
||||||
<div class="cl"></div>
|
<div class="cl"></div>
|
||||||
<li class="ur_item">
|
<li class="ur_item">
|
||||||
<label name='select_items' class='w56'>选项B<span class="ur_index"></span>: </label>
|
<label name='select_items' class='w60'>选项B<span class="ur_index"></span>: </label>
|
||||||
<input maxlength="200" type='text' name='question_answer[1]' placeholder='输入选项内容'>
|
<input maxlength="200" type='text' name='question_answer[1]' placeholder='输入选项内容'>
|
||||||
<a class="icon_add" title="向下插入选项" onclick="add_single_answer($(this));"></a>
|
<a class="icon_add" title="向下插入选项" onclick="add_single_answer($(this));"></a>
|
||||||
<a class="icon_remove" title="删除" onclick="remove_single_answer($(this))"></a>
|
<a class="icon_remove" title="删除" onclick="remove_single_answer($(this))"></a>
|
||||||
</li>
|
</li>
|
||||||
<div class="cl"></div>
|
<div class="cl"></div>
|
||||||
<li class="ur_item">
|
<li class="ur_item">
|
||||||
<label name='select_items' class='w56'>选项C<span class="ur_index"></span>: </label>
|
<label name='select_items' class='w60'>选项C<span class="ur_index"></span>: </label>
|
||||||
<input maxlength="200" type='text' name='question_answer[2]' placeholder='输入选项内容'/>
|
<input maxlength="200" type='text' name='question_answer[2]' placeholder='输入选项内容'/>
|
||||||
<a class="icon_add" title="向下插入选项" onclick="add_single_answer($(this));"></a>
|
<a class="icon_add" title="向下插入选项" onclick="add_single_answer($(this));"></a>
|
||||||
<a class="icon_remove" title="删除" onclick="remove_single_answer($(this))"></a>
|
<a class="icon_remove" title="删除" onclick="remove_single_answer($(this))"></a>
|
||||||
</li>
|
</li>
|
||||||
<div class="cl"></div>
|
<div class="cl"></div>
|
||||||
<li class="ur_item">
|
<li class="ur_item">
|
||||||
<label name='select_items' class='w56'>选项D<span class="ur_index"></span>: </label>
|
<label name='select_items' class='w60'>选项D<span class="ur_index"></span>: </label>
|
||||||
<input maxlength="200" type='text' name='question_answer[3]' placeholder='输入选项内容'/>
|
<input maxlength="200" type='text' name='question_answer[3]' placeholder='输入选项内容'/>
|
||||||
<a class="icon_add" title="向下插入选项" onclick="add_single_answer($(this));"></a>
|
<a class="icon_add" title="向下插入选项" onclick="add_single_answer($(this));"></a>
|
||||||
<a class="icon_remove" title="删除" onclick="remove_single_answer($(this))"></a>
|
<a class="icon_remove" title="删除" onclick="remove_single_answer($(this))"></a>
|
||||||
|
|
|
@ -55,28 +55,28 @@
|
||||||
'<input value="<%=score %>" id="question_score" type="text" name="question_score" style="width:40px; text-align:center; padding-left:0px;"/>分'+
|
'<input value="<%=score %>" id="question_score" type="text" name="question_score" style="width:40px; text-align:center; padding-left:0px;"/>分'+
|
||||||
'</li><div>'+
|
'</li><div>'+
|
||||||
'<li class="ur_item">'+
|
'<li class="ur_item">'+
|
||||||
'<label name="select_items" class="w56">选项A<span class="ur_index"></span>: </label>'+
|
'<label name="select_items" class="w60">选项A<span class="ur_index"></span>: </label>'+
|
||||||
'<input maxlength="200" type="text" name="question_answer[0]" placeholder="输入选项内容"/>'+
|
'<input maxlength="200" type="text" name="question_answer[0]" placeholder="输入选项内容"/>'+
|
||||||
'<a class="icon_add" title="向下插入选项" onclick="add_single_answer($(this));"></a>'+
|
'<a class="icon_add" title="向下插入选项" onclick="add_single_answer($(this));"></a>'+
|
||||||
'<a class="icon_remove" title="删除" onclick="remove_single_answer($(this))"></a>'+
|
'<a class="icon_remove" title="删除" onclick="remove_single_answer($(this))"></a>'+
|
||||||
'</li>'+
|
'</li>'+
|
||||||
'<div class="cl"></div>'+
|
'<div class="cl"></div>'+
|
||||||
'<li class="ur_item">'+
|
'<li class="ur_item">'+
|
||||||
'<label name="select_items" class="w56">选项B<span class="ur_index"></span>: </label>'+
|
'<label name="select_items" class="w60">选项B<span class="ur_index"></span>: </label>'+
|
||||||
'<input maxlength="200" type="text" name="question_answer[1]" placeholder="输入选项内容"/>'+
|
'<input maxlength="200" type="text" name="question_answer[1]" placeholder="输入选项内容"/>'+
|
||||||
'<a class="icon_add" title="向下插入选项" onclick="add_single_answer($(this));"></a>'+
|
'<a class="icon_add" title="向下插入选项" onclick="add_single_answer($(this));"></a>'+
|
||||||
'<a class="icon_remove" title="删除" onclick="remove_single_answer($(this))"></a>'+
|
'<a class="icon_remove" title="删除" onclick="remove_single_answer($(this))"></a>'+
|
||||||
'</li>'+
|
'</li>'+
|
||||||
'<div class="cl"></div>'+
|
'<div class="cl"></div>'+
|
||||||
'<li class="ur_item">'+
|
'<li class="ur_item">'+
|
||||||
'<label name="select_items" class="w56">选项C<span class="ur_index"></span>: </label>'+
|
'<label name="select_items" class="w60">选项C<span class="ur_index"></span>: </label>'+
|
||||||
'<input maxlength="200" type="text" name="question_answer[2]" placeholder="输入选项内容"/>'+
|
'<input maxlength="200" type="text" name="question_answer[2]" placeholder="输入选项内容"/>'+
|
||||||
'<a class="icon_add" title="向下插入选项" onclick="add_single_answer($(this));"></a>'+
|
'<a class="icon_add" title="向下插入选项" onclick="add_single_answer($(this));"></a>'+
|
||||||
'<a class="icon_remove" title="删除" onclick="remove_single_answer($(this))"></a>'+
|
'<a class="icon_remove" title="删除" onclick="remove_single_answer($(this))"></a>'+
|
||||||
'</li>'+
|
'</li>'+
|
||||||
'<div class="cl"></div>'+
|
'<div class="cl"></div>'+
|
||||||
'<li class="ur_item">'+
|
'<li class="ur_item">'+
|
||||||
'<label name="select_items" class="w56">选项D<span class="ur_index"></span>: </label>'+
|
'<label name="select_items" class="w60">选项D<span class="ur_index"></span>: </label>'+
|
||||||
'<input maxlength="200" type="text" name="question_answer[3]" placeholder="输入选项内容"/>'+
|
'<input maxlength="200" type="text" name="question_answer[3]" placeholder="输入选项内容"/>'+
|
||||||
'<a class="icon_add" title="向下插入选项" onclick="add_single_answer($(this));"></a>'+
|
'<a class="icon_add" title="向下插入选项" onclick="add_single_answer($(this));"></a>'+
|
||||||
'<a class="icon_remove" title="删除" onclick="remove_single_answer($(this))"></a>'+
|
'<a class="icon_remove" title="删除" onclick="remove_single_answer($(this))"></a>'+
|
||||||
|
|
|
@ -93,6 +93,6 @@
|
||||||
</div>
|
</div>
|
||||||
<div class="cl"></div>
|
<div class="cl"></div>
|
||||||
</div>
|
</div>
|
||||||
<div class="cl"></div>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
<div class="cl"></div>
|
|
@ -14,7 +14,7 @@
|
||||||
id: "relation_file_form" do %>
|
id: "relation_file_form" do %>
|
||||||
<%= hidden_field_tag(:file_id, file.id) %>
|
<%= hidden_field_tag(:file_id, file.id) %>
|
||||||
<%= content_tag('div', courses_check_box_tags('courses[course][]', User.current.courses,course,file), :id => 'courses')%>
|
<%= content_tag('div', courses_check_box_tags('courses[course][]', User.current.courses,course,file), :id => 'courses')%>
|
||||||
<a id="submit_quote" href="javascript:void(0)" class="blue_btn fl c_white" onclick="submit_quote();">引 用</a><a href="javascript:void(0)" class="blue_btn grey_btn fl c_white" onclick="closeModal();">取 消</a>
|
<a id="submit_quote" href="javascript:void(0)" class="blue_btn fl c_white" onclick="submit_quote();">引 用</a><a href="javascript:void(0)" class="grey_btn fl c_white ml10" onclick="closeModal();">取 消</a>
|
||||||
<% end -%>
|
<% end -%>
|
||||||
</div>
|
</div>
|
||||||
<% end %>
|
<% end %>
|
||||||
|
|
|
@ -14,7 +14,7 @@
|
||||||
id: "relation_file_form" do %>
|
id: "relation_file_form" do %>
|
||||||
<%= hidden_field_tag(:file_id, file.id) %>
|
<%= hidden_field_tag(:file_id, file.id) %>
|
||||||
<%= content_tag('div', org_subfields_check_box_tags('org_subfields[org_subfield][]',org_subfield.organization.org_subfields.where("field_type='Resource'"),file), :id => 'org_subfields')%>
|
<%= content_tag('div', org_subfields_check_box_tags('org_subfields[org_subfield][]',org_subfield.organization.org_subfields.where("field_type='Resource'"),file), :id => 'org_subfields')%>
|
||||||
<a id="submit_quote" href="javascript:void(0)" class="blue_btn fl c_white" onclick="submit_quote();">引 用</a><a href="javascript:void(0)" class="blue_btn grey_btn fl c_white" onclick="closeModal();">取 消</a>
|
<a id="submit_quote" href="javascript:void(0)" class="blue_btn fl c_white" onclick="submit_quote();">引 用</a><a href="javascript:void(0)" class="grey_btn fl c_white ml10" onclick="closeModal();">取 消</a>
|
||||||
<% end -%>
|
<% end -%>
|
||||||
</div>
|
</div>
|
||||||
<% end %>
|
<% end %>
|
||||||
|
|
|
@ -14,7 +14,7 @@
|
||||||
id: "relation_file_form" do %>
|
id: "relation_file_form" do %>
|
||||||
<%= hidden_field_tag(:file_id, file.id) %>
|
<%= hidden_field_tag(:file_id, file.id) %>
|
||||||
<%= content_tag('div', projects_check_box_tags('projects[project][]', User.current.projects,project,file), :id => 'projects', :class => "hidden")%>
|
<%= content_tag('div', projects_check_box_tags('projects[project][]', User.current.projects,project,file), :id => 'projects', :class => "hidden")%>
|
||||||
<a id="submit_quote" href="javascript:void(0)" class="blue_btn fl c_white" onclick="submit_quote();">引 用</a><a href="javascript:void(0)" class="blue_btn grey_btn fl c_white" onclick="closeModal();">取 消</a>
|
<a id="submit_quote" href="javascript:void(0)" class="blue_btn fl c_white" onclick="submit_quote();">引 用</a><a href="javascript:void(0)" class="grey_btn fl c_white ml10" onclick="closeModal();">取 消</a>
|
||||||
<% end -%>
|
<% end -%>
|
||||||
</div>
|
</div>
|
||||||
<% end %>
|
<% end %>
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
<%= stylesheet_link_tag 'courses'%>
|
<%= stylesheet_link_tag 'css/courses'%>
|
||||||
<script>
|
<script>
|
||||||
function searchone4reload(fileid){
|
function searchone4reload(fileid){
|
||||||
var url = "<%= searchone4reload_org_subfield_files_path(@org_subfield)%>";
|
var url = "<%= searchone4reload_org_subfield_files_path(@org_subfield)%>";
|
||||||
|
|
|
@ -8,7 +8,7 @@
|
||||||
<!--<input type="hidden" name="org_subfield_attachment_type" value="<%#= org_subfield_attachment_type%>">-->
|
<!--<input type="hidden" name="org_subfield_attachment_type" value="<%#= org_subfield_attachment_type%>">-->
|
||||||
<%= render :partial => 'files/org_upload_attachment_list', :locals => {:container => org}%>
|
<%= render :partial => 'files/org_upload_attachment_list', :locals => {:container => org}%>
|
||||||
<div class="cl"></div>
|
<div class="cl"></div>
|
||||||
<a href="javascript:void(0);" class=" fr grey_btn mr40" onclick="hideModal();"><%= l(:button_cancel)%></a>
|
<a href="javascript:void(0);" class="fr grey_btn mr40 ml10" onclick="hideModal();"><%= l(:button_cancel)%></a>
|
||||||
<a id="submit_org_resource" href="javascript:void(0);" class="blue_btn fr" onclick="submit_resource();"><%= l(:button_confirm)%></a>
|
<a id="submit_org_resource" href="javascript:void(0);" class="blue_btn fr" onclick="submit_resource();"><%= l(:button_confirm)%></a>
|
||||||
<% end %>
|
<% end %>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -8,7 +8,7 @@
|
||||||
<!--<input type="hidden" name="org_subfield_attachment_type" value="<%#= org_subfield_attachment_type%>">-->
|
<!--<input type="hidden" name="org_subfield_attachment_type" value="<%#= org_subfield_attachment_type%>">-->
|
||||||
<%= render :partial => 'files/org_upload_attachment_list_banner', :locals => {:container => org}%>
|
<%= render :partial => 'files/org_upload_attachment_list_banner', :locals => {:container => org}%>
|
||||||
<div class="cl"></div>
|
<div class="cl"></div>
|
||||||
<a href="javascript:void(0);" class=" fr grey_btn mr40" onclick="hideModal();"><%= l(:button_cancel)%></a>
|
<a href="javascript:void(0);" class="fr grey_btn mr40 ml10" onclick="hideModal();"><%= l(:button_cancel)%></a>
|
||||||
<a id="submit_org_resource" href="javascript:void(0);" class="blue_btn fr" onclick="submit_resource();"><%= l(:button_confirm)%></a>
|
<a id="submit_org_resource" href="javascript:void(0);" class="blue_btn fr" onclick="submit_resource();"><%= l(:button_confirm)%></a>
|
||||||
<% end %>
|
<% end %>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -30,7 +30,7 @@
|
||||||
<div class="cl"></div>
|
<div class="cl"></div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<a href="javascript:void(0);" class=" fr grey_btn mr40" onclick="hideModal();"><%= l(:button_cancel)%></a>
|
<a href="javascript:void(0);" class="fr grey_btn mr40 f14 ml10" onclick="hideModal();"><%= l(:button_cancel)%></a>
|
||||||
<!--<a id="submit_resource" href="javascript:void(0);" class="blue_btn fr" onclick="submit_resource();"><%#= l(:button_confirm)%></a>-->
|
<!--<a id="submit_resource" href="javascript:void(0);" class="blue_btn fr" onclick="submit_resource();"><%#= l(:button_confirm)%></a>-->
|
||||||
<%= submit_tag '确定',:onclick=>'submit_resource();', :onfocus=>'this.blur()', :id=>'submit_resource', :class=>'sendSourceText fr' %>
|
<%= submit_tag '确定',:onclick=>'submit_resource();', :onfocus=>'this.blur()', :id=>'submit_resource', :class=>'sendSourceText fr' %>
|
||||||
<% end %>
|
<% end %>
|
||||||
|
|
|
@ -10,7 +10,7 @@
|
||||||
<input type="hidden" name="course_attachment_type" value="<%= course_attachment_type%>">
|
<input type="hidden" name="course_attachment_type" value="<%= course_attachment_type%>">
|
||||||
<%= render :partial => 'attachement_list',:locals => {:course => course} %>
|
<%= render :partial => 'attachement_list',:locals => {:course => course} %>
|
||||||
<div class="cl"></div>
|
<div class="cl"></div>
|
||||||
<a href="javascript:void(0);" class=" fr grey_btn mr40" onclick="closeModal();"><%= l(:button_cancel)%></a>
|
<a href="javascript:void(0);" class="fr grey_btn mr40 f14 fl" onclick="closeModal();"><%= l(:button_cancel)%></a>
|
||||||
<!--<a id="submit_resource" href="javascript:void(0);" class="blue_btn fr" onclick="submit_resource();"><%#= l(:button_confirm)%></a>-->
|
<!--<a id="submit_resource" href="javascript:void(0);" class="blue_btn fr" onclick="submit_resource();"><%#= l(:button_confirm)%></a>-->
|
||||||
<%= submit_tag '确定',:onclick=>'submit_resource();',:onfocus=>'this.blur()',:id=>'submit_resource',:class=>'sendSourceText fr' %>
|
<%= submit_tag '确定',:onclick=>'submit_resource();',:onfocus=>'this.blur()',:id=>'submit_resource',:class=>'sendSourceText fr' %>
|
||||||
<% end %>
|
<% end %>
|
||||||
|
|
|
@ -10,7 +10,7 @@
|
||||||
<input type="hidden" name="course_attachment_type" value="<%= project_attachment_type %>">
|
<input type="hidden" name="course_attachment_type" value="<%= project_attachment_type %>">
|
||||||
<%= render :partial => 'attachement_list',:locals => {:project => project} %>
|
<%= render :partial => 'attachement_list',:locals => {:project => project} %>
|
||||||
<div class="cl"></div>
|
<div class="cl"></div>
|
||||||
<a href="javascript:void(0);" class=" fr grey_btn mr40" onclick="closeModal();"><%= l(:button_cancel)%></a>
|
<a href="javascript:void(0);" class="fr grey_btn mr40 f14 ml10" onclick="closeModal();"><%= l(:button_cancel)%></a>
|
||||||
<!--<a id="submit_resource" href="javascript:void(0);" class="blue_btn fr" onclick="submit_resource();"><%#= l(:button_confirm)%></a>-->
|
<!--<a id="submit_resource" href="javascript:void(0);" class="blue_btn fr" onclick="submit_resource();"><%#= l(:button_confirm)%></a>-->
|
||||||
<%= submit_tag '确定',:onclick=>'submit_resource();',:onfocus=>'this.blur()',:id=>'submit_resource',:class=>'sendSourceText fr' %>
|
<%= submit_tag '确定',:onclick=>'submit_resource();',:onfocus=>'this.blur()',:id=>'submit_resource',:class=>'sendSourceText fr' %>
|
||||||
<% end %>
|
<% end %>
|
||||||
|
|
|
@ -23,7 +23,7 @@
|
||||||
</div>
|
</div>
|
||||||
<div class="cl"></div>
|
<div class="cl"></div>
|
||||||
</div>
|
</div>
|
||||||
<a href="javascript:void(0);" class=" fr grey_btn mr40" onclick="hideModal();"><%= l(:button_cancel)%></a>
|
<a href="javascript:void(0);" class="fr grey_btn mr40 ml10" onclick="hideModal();"><%= l(:button_cancel)%></a>
|
||||||
<a id="submit_resource" href="javascript:void(0);" class="blue_btn fr" onclick="submit_resource();"><%= l(:button_confirm)%></a>
|
<a id="submit_resource" href="javascript:void(0);" class="blue_btn fr" onclick="submit_resource();"><%= l(:button_confirm)%></a>
|
||||||
<% end %>
|
<% end %>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -19,7 +19,7 @@
|
||||||
<div class="postDetailReply fr">
|
<div class="postDetailReply fr">
|
||||||
<a href="<%= forum_memo_path(topic.forum, topic)%>" class="postReplyIcon mr5" target="_blank"></a>
|
<a href="<%= forum_memo_path(topic.forum, topic)%>" class="postReplyIcon mr5" target="_blank"></a>
|
||||||
<%= link_to (topic.replies_count), forum_memo_path(topic.forum, topic),:target =>'_blank',:class=>'linkGrey2' %>
|
<%= link_to (topic.replies_count), forum_memo_path(topic.forum, topic),:target =>'_blank',:class=>'linkGrey2' %>
|
||||||
<a href="javascript:void(0);" class="linkGrey2 disablePostLikeIcon ml10 mt20" style="cursor: default" title="点赞人数" > <%= get_praise_num(topic)%></a>
|
<a href="javascript:void(0);" class="linkGrey2 disablePostLikeIcon ml10" style="cursor: default" title="点赞人数" > <%= get_praise_num(topic)%></a>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="postDetailDes" id = "postDetailDes_<%= topic.id %>"><%= topic.content.html_safe%>
|
<div class="postDetailDes" id = "postDetailDes_<%= topic.id %>"><%= topic.content.html_safe%>
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
<%= javascript_include_tag 'new_user' %>
|
<%= javascript_include_tag 'new_user' %>
|
||||||
<%= stylesheet_link_tag 'public'%>
|
<%= stylesheet_link_tag 'css/common','css/public'%>
|
||||||
<script>
|
<script>
|
||||||
function add_class(id){
|
function add_class(id){
|
||||||
if($("#"+id).hasClass("sortArrowActiveD")){
|
if($("#"+id).hasClass("sortArrowActiveD")){
|
||||||
|
|
|
@ -4,15 +4,15 @@
|
||||||
<ul class="fl">
|
<ul class="fl">
|
||||||
<li>
|
<li>
|
||||||
<label class="label"><span class="c_red f12">*</span><%= l(:field_status) %>:</label>
|
<label class="label"><span class="c_red f12">*</span><%= l(:field_status) %>:</label>
|
||||||
<% if @issue.safe_attribute?('status_id') && @allowed_statuses.present? %>
|
<%# if @issue.safe_attribute?('status_id') && @allowed_statuses.present? %>
|
||||||
<%= f.select :status_id, (@allowed_statuses.collect { |p| [p.name, p.id] }),
|
<%= f.select :status_id, (@allowed_statuses.collect { |p| [p.name, p.id] }),
|
||||||
{:no_label => true},
|
{:no_label => true},
|
||||||
# ajax 刷新
|
# ajax 刷新
|
||||||
#:onchange => "updateIssueFrom('#{escape_javascript project_issue_form_path(@project, :id => @issue, :format => 'js')}')",
|
#:onchange => "updateIssueFrom('#{escape_javascript project_issue_form_path(@project, :id => @issue, :format => 'js')}')",
|
||||||
:class => "w150" %>
|
:class => "w150" %>
|
||||||
<% else %>
|
<%# else %>
|
||||||
<%= h(@issue.status.name) %>
|
<%#= h(@issue.status.name) %>
|
||||||
<% end %>
|
<%# end %>
|
||||||
</li>
|
</li>
|
||||||
<div class="cl"></div>
|
<div class="cl"></div>
|
||||||
<li>
|
<li>
|
||||||
|
@ -46,7 +46,7 @@
|
||||||
:method => 'get',
|
:method => 'get',
|
||||||
:title => l(:label_version_new),
|
:title => l(:label_version_new),
|
||||||
:tabindex => 200) if User.current.allowed_to?(:manage_versions, @issue.project) %>
|
:tabindex => 200) if User.current.allowed_to?(:manage_versions, @issue.project) %>
|
||||||
<%= link_to "", new_project_version_path(@issue.project), :class => "pic_add mt5 ml5 ", :target => "_blank" %>
|
<%= link_to "", new_project_version_path(@issue.project), :class => "pic_add mt5 ml5 fl", :target => "_blank" %>
|
||||||
<!--<a href="javascript:viod(0)" class="pic_add mt5 ml5"></a>-->
|
<!--<a href="javascript:viod(0)" class="pic_add mt5 ml5"></a>-->
|
||||||
<% end %>
|
<% end %>
|
||||||
</li>
|
</li>
|
||||||
|
|
|
@ -58,13 +58,6 @@
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
<li>
|
<li>
|
||||||
<%# if @copy_from && @copy_from.attachments.any? %>
|
|
||||||
<!--<p>-->
|
|
||||||
<!-- 去除附件复制功能 -->
|
|
||||||
<!-- <label for="copy_attachments"><#%= l(:label_copy_attachments) %></label>
|
|
||||||
<#%= check_box_tag 'copy_attachments', '1', @copy_attachments %> -->
|
|
||||||
<!--</p>-->
|
|
||||||
<%# end %>
|
|
||||||
<% if @copy_from && !@copy_from.leaf? %>
|
<% if @copy_from && !@copy_from.leaf? %>
|
||||||
<p>
|
<p>
|
||||||
<label for="copy_subtasks"><%= l(:label_copy_subtasks) %></label>
|
<label for="copy_subtasks"><%= l(:label_copy_subtasks) %></label>
|
||||||
|
@ -83,24 +76,7 @@
|
||||||
<%= render :partial => 'issues/attributes' %>
|
<%= render :partial => 'issues/attributes' %>
|
||||||
</div>
|
</div>
|
||||||
<div class="cl"></div>
|
<div class="cl"></div>
|
||||||
<!--<div class="newpro_box02 ">-->
|
|
||||||
<!--<label class="label"> <%#= l(:label_issue_watchers) %>:</label>-->
|
|
||||||
<!--<input id="" name="" size="22" class="fl mb10 h26" type="text" placeholder="搜索添加跟踪者">-->
|
|
||||||
<!--<span class="search_for_watchers">-->
|
|
||||||
<%#= link_to "",
|
|
||||||
# {:controller => 'watchers', :action => 'new', :project_id => @issue.project},
|
|
||||||
# :remote => true,
|
|
||||||
# :method => 'get',
|
|
||||||
:class => "pic_sch mt5 ml5" %>
|
|
||||||
<!--</span>-->
|
|
||||||
<%#= javascript_tag "observeSearchfield('user_search', 'users_for_watcher', '#{ escape_javascript watchers_autocomplete_for_user_path(:user => @available_watchers, :format => 'js', :flag => 'ture') }')" %>
|
|
||||||
<!--<div class="cl"></div>-->
|
|
||||||
<!--<span id="watchers_inputs">-->
|
|
||||||
<!--<%#= watchers_checkboxes(@issue, @available_watchers) %>-->
|
|
||||||
<!--</span>-->
|
|
||||||
<!--<div class="cl"></div>-->
|
|
||||||
<!--</div>-->
|
|
||||||
<%= call_hook(:view_issues_form_details_bottom, {:issue => @issue, :form => f}) %>
|
<%= call_hook(:view_issues_form_details_bottom, {:issue => @issue, :form => f}) %>
|
||||||
<% end %>
|
<% end %>
|
||||||
<a href="javascript:void(0);" onclick="issue_desc_editor.sync();$('#issue-form').submit();" class="blue_btn fl ml80"> 确定</a>
|
<a href="javascript:void(0);" onclick="issue_desc_editor.sync();$('#issue-form').submit();" class="blue_btn fl ml80"> 确定</a>
|
||||||
<a href="javascript:void(0);" onclick="issueDetailShow();" class="grey_btn fl mr50" > 取消 </a>
|
<a href="javascript:void(0);" onclick="issueDetailShow();" class="grey_btn fl mr50 ml10" > 取消 </a>
|
||||||
|
|
|
@ -1,8 +1,9 @@
|
||||||
<% if @issue_id %> //issue详情中回复
|
<% if @issue_id %> //issue详情中回复
|
||||||
$("#reply_div_<%= @issue_id %>").html("<%= escape_javascript(render :partial => 'issues/issue_replies', :locals => {:issue => Issue.find( @issue_id),:replies_all_i=>0}) %>");
|
$("#reply_div_<%= @issue_id %>").html("<%= escape_javascript(render :partial => 'issues/issue_replies', :locals => {:issue => Issue.find( @issue_id),:replies_all_i=>0}) %>");
|
||||||
$("#div_issue_attachment_<%=@issue.id %>").html("<%= escape_javascript(render :partial => 'issues/issue_attachments', :locals => {:issue => Issue.find( @issue_id)}) %>");
|
$("#div_issue_attachment_<%=@issue.id %>").html("<%= escape_javascript(render :partial => 'issues/issue_attachments', :locals => {:issue => Issue.find( @issue_id)}) %>");
|
||||||
$("#issue_edit").replaceWith('<%= escape_javascript(render :partial => 'issues/edit') %>')
|
$("#issue_detail_show").html('<%= escape_javascript(render :partial => 'issues/detail') %>')
|
||||||
sd_create_editor_from_data(<%= @issue.id%>, null, "100%", "<%=@issue.class.name%>");
|
$("#issue_edit_show").html('<%= escape_javascript(render :partial => 'issues/edit') %>')
|
||||||
|
sd_create_editor_from_data(<%= @issue.id %>, null, "100%", "<%= @issue.class.name %>");
|
||||||
issue_desc_editor = KindEditor.create('#issue_description',
|
issue_desc_editor = KindEditor.create('#issue_description',
|
||||||
{"width":"85%",
|
{"width":"85%",
|
||||||
"resizeType":0,
|
"resizeType":0,
|
||||||
|
|
|
@ -57,7 +57,7 @@
|
||||||
<div class="problem_search fr" >
|
<div class="problem_search fr" >
|
||||||
<input class="problem_search_input fl" id="v_subject" type="text" name="subject" placeholder="请输入问题名称" onkeypress="EnterPress(event)" onkeydown="EnterPress()">
|
<input class="problem_search_input fl" id="v_subject" type="text" name="subject" placeholder="请输入问题名称" onkeypress="EnterPress(event)" onkeydown="EnterPress()">
|
||||||
<a href="javascript:void(0)" class="problem_search_btn fl" onclick="remote_function();" >搜索</a>
|
<a href="javascript:void(0)" class="problem_search_btn fl" onclick="remote_function();" >搜索</a>
|
||||||
<a href="javascript:void(0)" class="grey_btn fl ml10" onclick="nh_reset_form();" >清空</a>
|
<a href="javascript:void(0)" class="grey_btn fl ml10 f14" onclick="nh_reset_form();" >清空</a>
|
||||||
</div><!--problem_search end-->
|
</div><!--problem_search end-->
|
||||||
<%#= link_to '新建问题', new_project_issue_path(@project) , :class => "green_u_btn fr ml10" %>
|
<%#= link_to '新建问题', new_project_issue_path(@project) , :class => "green_u_btn fr ml10" %>
|
||||||
<p class="problem_p fl" ><%= l(:label_issues_sum) %>:<a href="javascript:void(0)" class="c_red"><%= @project.project_score.issue_num %></a>
|
<p class="problem_p fl" ><%= l(:label_issues_sum) %>:<a href="javascript:void(0)" class="c_red"><%= @project.project_score.issue_num %></a>
|
||||||
|
@ -96,13 +96,13 @@
|
||||||
<div class="fl"> </div>
|
<div class="fl"> </div>
|
||||||
<div>
|
<div>
|
||||||
<input name="issue_create_date_start" nhname="date_val" type="hidden"/>
|
<input name="issue_create_date_start" nhname="date_val" type="hidden"/>
|
||||||
<%= text_field_tag 'issue_create_date_start_show', '创建日期起始',:readonly=>true, :size=>15, :nhname=>'date_show',:style=>'float:left;'%>
|
<%= text_field_tag 'issue_create_date_start_show', '创建日期起始',:readonly=>true, :size=>13, :nhname=>'date_show',:style=>'float:left;'%>
|
||||||
<%= calendar_for('issue_create_date_start_show') %>
|
<%= calendar_for('issue_create_date_start_show') %>
|
||||||
</div>
|
</div>
|
||||||
<div style="float:left;"> - </div>
|
<div style="float:left;"> - </div>
|
||||||
<div>
|
<div>
|
||||||
<input name="issue_create_date_end" nhname="date_val" type="hidden"/>
|
<input name="issue_create_date_end" nhname="date_val" type="hidden"/>
|
||||||
<%= text_field_tag 'issue_create_date_end_show', '创建日期结束',:readonly=>true, :size=>15, :nhname=>'date_show',:style=>'float:left;'%>
|
<%= text_field_tag 'issue_create_date_end_show', '创建日期结束',:readonly=>true, :size=>13, :nhname=>'date_show',:style=>'float:left;'%>
|
||||||
<%= calendar_for('issue_create_date_end_show') %>
|
<%= calendar_for('issue_create_date_end_show') %>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -15,7 +15,7 @@
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
</script>
|
</script>
|
||||||
<div class="homepageRight mt0 ml10" >
|
<div class="homepageRight mt0 ml10" id =issue_show_total"">
|
||||||
<div class="homepageRightBanner">
|
<div class="homepageRightBanner">
|
||||||
<div class="NewsBannerName">问题跟踪</div>
|
<div class="NewsBannerName">问题跟踪</div>
|
||||||
</div>
|
</div>
|
||||||
|
@ -23,8 +23,12 @@
|
||||||
<div class="resources mt10" >
|
<div class="resources mt10" >
|
||||||
<div class="pro_page_box">
|
<div class="pro_page_box">
|
||||||
<div class="problem_main borderBottomNone">
|
<div class="problem_main borderBottomNone">
|
||||||
|
<div id="issue_detail_show">
|
||||||
<%= render :partial => 'issues/detail'%>
|
<%= render :partial => 'issues/detail'%>
|
||||||
|
</div>
|
||||||
|
<div id="issue_edit_show">
|
||||||
<%= render :partial => 'issues/edit'%>
|
<%= render :partial => 'issues/edit'%>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<!--problem_main end-->
|
<!--problem_main end-->
|
||||||
|
|
|
@ -58,7 +58,7 @@
|
||||||
<div class="navHomepageProfile" id="navHomepageProfile">
|
<div class="navHomepageProfile" id="navHomepageProfile">
|
||||||
<ul>
|
<ul>
|
||||||
<li class="homepageProfileMenuIcon" id="homepageProfileMenuIcon">
|
<li class="homepageProfileMenuIcon" id="homepageProfileMenuIcon">
|
||||||
<%= link_to "<div class='mt5 mb8' id='user_avatar'>#{image_tag(url_to_avatar(User.current),:width =>"40",:height => "40",:class => "portraitRadius",:alt=>"头像", :id => "nh_user_logo")}</div>".html_safe,user_activities_path(User.current.id)%>
|
<%= link_to "<div class='mt5 mb8' id='user_avatar'>#{image_tag(url_to_avatar(User.current),:width =>"40",:height => "40",:class => "portraitRadius",:alt=>"头像",:style=>"display:block;", :id => "nh_user_logo")}</div>".html_safe,user_activities_path(User.current.id)%>
|
||||||
<ul class="topnav_login_list none" id="topnav_login_list">
|
<ul class="topnav_login_list none" id="topnav_login_list">
|
||||||
<li>
|
<li>
|
||||||
<%= link_to "修改资料", my_account_path, :class => "menuGrey"%>
|
<%= link_to "修改资料", my_account_path, :class => "menuGrey"%>
|
||||||
|
|
|
@ -17,7 +17,7 @@
|
||||||
<%= call_hook :view_layouts_base_html_head %>
|
<%= call_hook :view_layouts_base_html_head %>
|
||||||
<!-- page specific tags -->
|
<!-- page specific tags -->
|
||||||
<%= yield :header_tags -%>
|
<%= yield :header_tags -%>
|
||||||
<%= stylesheet_link_tag 'base','header', :media => 'all'%>
|
<%= stylesheet_link_tag 'css/common','css/structure','css/public', :media => 'all'%>
|
||||||
<!-- MathJax的配置 -->
|
<!-- MathJax的配置 -->
|
||||||
<script type="text/javascript"
|
<script type="text/javascript"
|
||||||
src="/javascripts/MathJax/MathJax.js?config=TeX-AMS-MML_HTMLorMML">
|
src="/javascripts/MathJax/MathJax.js?config=TeX-AMS-MML_HTMLorMML">
|
||||||
|
|
|
@ -17,7 +17,7 @@
|
||||||
<%= javascript_heads %>
|
<%= javascript_heads %>
|
||||||
<%= heads_for_theme %>
|
<%= heads_for_theme %>
|
||||||
<%= call_hook :view_layouts_base_html_head %>
|
<%= call_hook :view_layouts_base_html_head %>
|
||||||
<%= stylesheet_link_tag 'header','jquery/jquery-ui-1.9.2','public', 'leftside','prettify', 'courses','share'%>
|
<%= stylesheet_link_tag 'jquery/jquery-ui-1.9.2','css/common','css/public', 'css/structure','prettify', 'css/courses','css/popup'%>
|
||||||
<%= javascript_include_tag "course","header","attachments",'prettify' %>
|
<%= javascript_include_tag "course","header","attachments",'prettify' %>
|
||||||
<!-- page specific tags -->
|
<!-- page specific tags -->
|
||||||
<%= yield :header_tags -%>
|
<%= yield :header_tags -%>
|
||||||
|
|
|
@ -7,7 +7,7 @@
|
||||||
<meta name="keywords" content="issue,bug,tracker" />
|
<meta name="keywords" content="issue,bug,tracker" />
|
||||||
<%= csrf_meta_tag %>
|
<%= csrf_meta_tag %>
|
||||||
<%= favicon %>
|
<%= favicon %>
|
||||||
<%= stylesheet_link_tag 'jquery/jquery-ui-1.9.2','application','prettify', 'nyan','leftside', :media => 'all' %>
|
<%= stylesheet_link_tag 'jquery/jquery-ui-1.9.2','application','prettify', 'nyan', :media => 'all' %>
|
||||||
<%= stylesheet_link_tag 'rtl', :media => 'all' if l(:direction) == 'rtl' %>
|
<%= stylesheet_link_tag 'rtl', :media => 'all' if l(:direction) == 'rtl' %>
|
||||||
<%= javascript_include_tag('jquery-1.8.3-ui-1.9.2-ujs-2.0.3', 'application', 'jquery.colorbox-min') %>
|
<%= javascript_include_tag('jquery-1.8.3-ui-1.9.2-ujs-2.0.3', 'application', 'jquery.colorbox-min') %>
|
||||||
|
|
||||||
|
@ -18,7 +18,7 @@
|
||||||
|
|
||||||
<%= call_hook :view_layouts_base_html_head %>
|
<%= call_hook :view_layouts_base_html_head %>
|
||||||
<%= yield :header_tags -%>
|
<%= yield :header_tags -%>
|
||||||
<%= stylesheet_link_tag 'base','header','new_user', :media => 'all'%>
|
<%= stylesheet_link_tag 'css/common','css/structure','css/public', :media => 'all'%>
|
||||||
<!-- MathJax的配置 -->
|
<!-- MathJax的配置 -->
|
||||||
<script type="text/javascript"
|
<script type="text/javascript"
|
||||||
src="/javascripts/MathJax/MathJax.js?config=TeX-AMS-MML_HTMLorMML">
|
src="/javascripts/MathJax/MathJax.js?config=TeX-AMS-MML_HTMLorMML">
|
||||||
|
|
|
@ -15,7 +15,7 @@
|
||||||
<%= javascript_include_tag "ckeditor/ckeditor.js",'prettify' %>
|
<%= javascript_include_tag "ckeditor/ckeditor.js",'prettify' %>
|
||||||
<!-- page specific tags -->
|
<!-- page specific tags -->
|
||||||
<%= yield :header_tags -%>
|
<%= yield :header_tags -%>
|
||||||
<%= stylesheet_link_tag 'base','header', :media => 'all'%>
|
<%= stylesheet_link_tag 'css/common','css/structure','css/public', :media => 'all'%>
|
||||||
<!-- MathJax的配置 -->
|
<!-- MathJax的配置 -->
|
||||||
<script type="text/javascript"
|
<script type="text/javascript"
|
||||||
src="/javascripts/MathJax/MathJax.js?config=TeX-AMS-MML_HTMLorMML">
|
src="/javascripts/MathJax/MathJax.js?config=TeX-AMS-MML_HTMLorMML">
|
||||||
|
|
|
@ -12,7 +12,7 @@
|
||||||
<%= favicon %>
|
<%= favicon %>
|
||||||
<%= javascript_heads %>
|
<%= javascript_heads %>
|
||||||
<%= heads_for_theme %>
|
<%= heads_for_theme %>
|
||||||
<%= stylesheet_link_tag 'pleft','prettify','jquery/jquery-ui-1.9.2','header','new_user','repository','courses','org', 'share' %>
|
<%= stylesheet_link_tag 'prettify','jquery/jquery-ui-1.9.2','css/common','css/structure','css/public','repository','css/courses','css/org','css/project', 'css/popup' %>
|
||||||
<%= javascript_include_tag 'cookie','project', 'organization','header','prettify','select_list_move','org'%>
|
<%= javascript_include_tag 'cookie','project', 'organization','header','prettify','select_list_move','org'%>
|
||||||
<%= javascript_include_tag 'attachments' %>
|
<%= javascript_include_tag 'attachments' %>
|
||||||
<%= call_hook :view_layouts_base_html_head %>
|
<%= call_hook :view_layouts_base_html_head %>
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||||
<%= stylesheet_link_tag 'pleft','prettify','jquery/jquery-ui-1.9.2','header','new_user','repository','org' %>
|
<%= stylesheet_link_tag 'pleft','prettify','jquery/jquery-ui-1.9.2','css/structure','css/public','repository','org' %>
|
||||||
<%= javascript_include_tag 'cookie','project', 'header','prettify','select_list_move','org'%>
|
<%= javascript_include_tag 'cookie','project', 'header','prettify','select_list_move','org'%>
|
||||||
<head>
|
<head>
|
||||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
||||||
|
@ -104,10 +104,10 @@
|
||||||
<div id="Footer">
|
<div id="Footer">
|
||||||
<div class="footerAboutContainer">
|
<div class="footerAboutContainer">
|
||||||
<ul class="footerAbout">
|
<ul class="footerAbout">
|
||||||
<li class="fl"><a href="javascript:void:(0);" class=" f_grey mw20" target="_blank">关于我们</a>|</li>
|
<li class="fl"><a href="javascript:void(0);" class=" f_grey mw20" target="_blank">关于我们</a>|</li>
|
||||||
<li class="fl"><a href="javascript:void:(0);" class=" f_grey mw20" target="_blank">服务协议</a>|</li>
|
<li class="fl"><a href="javascript:void(0);" class=" f_grey mw20" target="_blank">服务协议</a>|</li>
|
||||||
<li class="fl"><a href="javascript:void:(0);" class="f_grey mw20" target="_blank">帮助中心</a>|</li>
|
<li class="fl"><a href="javascript:void(0);" class="f_grey mw20" target="_blank">帮助中心</a>|</li>
|
||||||
<li class="fl"><a href="javascript:void:(0);" class=" f_grey mw20" target="_blank">贴吧交流</a></li>
|
<li class="fl"><a href="javascript:void(0);" class=" f_grey mw20" target="_blank">贴吧交流</a></li>
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
<div class="cl"></div>
|
<div class="cl"></div>
|
||||||
|
|
|
@ -12,7 +12,7 @@
|
||||||
<%= favicon %>
|
<%= favicon %>
|
||||||
<%= javascript_heads %>
|
<%= javascript_heads %>
|
||||||
<%= heads_for_theme %>
|
<%= heads_for_theme %>
|
||||||
<%= stylesheet_link_tag 'header','scm','public', 'pleft', 'project','prettify','jquery/jquery-ui-1.9.2','repository','share' %>
|
<%= stylesheet_link_tag 'jquery/jquery-ui-1.9.2','css/common','css/structure','scm','css/public', 'css/project','css/popup','prettify','repository' %>
|
||||||
<%= javascript_include_tag 'cookie','project', 'header','prettify','select_list_move','attachments' %>
|
<%= javascript_include_tag 'cookie','project', 'header','prettify','select_list_move','attachments' %>
|
||||||
|
|
||||||
<%= call_hook :view_layouts_base_html_head %>
|
<%= call_hook :view_layouts_base_html_head %>
|
||||||
|
|
|
@ -7,7 +7,7 @@
|
||||||
<meta name="keywords" content="issue,bug,tracker" />
|
<meta name="keywords" content="issue,bug,tracker" />
|
||||||
<%= csrf_meta_tag %>
|
<%= csrf_meta_tag %>
|
||||||
<%= favicon %>
|
<%= favicon %>
|
||||||
<%= stylesheet_link_tag 'jquery/jquery-ui-1.9.2', 'syllabus','new_user','prettify','share',:media => 'all' %>
|
<%= stylesheet_link_tag 'jquery/jquery-ui-1.9.2', 'syllabus','css/common','css/public','css/structure','css/courses','css/popup','prettify',:media => 'all' %>
|
||||||
<%= stylesheet_link_tag 'rtl', :media => 'all' if l(:direction) == 'rtl' %>
|
<%= stylesheet_link_tag 'rtl', :media => 'all' if l(:direction) == 'rtl' %>
|
||||||
<%= javascript_heads %>
|
<%= javascript_heads %>
|
||||||
<%= javascript_include_tag "bootstrap","avatars","course",'attachments','prettify','syllabus'%>
|
<%= javascript_include_tag "bootstrap","avatars","course",'attachments','prettify','syllabus'%>
|
||||||
|
|
|
@ -20,7 +20,7 @@
|
||||||
<%= call_hook :view_layouts_base_html_head %>
|
<%= call_hook :view_layouts_base_html_head %>
|
||||||
<!-- page specific tags -->
|
<!-- page specific tags -->
|
||||||
<%= yield :header_tags -%>
|
<%= yield :header_tags -%>
|
||||||
<%= stylesheet_link_tag 'base','header', :media => 'all'%>
|
<%= stylesheet_link_tag 'css/common','css/structure','css/public', :media => 'all'%>
|
||||||
<!-- MathJax的配置 -->
|
<!-- MathJax的配置 -->
|
||||||
<script type="text/javascript"
|
<script type="text/javascript"
|
||||||
src="/javascripts/MathJax/MathJax.js?config=TeX-AMS-MML_HTMLorMML">
|
src="/javascripts/MathJax/MathJax.js?config=TeX-AMS-MML_HTMLorMML">
|
||||||
|
|
|
@ -14,7 +14,7 @@
|
||||||
<meta name="keywords" content="issue,bug,tracker" />
|
<meta name="keywords" content="issue,bug,tracker" />
|
||||||
<%= csrf_meta_tag %>
|
<%= csrf_meta_tag %>
|
||||||
<%= favicon %>
|
<%= favicon %>
|
||||||
<%= stylesheet_link_tag 'jquery/jquery-ui-1.9.2', 'public_new', 'leftside_new','prettify','users', :media => 'all' %>
|
<%= stylesheet_link_tag 'jquery/jquery-ui-1.9.2', 'css/common', 'css/structure','prettify','css/public', :media => 'all' %>
|
||||||
<%= stylesheet_link_tag 'rtl', :media => 'all' if l(:direction) == 'rtl' %>
|
<%= stylesheet_link_tag 'rtl', :media => 'all' if l(:direction) == 'rtl' %>
|
||||||
<%= javascript_heads %>
|
<%= javascript_heads %>
|
||||||
<%= javascript_include_tag "avatars",'prettify'%>
|
<%= javascript_include_tag "avatars",'prettify'%>
|
||||||
|
|
|
@ -5,7 +5,7 @@
|
||||||
<title><%=h html_title %></title>
|
<title><%=h html_title %></title>
|
||||||
<meta name="description" content="<%= Redmine::Info.app_name %>" />
|
<meta name="description" content="<%= Redmine::Info.app_name %>" />
|
||||||
<meta name="keywords" content="issue,bug,tracker" />
|
<meta name="keywords" content="issue,bug,tracker" />
|
||||||
<%= stylesheet_link_tag 'public', 'pleft', 'project', :media => 'all' %>
|
<%= stylesheet_link_tag 'css/common', 'css/structure', 'css/public','css/project', :media => 'all' %>
|
||||||
|
|
||||||
<%= javascript_include_tag "jquery.leanModal.min" %>
|
<%= javascript_include_tag "jquery.leanModal.min" %>
|
||||||
|
|
||||||
|
|
|
@ -21,7 +21,7 @@
|
||||||
<%= call_hook :view_layouts_base_html_head %>
|
<%= call_hook :view_layouts_base_html_head %>
|
||||||
<!-- page specific tags -->
|
<!-- page specific tags -->
|
||||||
<%= yield :header_tags -%>
|
<%= yield :header_tags -%>
|
||||||
<%= stylesheet_link_tag 'base','header', :media => 'all'%>
|
<%= stylesheet_link_tag 'css/common','css/structure','css/public', :media => 'all'%>
|
||||||
<!-- MathJax的配置 -->
|
<!-- MathJax的配置 -->
|
||||||
<script type="text/javascript"
|
<script type="text/javascript"
|
||||||
src="/javascripts/MathJax/MathJax.js?config=TeX-AMS-MML_HTMLorMML">
|
src="/javascripts/MathJax/MathJax.js?config=TeX-AMS-MML_HTMLorMML">
|
||||||
|
|
|
@ -7,7 +7,7 @@
|
||||||
<meta name="keywords" content="issue,bug,tracker" />
|
<meta name="keywords" content="issue,bug,tracker" />
|
||||||
<%= csrf_meta_tag %>
|
<%= csrf_meta_tag %>
|
||||||
<%= favicon %>
|
<%= favicon %>
|
||||||
<%= stylesheet_link_tag 'jquery/jquery-ui-1.9.2', 'new_user', 'user_leftside', :media => 'all' %>
|
<%= stylesheet_link_tag 'jquery/jquery-ui-1.9.2', 'css/common', 'css/structure', :media => 'all' %>
|
||||||
<%= stylesheet_link_tag 'rtl', :media => 'all' if l(:direction) == 'rtl' %>
|
<%= stylesheet_link_tag 'rtl', :media => 'all' if l(:direction) == 'rtl' %>
|
||||||
<%= javascript_heads %>
|
<%= javascript_heads %>
|
||||||
<%= javascript_include_tag "bootstrap","avatars","new_user"%>
|
<%= javascript_include_tag "bootstrap","avatars","new_user"%>
|
||||||
|
|
|
@ -13,7 +13,7 @@
|
||||||
<%= javascript_heads %>
|
<%= javascript_heads %>
|
||||||
<%= heads_for_theme %>
|
<%= heads_for_theme %>
|
||||||
<%= call_hook :view_layouts_base_html_head %>
|
<%= call_hook :view_layouts_base_html_head %>
|
||||||
<%= stylesheet_link_tag 'public', 'leftside', 'courses','header','prettify', 'org', 'syllabus'%>
|
<%= stylesheet_link_tag 'css/common','css/structure', 'css/public', 'css/courses','prettify', 'css/org', 'syllabus'%>
|
||||||
<%= javascript_include_tag "course","header",'prettify' %>
|
<%= javascript_include_tag "course","header",'prettify' %>
|
||||||
<!-- page specific tags -->
|
<!-- page specific tags -->
|
||||||
<%= yield :header_tags -%>
|
<%= yield :header_tags -%>
|
||||||
|
|
|
@ -7,7 +7,7 @@
|
||||||
<meta name="keywords" content="issue,bug,tracker" />
|
<meta name="keywords" content="issue,bug,tracker" />
|
||||||
<%= csrf_meta_tag %>
|
<%= csrf_meta_tag %>
|
||||||
<%= favicon %>
|
<%= favicon %>
|
||||||
<%= stylesheet_link_tag 'jquery/jquery-ui-1.9.2', 'share','new_user', 'user_leftside','prettify','users','syllabus',:media => 'all' %>
|
<%= stylesheet_link_tag 'jquery/jquery-ui-1.9.2','css/common', 'css/structure','css/public', 'prettify','css/project','css/courses','css/popup','syllabus',:media => 'all' %>
|
||||||
<%= stylesheet_link_tag 'rtl', :media => 'all' if l(:direction) == 'rtl' %>
|
<%= stylesheet_link_tag 'rtl', :media => 'all' if l(:direction) == 'rtl' %>
|
||||||
<%= javascript_heads %>
|
<%= javascript_heads %>
|
||||||
<%= javascript_include_tag "bootstrap","avatars","new_user",'attachments','prettify'%>
|
<%= javascript_include_tag "bootstrap","avatars","new_user",'attachments','prettify'%>
|
||||||
|
|
|
@ -16,7 +16,7 @@
|
||||||
<%= call_hook :view_layouts_base_html_head %>
|
<%= call_hook :view_layouts_base_html_head %>
|
||||||
<!-- page specific tags -->
|
<!-- page specific tags -->
|
||||||
<%= yield :header_tags -%>
|
<%= yield :header_tags -%>
|
||||||
<%= stylesheet_link_tag 'base','header', :media => 'all'%>
|
<%= stylesheet_link_tag 'css/common','css/structure','css/public', :media => 'all'%>
|
||||||
<!-- MathJax的配置 -->
|
<!-- MathJax的配置 -->
|
||||||
<script type="text/javascript"
|
<script type="text/javascript"
|
||||||
src="/javascripts/MathJax/MathJax.js?config=TeX-AMS-MML_HTMLorMML">
|
src="/javascripts/MathJax/MathJax.js?config=TeX-AMS-MML_HTMLorMML">
|
||||||
|
|
|
@ -16,7 +16,7 @@
|
||||||
<%= call_hook :view_layouts_base_html_head %>
|
<%= call_hook :view_layouts_base_html_head %>
|
||||||
<!-- page specific tags -->
|
<!-- page specific tags -->
|
||||||
<%= yield :header_tags -%>
|
<%= yield :header_tags -%>
|
||||||
<%= stylesheet_link_tag 'base','header','new_user' ,:media => 'all'%>
|
<%= stylesheet_link_tag 'css/common','css/structure','css/public' ,:media => 'all'%>
|
||||||
<!-- MathJax的配置 -->
|
<!-- MathJax的配置 -->
|
||||||
<script type="text/javascript"
|
<script type="text/javascript"
|
||||||
src="/javascripts/MathJax/MathJax.js?config=TeX-AMS-MML_HTMLorMML">
|
src="/javascripts/MathJax/MathJax.js?config=TeX-AMS-MML_HTMLorMML">
|
||||||
|
|
|
@ -8,7 +8,7 @@
|
||||||
<%= render :partial => 'form_course', :locals => {:f => f,:is_new => true} %>
|
<%= render :partial => 'form_course', :locals => {:f => f,:is_new => true} %>
|
||||||
<a href="javascript:void(0)" onclick="submitCoursesBoard();"class="blue_btn fl c_white"><%= l(:button_submit)%></a>
|
<a href="javascript:void(0)" onclick="submitCoursesBoard();"class="blue_btn fl c_white"><%= l(:button_submit)%></a>
|
||||||
<%#= preview_link({:controller => 'messages', :action => 'preview', :board_id => @board}, 'message-form' ,target='preview',{:class => 'blue_btn grey_btn fl c_white'} )%>
|
<%#= preview_link({:controller => 'messages', :action => 'preview', :board_id => @board}, 'message-form' ,target='preview',{:class => 'blue_btn grey_btn fl c_white'} )%>
|
||||||
<%= link_to l(:button_cancel), course_boards_path(@course), :class => "blue_btn grey_btn fl c_white"%>
|
<%= link_to l(:button_cancel), course_boards_path(@course), :class => "grey_btn fl c_white ml10"%>
|
||||||
<% end %>
|
<% end %>
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -158,7 +158,7 @@
|
||||||
<div class="talkConIpt ml5 mb10" id="reply<%= @topic.id %>">
|
<div class="talkConIpt ml5 mb10" id="reply<%= @topic.id %>">
|
||||||
<%= form_for @reply, :as => :reply, :url => {:action => 'reply', :id => @topic}, :html => {:multipart => true, :id => 'message_form'} do |f| %>
|
<%= form_for @reply, :as => :reply, :url => {:action => 'reply', :id => @topic}, :html => {:multipart => true, :id => 'message_form'} do |f| %>
|
||||||
<%= render :partial => 'form_course', :locals => {:f => f, :replying => true} %>
|
<%= render :partial => 'form_course', :locals => {:f => f, :replying => true} %>
|
||||||
<%= link_to l(:button_cancel), "javascript:void(0)", :onclick => 'course_board_canel_message_replay();', :class => "blue_btn grey_btn fr c_white mt10 mr5" %>
|
<%= link_to l(:button_cancel), "javascript:void(0)", :onclick => 'course_board_canel_message_replay();', :class => "grey_btn fr c_white mt10 mr5 ml10" %>
|
||||||
<%= link_to l(:button_submit), "javascript:void(0)", :onclick => 'course_board_submit_message_replay();', :class => "blue_btn fr c_white mt10", :style => "margin-left: 50px;" %>
|
<%= link_to l(:button_submit), "javascript:void(0)", :onclick => 'course_board_submit_message_replay();', :class => "blue_btn fr c_white mt10", :style => "margin-left: 50px;" %>
|
||||||
<% end %>
|
<% end %>
|
||||||
<div class="cl"></div>
|
<div class="cl"></div>
|
||||||
|
|
|
@ -105,7 +105,7 @@
|
||||||
<%= form_for @reply, :as => :reply, :url => {:action => 'reply', :id => @topic}, :html => {:multipart => true, :id => 'message_form'} do |f| %>
|
<%= form_for @reply, :as => :reply, :url => {:action => 'reply', :id => @topic}, :html => {:multipart => true, :id => 'message_form'} do |f| %>
|
||||||
<%= render :partial => 'form_course', :locals => {:f => f, :replying => true} %>
|
<%= render :partial => 'form_course', :locals => {:f => f, :replying => true} %>
|
||||||
<%= link_to l(:button_submit),"javascript:void(0)",:onclick => 'course_board_submit_message_replay();' ,:class => "blue_btn fl c_white" ,:style=>"margin-left: 50px;"%>
|
<%= link_to l(:button_submit),"javascript:void(0)",:onclick => 'course_board_submit_message_replay();' ,:class => "blue_btn fl c_white" ,:style=>"margin-left: 50px;"%>
|
||||||
<%= link_to l(:button_cancel), "javascript:void(0)", :onclick => 'course_board_canel_message_replay();', :class => "blue_btn grey_btn fl c_white" %>
|
<%= link_to l(:button_cancel), "javascript:void(0)", :onclick => 'course_board_canel_message_replay();', :class => "grey_btn fl c_white ml10" %>
|
||||||
<% end %>
|
<% end %>
|
||||||
</div>
|
</div>
|
||||||
<% end %>
|
<% end %>
|
||||||
|
|
|
@ -192,7 +192,7 @@
|
||||||
<div class="talkConIpt ml5 mb10" id="reply<%= @topic.id %>">
|
<div class="talkConIpt ml5 mb10" id="reply<%= @topic.id %>">
|
||||||
<%= form_for @reply, :as => :reply, :url => {:action => 'reply', :id => @topic}, :html => {:multipart => true, :id => 'message_form'} do |f| %>
|
<%= form_for @reply, :as => :reply, :url => {:action => 'reply', :id => @topic}, :html => {:multipart => true, :id => 'message_form'} do |f| %>
|
||||||
<%= render :partial => 'form_course', :locals => {:f => f, :replying => true} %>
|
<%= render :partial => 'form_course', :locals => {:f => f, :replying => true} %>
|
||||||
<%= link_to l(:button_cancel), "javascript:void(0)", :onclick => 'course_board_canel_message_replay();', :class => "blue_btn grey_btn fr c_white mt10 mr5" %>
|
<%= link_to l(:button_cancel), "javascript:void(0)", :onclick => 'course_board_canel_message_replay();', :class => "grey_btn fr c_white mt10 mr5 ml10" %>
|
||||||
<%= link_to l(:button_submit), "javascript:void(0)", :onclick => 'course_board_submit_message_replay();', :class => "blue_btn fr c_white mt10", :style => "margin-left: 50px;" %>
|
<%= link_to l(:button_submit), "javascript:void(0)", :onclick => 'course_board_submit_message_replay();', :class => "blue_btn fr c_white mt10", :style => "margin-left: 50px;" %>
|
||||||
<% end %>
|
<% end %>
|
||||||
<div class="cl"></div>
|
<div class="cl"></div>
|
||||||
|
|
|
@ -218,7 +218,7 @@
|
||||||
<div class="talkConIpt ml5 mb10" id="reply<%= @topic.id %>">
|
<div class="talkConIpt ml5 mb10" id="reply<%= @topic.id %>">
|
||||||
<%= form_for @reply, :as => :reply, :url => {:action => 'reply', :id => @topic}, :html => {:multipart => true, :id => 'message_form'} do |f| %>
|
<%= form_for @reply, :as => :reply, :url => {:action => 'reply', :id => @topic}, :html => {:multipart => true, :id => 'message_form'} do |f| %>
|
||||||
<%= render :partial => 'form_project', :locals => {:f => f, :replying => true} %>
|
<%= render :partial => 'form_project', :locals => {:f => f, :replying => true} %>
|
||||||
<%= link_to l(:button_cancel), "javascript:void(0)", :onclick => 'project_board_cancel_message_replay();', :class => "blue_btn grey_btn fr c_white mt10 mr5" %>
|
<%= link_to l(:button_cancel), "javascript:void(0)", :onclick => 'project_board_cancel_message_replay();', :class => "grey_btn fr c_white mt10 mr5 ml10" %>
|
||||||
<%= link_to l(:button_submit), "javascript:void(0)", :onclick => 'project_board_submit_message_replay();', :class => "blue_btn fr c_white mt10", :style => "margin-left: 50px;" %>
|
<%= link_to l(:button_submit), "javascript:void(0)", :onclick => 'project_board_submit_message_replay();', :class => "blue_btn fr c_white mt10", :style => "margin-left: 50px;" %>
|
||||||
<% end %>
|
<% end %>
|
||||||
<div class="cl"></div>
|
<div class="cl"></div>
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
<div class="fl">
|
|
||||||
<div id="RSide">
|
<div id="RSide" style="margin-left:0px; margin-bottom:0px; width:728px;">
|
||||||
<div id="users_tb_" class="users_tb_">
|
<div id="users_tb_" class="users_tb_">
|
||||||
<ul>
|
<ul>
|
||||||
<li id="users_tb_1" class="users_hovertab" onclick="x:HoverLi(1);">基本资料</li>
|
<li id="users_tb_1" class="users_hovertab" onclick="x:HoverLi(1);">基本资料</li>
|
||||||
|
@ -197,12 +197,10 @@
|
||||||
<% end %>
|
<% end %>
|
||||||
</div><!--ctt end-->
|
</div><!--ctt end-->
|
||||||
|
|
||||||
|
<!--users_setting end-->
|
||||||
</div><!--users_setting end-->
|
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
<div id="search_school_result_list"
|
<div id="search_school_result_list" style="width: 205px;line-height: 1.5;min-height:20px; max-height: 200px; height: auto !important;display: none;background: white;overflow: scroll;border: solid 1px #cccccc; overflow-x: hidden; overflow-y: auto;">
|
||||||
style="width: 205px;line-height: 1.5;min-height:20px; max-height: 200px; height: auto!; !important;display: none;background: white;overflow: scroll;border: solid 1px #cccccc; overflow-x: hidden; overflow-y: auto;">
|
|
||||||
</div>
|
</div>
|
||||||
<div id="WOpenWindow">
|
<div id="WOpenWindow">
|
||||||
<a class="modal_close" href="#"></a>
|
<a class="modal_close" href="#"></a>
|
||||||
|
|
|
@ -37,10 +37,10 @@
|
||||||
<li class="ml40" >
|
<li class="ml40" >
|
||||||
<% if is_new %>
|
<% if is_new %>
|
||||||
<%= link_to l(:button_create), "javascript:void(0)", :onclick => 'submitNews();', :onmouseover => 'submitFocus(this);', :class => 'blue_btn fl c_white' %>
|
<%= link_to l(:button_create), "javascript:void(0)", :onclick => 'submitNews();', :onmouseover => 'submitFocus(this);', :class => 'blue_btn fl c_white' %>
|
||||||
<%= link_to l(:button_cancel), course_news_index_path(@course), :onclick => '$("#add-news").hide()', :class => 'blue_btn grey_btn fl c_white' %>
|
<%= link_to l(:button_cancel), course_news_index_path(@course), :onclick => '$("#add-news").hide()', :class => 'grey_btn fl c_white ml10' %>
|
||||||
<% else %>
|
<% else %>
|
||||||
<%= link_to l(:button_save), "javascript:void(0)", :onclick => "submitNews();",:onmouseover => 'this.focus()',:class => 'blue_btn fl c_white' %>
|
<%= link_to l(:button_save), "javascript:void(0)", :onclick => "submitNews();",:onmouseover => 'this.focus()',:class => 'blue_btn fl c_white' %>
|
||||||
<%= link_to l(:button_cancel), news_path(@news), :class => 'blue_btn grey_btn fl c_white' %>
|
<%= link_to l(:button_cancel), news_path(@news), :class => 'grey_btn fl c_white ml10' %>
|
||||||
<% end %>
|
<% end %>
|
||||||
<div class="cl"></div>
|
<div class="cl"></div>
|
||||||
</li>
|
</li>
|
||||||
|
|
|
@ -30,10 +30,10 @@
|
||||||
<li class="ml40" >
|
<li class="ml40" >
|
||||||
<% if is_new %>
|
<% if is_new %>
|
||||||
<%= link_to l(:button_create), "javascript:void(0)", :onclick => 'submitNews();', :onmouseover => 'submitFocus(this);', :class => 'blue_btn fl c_white' %>
|
<%= link_to l(:button_create), "javascript:void(0)", :onclick => 'submitNews();', :onmouseover => 'submitFocus(this);', :class => 'blue_btn fl c_white' %>
|
||||||
<%= link_to l(:button_cancel), project_news_index_path(@project), :onclick => '$("#add-news").hide()', :class => 'blue_btn grey_btn fl c_white' %>
|
<%= link_to l(:button_cancel), project_news_index_path(@project), :onclick => '$("#add-news").hide()', :class => 'grey_btn fl c_white ml10' %>
|
||||||
<% else %>
|
<% else %>
|
||||||
<%= link_to l(:button_save), "javascript:void(0)", :onclick => "submitNews();",:onmouseover => 'this.focus()',:class => 'blue_btn fl c_white'%>
|
<%= link_to l(:button_save), "javascript:void(0)", :onclick => "submitNews();",:onmouseover => 'this.focus()',:class => 'blue_btn fl c_white'%>
|
||||||
<%= link_to l(:button_cancel), news_path(@news), :class => 'blue_btn grey_btn fl c_white' %>
|
<%= link_to l(:button_cancel), news_path(@news), :class => 'grey_btn fl c_white ml10' %>
|
||||||
<% end %>
|
<% end %>
|
||||||
<div class="cl"></div>
|
<div class="cl"></div>
|
||||||
</li>
|
</li>
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
<%= stylesheet_link_tag 'courses' %>
|
<%= stylesheet_link_tag 'css/courses' %>
|
||||||
<div class="resources">
|
<div class="resources">
|
||||||
<div class="project_r_h" style="width: 720px;">
|
<div class="project_r_h" style="width: 720px;">
|
||||||
<h2 class="project_h2"> 组织成员</h2>
|
<h2 class="project_h2"> 组织成员</h2>
|
||||||
|
|
|
@ -49,8 +49,8 @@
|
||||||
<div class="cl"></div>
|
<div class="cl"></div>
|
||||||
</li>
|
</li>
|
||||||
<li class=" ml125" >
|
<li class=" ml125" >
|
||||||
<a href="javascript:void(0)" class="blue_btn fl c_white" onclick="submit_new_organization();" >创建</a>
|
<a href="javascript:void(0)" class="blue_btn fl c_white mr10 f14" onclick="submit_new_organization();" >创建</a>
|
||||||
<%= link_to "取消",user_activities_path(User.current.id),:class => "blue_btn grey_btn fl c_white"%>
|
<%= link_to "取消",user_activities_path(User.current.id),:class => "grey_btn fl c_white f14"%>
|
||||||
<div class="cl"></div>
|
<div class="cl"></div>
|
||||||
</li>
|
</li>
|
||||||
<% end%>
|
<% end%>
|
||||||
|
|
|
@ -10,7 +10,7 @@
|
||||||
<input type="hidden" name="course_id" value="<%= polls_group_id%>" />
|
<input type="hidden" name="course_id" value="<%= polls_group_id%>" />
|
||||||
<%= content_tag('div', poll_check_box_tags('polls[]', polls,polls_group_id), :id => 'courses',:style=> 'width: 300px;')%>
|
<%= content_tag('div', poll_check_box_tags('polls[]', polls,polls_group_id), :id => 'courses',:style=> 'width: 300px;')%>
|
||||||
<a id="submit_quote" href="javascript:void(0)" class="blue_btn fl c_white" style="margin-left: 0px !important;" onclick="submit_quote();">导 入</a>
|
<a id="submit_quote" href="javascript:void(0)" class="blue_btn fl c_white" style="margin-left: 0px !important;" onclick="submit_quote();">导 入</a>
|
||||||
<a href="javascript:void(0)" class="blue_btn grey_btn fl c_white " onclick="closeModal();">取 消</a>
|
<a href="javascript:void(0)" class="grey_btn fl c_white ml10" onclick="closeModal();">取 消</a>
|
||||||
<% end -%>
|
<% end -%>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
|
@ -22,7 +22,7 @@
|
||||||
<%= link_to "(#{@project.project_score.attach_num})", project_files_path(@project), :class => "subnav_num c_orange",:id=>'project_files_count_nav' %>
|
<%= link_to "(#{@project.project_score.attach_num})", project_files_path(@project), :class => "subnav_num c_orange",:id=>'project_files_count_nav' %>
|
||||||
<% end %>
|
<% end %>
|
||||||
<% if User.current.member_of?(@project) %>
|
<% if User.current.member_of?(@project) %>
|
||||||
<%= link_to "+"+l(:label_upload_source), project_files_path(@project,:flag => true), :class => "subnav_green ml95" %>
|
<%= link_to "+"+l(:label_upload_source), project_files_path(@project,:flag => true), :class => "subnav_green ml105" %>
|
||||||
<% end %>
|
<% end %>
|
||||||
</div>
|
</div>
|
||||||
<% end %>
|
<% end %>
|
|
@ -32,6 +32,25 @@
|
||||||
<div class="mt10" style="font-weight:normal;">
|
<div class="mt10" style="font-weight:normal;">
|
||||||
<%= render :partial=>"attachments/activity_attach", :locals=>{:activity => activity} %>
|
<%= render :partial=>"attachments/activity_attach", :locals=>{:activity => activity} %>
|
||||||
</div>
|
</div>
|
||||||
|
<% if User.current.logged? %>
|
||||||
|
<div class="homepagePostSetting">
|
||||||
|
<ul>
|
||||||
|
<li class="homepagePostSettingIcon">
|
||||||
|
<% if User.current.logged? %>
|
||||||
|
<ul class="homepagePostSettiongText">
|
||||||
|
<li><%= link_to("发送", 'javascript:void(0)',:class => "postOptionLink",:onclick=>"show_send('#{activity.id}',#{User.current.id},'news')") %></li>
|
||||||
|
<li>
|
||||||
|
<%= link_to(l(:button_edit), {:controller => 'news', :action => 'edit', :id => activity}, :class => 'postOptionLink') if activity.author == User.current %>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<%= delete_link(news_path(activity), :data => {:confirm => l(:text_are_you_sure)}, :class => 'postOptionLink') if activity.author == User.current %>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
<% end %>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
<% end %>
|
||||||
</div>
|
</div>
|
||||||
<div class="cl"></div>
|
<div class="cl"></div>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -33,7 +33,7 @@
|
||||||
<%= link_to "(#{@project.project_score.attach_num})", project_files_path(@project), :class => "subnav_num c_orange",:id=>'project_files_count_nav' %>
|
<%= link_to "(#{@project.project_score.attach_num})", project_files_path(@project), :class => "subnav_num c_orange",:id=>'project_files_count_nav' %>
|
||||||
<% end %>
|
<% end %>
|
||||||
<% if User.current.member_of?(@project) %>
|
<% if User.current.member_of?(@project) %>
|
||||||
<%= link_to "+"+l(:label_upload_source), project_files_path(@project,:flag => true), :class => "subnav_green ml95" %>
|
<%= link_to "+"+l(:label_upload_source), project_files_path(@project,:flag => true), :class => "subnav_green ml105" %>
|
||||||
<% end %>
|
<% end %>
|
||||||
</div>
|
</div>
|
||||||
<% end%>
|
<% end%>
|
||||||
|
|
|
@ -11,7 +11,7 @@
|
||||||
<input type="hidden" name="in_project_toolbar" value="Y">
|
<input type="hidden" name="in_project_toolbar" value="Y">
|
||||||
<%= render :partial => 'projects/upload_project_files_list',:locals => {:container => container} %>
|
<%= render :partial => 'projects/upload_project_files_list',:locals => {:container => container} %>
|
||||||
<div class="cl"></div>
|
<div class="cl"></div>
|
||||||
<a href="javascript:void(0);" class=" fr grey_btn mr40" onclick="hideModal();"><%= l(:button_cancel)%></a>
|
<a href="javascript:void(0);" class="fr grey_btn mr40 ml10" onclick="hideModal();"><%= l(:button_cancel)%></a>
|
||||||
<a id="submit_resource" href="javascript:void(0);" class="blue_btn fr" onclick="submit_resource();"><%= l(:button_confirm)%></a>
|
<a id="submit_resource" href="javascript:void(0);" class="blue_btn fr" onclick="submit_resource();"><%= l(:button_confirm)%></a>
|
||||||
<% end %>
|
<% end %>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -53,7 +53,7 @@
|
||||||
</li>
|
</li>
|
||||||
<li class=" ml90" >
|
<li class=" ml90" >
|
||||||
<a href="javascript:void(0)" class="blue_btn fl c_white" onclick="submit_new_project();" >提交</a>
|
<a href="javascript:void(0)" class="blue_btn fl c_white" onclick="submit_new_project();" >提交</a>
|
||||||
<%= link_to "取消",user_activities_path(User.current.id),:class => "blue_btn grey_btn fl c_white"%>
|
<%= link_to "取消",user_activities_path(User.current.id),:class => "grey_btn fl c_white ml10"%>
|
||||||
<div class="cl"></div>
|
<div class="cl"></div>
|
||||||
</li>
|
</li>
|
||||||
<% end%>
|
<% end%>
|
||||||
|
|
|
@ -5,7 +5,7 @@
|
||||||
|
|
||||||
<!--</div>-->
|
<!--</div>-->
|
||||||
<!--</div>-->
|
<!--</div>-->
|
||||||
<%= stylesheet_link_tag 'org' %>
|
<%= stylesheet_link_tag 'css/org' %>
|
||||||
|
|
||||||
<div>
|
<div>
|
||||||
<div class="relateOrg fl">
|
<div class="relateOrg fl">
|
||||||
|
@ -16,7 +16,7 @@
|
||||||
<div id="search_orgs_result_list" class="ml20"></div>
|
<div id="search_orgs_result_list" class="ml20"></div>
|
||||||
<ul id="paginator" class="wlist ml20" style="float:none;"></ul>
|
<ul id="paginator" class="wlist ml20" style="float:none;"></ul>
|
||||||
<a href="javascript:void(0);" class="saveBtn db fl ml20 mr15 mb5" onclick="join_org(<%= @project.id %>);">关联</a>
|
<a href="javascript:void(0);" class="saveBtn db fl ml20 mr15 mb5" onclick="join_org(<%= @project.id %>);">关联</a>
|
||||||
<a href="javascript:void(0);" class="cancelBtn db fl" onclick="cancel_join_orgs();">取消</a>
|
<a href="javascript:void(0);" class="grey_btn db fl" onclick="cancel_join_orgs();">取消</a>
|
||||||
<% end %>
|
<% end %>
|
||||||
</div>
|
</div>
|
||||||
<div class="relatedList fr">
|
<div class="relatedList fr">
|
||||||
|
|
|
@ -22,8 +22,8 @@
|
||||||
<td class="tl">
|
<td class="tl">
|
||||||
<a class="c_blue02"><%= 'shared' if version.project != @project %> <%= link_to_version version %></a>
|
<a class="c_blue02"><%= 'shared' if version.project != @project %> <%= link_to_version version %></a>
|
||||||
</td>
|
</td>
|
||||||
<td class="description"><%= format_date(version.effective_date) %></td>
|
<td class=""><%= format_date(version.effective_date) %></td>
|
||||||
<td class="description tl" style="word-break:break-all;"><%=h version.description %></td>
|
<td class="tl" style="word-break:break-all;"><%=h version.description %></td>
|
||||||
<td class="status"><%= l("version_status_#{version.status}") %></td>
|
<td class="status"><%= l("version_status_#{version.status}") %></td>
|
||||||
<!--<td class="sharing"><%#=h format_version_sharing(version.sharing) %></td>-->
|
<!--<td class="sharing"><%#=h format_version_sharing(version.sharing) %></td>-->
|
||||||
<!--<td class="tl" style="overflow: hidden;text-overflow: ellipsis;white-space: nowrap;" title="">-->
|
<!--<td class="tl" style="overflow: hidden;text-overflow: ellipsis;white-space: nowrap;" title="">-->
|
||||||
|
@ -73,7 +73,7 @@
|
||||||
<!--<%#= f.text_field :wiki_page_title, :size =>60, :label => :label_wiki_page, :disabled => @project.wiki.nil? %>-->
|
<!--<%#= f.text_field :wiki_page_title, :size =>60, :label => :label_wiki_page, :disabled => @project.wiki.nil? %>-->
|
||||||
<!--</li>-->
|
<!--</li>-->
|
||||||
<li >
|
<li >
|
||||||
<label class="label02"><%=l(:label_date)%>:</label>
|
<label class="label02"><%=l(:field_deadline)%>:</label>
|
||||||
<%= f.text_field :effective_date, :size => 10, :readonly => true,:class=>" fl" %>
|
<%= f.text_field :effective_date, :size => 10, :readonly => true,:class=>" fl" %>
|
||||||
<%= calendar_for('version_effective_date') %>
|
<%= calendar_for('version_effective_date') %>
|
||||||
</li>
|
</li>
|
||||||
|
|
|
@ -11,7 +11,7 @@
|
||||||
<div class="NewsBannerName">项目动态</div>
|
<div class="NewsBannerName">项目动态</div>
|
||||||
<ul class="resourcesSelect" class="resourcesSelect">
|
<ul class="resourcesSelect" class="resourcesSelect">
|
||||||
<li class="resourcesSelected"><a href="javascript:void(0);" class="resourcesIcon"></a>
|
<li class="resourcesSelected"><a href="javascript:void(0);" class="resourcesIcon"></a>
|
||||||
<ul class="homepagePostType">
|
<ul class="homepagePostType2">
|
||||||
<li>
|
<li>
|
||||||
<ul class="homepagePostTypeHomework fl">
|
<ul class="homepagePostTypeHomework fl">
|
||||||
<li><%= link_to "全部动态", {:controller => "projects", :action => "show", :type => nil}, :class => "homepagePostTypeAll postTypeGrey" %></li>
|
<li><%= link_to "全部动态", {:controller => "projects", :action => "show", :type => nil}, :class => "homepagePostTypeAll postTypeGrey" %></li>
|
||||||
|
|
|
@ -10,7 +10,7 @@
|
||||||
<li class="analysis-result-version fl fontBlue2" >分支</li>
|
<li class="analysis-result-version fl fontBlue2" >分支</li>
|
||||||
<li class="analysis-result-loc fl fontBlue2" >语言</li>
|
<li class="analysis-result-loc fl fontBlue2" >语言</li>
|
||||||
<li class="analysis-result-debt fl fontBlue2" >路径</li>
|
<li class="analysis-result-debt fl fontBlue2" >路径</li>
|
||||||
<li class="analysis-result-time fl fontBlue2" >编辑</li>
|
<li class="analysis-result-time fl fontBlue2" ></li>
|
||||||
<!--<li class="analysis-result-time fl fontBlue2" >bianji</li>-->
|
<!--<li class="analysis-result-time fl fontBlue2" >bianji</li>-->
|
||||||
<div class="cl"></div>
|
<div class="cl"></div>
|
||||||
</ul>
|
</ul>
|
||||||
|
@ -21,16 +21,17 @@
|
||||||
<li class="analysis-result-version fl fontBlue2 hidden" title="分支名"><%= qa.branch %></li>
|
<li class="analysis-result-version fl fontBlue2 hidden" title="分支名"><%= qa.branch %></li>
|
||||||
<li class="analysis-result-loc fl fontBlue2 hidden" title="语言"><%= qa.language %></li>
|
<li class="analysis-result-loc fl fontBlue2 hidden" title="语言"><%= qa.language %></li>
|
||||||
<li class="analysis-result-debt fl fontBlue2 hidden" title="路径"><%= qa.path %></li>
|
<li class="analysis-result-debt fl fontBlue2 hidden" title="路径"><%= qa.path %></li>
|
||||||
<% if User.current.try(:login) == qa.author_login %>
|
<% if User.current.try(:login) == qa.author_login || User.current.admin? || is_project_manager?(User.current.id, @project.id) %>
|
||||||
<li class="analysis-result-time fl" title="编辑">
|
<li class="analysis-result-time fl" title="编辑">
|
||||||
<%=link_to "编辑", edit_project_quality_analysi_path(qa, :project_id => @project.id), :remote => true, :class => "fontBlue2" %>
|
<%=link_to "编辑", edit_project_quality_analysi_path(qa, :project_id => @project.id), :remote => true, :class => "fontBlue2" %><span style="color: #888"> / </span>
|
||||||
|
<%=link_to "删除", delete_project_quality_analysi_path(qa, :project_id => @project.id), :method => "delete", :confirm => "删除会一并删除分析结果,确定删除吗?", :class => "fontBlue2" %>
|
||||||
</li>
|
</li>
|
||||||
<% else %>
|
<% end %>
|
||||||
<li class="analysis-result-time fl" style="color: #888" title="编辑">编辑</li>
|
|
||||||
<% end %>
|
|
||||||
<div class="cl"></div>
|
<div class="cl"></div>
|
||||||
</ul>
|
</ul>
|
||||||
<% end %>
|
<% end %>
|
||||||
|
<% else %>
|
||||||
|
<%#= 数据为空时候界面,待完善 %>
|
||||||
<% end %>
|
<% end %>
|
||||||
|
|
||||||
|
|
||||||
|
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue