Signed-off-by: alanlong9278 <547533434@qq.com>
This commit is contained in:
parent
0a43ab67ac
commit
a51ba0c104
|
@ -1,25 +1,25 @@
|
||||||
*.swp
|
*.swp
|
||||||
/.project
|
/.project
|
||||||
/.idea
|
/.idea
|
||||||
/.bundle
|
/.bundle
|
||||||
*.swp
|
*.swp
|
||||||
/config/database.yml
|
/config/database.yml
|
||||||
/config/configuration.yml
|
/config/configuration.yml
|
||||||
/files/*
|
/files/*
|
||||||
/log/*
|
/log/*
|
||||||
/public/tmp/*
|
/public/tmp/*
|
||||||
/tmp/*
|
/tmp/*
|
||||||
/public/cache/*
|
/public/cache/*
|
||||||
.gitignore
|
.gitignore
|
||||||
/config/newrelic.yml
|
/config/newrelic.yml
|
||||||
/public/images/avatars/*
|
/public/images/avatars/*
|
||||||
/Gemfile
|
/Gemfile
|
||||||
/Gemfile.lock
|
/Gemfile.lock
|
||||||
/db/schema.rb
|
/db/schema.rb
|
||||||
/Gemfile.lock
|
/Gemfile.lock
|
||||||
/lib/plugins/acts_as_versioned/test/debug.log
|
/lib/plugins/acts_as_versioned/test/debug.log
|
||||||
.rbenv-gemsets
|
.rbenv-gemsets
|
||||||
.DS_Store
|
.DS_Store
|
||||||
public/api_doc/
|
public/api_doc/
|
||||||
/.metadata
|
/.metadata
|
||||||
vendor/cache
|
vendor/cache
|
||||||
|
|
282
Gemfile
282
Gemfile
|
@ -1,141 +1,141 @@
|
||||||
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'
|
||||||
gem 'rubyzip'
|
gem 'rubyzip'
|
||||||
gem 'zip-zip'
|
gem 'zip-zip'
|
||||||
end
|
end
|
||||||
|
|
||||||
gem 'grape', '~> 0.9.0'
|
gem 'grape', '~> 0.9.0'
|
||||||
gem 'grape-entity'
|
gem 'grape-entity'
|
||||||
gem 'seems_rateable', '~> 1.0.13'
|
gem 'seems_rateable', '~> 1.0.13'
|
||||||
gem "rails", "3.2.13"
|
gem "rails", "3.2.13"
|
||||||
gem "jquery-rails", "~> 2.0.2"
|
gem "jquery-rails", "~> 2.0.2"
|
||||||
gem "i18n", "~> 0.6.0"
|
gem "i18n", "~> 0.6.0"
|
||||||
gem 'coderay', '~> 1.1.0'
|
gem 'coderay', '~> 1.1.0'
|
||||||
gem "fastercsv", "~> 1.5.0", :platforms => [:mri_18, :mingw_18, :jruby]
|
gem "fastercsv", "~> 1.5.0", :platforms => [:mri_18, :mingw_18, :jruby]
|
||||||
gem "builder", "3.0.0"
|
gem "builder", "3.0.0"
|
||||||
gem 'acts-as-taggable-on', '2.4.1'
|
gem 'acts-as-taggable-on', '2.4.1'
|
||||||
gem 'spreadsheet'
|
gem 'spreadsheet'
|
||||||
gem 'ruby-ole'
|
gem 'ruby-ole'
|
||||||
#gem 'email_verifier', path: 'lib/email_verifier'
|
#gem 'email_verifier', path: 'lib/email_verifier'
|
||||||
gem 'rufus-scheduler'
|
gem 'rufus-scheduler'
|
||||||
#gem 'dalli', path: 'lib/dalli-2.7.2'
|
#gem 'dalli', path: 'lib/dalli-2.7.2'
|
||||||
gem 'rails_kindeditor'
|
gem 'rails_kindeditor'
|
||||||
group :development do
|
group :development do
|
||||||
gem 'grape-swagger'
|
gem 'grape-swagger'
|
||||||
#gem 'grape-swagger-ui', git: 'https://github.com/guange2015/grape-swagger-ui.git'
|
#gem 'grape-swagger-ui', git: 'https://github.com/guange2015/grape-swagger-ui.git'
|
||||||
gem 'puma' if RbConfig::CONFIG['host_os'] =~ /linux/
|
gem 'puma' if RbConfig::CONFIG['host_os'] =~ /linux/
|
||||||
gem 'pry-rails'
|
gem 'pry-rails'
|
||||||
if RUBY_VERSION >= '2.0.0'
|
if RUBY_VERSION >= '2.0.0'
|
||||||
gem 'pry-byebug'
|
gem 'pry-byebug'
|
||||||
else
|
else
|
||||||
gem 'pry-debugger'
|
gem 'pry-debugger'
|
||||||
end
|
end
|
||||||
gem 'pry-stack_explorer'
|
gem 'pry-stack_explorer'
|
||||||
gem 'better_errors', '~> 1.1.0'
|
gem 'better_errors', '~> 1.1.0'
|
||||||
gem 'rack-mini-profiler', '~> 0.9.3'
|
gem 'rack-mini-profiler', '~> 0.9.3'
|
||||||
end
|
end
|
||||||
|
|
||||||
group :test do
|
group :test do
|
||||||
gem "shoulda", "~> 3.5.0"
|
gem "shoulda", "~> 3.5.0"
|
||||||
gem "mocha", "~> 1.1.0"
|
gem "mocha", "~> 1.1.0"
|
||||||
gem 'capybara', '~> 2.4.1'
|
gem 'capybara', '~> 2.4.1'
|
||||||
gem 'nokogiri', '~> 1.6.3'
|
gem 'nokogiri', '~> 1.6.3'
|
||||||
gem 'factory_girl', '~> 4.4.0'
|
gem 'factory_girl', '~> 4.4.0'
|
||||||
gem 'selenium-webdriver', '~> 2.42.0'
|
gem 'selenium-webdriver', '~> 2.42.0'
|
||||||
|
|
||||||
gem "faker"
|
gem "faker"
|
||||||
# platforms :mri, :mingw do
|
# platforms :mri, :mingw do
|
||||||
# group :rmagick do
|
# group :rmagick do
|
||||||
# # RMagick 2 supports ruby 1.9
|
# # RMagick 2 supports ruby 1.9
|
||||||
# # RMagick 1 would be fine for ruby 1.8 but Bundler does not support
|
# # RMagick 1 would be fine for ruby 1.8 but Bundler does not support
|
||||||
# # different requirements for the same gem on different platforms
|
# # different requirements for the same gem on different platforms
|
||||||
# gem "rmagick", ">= 2.0.0"
|
# gem "rmagick", ">= 2.0.0"
|
||||||
# end
|
# end
|
||||||
#end
|
#end
|
||||||
end
|
end
|
||||||
|
|
||||||
# gem 'rspec-rails' , '2.13.1'
|
# gem 'rspec-rails' , '2.13.1'
|
||||||
# gem 'guard-rspec','2.5.0'
|
# gem 'guard-rspec','2.5.0'
|
||||||
# Gems used only for assets and not required
|
# Gems used only for assets and not required
|
||||||
# in production environments by default.
|
# in production environments by default.
|
||||||
group :assets do
|
group :assets do
|
||||||
gem 'sass-rails', '~> 3.2.3'
|
gem 'sass-rails', '~> 3.2.3'
|
||||||
gem 'coffee-rails', '~> 3.2.1'
|
gem 'coffee-rails', '~> 3.2.1'
|
||||||
|
|
||||||
# See https://github.com/sstephenson/execjs#readme for more supported runtimes
|
# See https://github.com/sstephenson/execjs#readme for more supported runtimes
|
||||||
gem 'therubyracer', :platforms => :ruby
|
gem 'therubyracer', :platforms => :ruby
|
||||||
|
|
||||||
gem 'uglifier', '>= 1.0.3'
|
gem 'uglifier', '>= 1.0.3'
|
||||||
end
|
end
|
||||||
|
|
||||||
# Optional gem for LDAP authentication
|
# Optional gem for LDAP authentication
|
||||||
group :ldap do
|
group :ldap do
|
||||||
gem "net-ldap", "~> 0.3.1"
|
gem "net-ldap", "~> 0.3.1"
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
||||||
# Optional gem for OpenID authentication
|
# Optional gem for OpenID authentication
|
||||||
group :openid do
|
group :openid do
|
||||||
gem "ruby-openid", "~> 2.1.4", :require => "openid"
|
gem "ruby-openid", "~> 2.1.4", :require => "openid"
|
||||||
gem "rack-openid"
|
gem "rack-openid"
|
||||||
end
|
end
|
||||||
|
|
||||||
# Optional gem for exporting the gantt to a PNG file, not supported with jruby
|
# Optional gem for exporting the gantt to a PNG file, not supported with jruby
|
||||||
platforms :jruby do
|
platforms :jruby do
|
||||||
# jruby-openssl is bundled with JRuby 1.7.0
|
# jruby-openssl is bundled with JRuby 1.7.0
|
||||||
gem "jruby-openssl" if Object.const_defined?(:JRUBY_VERSION) && JRUBY_VERSION < '1.7.0'
|
gem "jruby-openssl" if Object.const_defined?(:JRUBY_VERSION) && JRUBY_VERSION < '1.7.0'
|
||||||
gem "activerecord-jdbc-adapter", "1.2.5"
|
gem "activerecord-jdbc-adapter", "1.2.5"
|
||||||
end
|
end
|
||||||
|
|
||||||
# Include database gems for the adapters found in the database
|
# Include database gems for the adapters found in the database
|
||||||
# configuration file
|
# configuration file
|
||||||
require 'erb'
|
require 'erb'
|
||||||
require 'yaml'
|
require 'yaml'
|
||||||
database_file = File.join(File.dirname(__FILE__), "config/database.yml")
|
database_file = File.join(File.dirname(__FILE__), "config/database.yml")
|
||||||
if File.exist?(database_file)
|
if File.exist?(database_file)
|
||||||
database_config = YAML::load(ERB.new(IO.read(database_file)).result)
|
database_config = YAML::load(ERB.new(IO.read(database_file)).result)
|
||||||
adapters = database_config.values.map {|c| c['adapter']}.compact.uniq
|
adapters = database_config.values.map {|c| c['adapter']}.compact.uniq
|
||||||
if adapters.any?
|
if adapters.any?
|
||||||
adapters.each do |adapter|
|
adapters.each do |adapter|
|
||||||
case adapter
|
case adapter
|
||||||
when 'mysql2'
|
when 'mysql2'
|
||||||
gem "mysql2", "= 0.3.18", :platforms => [:mri, :mingw]
|
gem "mysql2", "= 0.3.18", :platforms => [:mri, :mingw]
|
||||||
gem "activerecord-jdbcmysql-adapter", :platforms => :jruby
|
gem "activerecord-jdbcmysql-adapter", :platforms => :jruby
|
||||||
when 'mysql'
|
when 'mysql'
|
||||||
gem "mysql", "~> 2.8.1", :platforms => [:mri, :mingw]
|
gem "mysql", "~> 2.8.1", :platforms => [:mri, :mingw]
|
||||||
gem "activerecord-jdbcmysql-adapter", :platforms => :jruby
|
gem "activerecord-jdbcmysql-adapter", :platforms => :jruby
|
||||||
when /postgresql/
|
when /postgresql/
|
||||||
gem "pg", ">= 0.11.0", :platforms => [:mri, :mingw]
|
gem "pg", ">= 0.11.0", :platforms => [:mri, :mingw]
|
||||||
gem "activerecord-jdbcpostgresql-adapter", :platforms => :jruby
|
gem "activerecord-jdbcpostgresql-adapter", :platforms => :jruby
|
||||||
when /sqlite3/
|
when /sqlite3/
|
||||||
gem "sqlite3", :platforms => [:mri, :mingw]
|
gem "sqlite3", :platforms => [:mri, :mingw]
|
||||||
gem "activerecord-jdbcsqlite3-adapter", :platforms => :jruby
|
gem "activerecord-jdbcsqlite3-adapter", :platforms => :jruby
|
||||||
when /sqlserver/
|
when /sqlserver/
|
||||||
gem "tiny_tds", "~> 0.5.1", :platforms => [:mri, :mingw]
|
gem "tiny_tds", "~> 0.5.1", :platforms => [:mri, :mingw]
|
||||||
gem "activerecord-sqlserver-adapter", :platforms => [:mri, :mingw]
|
gem "activerecord-sqlserver-adapter", :platforms => [:mri, :mingw]
|
||||||
else
|
else
|
||||||
warn("Unknown database adapter `#{adapter}` found in config/database.yml, use Gemfile.local to load your own database gems")
|
warn("Unknown database adapter `#{adapter}` found in config/database.yml, use Gemfile.local to load your own database gems")
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
else
|
else
|
||||||
warn("No adapter found in config/database.yml, please configure it first")
|
warn("No adapter found in config/database.yml, please configure it first")
|
||||||
end
|
end
|
||||||
else
|
else
|
||||||
warn("Please configure your config/database.yml first")
|
warn("Please configure your config/database.yml first")
|
||||||
end
|
end
|
||||||
|
|
||||||
local_gemfile = File.join(File.dirname(__FILE__), "Gemfile.local")
|
local_gemfile = File.join(File.dirname(__FILE__), "Gemfile.local")
|
||||||
if File.exists?(local_gemfile)
|
if File.exists?(local_gemfile)
|
||||||
puts "Loading Gemfile.local ..." if $DEBUG # `ruby -d` or `bundle -v`
|
puts "Loading Gemfile.local ..." if $DEBUG # `ruby -d` or `bundle -v`
|
||||||
instance_eval File.read(local_gemfile)
|
instance_eval File.read(local_gemfile)
|
||||||
end
|
end
|
||||||
|
|
||||||
# Load plugins' Gemfiles
|
# Load plugins' Gemfiles
|
||||||
Dir.glob File.expand_path("../plugins/*/Gemfile", __FILE__) do |file|
|
Dir.glob File.expand_path("../plugins/*/Gemfile", __FILE__) do |file|
|
||||||
puts "Loading #{file} ..." if $DEBUG # `ruby -d` or `bundle -v`
|
puts "Loading #{file} ..." if $DEBUG # `ruby -d` or `bundle -v`
|
||||||
instance_eval File.read(file)
|
instance_eval File.read(file)
|
||||||
end
|
end
|
||||||
|
|
|
@ -1,42 +1,42 @@
|
||||||
class DiscussDemosController < ApplicationController
|
class DiscussDemosController < ApplicationController
|
||||||
def index
|
def index
|
||||||
|
|
||||||
@discuss_demo_list = DiscussDemo.where("body is not null").order("created_at desc").page(params[:page] || 1).per(10)
|
@discuss_demo_list = DiscussDemo.where("body is not null").order("created_at desc").page(params[:page] || 1).per(10)
|
||||||
end
|
end
|
||||||
|
|
||||||
def new
|
def new
|
||||||
@discuss_demo = DiscussDemo.create
|
@discuss_demo = DiscussDemo.create
|
||||||
@discuss_demo.save!
|
@discuss_demo.save!
|
||||||
@discuss_demo
|
@discuss_demo
|
||||||
end
|
end
|
||||||
|
|
||||||
def create
|
def create
|
||||||
|
|
||||||
end
|
end
|
||||||
|
|
||||||
def update
|
def update
|
||||||
@discuss_demo = DiscussDemo.find(params[:id])
|
@discuss_demo = DiscussDemo.find(params[:id])
|
||||||
@discuss_demo.update_attributes(:title => params[:discuss_demo][:title],:body => params[:discuss_demo][:body])
|
@discuss_demo.update_attributes(:title => params[:discuss_demo][:title],:body => params[:discuss_demo][:body])
|
||||||
redirect_to :controller=> 'discuss_demos',:action => 'show',:id => params[:id]
|
redirect_to :controller=> 'discuss_demos',:action => 'show',:id => params[:id]
|
||||||
end
|
end
|
||||||
|
|
||||||
def delete
|
def delete
|
||||||
|
|
||||||
end
|
end
|
||||||
|
|
||||||
def destroy
|
def destroy
|
||||||
asset = Kindeditor::Asset.find_by_owner_id(params[:id])
|
asset = Kindeditor::Asset.find_by_owner_id(params[:id])
|
||||||
if !asset.nil?
|
if !asset.nil?
|
||||||
filepath = File.join(Rails.root,"public","files","uploads",
|
filepath = File.join(Rails.root,"public","files","uploads",
|
||||||
asset[:created_at].to_s.gsub("+0800","").to_datetime.strftime("%Y%m").to_s,
|
asset[:created_at].to_s.gsub("+0800","").to_datetime.strftime("%Y%m").to_s,
|
||||||
asset[:asset].to_s)
|
asset[:asset].to_s)
|
||||||
File.delete(filepath) if File.exist?filepath
|
File.delete(filepath) if File.exist?filepath
|
||||||
end
|
end
|
||||||
DiscussDemo.destroy(params[:id])
|
DiscussDemo.destroy(params[:id])
|
||||||
redirect_to :controller=> 'discuss_demos',:action => 'index'
|
redirect_to :controller=> 'discuss_demos',:action => 'index'
|
||||||
end
|
end
|
||||||
|
|
||||||
def show
|
def show
|
||||||
@discuss_demo = DiscussDemo.find(params[:id])
|
@discuss_demo = DiscussDemo.find(params[:id])
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
2058
app/models/user.rb
2058
app/models/user.rb
File diff suppressed because it is too large
Load Diff
|
@ -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
|
||||||
|
|
|
@ -1,8 +1,8 @@
|
||||||
$('#attachments_<%= j params[:attachment_id] %>').remove();
|
$('#attachments_<%= j params[:attachment_id] %>').remove();
|
||||||
var count=$('#attachments_fields>span').length;
|
var count=$('#attachments_fields>span').length;
|
||||||
if(count<=0){
|
if(count<=0){
|
||||||
$("#upload_file_count").text(<%= l(:label_no_file_uploaded)%>);
|
$("#upload_file_count").text(<%= l(:label_no_file_uploaded)%>);
|
||||||
$(".remove_all").remove();
|
$(".remove_all").remove();
|
||||||
}else{
|
}else{
|
||||||
$("#upload_file_count").html("已上传"+"<span id=\"count\">"+count+"</span>"+"个文件");
|
$("#upload_file_count").html("已上传"+"<span id=\"count\">"+count+"</span>"+"个文件");
|
||||||
}
|
}
|
|
@ -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="#" style="background:#8e8e8e;">匿评结束</a>
|
<a href="#" 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>
|
|
@ -1,139 +1,139 @@
|
||||||
<div class="project_r_h">
|
<div class="project_r_h">
|
||||||
<h2 class="project_h2"><%= l(:label_issue_tracking) %></h2>
|
<h2 class="project_h2"><%= l(:label_issue_tracking) %></h2>
|
||||||
</div>
|
</div>
|
||||||
<div class="problem_top">
|
<div class="problem_top">
|
||||||
<% unless @project.enabled_modules.where("name = 'issue_tracking'").empty? %>
|
<% unless @project.enabled_modules.where("name = 'issue_tracking'").empty? %>
|
||||||
<span>
|
<span>
|
||||||
<% if User.current.member_of?(@project) %>
|
<% if User.current.member_of?(@project) %>
|
||||||
<%= link_to l(:label_issue_new), {:controller => 'issues', :action => 'new', :copy_from => nil}, :param => :project_id, :caption => :label_issue_new,
|
<%= link_to l(:label_issue_new), {:controller => 'issues', :action => 'new', :copy_from => nil}, :param => :project_id, :caption => :label_issue_new,
|
||||||
:html => {:accesskey => Redmine::AccessKeys.key_for(:new_issue)}, :class => 'icon icon-add' %>
|
:html => {:accesskey => Redmine::AccessKeys.key_for(:new_issue)}, :class => 'icon icon-add' %>
|
||||||
<% end %>
|
<% end %>
|
||||||
<%= link_to l(:label_query), '#', :class => 'icon icon-help',
|
<%= link_to l(:label_query), '#', :class => 'icon icon-help',
|
||||||
:onclick => '$("#custom_query").slideToggle(400); ' if true || User.current.logged? %>
|
:onclick => '$("#custom_query").slideToggle(400); ' if true || User.current.logged? %>
|
||||||
</span>
|
</span>
|
||||||
<% end %>
|
<% end %>
|
||||||
<span class="problem_p fr"><%= l(:label_issues_sum) %>:<span><%= @project.issues.count %></span> <%= l(:lable_issues_undo) %> <span><%= @project.issues.where('status_id in (1,2,4,6)').count %></span></span>
|
<span class="problem_p fr"><%= l(:label_issues_sum) %>:<span><%= @project.issues.count %></span> <%= l(:lable_issues_undo) %> <span><%= @project.issues.where('status_id in (1,2,4,6)').count %></span></span>
|
||||||
</div>
|
</div>
|
||||||
<div class="contextual">
|
<div class="contextual">
|
||||||
<% if !@query.new_record? && @query.editable_by?(User.current) %>
|
<% if !@query.new_record? && @query.editable_by?(User.current) %>
|
||||||
<%= link_to l(:button_edit), edit_query_path(@query), :class => 'icon icon-edit' %>
|
<%= link_to l(:button_edit), edit_query_path(@query), :class => 'icon icon-edit' %>
|
||||||
<%= delete_link query_path(@query) %>
|
<%= delete_link query_path(@query) %>
|
||||||
<% end %>
|
<% end %>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<% html_title(@query.new_record? ? l(:label_issue_plural) : @query.name) %>
|
<% html_title(@query.new_record? ? l(:label_issue_plural) : @query.name) %>
|
||||||
<div style="clear:right; ">
|
<div style="clear:right; ">
|
||||||
<%= form_tag({:controller => 'issues', :action => 'index', :project_id => @project}, :method => :get, :id => 'query_form', :class => 'query_form') do %>
|
<%= form_tag({:controller => 'issues', :action => 'index', :project_id => @project}, :method => :get, :id => 'query_form', :class => 'query_form') do %>
|
||||||
<%= hidden_field_tag 'set_filter', '1' %>
|
<%= hidden_field_tag 'set_filter', '1' %>
|
||||||
|
|
||||||
<div id="custom_query" class="custom_query" style="display: <%= !params[:utf8].blank? ? 'block' : 'none' %>;">
|
<div id="custom_query" class="custom_query" style="display: <%= !params[:utf8].blank? ? 'block' : 'none' %>;">
|
||||||
<span>---<%= l :label_query_new %>---</span>
|
<span>---<%= l :label_query_new %>---</span>
|
||||||
|
|
||||||
<div id="query_form_content" class="hide-when-print">
|
<div id="query_form_content" class="hide-when-print">
|
||||||
<fieldset id="filters" class="collapsible <%= @query.new_record? ? "" : "collapsed" %>">
|
<fieldset id="filters" class="collapsible <%= @query.new_record? ? "" : "collapsed" %>">
|
||||||
<legend onclick="toggleFieldset(this);">
|
<legend onclick="toggleFieldset(this);">
|
||||||
<%= l(:label_issue_query_condition) %>
|
<%= l(:label_issue_query_condition) %>
|
||||||
</legend>
|
</legend>
|
||||||
<div style="<%= @query.new_record? ? "" : "display: none;" %>">
|
<div style="<%= @query.new_record? ? "" : "display: none;" %>">
|
||||||
<%= render :partial => 'queries/filters', :locals => {:query => @query} %>
|
<%= render :partial => 'queries/filters', :locals => {:query => @query} %>
|
||||||
</div>
|
</div>
|
||||||
</fieldset>
|
</fieldset>
|
||||||
<!--
|
<!--
|
||||||
<fieldset class="collapsible collapsed">
|
<fieldset class="collapsible collapsed">
|
||||||
<legend onclick="toggleFieldset(this);">
|
<legend onclick="toggleFieldset(this);">
|
||||||
<%= l(:label_options) %>
|
<%= l(:label_options) %>
|
||||||
</legend>
|
</legend>
|
||||||
<div style="display: none;">
|
<div style="display: none;">
|
||||||
<table>
|
<table>
|
||||||
<tr>
|
<tr>
|
||||||
<td><%= l(:field_column_names) %></td>
|
<td><%= l(:field_column_names) %></td>
|
||||||
<td><%= render_query_columns_selection(@query) %></td>
|
<td><%= render_query_columns_selection(@query) %></td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td><label for='group_by'><%= l(:field_group_by) %></label></td>
|
<td><label for='group_by'><%= l(:field_group_by) %></label></td>
|
||||||
<td><%= select_tag('group_by', options_for_select([[]] + @query.groupable_columns.collect { |c| [c.caption, c.name.to_s] }, @query.group_by)) %></td>
|
<td><%= select_tag('group_by', options_for_select([[]] + @query.groupable_columns.collect { |c| [c.caption, c.name.to_s] }, @query.group_by)) %></td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td><%= l(:button_show) %></td>
|
<td><%= l(:button_show) %></td>
|
||||||
<td><%= available_block_columns_tags(@query) %></td>
|
<td><%= available_block_columns_tags(@query) %></td>
|
||||||
</tr>
|
</tr>
|
||||||
</table>
|
</table>
|
||||||
</div>
|
</div>
|
||||||
</fieldset>
|
</fieldset>
|
||||||
-->
|
-->
|
||||||
<div class="buttons hide-when-print">
|
<div class="buttons hide-when-print">
|
||||||
<%= link_to_function l(:label_issue_query), 'submit_query_form("query_form")', :class => 'icon icon-checked' %>
|
<%= link_to_function l(:label_issue_query), 'submit_query_form("query_form")', :class => 'icon icon-checked' %>
|
||||||
<%= link_to l(:label_issue_cancel_query), {:set_filter => 1, :project_id => @project}, :class => 'icon icon-reload' %>
|
<%= link_to l(:label_issue_cancel_query), {:set_filter => 1, :project_id => @project}, :class => 'icon icon-reload' %>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<% end %>
|
<% end %>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<%= error_messages_for 'query' %>
|
<%= error_messages_for 'query' %>
|
||||||
|
|
||||||
<% if @query.valid? %>
|
<% if @query.valid? %>
|
||||||
<% if @issues.empty? %>
|
<% if @issues.empty? %>
|
||||||
<p class="nodata">
|
<p class="nodata">
|
||||||
<%= l(:label_no_data) %>
|
<%= l(:label_no_data) %>
|
||||||
</p>
|
</p>
|
||||||
<% else %>
|
<% else %>
|
||||||
<%= render :partial => 'issues/list', :locals => {:issues => @issues, :query => @query} %>
|
<%= render :partial => 'issues/list', :locals => {:issues => @issues, :query => @query} %>
|
||||||
<div class="pagination">
|
<div class="pagination">
|
||||||
<ul><%= pagination_links_full @issue_pages, @issue_count %></ul>
|
<ul><%= pagination_links_full @issue_pages, @issue_count %></ul>
|
||||||
</div>
|
</div>
|
||||||
<% end %>
|
<% end %>
|
||||||
<div style="float: right; padding-top: 30px">
|
<div style="float: right; padding-top: 30px">
|
||||||
<% other_formats_links do |f| %>
|
<% other_formats_links do |f| %>
|
||||||
<%= f.link_to 'Atom', :url => params.merge(:key => User.current.rss_key) %>
|
<%= f.link_to 'Atom', :url => params.merge(:key => User.current.rss_key) %>
|
||||||
<%= f.link_to 'CSV', :url => params, :onclick => "showModal('csv-export-options', '330px'); return false;" %>
|
<%= f.link_to 'CSV', :url => params, :onclick => "showModal('csv-export-options', '330px'); return false;" %>
|
||||||
<%= f.link_to 'PDF', :url => params %>
|
<%= f.link_to 'PDF', :url => params %>
|
||||||
<% end %>
|
<% end %>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
<div id="csv-export-options" style="display:none;">
|
<div id="csv-export-options" style="display:none;">
|
||||||
<h3 class="title"><%= l(:label_export_options, :export_format => 'CSV') %></h3>
|
<h3 class="title"><%= l(:label_export_options, :export_format => 'CSV') %></h3>
|
||||||
<%= form_tag(params.merge({:format => 'csv', :page => nil}), :method => :get, :id => 'csv-export-form') do %>
|
<%= form_tag(params.merge({:format => 'csv', :page => nil}), :method => :get, :id => 'csv-export-form') do %>
|
||||||
<p>
|
<p>
|
||||||
<label>
|
<label>
|
||||||
<%= radio_button_tag 'columns', 'all' %>
|
<%= radio_button_tag 'columns', 'all' %>
|
||||||
<%= l(:description_all_columns) %>
|
<%= l(:description_all_columns) %>
|
||||||
</label>
|
</label>
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
<label>
|
<label>
|
||||||
<%= check_box_tag 'description', '1', @query.has_column?(:description) %>
|
<%= check_box_tag 'description', '1', @query.has_column?(:description) %>
|
||||||
<%= l(:field_description) %>
|
<%= l(:field_description) %>
|
||||||
</label>
|
</label>
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<p class="buttons">
|
<p class="buttons">
|
||||||
<%= submit_tag l(:button_export), :name => nil, :onclick => "hideModal(this);" %>
|
<%= submit_tag l(:button_export), :name => nil, :onclick => "hideModal(this);" %>
|
||||||
<%= submit_tag l(:button_cancel), :name => nil, :onclick => "hideModal(this);", :type => 'button' %>
|
<%= submit_tag l(:button_cancel), :name => nil, :onclick => "hideModal(this);", :type => 'button' %>
|
||||||
</p>
|
</p>
|
||||||
<% end %>
|
<% end %>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<% end %>
|
<% end %>
|
||||||
|
|
||||||
<%= call_hook(:view_issues_index_bottom, {:issues => @issues, :project => @project, :query => @query}) %>
|
<%= call_hook(:view_issues_index_bottom, {:issues => @issues, :project => @project, :query => @query}) %>
|
||||||
|
|
||||||
<% content_for :sidebar do %>
|
<% content_for :sidebar do %>
|
||||||
<%= render :partial => 'issues/sidebar' %>
|
<%= render :partial => 'issues/sidebar' %>
|
||||||
<% end %>
|
<% end %>
|
||||||
|
|
||||||
<% content_for :header_tags do %>
|
<% content_for :header_tags do %>
|
||||||
<%= auto_discovery_link_tag(:atom,
|
<%= auto_discovery_link_tag(:atom,
|
||||||
{:query_id => @query, :format => 'atom',
|
{:query_id => @query, :format => 'atom',
|
||||||
:page => nil, :key => User.current.rss_key},
|
:page => nil, :key => User.current.rss_key},
|
||||||
:title => l(:label_issue_plural)) %>
|
:title => l(:label_issue_plural)) %>
|
||||||
<%= auto_discovery_link_tag(:atom,
|
<%= auto_discovery_link_tag(:atom,
|
||||||
{:controller => 'journals', :action => 'index',
|
{:controller => 'journals', :action => 'index',
|
||||||
:query_id => @query, :format => 'atom',
|
:query_id => @query, :format => 'atom',
|
||||||
:page => nil, :key => User.current.rss_key},
|
:page => nil, :key => User.current.rss_key},
|
||||||
:title => l(:label_changes_details)) %>
|
:title => l(:label_changes_details)) %>
|
||||||
<% end %>
|
<% end %>
|
||||||
|
|
||||||
<%= context_menu issues_context_menu_path %>
|
<%= context_menu issues_context_menu_path %>
|
||||||
|
|
|
@ -1,198 +1,198 @@
|
||||||
<style type="text/css">
|
<style type="text/css">
|
||||||
#scrollsidebar{ font-size:12px; font-family:"微软雅黑","宋体"; line-height:1.9; background:#F6F7F8; font-style:normal;}
|
#scrollsidebar{ font-size:12px; font-family:"微软雅黑","宋体"; line-height:1.9; background:#F6F7F8; font-style:normal;}
|
||||||
#scrollsidebar div,html,img,ul,li,p,body,h1,h2,h3,h4,p,a,table,tr,td,fieldset,input,span,ol{ }
|
#scrollsidebar div,html,img,ul,li,p,body,h1,h2,h3,h4,p,a,table,tr,td,fieldset,input,span,ol{ }
|
||||||
#scrollsidebar div,img,tr,td,table{ border:0;}
|
#scrollsidebar div,img,tr,td,table{ border:0;}
|
||||||
#scrollsidebar ol,ul,li{ list-style-type:none}
|
#scrollsidebar ol,ul,li{ list-style-type:none}
|
||||||
#scrollsidebar .cl{ clear:both; overflow:hidden; }
|
#scrollsidebar .cl{ clear:both; overflow:hidden; }
|
||||||
#scrollsidebar a{ text-decoration:none;}
|
#scrollsidebar a{ text-decoration:none;}
|
||||||
|
|
||||||
html{ overflow-x:hidden;}
|
html{ overflow-x:hidden;}
|
||||||
.scrollsidebar{ position:fixed;bottom:1px; right:1px; background:none; }
|
.scrollsidebar{ position:fixed;bottom:1px; right:1px; background:none; }
|
||||||
.side_content{width:154px; height:auto; overflow:hidden; float:left; }
|
.side_content{width:154px; height:auto; overflow:hidden; float:left; }
|
||||||
.side_content .side_list {width:154px;overflow:hidden;}
|
.side_content .side_list {width:154px;overflow:hidden;}
|
||||||
.show_btn{ width:0; height:112px; overflow:hidden; float:left;margin-top: 200px; cursor:pointer;}
|
.show_btn{ width:0; height:112px; overflow:hidden; float:left;margin-top: 200px; cursor:pointer;}
|
||||||
.show_btn span { display:none;}
|
.show_btn span { display:none;}
|
||||||
.close_btn{width:24px;height:24px;cursor:pointer;}
|
.close_btn{width:24px;height:24px;cursor:pointer;}
|
||||||
.side_title,.side_bottom,.close_btn,.show_btn {background:url(/images/sidebar_bg.png) no-repeat; }
|
.side_title,.side_bottom,.close_btn,.show_btn {background:url(/images/sidebar_bg.png) no-repeat; }
|
||||||
.side_title {height:35px;}
|
.side_title {height:35px;}
|
||||||
.side_bottom { height:8px;}
|
.side_bottom { height:8px;}
|
||||||
.side_center {font-family:Verdana, Geneva, sans-serif; padding:0px 12px; font-size:12px;}
|
.side_center {font-family:Verdana, Geneva, sans-serif; padding:0px 12px; font-size:12px;}
|
||||||
.close_btn { float:right; display:block; width:21px; height:16px; margin:9px 10px 0 0; _margin:16px 5px 0 0;}
|
.close_btn { float:right; display:block; width:21px; height:16px; margin:9px 10px 0 0; _margin:16px 5px 0 0;}
|
||||||
.close_btn span { display:none;}
|
.close_btn span { display:none;}
|
||||||
.side_center .custom_service p { text-align:center; padding:6px 0; margin:0; vertical-align:middle;}
|
.side_center .custom_service p { text-align:center; padding:6px 0; margin:0; vertical-align:middle;}
|
||||||
.msgserver { margin:2px 0px 0px 4px; padding-top: 0px}
|
.msgserver { margin:2px 0px 0px 4px; padding-top: 0px}
|
||||||
.msgserver a { background:url(/images/sidebar_bg.png) no-repeat -119px -115px; padding-left:22px;}
|
.msgserver a { background:url(/images/sidebar_bg.png) no-repeat -119px -115px; padding-left:22px;}
|
||||||
.opnionText{ width:122px; height:180px; border-color: #DFDFDF; background:#fff; color:#999; padding:3px; font-size:12px;}
|
.opnionText{ width:122px; height:180px; border-color: #DFDFDF; background:#fff; color:#999; padding:3px; font-size:12px;}
|
||||||
.opnionButton{ display:block; background:#15bccf; width:130px; height:23px; margin-top:5px; text-align:center; padding-top:3px;}
|
.opnionButton{ display:block; background:#15bccf; width:130px; height:23px; margin-top:5px; text-align:center; padding-top:3px;}
|
||||||
.opnionButton:hover{background: #0fa9bb; }
|
.opnionButton:hover{background: #0fa9bb; }
|
||||||
|
|
||||||
/* blue skin as the default skin */
|
/* blue skin as the default skin */
|
||||||
.side_title {background-position:-195px 0;}
|
.side_title {background-position:-195px 0;}
|
||||||
.side_center {background:url(/images/blue_line.png) repeat-y center;}
|
.side_center {background:url(/images/blue_line.png) repeat-y center;}
|
||||||
.side_bottom {background-position:-195px -50px;}
|
.side_bottom {background-position:-195px -50px;}
|
||||||
.close_btn {background-position:-44px 0;}
|
.close_btn {background-position:-44px 0;}
|
||||||
.close_btn:hover {background-position:-66px 0;}
|
.close_btn:hover {background-position:-66px 0;}
|
||||||
.show_btn {background-position:-119px 0;}
|
.show_btn {background-position:-119px 0;}
|
||||||
.msgserver a {color:#15bccf; }
|
.msgserver a {color:#15bccf; }
|
||||||
.msgserver a:hover { text-decoration:underline; }
|
.msgserver a:hover { text-decoration:underline; }
|
||||||
</style>
|
</style>
|
||||||
<script>
|
<script>
|
||||||
/* =================================================
|
/* =================================================
|
||||||
//
|
//
|
||||||
// jQuery Fixed Plugins 1.3.1
|
// jQuery Fixed Plugins 1.3.1
|
||||||
// author :
|
// author :
|
||||||
// Url:
|
// Url:
|
||||||
// Data : 2012-03-30
|
// Data : 2012-03-30
|
||||||
//
|
//
|
||||||
// ???? : float --> ????[left or right]
|
// ???? : float --> ????[left or right]
|
||||||
// minStatue --> ??С???????show_btn
|
// minStatue --> ??С???????show_btn
|
||||||
// skin --> ???????
|
// skin --> ???????
|
||||||
// durationTime --> ??????
|
// durationTime --> ??????
|
||||||
//???? :
|
//???? :
|
||||||
$("#scrollsidebar2").fix({
|
$("#scrollsidebar2").fix({
|
||||||
float : 'right', //default.left or right
|
float : 'right', //default.left or right
|
||||||
minStatue : true, //default.false or true
|
minStatue : true, //default.false or true
|
||||||
skin : 'green', //default.gray or yellow ??blue ??green ??orange ??white
|
skin : 'green', //default.gray or yellow ??blue ??green ??orange ??white
|
||||||
durationTime : 1000 //
|
durationTime : 1000 //
|
||||||
});
|
});
|
||||||
//
|
//
|
||||||
// =================================================*/
|
// =================================================*/
|
||||||
|
|
||||||
(function($){
|
(function($){
|
||||||
$.fn.fix = function(options){
|
$.fn.fix = function(options){
|
||||||
var defaults = {
|
var defaults = {
|
||||||
float : 'right',
|
float : 'right',
|
||||||
minStatue : true,
|
minStatue : true,
|
||||||
skin : 'blue',
|
skin : 'blue',
|
||||||
durationTime : 1000
|
durationTime : 1000
|
||||||
}
|
}
|
||||||
var options = $.extend(defaults, options);
|
var options = $.extend(defaults, options);
|
||||||
|
|
||||||
this.each(function(){
|
this.each(function(){
|
||||||
//???????
|
//???????
|
||||||
var thisBox = $(this),
|
var thisBox = $(this),
|
||||||
closeBtn = thisBox.find('.close_btn' ),
|
closeBtn = thisBox.find('.close_btn' ),
|
||||||
show_btn = thisBox.find('.show_btn' ),
|
show_btn = thisBox.find('.show_btn' ),
|
||||||
sideContent = thisBox.find('.side_content'),
|
sideContent = thisBox.find('.side_content'),
|
||||||
sideList = thisBox.find('.side_list')
|
sideList = thisBox.find('.side_list')
|
||||||
;
|
;
|
||||||
var defaultTop = thisBox.offset().top; //????????top
|
var defaultTop = thisBox.offset().top; //????????top
|
||||||
|
|
||||||
thisBox.css(options.float, 0);
|
thisBox.css(options.float, 0);
|
||||||
if(options.minStatue == "true"){
|
if(options.minStatue == "true"){
|
||||||
$(".show_btn").css("float", options.float);
|
$(".show_btn").css("float", options.float);
|
||||||
sideContent.css('width', 0);
|
sideContent.css('width', 0);
|
||||||
show_btn.css('width', 25);
|
show_btn.css('width', 25);
|
||||||
|
|
||||||
}
|
}
|
||||||
//close???
|
//close???
|
||||||
closeBtn.bind("click",function(){
|
closeBtn.bind("click",function(){
|
||||||
sideContent.animate({width: '0px'},"fast");
|
sideContent.animate({width: '0px'},"fast");
|
||||||
show_btn.stop(true, true).delay(300).animate({ width: '25px'},"fast");
|
show_btn.stop(true, true).delay(300).animate({ width: '25px'},"fast");
|
||||||
cookiesave('minStatue','true','','','');
|
cookiesave('minStatue','true','','','');
|
||||||
});
|
});
|
||||||
//show???
|
//show???
|
||||||
show_btn.bind("click",function() {
|
show_btn.bind("click",function() {
|
||||||
$(this).animate({width: '0px'},"fast");
|
$(this).animate({width: '0px'},"fast");
|
||||||
sideContent.stop(true, true).delay(200).animate({ width: '154px'},"fast");
|
sideContent.stop(true, true).delay(200).animate({ width: '154px'},"fast");
|
||||||
cookiesave('minStatue','false','','','');
|
cookiesave('minStatue','false','','','');
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}); //end this.each
|
}); //end this.each
|
||||||
};
|
};
|
||||||
})(jQuery);
|
})(jQuery);
|
||||||
|
|
||||||
|
|
||||||
$(function(){
|
$(function(){
|
||||||
$("#button1").click(function(){
|
$("#button1").click(function(){
|
||||||
myTips("<%= l(:label_feedback_success) %>","success");
|
myTips("<%= l(:label_feedback_success) %>","success");
|
||||||
});
|
});
|
||||||
|
|
||||||
})
|
})
|
||||||
|
|
||||||
function f_submit()
|
function f_submit()
|
||||||
{
|
{
|
||||||
$("#new_memo").submit();
|
$("#new_memo").submit();
|
||||||
}
|
}
|
||||||
|
|
||||||
function cookiesave(n, v, mins, dn, path)
|
function cookiesave(n, v, mins, dn, path)
|
||||||
{
|
{
|
||||||
if(n)
|
if(n)
|
||||||
{
|
{
|
||||||
|
|
||||||
if(!mins) mins = 365 * 24 * 60;
|
if(!mins) mins = 365 * 24 * 60;
|
||||||
if(!path) path = "/";
|
if(!path) path = "/";
|
||||||
var date = new Date();
|
var date = new Date();
|
||||||
|
|
||||||
date.setTime(date.getTime() + (mins * 60 * 1000));
|
date.setTime(date.getTime() + (mins * 60 * 1000));
|
||||||
|
|
||||||
var expires = "; expires=" + date.toGMTString();
|
var expires = "; expires=" + date.toGMTString();
|
||||||
|
|
||||||
if(dn) dn = "domain=" + dn + "; ";
|
if(dn) dn = "domain=" + dn + "; ";
|
||||||
document.cookie = n + "=" + v + expires + "; " + dn + "path=" + path;
|
document.cookie = n + "=" + v + expires + "; " + dn + "path=" + path;
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
function cookieget(n)
|
function cookieget(n)
|
||||||
{
|
{
|
||||||
var name = n + "=";
|
var name = n + "=";
|
||||||
var ca = document.cookie.split(';');
|
var ca = document.cookie.split(';');
|
||||||
for(var i=0;i<ca.length;i++) {
|
for(var i=0;i<ca.length;i++) {
|
||||||
var c = ca[i];
|
var c = ca[i];
|
||||||
while (c.charAt(0)==' ') c = c.substring(1,c.length);
|
while (c.charAt(0)==' ') c = c.substring(1,c.length);
|
||||||
if (c.indexOf(name) == 0){
|
if (c.indexOf(name) == 0){
|
||||||
return c.substring(name.length,c.length);}
|
return c.substring(name.length,c.length);}
|
||||||
|
|
||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
|
|
||||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||||
<head>
|
<head>
|
||||||
<title><%= l(:label_feedback) %></title>
|
<title><%= l(:label_feedback) %></title>
|
||||||
|
|
||||||
</head>
|
</head>
|
||||||
<body style="height:auto" >
|
<body style="height:auto" >
|
||||||
<!-- ?ú?? ???? -->
|
<!-- ?ú?? ???? -->
|
||||||
<div class="scrollsidebar" id="scrollsidebar" style="float: right">
|
<div class="scrollsidebar" id="scrollsidebar" style="float: right">
|
||||||
<div class="side_content">
|
<div class="side_content">
|
||||||
<div class="side_list">
|
<div class="side_list">
|
||||||
<div class="side_title"><a title="<%= l(:label_feedback) %>" class="close_btn"><span><%= l(:label_feedback) %></span></a></div>
|
<div class="side_title"><a title="<%= l(:label_feedback) %>" class="close_btn"><span><%= l(:label_feedback) %></span></a></div>
|
||||||
<div class="side_center">
|
<div class="side_center">
|
||||||
<div class="custom_service">
|
<div class="custom_service">
|
||||||
<% get_memo %>
|
<% get_memo %>
|
||||||
<%= form_for(@new_memo, :url => create_feedback_forum_path(@public_forum)) do |f| %>
|
<%= form_for(@new_memo, :url => create_feedback_forum_path(@public_forum)) do |f| %>
|
||||||
<%= f.text_area :subject, :class => "opnionText", :placeholder => l(:label_feedback_tips) %>
|
<%= f.text_area :subject, :class => "opnionText", :placeholder => l(:label_feedback_tips) %>
|
||||||
<%= f.hidden_field :content, :required => true , :value => l(:label_feedback_value) %>
|
<%= f.hidden_field :content, :required => true , :value => l(:label_feedback_value) %>
|
||||||
<%#= f.submit :value => l(:label_memo_create), :class => "opnionButton", :id => "button1" %>
|
<%#= f.submit :value => l(:label_memo_create), :class => "opnionButton", :id => "button1" %>
|
||||||
<a href="javascript:void(0);" class="opnionButton" style=" color:#fff;" id="" onclick="f_submit();"><%= l(:label_submit)%></a>
|
<a href="javascript:void(0);" class="opnionButton" style=" color:#fff;" id="" onclick="f_submit();"><%= l(:label_submit)%></a>
|
||||||
<% end %>
|
<% end %>
|
||||||
</div>
|
</div>
|
||||||
<div class="msgserver">
|
<div class="msgserver">
|
||||||
<a href="http://user.trustie.net/users/12/user_newfeedback" style="color: #15BCCF;"><%= l(:label_technical_support) %>黄井泉</a>
|
<a href="http://user.trustie.net/users/12/user_newfeedback" style="color: #15BCCF;"><%= l(:label_technical_support) %>黄井泉</a>
|
||||||
<a href="http://user.trustie.net/users/34/user_newfeedback" style="color: #15BCCF;"><%= l(:label_technical_support) %>白 羽</a>
|
<a href="http://user.trustie.net/users/34/user_newfeedback" style="color: #15BCCF;"><%= l(:label_technical_support) %>白 羽</a>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="side_bottom"></div>
|
<div class="side_bottom"></div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="show_btn"><span><%= l(:label_submit)%></span></div>
|
<div class="show_btn"><span><%= l(:label_submit)%></span></div>
|
||||||
</div>
|
</div>
|
||||||
<!-- ?ú?? ?á?? -->
|
<!-- ?ú?? ?á?? -->
|
||||||
<script type="text/javascript">
|
<script type="text/javascript">
|
||||||
$(function() {
|
$(function() {
|
||||||
$("#scrollsidebar").fix({
|
$("#scrollsidebar").fix({
|
||||||
float : 'right', //default.left or right
|
float : 'right', //default.left or right
|
||||||
minStatue : cookieget('minStatue'),
|
minStatue : cookieget('minStatue'),
|
||||||
skin : 'green', //default.gray or blue
|
skin : 'green', //default.gray or blue
|
||||||
durationTime : 600
|
durationTime : 600
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
|
@ -1,10 +1,10 @@
|
||||||
$("#polls_<%= @poll.id %>").html("<%= escape_javascript(render :partial => 'poll',:locals => {:poll => @poll}) %>");
|
$("#polls_<%= @poll.id %>").html("<%= escape_javascript(render :partial => 'poll',:locals => {:poll => @poll}) %>");
|
||||||
$('#ajax-modal').html("<%= escape_javascript(render :partial => 'alert', locals: { :message => l(:label_memo_create_succ)}) %>");
|
$('#ajax-modal').html("<%= escape_javascript(render :partial => 'alert', locals: { :message => l(:label_memo_create_succ)}) %>");
|
||||||
showModal('ajax-modal', '250px');
|
showModal('ajax-modal', '250px');
|
||||||
//$('#ajax-modal').css('height','111px');
|
//$('#ajax-modal').css('height','111px');
|
||||||
$('#ajax-modal').siblings().remove();
|
$('#ajax-modal').siblings().remove();
|
||||||
$('#ajax-modal').before("<span style='float: right;cursor:pointer;'>" +
|
$('#ajax-modal').before("<span style='float: right;cursor:pointer;'>" +
|
||||||
"<a href='#' onclick='close_alert_form();'><img src='/images/bid/close.png' width='26px' height='26px' /></a></span>");
|
"<a href='#' onclick='close_alert_form();'><img src='/images/bid/close.png' width='26px' height='26px' /></a></span>");
|
||||||
$('#ajax-modal').parent().removeClass("alert_praise");
|
$('#ajax-modal').parent().removeClass("alert_praise");
|
||||||
$('#ajax-modal').parent().css("top","").css("left","");
|
$('#ajax-modal').parent().css("top","").css("left","");
|
||||||
$('#ajax-modal').parent().addClass("poll_alert_form");
|
$('#ajax-modal').parent().addClass("poll_alert_form");
|
|
@ -1,10 +1,10 @@
|
||||||
$("#polls_<%= @poll.id %>").html("<%= escape_javascript(render :partial => 'poll',:locals => {:poll => @poll}) %>");
|
$("#polls_<%= @poll.id %>").html("<%= escape_javascript(render :partial => 'poll',:locals => {:poll => @poll}) %>");
|
||||||
$('#ajax-modal').html("<%= escape_javascript(render :partial => 'alert', locals: { :message => l(:label_poll_republish_success)}) %>");
|
$('#ajax-modal').html("<%= escape_javascript(render :partial => 'alert', locals: { :message => l(:label_poll_republish_success)}) %>");
|
||||||
showModal('ajax-modal', '250px');
|
showModal('ajax-modal', '250px');
|
||||||
//$('#ajax-modal').css('height','80px');
|
//$('#ajax-modal').css('height','80px');
|
||||||
$('#ajax-modal').siblings().remove();
|
$('#ajax-modal').siblings().remove();
|
||||||
$('#ajax-modal').before("<span style='float: right;cursor:pointer;'>" +
|
$('#ajax-modal').before("<span style='float: right;cursor:pointer;'>" +
|
||||||
"<a href='#' onclick='close_alert_form();'><img src='/images/bid/close.png' width='26px' height='26px' /></a></span>");
|
"<a href='#' onclick='close_alert_form();'><img src='/images/bid/close.png' width='26px' height='26px' /></a></span>");
|
||||||
$('#ajax-modal').parent().removeClass("alert_praise");
|
$('#ajax-modal').parent().removeClass("alert_praise");
|
||||||
$('#ajax-modal').parent().css("top","").css("left","");
|
$('#ajax-modal').parent().css("top","").css("left","");
|
||||||
$('#ajax-modal').parent().addClass("poll_alert_form");
|
$('#ajax-modal').parent().addClass("poll_alert_form");
|
|
@ -1,8 +1,8 @@
|
||||||
<!-- new repository ,new by xianbo-->
|
<!-- new repository ,new by xianbo-->
|
||||||
<div class="project_r_h">
|
<div class="project_r_h">
|
||||||
<h2 class="project_h2"><%= l(:label_repository_new_repos) %></h2>
|
<h2 class="project_h2"><%= l(:label_repository_new_repos) %></h2>
|
||||||
</div>
|
</div>
|
||||||
<%= labelled_form_for :repository, @repository, :url =>project_repositories_path(@project),:html => {:id => 'repository-form'} do |f| %>
|
<%= labelled_form_for :repository, @repository, :url =>project_repositories_path(@project),:html => {:id => 'repository-form'} do |f| %>
|
||||||
<%= render :partial => 'form_create', :locals => {:f => f} %>
|
<%= render :partial => 'form_create', :locals => {:f => f} %>
|
||||||
|
|
||||||
<% end %>
|
<% end %>
|
|
@ -1,110 +1,110 @@
|
||||||
<script type="text/javascript">
|
<script type="text/javascript">
|
||||||
// $(this).ready(function(){
|
// $(this).ready(function(){
|
||||||
// $('.tag_show').hover(function() {
|
// $('.tag_show').hover(function() {
|
||||||
// $(this).children("span").show();
|
// $(this).children("span").show();
|
||||||
// }, function() {
|
// }, function() {
|
||||||
// $(this).children("span").hide();
|
// $(this).children("span").hide();
|
||||||
// });
|
// });
|
||||||
// })
|
// })
|
||||||
</script>
|
</script>
|
||||||
<!-- 1代表是user类型 2代表是project类型 3代表是issue类型 4代表需求 7代表竞赛 9代表课程-->
|
<!-- 1代表是user类型 2代表是project类型 3代表是issue类型 4代表需求 7代表竞赛 9代表课程-->
|
||||||
<% @tags = obj.reload.tag_list %>
|
<% @tags = obj.reload.tag_list %>
|
||||||
<% if non_list_all and (@tags.size > 0) %>
|
<% if non_list_all and (@tags.size > 0) %>
|
||||||
<!-- 这里是显示的非主页的tag 所以当tag数量较多时 不必全部显示 用“更多”代替 -->
|
<!-- 这里是显示的非主页的tag 所以当tag数量较多时 不必全部显示 用“更多”代替 -->
|
||||||
<% if @tags.size > Setting.show_tags_length.to_i then %>
|
<% if @tags.size > Setting.show_tags_length.to_i then %>
|
||||||
<% i = 0 %>
|
<% i = 0 %>
|
||||||
<% until i>Setting.show_tags_length.to_i do %>
|
<% until i>Setting.show_tags_length.to_i do %>
|
||||||
<div id="tag">
|
<div id="tag">
|
||||||
<%= link_to @tags[i], :controller => "tags", :action => "index", :q => @tags[i], :object_flag => object_flag, :obj_id => obj.id %>
|
<%= link_to @tags[i], :controller => "tags", :action => "index", :q => @tags[i], :object_flag => object_flag, :obj_id => obj.id %>
|
||||||
</div>
|
</div>
|
||||||
<% i += 1 %>
|
<% i += 1 %>
|
||||||
<% end %>
|
<% end %>
|
||||||
<%= more_tags(obj.id,object_flag)%>
|
<%= more_tags(obj.id,object_flag)%>
|
||||||
<% else %>
|
<% else %>
|
||||||
<% @tags.each do |tag| %>
|
<% @tags.each do |tag| %>
|
||||||
<div id="tag">
|
<div id="tag">
|
||||||
<%= link_to tag, :controller => "tags", :action => "index", :q => tag, :object_flag => object_flag, :obj_id => obj.id %>
|
<%= link_to tag, :controller => "tags", :action => "index", :q => tag, :object_flag => object_flag, :obj_id => obj.id %>
|
||||||
</div>
|
</div>
|
||||||
<% end %>
|
<% end %>
|
||||||
<% end %>
|
<% end %>
|
||||||
<% else %>
|
<% else %>
|
||||||
<!-- 用来显示三大对象的主页中的tag 故是全部显示 -->
|
<!-- 用来显示三大对象的主页中的tag 故是全部显示 -->
|
||||||
<% if @tags.size > 0 %>
|
<% if @tags.size > 0 %>
|
||||||
<% @tags.each do |tag| %>
|
<% @tags.each do |tag| %>
|
||||||
<!--项目暂时单独出来,后面重构-->
|
<!--项目暂时单独出来,后面重构-->
|
||||||
<% if object_flag == '2' %>
|
<% if object_flag == '2' %>
|
||||||
<span class="re_tag f_l">
|
<span class="re_tag f_l">
|
||||||
<%= link_to tag, :controller => "tags", :action => "index", :q => tag, :object_flag => object_flag, :obj_id => obj.id %>
|
<%= link_to tag, :controller => "tags", :action => "index", :q => tag, :object_flag => object_flag, :obj_id => obj.id %>
|
||||||
<% if (ProjectInfo.find_by_project_id(obj.id)).try(:user_id) == User.current.id %>
|
<% if (ProjectInfo.find_by_project_id(obj.id)).try(:user_id) == User.current.id %>
|
||||||
<%= link_to 'x', :controller => "tags", :action => "remove_tag", :remote => true, :tag_name => tag,
|
<%= link_to 'x', :controller => "tags", :action => "remove_tag", :remote => true, :tag_name => tag,
|
||||||
:taggable_id => obj.id, :taggable_type => object_flag %>
|
:taggable_id => obj.id, :taggable_type => object_flag %>
|
||||||
<% end %>
|
<% end %>
|
||||||
</span>
|
</span>
|
||||||
<% else %>
|
<% else %>
|
||||||
<div id="tag">
|
<div id="tag">
|
||||||
<span class="tag_show">
|
<span class="tag_show">
|
||||||
<%= link_to tag, :controller => "tags", :action => "index", :q => tag, :object_flag => object_flag, :obj_id => obj.id %>
|
<%= link_to tag, :controller => "tags", :action => "index", :q => tag, :object_flag => object_flag, :obj_id => obj.id %>
|
||||||
<!-- 对用户主页 是本人 ,对项目,需求,问题是管理员 -->
|
<!-- 对用户主页 是本人 ,对项目,需求,问题是管理员 -->
|
||||||
<% case object_flag %>
|
<% case object_flag %>
|
||||||
<% when '1' %>
|
<% when '1' %>
|
||||||
<% if User.current.eql?(obj) %>
|
<% if User.current.eql?(obj) %>
|
||||||
<span class='del'>
|
<span class='del'>
|
||||||
<%= link_to 'x', :controller => "tags", :action => "remove_tag", :remote => true, :tag_name => tag,
|
<%= link_to 'x', :controller => "tags", :action => "remove_tag", :remote => true, :tag_name => tag,
|
||||||
:taggable_id => obj.id, :taggable_type => object_flag %>
|
:taggable_id => obj.id, :taggable_type => object_flag %>
|
||||||
</span>
|
</span>
|
||||||
<% end %>
|
<% end %>
|
||||||
<% when '3' %>
|
<% when '3' %>
|
||||||
<% if (ProjectInfo.find_by_project_id(obj.project_id)).try(:user_id) == User.current.id %>
|
<% if (ProjectInfo.find_by_project_id(obj.project_id)).try(:user_id) == User.current.id %>
|
||||||
<span class='del'>
|
<span class='del'>
|
||||||
<%= link_to 'x', :controller => "tags", :action => "remove_tag", :remote => true, :tag_name => tag,
|
<%= link_to 'x', :controller => "tags", :action => "remove_tag", :remote => true, :tag_name => tag,
|
||||||
:taggable_id => obj.id, :taggable_type => object_flag %>
|
:taggable_id => obj.id, :taggable_type => object_flag %>
|
||||||
</span>
|
</span>
|
||||||
<% end %>
|
<% end %>
|
||||||
<% when '4' %>
|
<% when '4' %>
|
||||||
<% if obj.author_id == User.current.id %>
|
<% if obj.author_id == User.current.id %>
|
||||||
<span class='del'>
|
<span class='del'>
|
||||||
<%= link_to 'x', :controller => "tags", :action => "remove_tag", :remote => true, :tag_name => tag,
|
<%= link_to 'x', :controller => "tags", :action => "remove_tag", :remote => true, :tag_name => tag,
|
||||||
:taggable_id => obj.id, :taggable_type => object_flag %>
|
:taggable_id => obj.id, :taggable_type => object_flag %>
|
||||||
</span>
|
</span>
|
||||||
<% end %>
|
<% end %>
|
||||||
<% when '5' %>
|
<% when '5' %>
|
||||||
<% test = Forum.find(obj.id) %>
|
<% test = Forum.find(obj.id) %>
|
||||||
<% if test && test.creator_id == User.current.id %>
|
<% if test && test.creator_id == User.current.id %>
|
||||||
<span class='del'>
|
<span class='del'>
|
||||||
<%= link_to 'x', :controller => "tags", :action => "remove_tag", :remote => true, :tag_name => tag,
|
<%= link_to 'x', :controller => "tags", :action => "remove_tag", :remote => true, :tag_name => tag,
|
||||||
:taggable_id => obj.id, :taggable_type => object_flag %>
|
:taggable_id => obj.id, :taggable_type => object_flag %>
|
||||||
</span>
|
</span>
|
||||||
<% end %>
|
<% end %>
|
||||||
<% when '6' %>
|
<% when '6' %>
|
||||||
<%# if (User.current.logged? &&
|
<%# if (User.current.logged? &&
|
||||||
User.current.admin?
|
User.current.admin?
|
||||||
# && (@project && User.current.member_of?(@project))
|
# && (@project && User.current.member_of?(@project))
|
||||||
)
|
)
|
||||||
%>
|
%>
|
||||||
<% if obj.author_id == User.current.id || User.current.admin?%>
|
<% if obj.author_id == User.current.id || User.current.admin?%>
|
||||||
<span class='del'>
|
<span class='del'>
|
||||||
<%= link_to 'x', :controller => "tags", :action => "remove_tag", :remote => true, :tag_name => tag,
|
<%= link_to 'x', :controller => "tags", :action => "remove_tag", :remote => true, :tag_name => tag,
|
||||||
:taggable_id => obj.id, :taggable_type => object_flag %>
|
:taggable_id => obj.id, :taggable_type => object_flag %>
|
||||||
</span>
|
</span>
|
||||||
<% end %>
|
<% end %>
|
||||||
<% when '7' %>
|
<% when '7' %>
|
||||||
<% if obj.author_id == User.current.id %>
|
<% if obj.author_id == User.current.id %>
|
||||||
<span class='del'>
|
<span class='del'>
|
||||||
<%= link_to 'x', :controller => "tags", :action => "remove_tag", :remote => true, :tag_name => tag,
|
<%= link_to 'x', :controller => "tags", :action => "remove_tag", :remote => true, :tag_name => tag,
|
||||||
:taggable_id => obj.id, :taggable_type => object_flag %>
|
:taggable_id => obj.id, :taggable_type => object_flag %>
|
||||||
</span>
|
</span>
|
||||||
<% end %>
|
<% end %>
|
||||||
<% when '9' %>
|
<% when '9' %>
|
||||||
<% if (CourseInfos.find_by_course_id(obj.id)).try(:user_id) == User.current.id %>
|
<% if (CourseInfos.find_by_course_id(obj.id)).try(:user_id) == User.current.id %>
|
||||||
<span class='del'>
|
<span class='del'>
|
||||||
<%= link_to 'x', :controller => "tags", :action => "remove_tag", :remote => true, :tag_name => tag,
|
<%= link_to 'x', :controller => "tags", :action => "remove_tag", :remote => true, :tag_name => tag,
|
||||||
:taggable_id => obj.id, :taggable_type => object_flag %>
|
:taggable_id => obj.id, :taggable_type => object_flag %>
|
||||||
</span>
|
</span>
|
||||||
<% end %>
|
<% end %>
|
||||||
<% end %>
|
<% end %>
|
||||||
</span>
|
</span>
|
||||||
</div>
|
</div>
|
||||||
<% end %>
|
<% end %>
|
||||||
<% end %>
|
<% end %>
|
||||||
<% end %>
|
<% end %>
|
||||||
<% end %>
|
<% end %>
|
|
@ -1,11 +1,11 @@
|
||||||
<% selector = ".#{watcher_css(watched)}" %>
|
<% selector = ".#{watcher_css(watched)}" %>
|
||||||
<% id_selector = "#{watcher_css(watched)}" %>
|
<% id_selector = "#{watcher_css(watched)}" %>
|
||||||
if($("<%= selector %>").get(0) == undefined)
|
if($("<%= selector %>").get(0) == undefined)
|
||||||
{
|
{
|
||||||
$("#<%= id_selector %>").each(function(){$(this).replaceWith("<%= escape_javascript watcher_link_for_project(watched, user) %>")});
|
$("#<%= id_selector %>").each(function(){$(this).replaceWith("<%= escape_javascript watcher_link_for_project(watched, user) %>")});
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
$("<%= selector %>").each(function(){$(this).replaceWith("<%= escape_javascript watcher_link(watched, user) %>")});
|
$("<%= selector %>").each(function(){$(this).replaceWith("<%= escape_javascript watcher_link(watched, user) %>")});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1,25 +1,25 @@
|
||||||
<li style="overflow:hidden;word-break:break-all;height:100%;word-wrap: break-word;" class='<%= cycle("odd", "even") %>'>
|
<li style="overflow:hidden;word-break:break-all;height:100%;word-wrap: break-word;" class='<%= cycle("odd", "even") %>'>
|
||||||
<div style="float: left;">
|
<div style="float: left;">
|
||||||
<%= image_tag(get_project_avatar(project), :class => "avatar-4") %>
|
<%= image_tag(get_project_avatar(project), :class => "avatar-4") %>
|
||||||
</div>
|
</div>
|
||||||
<!-- 上左下右 -->
|
<!-- 上左下右 -->
|
||||||
<div style="float: left; margin-left: 10px; width: 380px;">
|
<div style="float: left; margin-left: 10px; width: 380px;">
|
||||||
<% unless project.is_public %>
|
<% unless project.is_public %>
|
||||||
<span class="private_project">
|
<span class="private_project">
|
||||||
<%= l(:label_private) %>
|
<%= l(:label_private) %>
|
||||||
</span>
|
</span>
|
||||||
<% end %>
|
<% end %>
|
||||||
<%= link_to( project.name, project_path(project.id), :class => "d-g-blue d-p-project-name",:title => "#{project.name}" )%>
|
<%= link_to( project.name, project_path(project.id), :class => "d-g-blue d-p-project-name",:title => "#{project.name}" )%>
|
||||||
(<%= link_to l(:label_project_member_amount, :count => projectCount(project)), project_member_path(project) ,:course =>'0' %>)
|
(<%= link_to l(:label_project_member_amount, :count => projectCount(project)), project_member_path(project) ,:course =>'0' %>)
|
||||||
</div>
|
</div>
|
||||||
<div style=" float: left;margin:5px; margin-left: 10px; width: 380px;min-height: 42px;">
|
<div style=" float: left;margin:5px; margin-left: 10px; width: 380px;min-height: 42px;">
|
||||||
<span class='font_lighter' title ='<%= project.short_description%>'> <%=project.description.truncate(90, omission: '...')%> </span>
|
<span class='font_lighter' title ='<%= project.short_description%>'> <%=project.description.truncate(90, omission: '...')%> </span>
|
||||||
</div>
|
</div>
|
||||||
<div >
|
<div >
|
||||||
<%= content_tag "span", l(:label_project_score)+ ":" + red_project_scores(project).to_i.to_s,
|
<%= content_tag "span", l(:label_project_score)+ ":" + red_project_scores(project).to_i.to_s,
|
||||||
:style => "cursor: pointer; display: inline-block; float: right; color: #ec6300;",
|
:style => "cursor: pointer; display: inline-block; float: right; color: #ec6300;",
|
||||||
:title => l(:label_project_score_tips),
|
:title => l(:label_project_score_tips),
|
||||||
:class => "tooltip",
|
:class => "tooltip",
|
||||||
:id => "tooltip-#{project.id}" %>
|
:id => "tooltip-#{project.id}" %>
|
||||||
</div>
|
</div>
|
||||||
</li>
|
</li>
|
|
@ -1,30 +1,30 @@
|
||||||
#coding=utf-8
|
#coding=utf-8
|
||||||
#!/usr/bin/env python
|
#!/usr/bin/env python
|
||||||
|
|
||||||
# 脚本用于刷新版本库,由git hooks里进行调用,传入参数为git仓库路径
|
# 脚本用于刷新版本库,由git hooks里进行调用,传入参数为git仓库路径
|
||||||
# 需要配置rails项目地址
|
# 需要配置rails项目地址
|
||||||
# 必须装此文件放在git的存放目录,现在是 /home/pdl/redmine-2.3.2-0/apache2/htdocs
|
# 必须装此文件放在git的存放目录,现在是 /home/pdl/redmine-2.3.2-0/apache2/htdocs
|
||||||
|
|
||||||
import sys
|
import sys
|
||||||
import os
|
import os
|
||||||
import urllib
|
import urllib
|
||||||
import urllib2
|
import urllib2
|
||||||
|
|
||||||
RAILS_URL = 'http://192.168.128.128:3000/'
|
RAILS_URL = 'http://192.168.128.128:3000/'
|
||||||
|
|
||||||
def get_git_path():
|
def get_git_path():
|
||||||
return sys.argv[1]
|
return sys.argv[1]
|
||||||
path=os.path.realpath(sys.argv[0])
|
path=os.path.realpath(sys.argv[0])
|
||||||
if os.path.isfile(path):
|
if os.path.isfile(path):
|
||||||
path=os.path.dirname(os.path.dirname(path))
|
path=os.path.dirname(os.path.dirname(path))
|
||||||
return os.path.abspath(path)
|
return os.path.abspath(path)
|
||||||
|
|
||||||
def post_http_data(url, data):
|
def post_http_data(url, data):
|
||||||
data_urlencode = urllib.urlencode(data)
|
data_urlencode = urllib.urlencode(data)
|
||||||
req = urllib2.Request(url = url,data =data_urlencode)
|
req = urllib2.Request(url = url,data =data_urlencode)
|
||||||
res_data = urllib2.urlopen(req)
|
res_data = urllib2.urlopen(req)
|
||||||
#res = res_data.read()
|
#res = res_data.read()
|
||||||
#return res
|
#return res
|
||||||
|
|
||||||
path = get_git_path()
|
path = get_git_path()
|
||||||
post_http_data(RAILS_URL + 'git_callback/post_update', {'root_url': path})
|
post_http_data(RAILS_URL + 'git_callback/post_update', {'root_url': path})
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
source 'http://ruby.taobao.org'
|
source 'http://ruby.taobao.org'
|
||||||
|
|
||||||
gem 'rich', '1.4.6'
|
gem 'rich', '1.4.6'
|
||||||
gem 'kaminari'
|
gem 'kaminari'
|
||||||
gem 'htmlentities'
|
gem 'htmlentities'
|
||||||
gem 'paperclip', '~> 3.5.4'
|
gem 'paperclip', '~> 3.5.4'
|
||||||
|
|
File diff suppressed because it is too large
Load Diff
Loading…
Reference in New Issue