commit
d7ed4a985b
@ -1,28 +1,30 @@
|
|||||||
*.swp
|
*.swp
|
||||||
/.project
|
/.project
|
||||||
/.idea
|
/.idea
|
||||||
/.bundle
|
/.bundle
|
||||||
*.swp
|
*.swp
|
||||||
/config/database.yml
|
/config/database.yml
|
||||||
/config/configuration.yml
|
/config/configuration.yml
|
||||||
/files/*
|
/config/additional_environment.rb
|
||||||
/log/*
|
/files/*
|
||||||
/public/tmp/*
|
/log/*
|
||||||
/tmp/*
|
/public/tmp/*
|
||||||
/public/cache/*
|
/tmp/*
|
||||||
.gitignore
|
/public/cache/*
|
||||||
/config/newrelic.yml
|
.gitignore
|
||||||
/public/images/avatars/*
|
/config/newrelic.yml
|
||||||
/Gemfile
|
/public/images/avatars/*
|
||||||
/Gemfile.lock
|
/Gemfile
|
||||||
/db/schema.rb
|
/Gemfile.lock
|
||||||
/Gemfile.lock
|
/db/schema.rb
|
||||||
/lib/plugins/acts_as_versioned/test/debug.log
|
/Gemfile.lock
|
||||||
.rbenv-gemsets
|
/lib/plugins/acts_as_versioned/test/debug.log
|
||||||
.DS_Store
|
.rbenv-gemsets
|
||||||
public/api_doc/
|
.DS_Store
|
||||||
/.metadata
|
public/api_doc/
|
||||||
vendor/cache
|
/.metadata
|
||||||
/files
|
vendor/cache
|
||||||
/public/images/avatars
|
/files
|
||||||
/public/files
|
/public/images/avatars
|
||||||
|
/public/files
|
||||||
|
/tags
|
||||||
|
@ -1,2 +1,2 @@
|
|||||||
--format documentation
|
|
||||||
--color
|
--color
|
||||||
|
--require spec_helper
|
||||||
|
@ -1,140 +1,83 @@
|
|||||||
source 'http://ruby.taobao.org'
|
source 'http://ruby.taobao.org'
|
||||||
#source 'http://ruby.sdutlinux.org/'
|
#source 'http://ruby.sdutlinux.org/'
|
||||||
|
|
||||||
unless RUBY_PLATFORM =~ /w32/
|
unless RUBY_PLATFORM =~ /w32/
|
||||||
# unix-like only
|
# unix-like only
|
||||||
gem 'iconv'
|
gem 'iconv'
|
||||||
end
|
end
|
||||||
|
|
||||||
gem 'rubyzip'
|
gem "mysql2", "= 0.3.18"
|
||||||
gem 'delayed_job_active_record'#, :group => :production
|
gem 'redis-rails'
|
||||||
gem 'daemons'
|
gem 'rubyzip'
|
||||||
gem 'grape', '~> 0.9.0'
|
gem 'delayed_job_active_record'#, :group => :production
|
||||||
gem 'grape-entity'
|
gem 'daemons'
|
||||||
gem 'seems_rateable', '~> 1.0.13'
|
gem 'grape', '~> 0.9.0'
|
||||||
gem "rails", "3.2.13"
|
gem 'grape-entity'
|
||||||
gem "jquery-rails", "~> 2.0.2"
|
gem 'seems_rateable', '~> 1.0.13'
|
||||||
gem "i18n", "~> 0.6.0"
|
gem "rails", "3.2.13"
|
||||||
gem 'coderay', '~> 1.1.0'
|
gem "jquery-rails", "~> 2.0.2"
|
||||||
gem "fastercsv", "~> 1.5.0", :platforms => [:mri_18, :mingw_18, :jruby]
|
gem "i18n", "~> 0.6.0"
|
||||||
gem "builder", "3.0.0"
|
gem 'coderay', '~> 1.1.0'
|
||||||
gem 'acts-as-taggable-on', '2.4.1'
|
gem "fastercsv", "~> 1.5.0", :platforms => [:mri_18, :mingw_18, :jruby]
|
||||||
gem 'spreadsheet'
|
gem "builder", "3.0.0"
|
||||||
gem 'ruby-ole'
|
gem 'acts-as-taggable-on', '2.4.1'
|
||||||
#gem 'email_verifier', path: 'lib/email_verifier'
|
gem 'spreadsheet'
|
||||||
gem 'rufus-scheduler'
|
gem 'ruby-ole'
|
||||||
#gem 'dalli', path: 'lib/dalli-2.7.2'
|
gem 'rails_kindeditor',path:'lib/rails_kindeditor'
|
||||||
gem 'rails_kindeditor',path:'lib/rails_kindeditor'
|
gem "rmagick", ">= 2.0.0"
|
||||||
group :development do
|
|
||||||
gem 'grape-swagger'
|
group :development do
|
||||||
#gem 'grape-swagger-ui', git: 'https://github.com/guange2015/grape-swagger-ui.git'
|
gem 'grape-swagger'
|
||||||
gem 'puma' if RbConfig::CONFIG['host_os'] =~ /linux/
|
gem 'better_errors', '~> 1.1.0'
|
||||||
gem 'pry-rails'
|
gem 'rack-mini-profiler', '~> 0.9.3'
|
||||||
if RUBY_VERSION >= '2.0.0'
|
end
|
||||||
gem 'pry-byebug'
|
|
||||||
else
|
group :development, :test do
|
||||||
# gem 'pry-debugger'
|
unless RUBY_PLATFORM =~ /w32/
|
||||||
end
|
gem 'pry-rails'
|
||||||
gem 'pry-stack_explorer'
|
if RUBY_VERSION >= '2.0.0'
|
||||||
gem 'better_errors', '~> 1.1.0'
|
gem 'pry-byebug'
|
||||||
gem 'rack-mini-profiler', '~> 0.9.3'
|
end
|
||||||
end
|
gem 'pry-stack_explorer'
|
||||||
|
end
|
||||||
group :test do
|
|
||||||
gem "shoulda", "~> 3.5.0"
|
gem 'rspec-rails', '~> 3.0'
|
||||||
gem "mocha", "~> 1.1.0"
|
gem 'factory_girl_rails'
|
||||||
gem 'capybara', '~> 2.4.1'
|
end
|
||||||
gem 'nokogiri', '~> 1.6.3'
|
|
||||||
gem 'factory_girl', '~> 4.4.0'
|
# Gems used only for assets and not required
|
||||||
gem 'selenium-webdriver', '~> 2.42.0'
|
# in production environments by default.
|
||||||
|
group :assets do
|
||||||
gem "faker"
|
gem 'sass-rails', '~> 3.2.3'
|
||||||
# platforms :mri, :mingw do
|
gem 'coffee-rails', '~> 3.2.1'
|
||||||
# group :rmagick do
|
|
||||||
# # RMagick 2 supports ruby 1.9
|
# See https://github.com/sstephenson/execjs#readme for more supported runtimes
|
||||||
# # RMagick 1 would be fine for ruby 1.8 but Bundler does not support
|
gem 'therubyracer', :platforms => :ruby
|
||||||
# # different requirements for the same gem on different platforms
|
|
||||||
# gem "rmagick", ">= 2.0.0"
|
gem 'uglifier', '>= 1.0.3'
|
||||||
# end
|
end
|
||||||
#end
|
|
||||||
end
|
# Optional gem for LDAP authentication
|
||||||
|
group :ldap do
|
||||||
# Gems used only for assets and not required
|
gem "net-ldap", "~> 0.3.1"
|
||||||
# in production environments by default.
|
end
|
||||||
group :assets do
|
|
||||||
gem 'sass-rails', '~> 3.2.3'
|
|
||||||
gem 'coffee-rails', '~> 3.2.1'
|
# Optional gem for OpenID authentication
|
||||||
|
group :openid do
|
||||||
# See https://github.com/sstephenson/execjs#readme for more supported runtimes
|
gem "ruby-openid", "~> 2.1.4", :require => "openid"
|
||||||
gem 'therubyracer', :platforms => :ruby
|
gem "rack-openid"
|
||||||
|
end
|
||||||
gem 'uglifier', '>= 1.0.3'
|
|
||||||
end
|
|
||||||
|
database_file = File.join(File.dirname(__FILE__), "config/database.yml")
|
||||||
# Optional gem for LDAP authentication
|
if File.exist?(database_file)
|
||||||
group :ldap do
|
else
|
||||||
gem "net-ldap", "~> 0.3.1"
|
warn("Please configure your config/database.yml first")
|
||||||
end
|
end
|
||||||
|
|
||||||
|
# Load plugins' Gemfiles
|
||||||
# Optional gem for OpenID authentication
|
Dir.glob File.expand_path("../plugins/*/Gemfile", __FILE__) do |file|
|
||||||
group :openid do
|
puts "Loading #{file} ..." if $DEBUG # `ruby -d` or `bundle -v`
|
||||||
gem "ruby-openid", "~> 2.1.4", :require => "openid"
|
instance_eval File.read(file)
|
||||||
gem "rack-openid"
|
end
|
||||||
end
|
|
||||||
|
|
||||||
# Optional gem for exporting the gantt to a PNG file, not supported with jruby
|
|
||||||
platforms :jruby do
|
|
||||||
# jruby-openssl is bundled with JRuby 1.7.0
|
|
||||||
gem "jruby-openssl" if Object.const_defined?(:JRUBY_VERSION) && JRUBY_VERSION < '1.7.0'
|
|
||||||
gem "activerecord-jdbc-adapter", "1.2.5"
|
|
||||||
end
|
|
||||||
|
|
||||||
# Include database gems for the adapters found in the database
|
|
||||||
# configuration file
|
|
||||||
require 'erb'
|
|
||||||
require 'yaml'
|
|
||||||
database_file = File.join(File.dirname(__FILE__), "config/database.yml")
|
|
||||||
if File.exist?(database_file)
|
|
||||||
database_config = YAML::load(ERB.new(IO.read(database_file)).result)
|
|
||||||
adapters = database_config.values.map {|c| c['adapter']}.compact.uniq
|
|
||||||
if adapters.any?
|
|
||||||
adapters.each do |adapter|
|
|
||||||
case adapter
|
|
||||||
when 'mysql2'
|
|
||||||
gem "mysql2", "= 0.3.18", :platforms => [:mri, :mingw]
|
|
||||||
gem "activerecord-jdbcmysql-adapter", :platforms => :jruby
|
|
||||||
when 'mysql'
|
|
||||||
gem "mysql", "~> 2.8.1", :platforms => [:mri, :mingw]
|
|
||||||
gem "activerecord-jdbcmysql-adapter", :platforms => :jruby
|
|
||||||
when /postgresql/
|
|
||||||
gem "pg", ">= 0.11.0", :platforms => [:mri, :mingw]
|
|
||||||
gem "activerecord-jdbcpostgresql-adapter", :platforms => :jruby
|
|
||||||
when /sqlite3/
|
|
||||||
gem "sqlite3", :platforms => [:mri, :mingw]
|
|
||||||
gem "activerecord-jdbcsqlite3-adapter", :platforms => :jruby
|
|
||||||
when /sqlserver/
|
|
||||||
gem "tiny_tds", "~> 0.5.1", :platforms => [:mri, :mingw]
|
|
||||||
gem "activerecord-sqlserver-adapter", :platforms => [:mri, :mingw]
|
|
||||||
else
|
|
||||||
warn("Unknown database adapter `#{adapter}` found in config/database.yml, use Gemfile.local to load your own database gems")
|
|
||||||
end
|
|
||||||
end
|
|
||||||
else
|
|
||||||
warn("No adapter found in config/database.yml, please configure it first")
|
|
||||||
end
|
|
||||||
else
|
|
||||||
warn("Please configure your config/database.yml first")
|
|
||||||
end
|
|
||||||
|
|
||||||
local_gemfile = File.join(File.dirname(__FILE__), "Gemfile.local")
|
|
||||||
if File.exists?(local_gemfile)
|
|
||||||
puts "Loading Gemfile.local ..." if $DEBUG # `ruby -d` or `bundle -v`
|
|
||||||
instance_eval File.read(local_gemfile)
|
|
||||||
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
|
|
||||||
|
@ -0,0 +1,18 @@
|
|||||||
|
module Mobile
|
||||||
|
module Entities
|
||||||
|
class Homeworkscore < Grape::Entity
|
||||||
|
include Redmine::I18n
|
||||||
|
include ApplicationHelper
|
||||||
|
def self.homeworkscore_expose(field)
|
||||||
|
expose field do |f,opt|
|
||||||
|
if f.is_a?(Hash) && f.key?(field)
|
||||||
|
f[field]
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
homeworkscore_expose :name
|
||||||
|
homeworkscore_expose :score
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
@ -0,0 +1,34 @@
|
|||||||
|
module Mobile
|
||||||
|
module Entities
|
||||||
|
class Member < Grape::Entity
|
||||||
|
include ApplicationHelper
|
||||||
|
include ApiHelper
|
||||||
|
def self.member_expose(f)
|
||||||
|
expose f do |u,opt|
|
||||||
|
if u.is_a?(Hash) && u.key?(f)
|
||||||
|
u[f]
|
||||||
|
elsif u.is_a?(::Member)
|
||||||
|
if u.respond_to?(f)
|
||||||
|
u.send(f)
|
||||||
|
else
|
||||||
|
case f
|
||||||
|
when :student_id
|
||||||
|
u.user.user_extensions.student_id
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
expose :user, using: Mobile::Entities::User do |c, opt|
|
||||||
|
if c.is_a?(::Member)
|
||||||
|
c.user
|
||||||
|
end
|
||||||
|
end
|
||||||
|
member_expose :student_id
|
||||||
|
member_expose :score
|
||||||
|
member_expose :id
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
@ -0,0 +1,42 @@
|
|||||||
|
class DiscussDemosController < ApplicationController
|
||||||
|
def index
|
||||||
|
|
||||||
|
@discuss_demo_list = DiscussDemo.where("body is not null").order("created_at desc").page(params[:page] || 1).per(10)
|
||||||
|
end
|
||||||
|
|
||||||
|
def new
|
||||||
|
@discuss_demo = DiscussDemo.create
|
||||||
|
@discuss_demo.save!
|
||||||
|
@discuss_demo
|
||||||
|
end
|
||||||
|
|
||||||
|
def create
|
||||||
|
|
||||||
|
end
|
||||||
|
|
||||||
|
def update
|
||||||
|
@discuss_demo = DiscussDemo.find(params[:id])
|
||||||
|
@discuss_demo.update_attributes(:title => params[:discuss_demo][:title],:body => params[:discuss_demo][:body])
|
||||||
|
redirect_to :controller=> 'discuss_demos',:action => 'show',:id => params[:id]
|
||||||
|
end
|
||||||
|
|
||||||
|
def delete
|
||||||
|
|
||||||
|
end
|
||||||
|
|
||||||
|
def destroy
|
||||||
|
asset = Kindeditor::Asset.find_by_owner_id(params[:id])
|
||||||
|
if !asset.nil?
|
||||||
|
filepath = File.join(Rails.root,"public","files","uploads",
|
||||||
|
asset[:created_at].to_s.gsub("+0800","").to_datetime.strftime("%Y%m").to_s,
|
||||||
|
asset[:asset].to_s)
|
||||||
|
File.delete(filepath) if File.exist?filepath
|
||||||
|
end
|
||||||
|
DiscussDemo.destroy(params[:id])
|
||||||
|
redirect_to :controller=> 'discuss_demos',:action => 'index'
|
||||||
|
end
|
||||||
|
|
||||||
|
def show
|
||||||
|
@discuss_demo = DiscussDemo.find(params[:id])
|
||||||
|
end
|
||||||
|
end
|
@ -1,86 +1,86 @@
|
|||||||
# encoding: utf-8
|
# encoding: utf-8
|
||||||
=begin
|
=begin
|
||||||
identity字段含义
|
identity字段含义
|
||||||
0 教师教授
|
0 教师教授
|
||||||
1 学生
|
1 学生
|
||||||
2 企业
|
2 企业
|
||||||
3 开发者
|
3 开发者
|
||||||
=end
|
=end
|
||||||
class UserExtensions < ActiveRecord::Base
|
class UserExtensions < ActiveRecord::Base
|
||||||
validate :school, presence: true
|
validate :school, presence: true
|
||||||
|
|
||||||
belongs_to :user
|
belongs_to :user
|
||||||
belongs_to :school, :class_name => 'School', :foreign_key => :school_id
|
belongs_to :school, :class_name => 'School', :foreign_key => :school_id
|
||||||
attr_accessible :user_id,:birthday,:brief_introduction,:gender,:location,:occupation,:work_experience,:zip_code,:identity, :technical_title,:student_id
|
attr_accessible :user_id,:birthday,:brief_introduction,:gender,:location,:occupation,:work_experience,:zip_code,:identity, :technical_title,:student_id
|
||||||
TEACHER = 0
|
TEACHER = 0
|
||||||
STUDENT = 1
|
STUDENT = 1
|
||||||
ENTERPRISE = 2
|
ENTERPRISE = 2
|
||||||
DEVELOPER = 3
|
DEVELOPER = 3
|
||||||
#this method was used to update the table user_extensions
|
#this method was used to update the table user_extensions
|
||||||
def update_user_extensions(birthday=nil,brief_introduction=nil,
|
def update_user_extensions(birthday=nil,brief_introduction=nil,
|
||||||
gender=nil,location=nil,occupation=nil,work_experience=nil,zip_code=nil)
|
gender=nil,location=nil,occupation=nil,work_experience=nil,zip_code=nil)
|
||||||
self.birthday = birthday
|
self.birthday = birthday
|
||||||
self.brief_introduction = brief_introduction
|
self.brief_introduction = brief_introduction
|
||||||
self.gender = gender
|
self.gender = gender
|
||||||
self.location = location
|
self.location = location
|
||||||
self.occupation = occupation
|
self.occupation = occupation
|
||||||
self.work_experience = work_experience
|
self.work_experience = work_experience
|
||||||
self.zip_code = zip_code
|
self.zip_code = zip_code
|
||||||
self.save
|
self.save
|
||||||
end
|
end
|
||||||
|
|
||||||
def get_brief_introduction
|
def get_brief_introduction
|
||||||
return self.brief_introduction
|
return self.brief_introduction
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
||||||
# added by meng
|
# added by meng
|
||||||
def show_identity
|
def show_identity
|
||||||
if User.current.language == 'zh'||User.current.language == ''
|
if User.current.language == 'zh'||User.current.language == ''
|
||||||
case self.identity
|
case self.identity
|
||||||
when 0
|
when 0
|
||||||
user_identity = l(:label_account_identity_teacher)
|
user_identity = l(:label_account_identity_teacher)
|
||||||
when 1
|
when 1
|
||||||
user_identity = l(:label_account_identity_student)
|
user_identity = l(:label_account_identity_student)
|
||||||
when 2
|
when 2
|
||||||
user_identity = l(:label_account_identity_enterprise)
|
user_identity = l(:label_account_identity_enterprise)
|
||||||
when 3
|
when 3
|
||||||
user_identity = l(:label_account_identity_developer)
|
user_identity = l(:label_account_identity_developer)
|
||||||
else
|
else
|
||||||
user_identity = ''
|
user_identity = ''
|
||||||
end
|
end
|
||||||
else
|
else
|
||||||
case self.identity
|
case self.identity
|
||||||
when 0
|
when 0
|
||||||
user_identity = l(:label_account_identity_teacher)
|
user_identity = l(:label_account_identity_teacher)
|
||||||
when 1
|
when 1
|
||||||
user_identity = l(:label_account_identity_student)
|
user_identity = l(:label_account_identity_student)
|
||||||
when 2
|
when 2
|
||||||
user_identity = l(:label_account_identity_enterprise)
|
user_identity = l(:label_account_identity_enterprise)
|
||||||
when 3
|
when 3
|
||||||
user_identity = l(:label_account_identity_developer)
|
user_identity = l(:label_account_identity_developer)
|
||||||
else
|
else
|
||||||
user_identity = ''
|
user_identity = ''
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
return user_identity
|
return user_identity
|
||||||
end
|
end
|
||||||
# end
|
# end
|
||||||
|
|
||||||
|
|
||||||
def self.introduction(user, message)
|
def self.introduction(user, message)
|
||||||
unless user.user_extensions.nil?
|
unless user.user_extensions.nil?
|
||||||
info = user.user_extensions
|
info = user.user_extensions
|
||||||
info.brief_introduction = message
|
info.brief_introduction = message
|
||||||
info.save
|
info.save
|
||||||
else
|
else
|
||||||
info = UserExtensions.new
|
info = UserExtensions.new
|
||||||
info.user_id = user.id
|
info.user_id = user.id
|
||||||
info.brief_introduction = message
|
info.brief_introduction = message
|
||||||
info.save
|
info.save
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
end
|
end
|
||||||
|
@ -0,0 +1,25 @@
|
|||||||
|
#coding=utf-8
|
||||||
|
#
|
||||||
|
|
||||||
|
class DestroyRepositoryTask
|
||||||
|
def destroy(user_id, rep_id)
|
||||||
|
user = User.find(user_id)
|
||||||
|
repository = Repository.find(rep_id)
|
||||||
|
|
||||||
|
Rails.logger.info "start delete repository #{user} #{repository}"
|
||||||
|
@root_path=RepositoriesHelper::ROOT_PATH
|
||||||
|
@repo_name=user.login.to_s+"_"+repository.identifier.to_s
|
||||||
|
@repository_name=user.login.to_s+"/"+repository.identifier.to_s+".git"
|
||||||
|
@middle=user.login.to_s+"_"+repository.identifier.to_s+"-write:"
|
||||||
|
repository.destroy
|
||||||
|
if(repository.type=="Repository::Git")
|
||||||
|
Rails.logger.info "destory the repository value"+"root path"+@root_path+"repo_name"+@repo_name+
|
||||||
|
"repository_name"+@repository_name+"user group"+@middle
|
||||||
|
system "sed -i /"+@repo_name+"/{d} "+@root_path+"htdocs/user.passwd"
|
||||||
|
system "sed -i /"+@middle+"/{d} "+@root_path+"htdocs/group.passwd"
|
||||||
|
system "rm -r "+@root_path+"htdocs/"+@repository_name
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
handle_asynchronously :destroy,:queue => 'repository'
|
||||||
|
end
|
@ -0,0 +1,18 @@
|
|||||||
|
<div style="font-weight:normal;">
|
||||||
|
<% for attachment in attachments %>
|
||||||
|
<div title="<%= attachment.filename%>" id = "attachment_" style="max-width: 300px;white-space: nowrap;overflow: hidden;text-overflow: ellipsis;float: left;">
|
||||||
|
<%= link_to_short_attachment attachment, :class => 'link_file', :download => true, :length => 100 -%>
|
||||||
|
</div>
|
||||||
|
<% if attachment.is_text? %>
|
||||||
|
<div style="float: left;">
|
||||||
|
<%= link_to image_tag('magnifier.png'),
|
||||||
|
{:controller => 'attachments',
|
||||||
|
:action => 'show',
|
||||||
|
:id => attachment,
|
||||||
|
:filename => attachment.filename},
|
||||||
|
:target => "_blank"%>
|
||||||
|
</div>
|
||||||
|
<% end %>
|
||||||
|
<div class="cl"></div>
|
||||||
|
<% end %>
|
||||||
|
</div>
|
@ -1,8 +1,26 @@
|
|||||||
$('#attachments_<%= j params[:attachment_id] %>').remove();
|
var attachment_html_obj = $('#attachments_<%= j params[:attachment_id] %>');
|
||||||
var count=$('#attachments_fields>span').length;
|
//modify by yutao 2015-5-14 当1个页面存在多个上传控件时此块代码存在bug 故改之 start
|
||||||
if(count<=0){
|
var containerid=$('.remove-upload',attachment_html_obj).data('containerid');
|
||||||
$("#upload_file_count").text(<%= l(:label_no_file_uploaded)%>);
|
if(containerid==undefined){
|
||||||
$(".remove_all").remove();
|
$('#attachments_<%= j params[:attachment_id] %>').remove();
|
||||||
}else{
|
var count=$('#attachments_fields>span').length;
|
||||||
$("#upload_file_count").html("已上传"+"<span id=\"count\">"+count+"</span>"+"个文件");
|
if(count<=0){
|
||||||
}
|
$("#upload_file_count").text('<%= l(:label_no_file_uploaded)%>');
|
||||||
|
$(".remove_all").remove();
|
||||||
|
}else{
|
||||||
|
$("#upload_file_count").html("<span id=\"count\">"+count+"</span>"+"个文件"+"已上传");
|
||||||
|
}
|
||||||
|
}else{
|
||||||
|
$('#attachments_<%= j params[:attachment_id] %>').remove();
|
||||||
|
var count=$('#attachments_fields'+containerid+'>span').length;
|
||||||
|
if(count<=0){
|
||||||
|
$('#upload_file_count'+containerid).text('<%= l(:label_no_file_uploaded)%>');
|
||||||
|
var remove_all_html_obj = $(".remove_all").filter(function(index){
|
||||||
|
return $(this).data('containerid')==containerid;
|
||||||
|
});
|
||||||
|
remove_all_html_obj.remove();
|
||||||
|
}else{
|
||||||
|
$('#upload_file_count'+containerid).html("<span id=\"count\">"+count+"</span>"+"个文件"+"已上传");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
//modify by yutao 2015-5-14 当1个页面存在多个上传控件时此块代码存在bug 故改之 end
|
@ -0,0 +1,66 @@
|
|||||||
|
<style type="text/css">
|
||||||
|
#preview{width:360px;height:360px;border:1px solid #000;overflow:hidden;}
|
||||||
|
#imghead {filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(sizingMethod=image);}
|
||||||
|
</style>
|
||||||
|
<script type="text/javascript">
|
||||||
|
function previewImage(file)
|
||||||
|
{
|
||||||
|
var MAXWIDTH = 360;
|
||||||
|
var MAXHEIGHT = 360;
|
||||||
|
var div = document.getElementById('preview');
|
||||||
|
if (file.files && file.files[0])
|
||||||
|
{
|
||||||
|
div.innerHTML = '<img id=imghead>';
|
||||||
|
var img = document.getElementById('imghead');
|
||||||
|
img.onload = function(){
|
||||||
|
var rect = clacImgZoomParam(MAXWIDTH, MAXHEIGHT, img.offsetWidth, img.offsetHeight);
|
||||||
|
img.width = rect.width;
|
||||||
|
img.height = rect.height;
|
||||||
|
img.style.marginLeft = rect.left+'px';
|
||||||
|
img.style.marginTop = rect.top+'px';
|
||||||
|
}
|
||||||
|
var reader = new FileReader();
|
||||||
|
reader.onload = function(evt){img.src = evt.target.result;}
|
||||||
|
reader.readAsDataURL(file.files[0]);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
var sFilter='filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(sizingMethod=scale,src="';
|
||||||
|
file.select();
|
||||||
|
var src = document.selection.createRange().text;
|
||||||
|
div.innerHTML = '<img id=imghead>';
|
||||||
|
var img = document.getElementById('imghead');
|
||||||
|
img.filters.item('DXImageTransform.Microsoft.AlphaImageLoader').src = src;
|
||||||
|
var rect = clacImgZoomParam(MAXWIDTH, MAXHEIGHT, img.offsetWidth, img.offsetHeight);
|
||||||
|
status =('rect:'+rect.top+','+rect.left+','+rect.width+','+rect.height);
|
||||||
|
div.innerHTML = "<div id=divhead style='width:"+rect.width+"px;height:"+rect.height+"px;margin-top:"+rect.top+"px;margin-left:"+rect.left+"px;"+sFilter+src+"\"'></div>";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
function clacImgZoomParam( maxWidth, maxHeight, width, height ){
|
||||||
|
var param = {top:0, left:0, width:width, height:height};
|
||||||
|
if( width>maxWidth || height>maxHeight )
|
||||||
|
{
|
||||||
|
rateWidth = width / maxWidth;
|
||||||
|
rateHeight = height / maxHeight;
|
||||||
|
|
||||||
|
if( rateWidth > rateHeight )
|
||||||
|
{
|
||||||
|
param.width = maxWidth;
|
||||||
|
param.height = Math.round(height / rateWidth);
|
||||||
|
}else
|
||||||
|
{
|
||||||
|
param.width = Math.round(width / rateHeight);
|
||||||
|
param.height = maxHeight;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
param.left = Math.round((maxWidth - param.width) / 2);
|
||||||
|
param.top = Math.round((maxHeight - param.height) / 2);
|
||||||
|
return param;
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
<div id="preview">
|
||||||
|
<img id="imghead" width=100 height=100 border=0 src="file:///C:/Users/whimlex/Downloads/1.jpg">
|
||||||
|
</div>
|
||||||
|
<br/>
|
||||||
|
<input type="file" onchange="previewImage(this)" />
|
@ -1,4 +1,4 @@
|
|||||||
var imgSpan = $('#avatar_image');
|
var imgSpan = jQuery('#avatar_image');
|
||||||
|
|
||||||
imgSpan.attr({"src":'<%= @urlfile.to_s << "?" << Time.now.to_s%>'});
|
imgSpan.attr({"src":'<%= "#{@urlfile.to_s}?#{Time.now.to_i}" %>'});
|
||||||
|
|
||||||
|
@ -1,201 +1,201 @@
|
|||||||
<!--modified by huang-->
|
<!--modified by huang-->
|
||||||
<script type="text/javascript">
|
<script type="text/javascript">
|
||||||
function ShowCountDown(year,month,day,divname)
|
function ShowCountDown(year,month,day,divname)
|
||||||
{
|
{
|
||||||
var now = new Date();
|
var now = new Date();
|
||||||
var endDate = new Date(year, month-1, day);
|
var endDate = new Date(year, month-1, day);
|
||||||
var leftTime=endDate.getTime()-now.getTime();
|
var leftTime=endDate.getTime()-now.getTime();
|
||||||
var leftsecond = parseInt(leftTime/1000);
|
var leftsecond = parseInt(leftTime/1000);
|
||||||
var day1=Math.floor(leftsecond/(60*60*24));
|
var day1=Math.floor(leftsecond/(60*60*24));
|
||||||
var hour=Math.floor((leftsecond-day1*24*60*60)/3600);
|
var hour=Math.floor((leftsecond-day1*24*60*60)/3600);
|
||||||
var minute=Math.floor((leftsecond-day1*24*60*60-hour*3600)/60);
|
var minute=Math.floor((leftsecond-day1*24*60*60-hour*3600)/60);
|
||||||
var second=Math.floor(leftsecond-day1*24*60*60-hour*3600-minute*60);
|
var second=Math.floor(leftsecond-day1*24*60*60-hour*3600-minute*60);
|
||||||
$("#"+divname).html("<span style='color: #acaeb1;'>作品提交还剩 :</span> <span style='color: red;'>"
|
$("#"+divname).html("<span style='color: #acaeb1;'>作品提交还剩 :</span> <span style='color: red;'>"
|
||||||
+day1+" </span><span style='color: #acaeb1;'>天</span><span style='color: red;'> "
|
+day1+" </span><span style='color: #acaeb1;'>天</span><span style='color: red;'> "
|
||||||
+hour+" </span><span style='color: #acaeb1;'>时</span><span style='color: red;'> "
|
+hour+" </span><span style='color: #acaeb1;'>时</span><span style='color: red;'> "
|
||||||
+minute+" </span><span style='color: #acaeb1;'>分</span><span style='color: red;'> "
|
+minute+" </span><span style='color: #acaeb1;'>分</span><span style='color: red;'> "
|
||||||
+second+" </span><span style='color: #acaeb1;'>秒</span>");
|
+second+" </span><span style='color: #acaeb1;'>秒</span>");
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
<style>
|
<style>
|
||||||
.span_wping{}
|
.span_wping{}
|
||||||
.span_wping a{
|
.span_wping a{
|
||||||
margin-top: 18px;
|
margin-top: 18px;
|
||||||
margin-bottom: 3px;
|
margin-bottom: 3px;
|
||||||
width: 43px;
|
width: 43px;
|
||||||
height: 23px;
|
height: 23px;
|
||||||
background: #15bccf;
|
background: #15bccf;
|
||||||
color: #fff;
|
color: #fff;
|
||||||
text-align: center;
|
text-align: center;
|
||||||
padding: 5px !important;
|
padding: 5px !important;
|
||||||
}
|
}
|
||||||
.span_wping a:hover{ background-color:#03a1b3;}
|
.span_wping a:hover{ background-color:#03a1b3;}
|
||||||
</style>
|
</style>
|
||||||
|
|
||||||
<% if bids.blank? %>
|
<% if bids.blank? %>
|
||||||
<%#= l(:label_uncommit_homework) %>
|
<%#= l(:label_uncommit_homework) %>
|
||||||
暂无作业!
|
暂无作业!
|
||||||
<% else %>
|
<% else %>
|
||||||
<% bids.each do |bid|%>
|
<% bids.each do |bid|%>
|
||||||
<table class="content-text-list">
|
<table class="content-text-list">
|
||||||
<tr>
|
<tr>
|
||||||
<td colspan="2" valign="top" width="50" >
|
<td colspan="2" valign="top" width="50" >
|
||||||
<%= link_to(image_tag(url_to_avatar(bid.author), :class => 'avatar'), user_path(bid.author), :class => "avatar") %>
|
<%= link_to(image_tag(url_to_avatar(bid.author), :class => 'avatar'), user_path(bid.author), :class => "avatar") %>
|
||||||
</td>
|
</td>
|
||||||
<td>
|
<td>
|
||||||
<table width="580px" border="0">
|
<table width="580px" border="0">
|
||||||
<tr>
|
<tr>
|
||||||
<td valign="top">
|
<td valign="top">
|
||||||
<strong>
|
<strong>
|
||||||
<%= link_to(bid.author.lastname+bid.author.firstname, user_path(bid.author)) %>
|
<%= link_to(bid.author.lastname+bid.author.firstname, user_path(bid.author)) %>
|
||||||
</strong>
|
</strong>
|
||||||
<span class="font_lighter">
|
<span class="font_lighter">
|
||||||
<%= l(:label_user_create_project_homework) %>
|
<%= l(:label_user_create_project_homework) %>
|
||||||
</span>
|
</span>
|
||||||
<span>
|
<span>
|
||||||
<%= link_to(bid.name, course_for_bid_path(bid), :class => 'bid_path') %>
|
<%= link_to(bid.name, course_for_bid_path(bid), :class => 'bid_path') %>
|
||||||
</span>
|
</span>
|
||||||
</td>
|
</td>
|
||||||
<td style="width: 150px;">
|
<td style="width: 150px;">
|
||||||
<span style="float: right">
|
<span style="float: right">
|
||||||
<% if User.current.logged? && is_cur_course_student(@course) %>
|
<% if User.current.logged? && is_cur_course_student(@course) %>
|
||||||
<% cur_user_homework = cur_user_homework_for_bid(bid) %>
|
<% cur_user_homework = cur_user_homework_for_bid(bid) %>
|
||||||
<span class="span_wping">
|
<span class="span_wping">
|
||||||
<% if bid.open_anonymous_evaluation == 1 %>
|
<% if bid.open_anonymous_evaluation == 1 %>
|
||||||
<% case bid.comment_status %>
|
<% case bid.comment_status %>
|
||||||
<% when 0 %>
|
<% when 0 %>
|
||||||
<a>未开启匿评</a>
|
<a>未开启匿评</a>
|
||||||
<% when 1 %>
|
<% when 1 %>
|
||||||
<a> 匿评中.. </a>
|
<a> 匿评中.. </a>
|
||||||
<% when 2 %>
|
<% when 2 %>
|
||||||
<a> 匿评结束 </a>
|
<a> 匿评结束 </a>
|
||||||
<% end %>
|
<% end %>
|
||||||
<% end%>
|
<% end%>
|
||||||
</span>
|
</span>
|
||||||
<% if cur_user_homework && cur_user_homework.empty? %>
|
<% if cur_user_homework && cur_user_homework.empty? %>
|
||||||
<span class="span_wping">
|
<span class="span_wping">
|
||||||
<%= link_to l(:label_commit_homework),new_exercise_book_path(bid) %>
|
<%= link_to l(:label_commit_homework),new_exercise_book_path(bid) %>
|
||||||
</span>
|
</span>
|
||||||
<% else %>
|
<% else %>
|
||||||
<span class="span_wping">
|
<span class="span_wping">
|
||||||
<a>已 提 交</a>
|
<a>已 提 交</a>
|
||||||
</span>
|
</span>
|
||||||
<% end %>
|
<% end %>
|
||||||
<% end %>
|
<% end %>
|
||||||
<% if (User.current.admin?||User.current.allowed_to?(:as_teacher,@course)) %>
|
<% if (User.current.admin?||User.current.allowed_to?(:as_teacher,@course)) %>
|
||||||
<% if bid.open_anonymous_evaluation == 1 && bid.homeworks.count >= 2%>
|
<% if bid.open_anonymous_evaluation == 1 && bid.homeworks.count >= 2%>
|
||||||
<span id="<%=bid.id %>_anonymous_comment" class="span_wping">
|
<span id="<%=bid.id %>_anonymous_comment" class="span_wping">
|
||||||
<% case bid.comment_status %>
|
<% case bid.comment_status %>
|
||||||
<% when 0 %>
|
<% when 0 %>
|
||||||
<%= link_to '启动匿评', alert_anonymous_comment_bid_path(bid), id: "#{bid.id}_start_anonymous_comment", remote: true, disable_with: '加载中...' %>
|
<%= link_to '启动匿评', alert_anonymous_comment_bid_path(bid), id: "#{bid.id}_start_anonymous_comment", remote: true, disable_with: '加载中...' %>
|
||||||
<% when 1 %>
|
<% when 1 %>
|
||||||
<%= link_to '关闭匿评', alert_anonymous_comment_bid_path(bid), id: "#{bid.id}_stop_anonymous_comment", remote: true %>
|
<%= link_to '关闭匿评', alert_anonymous_comment_bid_path(bid), id: "#{bid.id}_stop_anonymous_comment", remote: true %>
|
||||||
<% when 2 %>
|
<% when 2 %>
|
||||||
<a href="javascript:" style="background:#8e8e8e;">匿评结束</a>
|
<a href="javascript:" style="background:#8e8e8e;">匿评结束</a>
|
||||||
<% end %>
|
<% end %>
|
||||||
</span>
|
</span>
|
||||||
<%end%>
|
<%end%>
|
||||||
<span class="span_wping">
|
<span class="span_wping">
|
||||||
<%= link_to(
|
<%= link_to(
|
||||||
l(:button_edit),
|
l(:button_edit),
|
||||||
{:action => 'edit', :controller=>'bids', :course_id =>@course.id, :bid_id => bid.id}
|
{:action => 'edit', :controller=>'bids', :course_id =>@course.id, :bid_id => bid.id}
|
||||||
) %>
|
) %>
|
||||||
</span>
|
</span>
|
||||||
<%#= link_to(
|
<%#= link_to(
|
||||||
l(:button_delete),
|
l(:button_delete),
|
||||||
{:action => 'homework_destroy', :controller=>'bids', :course_id => bid.id},
|
{:action => 'homework_destroy', :controller=>'bids', :course_id => bid.id},
|
||||||
:method => :post,
|
:method => :post,
|
||||||
:data => {:confirm => l(:text_are_you_sure)},
|
:data => {:confirm => l(:text_are_you_sure)},
|
||||||
:class => 'icon icon-del'
|
:class => 'icon icon-del'
|
||||||
) %>
|
) %>
|
||||||
<% end %>
|
<% end %>
|
||||||
</span>
|
</span>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td colspan="2">
|
<td colspan="2">
|
||||||
<span class="font_lighter">
|
<span class="font_lighter">
|
||||||
<% bidding_project = bid.biding_projects.all
|
<% bidding_project = bid.biding_projects.all
|
||||||
temp = []
|
temp = []
|
||||||
bidding_project.each do |pro|
|
bidding_project.each do |pro|
|
||||||
if pro.project && pro.project.project_status
|
if pro.project && pro.project.project_status
|
||||||
temp << pro
|
temp << pro
|
||||||
end
|
end
|
||||||
temp
|
temp
|
||||||
end
|
end
|
||||||
%>
|
%>
|
||||||
<% if bid.homework_type == 1%>
|
<% if bid.homework_type == 1%>
|
||||||
<%= l(:label_x_homework_project, :count => bid.homeworks.count) %>
|
<%= l(:label_x_homework_project, :count => bid.homeworks.count) %>
|
||||||
(
|
(
|
||||||
<strong>
|
<strong>
|
||||||
<%= link_to bid.homeworks.count, course_for_bid_path(bid.id) %>
|
<%= link_to bid.homeworks.count, course_for_bid_path(bid.id) %>
|
||||||
</strong>)
|
</strong>)
|
||||||
<% else %>
|
<% else %>
|
||||||
<%= l(:label_x_homework_project, :count => temp.count) %>
|
<%= l(:label_x_homework_project, :count => temp.count) %>
|
||||||
(
|
(
|
||||||
<strong>
|
<strong>
|
||||||
<%= link_to temp.count, course_for_bid_path(bid.id) %>
|
<%= link_to temp.count, course_for_bid_path(bid.id) %>
|
||||||
</strong>)
|
</strong>)
|
||||||
<% end %>
|
<% end %>
|
||||||
</span>
|
</span>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td colspan="2">
|
<td colspan="2">
|
||||||
<% if bid.reward_type.nil? or bid.reward_type == 1 %>
|
<% if bid.reward_type.nil? or bid.reward_type == 1 %>
|
||||||
<strong>
|
<strong>
|
||||||
<%= l(:label_bids_reward_method) %>
|
<%= l(:label_bids_reward_method) %>
|
||||||
<span style="color: #ed8924;font-family: 14px; font-family: '微软雅黑'">
|
<span style="color: #ed8924;font-family: 14px; font-family: '微软雅黑'">
|
||||||
<%= l(:label_call_bonus) %>
|
<%= l(:label_call_bonus) %>
|
||||||
|
|
||||||
<%= l(:label_RMB_sign) %>
|
<%= l(:label_RMB_sign) %>
|
||||||
<%= bid.budget%>
|
<%= bid.budget%>
|
||||||
</span>
|
</span>
|
||||||
</strong>
|
</strong>
|
||||||
<% elsif bid.reward_type == 2 %>
|
<% elsif bid.reward_type == 2 %>
|
||||||
<strong>
|
<strong>
|
||||||
<%= l(:label_bids_reward_method) %>
|
<%= l(:label_bids_reward_method) %>
|
||||||
<span style="color: #15bccf;font-family: 14px; font-family:' 微软雅黑'">
|
<span style="color: #15bccf;font-family: 14px; font-family:' 微软雅黑'">
|
||||||
<%= bid.budget%>
|
<%= bid.budget%>
|
||||||
</span>
|
</span>
|
||||||
</strong>
|
</strong>
|
||||||
<% end %> <!-- <td style="color: rgb(255, 0, 0);"><strong><%#= l(:label_price) %><%#= l(:label_RMB_sign) %><%#= bid.budget%></strong></td> -->
|
<% end %> <!-- <td style="color: rgb(255, 0, 0);"><strong><%#= l(:label_price) %><%#= l(:label_RMB_sign) %><%#= bid.budget%></strong></td> -->
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td colspan="2" width="580px" >
|
<td colspan="2" width="580px" >
|
||||||
<span class="font_description">
|
<span class="font_description">
|
||||||
<%=h sanitize(bid.description.html_safe) %>
|
<%=h sanitize(bid.description.html_safe) %>
|
||||||
</span>
|
</span>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td style="text-align: left" colspan="2">
|
<td style="text-align: left" colspan="2">
|
||||||
<span class="font_lighter">
|
<span class="font_lighter">
|
||||||
<%= l(:label_end_time) %>
|
<%= l(:label_end_time) %>
|
||||||
:
|
:
|
||||||
<%= bid.deadline %>
|
<%= bid.deadline %>
|
||||||
</span>
|
</span>
|
||||||
<span style="float: right">
|
<span style="float: right">
|
||||||
<% if betweentime(bid.deadline) < 0 %>
|
<% if betweentime(bid.deadline) < 0 %>
|
||||||
<span style="color: red; float: right">
|
<span style="color: red; float: right">
|
||||||
<%= l(:label_commit_limit)%>
|
<%= l(:label_commit_limit)%>
|
||||||
</span>
|
</span>
|
||||||
<% else %>
|
<% else %>
|
||||||
<script type="text/javascript">
|
<script type="text/javascript">
|
||||||
window.setInterval(function(){ShowCountDown(<%= bid.deadline.year%>,<%= bid.deadline.month%>,<%= bid.deadline.day + 1%>,"show_deadtime_span_<%= bid.id%>");},1000)
|
window.setInterval(function(){ShowCountDown(<%= bid.deadline.year%>,<%= bid.deadline.month%>,<%= bid.deadline.day + 1%>,"show_deadtime_span_<%= bid.id%>");},1000)
|
||||||
</script>
|
</script>
|
||||||
<span id="show_deadtime_span_<%= bid.id%>" style="float: right">
|
<span id="show_deadtime_span_<%= bid.id%>" style="float: right">
|
||||||
</span>
|
</span>
|
||||||
<% end %>
|
<% end %>
|
||||||
</span>
|
</span>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
</table></td>
|
</table></td>
|
||||||
</tr>
|
</tr>
|
||||||
</table>
|
</table>
|
||||||
<% end %>
|
<% end %>
|
||||||
<% end %>
|
<% end %>
|
||||||
<div class="pagination">
|
<div class="pagination">
|
||||||
<%= pagination_links_full bid_pages %>
|
<%= pagination_links_full bid_pages %>
|
||||||
</div>
|
</div>
|
@ -0,0 +1,9 @@
|
|||||||
|
<%= form_for @message, :url =>{:controller=>'messages',:action => 'new', :board_id => @board.id, :is_board => 'true'}, :html => {:multipart => true, :id => 'message-form'} do |f| %>
|
||||||
|
|
||||||
|
<%= render :partial => 'form_course', :locals => {:f => f, :topic => @message} %>
|
||||||
|
<li>
|
||||||
|
<a href="javascript:void(0)" onclick="show_newtalk();" class="grey_btn fr ml10"><%= l(:button_cancel) %></a>
|
||||||
|
<a href="#" onclick="submitProjectsBoard('<%= @message.id %>')" class="blue_btn fr " style="margin-left: 55px"><%= l(:button_submit)%></a>
|
||||||
|
<div class="cl"></div>
|
||||||
|
</li>
|
||||||
|
<% end %>
|
@ -0,0 +1,43 @@
|
|||||||
|
|
||||||
|
<% if topic.project %>
|
||||||
|
<%#= board_breadcrumb(@message) %>
|
||||||
|
<!--<h3><%#= avatar(@topic.author, :size => "24") %><span style = "width:100%;word-break:break-all;word-wrap: break-word;"><%#=h @topic.subject %></span></h3>-->
|
||||||
|
<div class="talk_new ml15">
|
||||||
|
<ul>
|
||||||
|
<%= form_for topic, { :as => :message,
|
||||||
|
:url => {:controller => 'messages',:action => 'edit', :is_board => 'true',:id => topic.id, :board_id => topic.board_id},
|
||||||
|
:html => {:multipart => true,
|
||||||
|
:id => 'message-form' + topic.id.to_s,
|
||||||
|
:method => :post}
|
||||||
|
} do |f| %>
|
||||||
|
<%= render :partial => 'form_project',
|
||||||
|
:locals => {:f => f, :replying => !topic.parent.nil?, :topic => topic} %>
|
||||||
|
<a href="javascript:void(0)" onclick="submitProjectsBoard('<%= topic.id%>');" class="blue_btn fl c_white" ><%= l(:button_submit)%></a>
|
||||||
|
<a href="javascript:void(0)" onclick="show_newtalk1('#about_newtalk<%= topic.id%>');" class="blue_btn grey_btn fl c_white"><%= l(:button_cancel) %></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" %>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
<% end %>
|
||||||
|
<% elsif topic.course %>
|
||||||
|
<%#= course_board_breadcrumb(@message) %>
|
||||||
|
<div class="talk_new ml15">
|
||||||
|
<ul>
|
||||||
|
<%= form_for topic, {
|
||||||
|
:as => :message,
|
||||||
|
:url => {:controller => 'messages',:action => 'edit', :is_board => 'true',:id => topic.id, :board_id => topic.board_id},
|
||||||
|
:html => {:multipart => true,
|
||||||
|
:id => 'message-form' + topic.id.to_s,
|
||||||
|
:method => :post}
|
||||||
|
} do |f| %>
|
||||||
|
<%= render :partial => 'form_course',
|
||||||
|
:locals => {:f => f, :replying => !topic.parent.nil?, :topic => topic} %>
|
||||||
|
<a href="javascript:void(0)" onclick="submitProjectsBoard('<%= topic.id%>');"class="blue_btn fl c_white"><%= l(:button_submit)%></a>
|
||||||
|
<a href="javascript:void(0)" onclick="show_newtalk1('#about_newtalk<%= topic.id%>');" class="blue_btn grey_btn fl c_white"><%= l(:button_cancel) %></a>
|
||||||
|
|
||||||
|
<% end %>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
<% end %>
|
||||||
|
|
||||||
|
|
||||||
|
<div id="preview" class="wiki"></div>
|
@ -0,0 +1,10 @@
|
|||||||
|
<%= form_for @message, :url =>{:controller=>'messages',:action => 'new', :board_id => @board.id, :is_board => 'true'}, :html => {:multipart => true, :id => 'message-form'} do |f| %>
|
||||||
|
|
||||||
|
<%= render :partial => 'form_project', :locals => {:f => f, :topic => @message} %>
|
||||||
|
<li>
|
||||||
|
<a href="javascript:void(0)" onclick="show_newtalk();" class="grey_btn fr ml10"><%= l(:button_cancel) %></a>
|
||||||
|
|
||||||
|
<a href="#" onclick="submitProjectsBoard('<%= @message.id %>')" class="blue_btn fr " style="margin-left: 55px"><%= l(:button_submit)%></a>
|
||||||
|
<div class="cl"></div>
|
||||||
|
</li>
|
||||||
|
<% end %>
|
@ -0,0 +1,39 @@
|
|||||||
|
<% delete_allowed = User.current.allowed_to?(:manage_files, course) %>
|
||||||
|
<% if file.is_public? || User.current.member_of_course?(course) %>
|
||||||
|
<div class="re_con_box" id="container_files_<%= file.id %>">
|
||||||
|
<div class="">
|
||||||
|
<%= link_to_attachment file, :download => true,:text => truncate(file.filename,length: 35, omission: '...'), :title => file.filename+"\n"+file.description.to_s,:class => "c_dblue f_14 f_b f_l hiddent" %>
|
||||||
|
<% if User.current.logged? %>
|
||||||
|
<% if (is_course_teacher(User.current,@course) || file.author_id == User.current.id) && course_contains_attachment?(@course,file) %>
|
||||||
|
<%= link_to("选入我的其他课程",quote_resource_show_course_file_path(@course,file),:class => "f_l re_select c_lorange",:remote => true) if has_course?(User.current,file) %>
|
||||||
|
|
||||||
|
<% if delete_allowed && file.container_id == @course.id && file.container_type == "Course" %>
|
||||||
|
<span id="is_public_<%= file.id %>">
|
||||||
|
<%= link_to (file.is_public? ? "公开":"私有"), update_file_dense_attachments_path(:attachmentid=>file.id,:newtype=>(file.is_public? ? 0:1)),:remote=>true,:class=>"f_l re_open c_blue",:method => :post %>
|
||||||
|
</span>
|
||||||
|
<% else %>
|
||||||
|
<!-- <#%= link_to (file.is_public? ? "公开":"私有"),"javascript:void(0)",:class=>"f_l re_open" %> -->
|
||||||
|
<% end %>
|
||||||
|
<% else %>
|
||||||
|
<%= link_to("选入我的课程",quote_resource_show_course_file_path(@course,file),:class => "f_l re_select c_lorange",:remote => true) if has_course?(User.current,file) %>
|
||||||
|
<% end %>
|
||||||
|
<% else %>
|
||||||
|
<% end %>
|
||||||
|
</div>
|
||||||
|
<div class="cl"></div>
|
||||||
|
<div class="">
|
||||||
|
<p class="f_l mb5 c_grey02">文件大小:<%= number_to_human_size(file.filesize) %></p>
|
||||||
|
<%= link_to( l(:button_delete), attachment_path(file),
|
||||||
|
:data => {:confirm => l(:text_are_you_sure)}, :method => :delete,:class => "f_r re_de") if delete_allowed && file.container_id == @course.id && file.container_type == "Course"%>
|
||||||
|
<p class="f_r c_grey02" ><%= time_tag(file.created_on).html_safe %><%= l(:label_bids_published_ago) %> | 下载<%= file.downloads %> | 引用<%= file.quotes.nil? ? 0:file.quotes %> </p>
|
||||||
|
</div>
|
||||||
|
<div class="cl"></div>
|
||||||
|
<div class="tag_h">
|
||||||
|
<%= render :partial => 'tags/tag_new', :locals => {:obj => file, :object_flag => "6",:tag_name => @tag_name} %>
|
||||||
|
<%= render :partial => 'tags/tag_add', :locals => {:obj => file, :object_flag => "6",:tag_name => @tag_name} %>
|
||||||
|
</div>
|
||||||
|
<div class="cl"></div>
|
||||||
|
</div><!---re_con_box end-->
|
||||||
|
<% else %>
|
||||||
|
<div class="re_con_box"><span class='fr mr10 pr_join_span '><%= file.filename %>是私有资源</span></div>
|
||||||
|
<% end %>
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in new issue