Merge branch 'develop' of 10.0.47.245:/home/trustie2 into develop
This commit is contained in:
commit
daa19de51d
|
@ -10,4 +10,5 @@
|
|||
/public/images/avatars/*
|
||||
/Gemfile
|
||||
/Gemfile.lock
|
||||
/db/schema.da
|
||||
/db/schema.rb
|
||||
/Gemfile.lock
|
|
@ -0,0 +1,211 @@
|
|||
!SESSION 2014-03-11 16:33:06.446 -----------------------------------------------
|
||||
eclipse.buildId=3.4.0.201304151603
|
||||
java.version=1.6.0_24
|
||||
java.vendor=Sun Microsystems Inc.
|
||||
BootLoader constants: OS=win32, ARCH=x86, WS=win32, NL=zh_CN
|
||||
Command-line arguments: -os win32 -ws win32 -arch x86
|
||||
|
||||
!ENTRY org.eclipse.equinox.p2.transport.ecf 2 0 2014-03-11 16:33:20.829
|
||||
!MESSAGE Connection to http://download.aptana.com/studio3-rcp/plugin/update/p2.index failed on download.aptana.com. Retry attempt 0 started
|
||||
!STACK 0
|
||||
java.net.UnknownHostException: download.aptana.com
|
||||
at java.net.PlainSocketImpl.connect(Unknown Source)
|
||||
at java.net.SocksSocketImpl.connect(Unknown Source)
|
||||
at java.net.Socket.connect(Unknown Source)
|
||||
at org.eclipse.ecf.provider.filetransfer.events.socket.SocketEventCreateUtil.createSocket(SocketEventCreateUtil.java:43)
|
||||
at org.eclipse.ecf.internal.provider.filetransfer.httpclient.ECFHttpClientProtocolSocketFactory.createSocket(ECFHttpClientProtocolSocketFactory.java:81)
|
||||
at org.eclipse.ecf.internal.provider.filetransfer.httpclient.ECFHttpClientProtocolSocketFactory.createSocket(ECFHttpClientProtocolSocketFactory.java:73)
|
||||
at org.eclipse.ecf.internal.provider.filetransfer.httpclient.ECFHttpClientProtocolSocketFactory.createSocket(ECFHttpClientProtocolSocketFactory.java:65)
|
||||
at org.apache.commons.httpclient.HttpConnection.open(HttpConnection.java:707)
|
||||
at org.apache.commons.httpclient.MultiThreadedHttpConnectionManager$HttpConnectionAdapter.open(MultiThreadedHttpConnectionManager.java:1361)
|
||||
at org.apache.commons.httpclient.HttpMethodDirector.executeWithRetry(HttpMethodDirector.java:387)
|
||||
at org.apache.commons.httpclient.HttpMethodDirector.executeMethod(HttpMethodDirector.java:171)
|
||||
at org.apache.commons.httpclient.HttpClient.executeMethod(HttpClient.java:397)
|
||||
at org.apache.commons.httpclient.HttpClient.executeMethod(HttpClient.java:346)
|
||||
at org.eclipse.ecf.provider.filetransfer.httpclient.HttpClientRetrieveFileTransfer.performConnect(HttpClientRetrieveFileTransfer.java:1142)
|
||||
at org.eclipse.ecf.provider.filetransfer.httpclient.HttpClientRetrieveFileTransfer.openStreams(HttpClientRetrieveFileTransfer.java:710)
|
||||
at org.eclipse.ecf.provider.filetransfer.retrieve.AbstractRetrieveFileTransfer.sendRetrieveRequest(AbstractRetrieveFileTransfer.java:889)
|
||||
at org.eclipse.ecf.provider.filetransfer.retrieve.AbstractRetrieveFileTransfer.sendRetrieveRequest(AbstractRetrieveFileTransfer.java:576)
|
||||
at org.eclipse.ecf.provider.filetransfer.retrieve.MultiProtocolRetrieveAdapter.sendRetrieveRequest(MultiProtocolRetrieveAdapter.java:106)
|
||||
at org.eclipse.equinox.internal.p2.transport.ecf.FileReader.sendRetrieveRequest(FileReader.java:349)
|
||||
at org.eclipse.equinox.internal.p2.transport.ecf.FileReader.readInto(FileReader.java:295)
|
||||
at org.eclipse.equinox.internal.p2.transport.ecf.RepositoryTransport.download(RepositoryTransport.java:87)
|
||||
at org.eclipse.equinox.internal.p2.transport.ecf.RepositoryTransport.download(RepositoryTransport.java:137)
|
||||
at org.eclipse.equinox.internal.p2.repository.helpers.AbstractRepositoryManager.loadIndexFile(AbstractRepositoryManager.java:721)
|
||||
at org.eclipse.equinox.internal.p2.repository.helpers.AbstractRepositoryManager.loadRepository(AbstractRepositoryManager.java:640)
|
||||
at org.eclipse.equinox.internal.p2.metadata.repository.MetadataRepositoryManager.loadRepository(MetadataRepositoryManager.java:96)
|
||||
at org.eclipse.equinox.internal.p2.metadata.repository.MetadataRepositoryManager.loadRepository(MetadataRepositoryManager.java:92)
|
||||
at org.eclipse.equinox.internal.p2.updatechecker.UpdateChecker.getAvailableRepositories(UpdateChecker.java:150)
|
||||
at org.eclipse.equinox.internal.p2.updatechecker.UpdateChecker.checkForUpdates(UpdateChecker.java:128)
|
||||
at org.eclipse.equinox.internal.p2.updatechecker.UpdateChecker$UpdateCheckThread.run(UpdateChecker.java:72)
|
||||
|
||||
!ENTRY org.eclipse.equinox.p2.transport.ecf 4 1006 2014-03-11 16:33:21.110
|
||||
!MESSAGE Unknown Host: http://download.aptana.com/studio3-rcp/plugin/update/content.xml
|
||||
!STACK 0
|
||||
java.net.UnknownHostException: download.aptana.com
|
||||
at java.net.PlainSocketImpl.connect(Unknown Source)
|
||||
at java.net.SocksSocketImpl.connect(Unknown Source)
|
||||
at java.net.Socket.connect(Unknown Source)
|
||||
at org.eclipse.ecf.provider.filetransfer.events.socket.SocketEventCreateUtil.createSocket(SocketEventCreateUtil.java:43)
|
||||
at org.eclipse.ecf.internal.provider.filetransfer.httpclient.ECFHttpClientProtocolSocketFactory.createSocket(ECFHttpClientProtocolSocketFactory.java:81)
|
||||
at org.eclipse.ecf.internal.provider.filetransfer.httpclient.ECFHttpClientProtocolSocketFactory.createSocket(ECFHttpClientProtocolSocketFactory.java:73)
|
||||
at org.eclipse.ecf.internal.provider.filetransfer.httpclient.ECFHttpClientProtocolSocketFactory.createSocket(ECFHttpClientProtocolSocketFactory.java:65)
|
||||
at org.apache.commons.httpclient.HttpConnection.open(HttpConnection.java:707)
|
||||
at org.apache.commons.httpclient.MultiThreadedHttpConnectionManager$HttpConnectionAdapter.open(MultiThreadedHttpConnectionManager.java:1361)
|
||||
at org.apache.commons.httpclient.HttpMethodDirector.executeWithRetry(HttpMethodDirector.java:387)
|
||||
at org.apache.commons.httpclient.HttpMethodDirector.executeMethod(HttpMethodDirector.java:171)
|
||||
at org.apache.commons.httpclient.HttpClient.executeMethod(HttpClient.java:397)
|
||||
at org.apache.commons.httpclient.HttpClient.executeMethod(HttpClient.java:346)
|
||||
at org.eclipse.ecf.provider.filetransfer.httpclient.HttpClientFileSystemBrowser.runRequest(HttpClientFileSystemBrowser.java:227)
|
||||
at org.eclipse.ecf.provider.filetransfer.browse.AbstractFileSystemBrowser$DirectoryJob.run(AbstractFileSystemBrowser.java:69)
|
||||
at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54)
|
||||
!SESSION 2014-03-11 16:46:11.935 -----------------------------------------------
|
||||
eclipse.buildId=3.4.0.201304151603
|
||||
java.version=1.6.0_24
|
||||
java.vendor=Sun Microsystems Inc.
|
||||
BootLoader constants: OS=win32, ARCH=x86, WS=win32, NL=zh_CN
|
||||
Command-line arguments: -os win32 -ws win32 -arch x86
|
||||
|
||||
!ENTRY org.eclipse.equinox.p2.transport.ecf 2 0 2014-03-11 16:46:21.061
|
||||
!MESSAGE Connection to http://download.aptana.com/studio3-rcp/plugin/update/p2.index failed on download.aptana.com. Retry attempt 0 started
|
||||
!STACK 0
|
||||
java.net.UnknownHostException: download.aptana.com
|
||||
at java.net.PlainSocketImpl.connect(Unknown Source)
|
||||
at java.net.SocksSocketImpl.connect(Unknown Source)
|
||||
at java.net.Socket.connect(Unknown Source)
|
||||
at org.eclipse.ecf.provider.filetransfer.events.socket.SocketEventCreateUtil.createSocket(SocketEventCreateUtil.java:43)
|
||||
at org.eclipse.ecf.internal.provider.filetransfer.httpclient.ECFHttpClientProtocolSocketFactory.createSocket(ECFHttpClientProtocolSocketFactory.java:81)
|
||||
at org.eclipse.ecf.internal.provider.filetransfer.httpclient.ECFHttpClientProtocolSocketFactory.createSocket(ECFHttpClientProtocolSocketFactory.java:73)
|
||||
at org.eclipse.ecf.internal.provider.filetransfer.httpclient.ECFHttpClientProtocolSocketFactory.createSocket(ECFHttpClientProtocolSocketFactory.java:65)
|
||||
at org.apache.commons.httpclient.HttpConnection.open(HttpConnection.java:707)
|
||||
at org.apache.commons.httpclient.MultiThreadedHttpConnectionManager$HttpConnectionAdapter.open(MultiThreadedHttpConnectionManager.java:1361)
|
||||
at org.apache.commons.httpclient.HttpMethodDirector.executeWithRetry(HttpMethodDirector.java:387)
|
||||
at org.apache.commons.httpclient.HttpMethodDirector.executeMethod(HttpMethodDirector.java:171)
|
||||
at org.apache.commons.httpclient.HttpClient.executeMethod(HttpClient.java:397)
|
||||
at org.apache.commons.httpclient.HttpClient.executeMethod(HttpClient.java:346)
|
||||
at org.eclipse.ecf.provider.filetransfer.httpclient.HttpClientRetrieveFileTransfer.performConnect(HttpClientRetrieveFileTransfer.java:1142)
|
||||
at org.eclipse.ecf.provider.filetransfer.httpclient.HttpClientRetrieveFileTransfer.openStreams(HttpClientRetrieveFileTransfer.java:710)
|
||||
at org.eclipse.ecf.provider.filetransfer.retrieve.AbstractRetrieveFileTransfer.sendRetrieveRequest(AbstractRetrieveFileTransfer.java:889)
|
||||
at org.eclipse.ecf.provider.filetransfer.retrieve.AbstractRetrieveFileTransfer.sendRetrieveRequest(AbstractRetrieveFileTransfer.java:576)
|
||||
at org.eclipse.ecf.provider.filetransfer.retrieve.MultiProtocolRetrieveAdapter.sendRetrieveRequest(MultiProtocolRetrieveAdapter.java:106)
|
||||
at org.eclipse.equinox.internal.p2.transport.ecf.FileReader.sendRetrieveRequest(FileReader.java:349)
|
||||
at org.eclipse.equinox.internal.p2.transport.ecf.FileReader.readInto(FileReader.java:295)
|
||||
at org.eclipse.equinox.internal.p2.transport.ecf.RepositoryTransport.download(RepositoryTransport.java:87)
|
||||
at org.eclipse.equinox.internal.p2.transport.ecf.RepositoryTransport.download(RepositoryTransport.java:137)
|
||||
at org.eclipse.equinox.internal.p2.repository.helpers.AbstractRepositoryManager.loadIndexFile(AbstractRepositoryManager.java:721)
|
||||
at org.eclipse.equinox.internal.p2.repository.helpers.AbstractRepositoryManager.loadRepository(AbstractRepositoryManager.java:640)
|
||||
at org.eclipse.equinox.internal.p2.metadata.repository.MetadataRepositoryManager.loadRepository(MetadataRepositoryManager.java:96)
|
||||
at org.eclipse.equinox.internal.p2.metadata.repository.MetadataRepositoryManager.loadRepository(MetadataRepositoryManager.java:92)
|
||||
at org.eclipse.equinox.internal.p2.updatechecker.UpdateChecker.getAvailableRepositories(UpdateChecker.java:150)
|
||||
at org.eclipse.equinox.internal.p2.updatechecker.UpdateChecker.checkForUpdates(UpdateChecker.java:128)
|
||||
at org.eclipse.equinox.internal.p2.updatechecker.UpdateChecker$UpdateCheckThread.run(UpdateChecker.java:72)
|
||||
|
||||
!ENTRY org.eclipse.equinox.p2.transport.ecf 4 1006 2014-03-11 16:46:21.311
|
||||
!MESSAGE Unknown Host: http://download.aptana.com/studio3-rcp/plugin/update/content.xml
|
||||
!STACK 0
|
||||
java.net.UnknownHostException: download.aptana.com
|
||||
at java.net.PlainSocketImpl.connect(Unknown Source)
|
||||
at java.net.SocksSocketImpl.connect(Unknown Source)
|
||||
at java.net.Socket.connect(Unknown Source)
|
||||
at org.eclipse.ecf.provider.filetransfer.events.socket.SocketEventCreateUtil.createSocket(SocketEventCreateUtil.java:43)
|
||||
at org.eclipse.ecf.internal.provider.filetransfer.httpclient.ECFHttpClientProtocolSocketFactory.createSocket(ECFHttpClientProtocolSocketFactory.java:81)
|
||||
at org.eclipse.ecf.internal.provider.filetransfer.httpclient.ECFHttpClientProtocolSocketFactory.createSocket(ECFHttpClientProtocolSocketFactory.java:73)
|
||||
at org.eclipse.ecf.internal.provider.filetransfer.httpclient.ECFHttpClientProtocolSocketFactory.createSocket(ECFHttpClientProtocolSocketFactory.java:65)
|
||||
at org.apache.commons.httpclient.HttpConnection.open(HttpConnection.java:707)
|
||||
at org.apache.commons.httpclient.MultiThreadedHttpConnectionManager$HttpConnectionAdapter.open(MultiThreadedHttpConnectionManager.java:1361)
|
||||
at org.apache.commons.httpclient.HttpMethodDirector.executeWithRetry(HttpMethodDirector.java:387)
|
||||
at org.apache.commons.httpclient.HttpMethodDirector.executeMethod(HttpMethodDirector.java:171)
|
||||
at org.apache.commons.httpclient.HttpClient.executeMethod(HttpClient.java:397)
|
||||
at org.apache.commons.httpclient.HttpClient.executeMethod(HttpClient.java:346)
|
||||
at org.eclipse.ecf.provider.filetransfer.httpclient.HttpClientFileSystemBrowser.runRequest(HttpClientFileSystemBrowser.java:227)
|
||||
at org.eclipse.ecf.provider.filetransfer.browse.AbstractFileSystemBrowser$DirectoryJob.run(AbstractFileSystemBrowser.java:69)
|
||||
at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54)
|
||||
|
||||
!ENTRY org.eclipse.core.resources 4 1 2014-03-11 16:49:31.442
|
||||
!MESSAGE Problems occurred while refreshing local changes
|
||||
!SUBENTRY 1 org.eclipse.core.resources 4 1 2014-03-11 16:49:31.442
|
||||
!MESSAGE Problems occurred while refreshing local changes
|
||||
!STACK 1
|
||||
org.eclipse.core.internal.resources.ResourceException: Errors occurred while refreshing resources with the local file system.
|
||||
at org.eclipse.core.internal.localstore.FileSystemResourceManager.refreshResource(FileSystemResourceManager.java:923)
|
||||
at org.eclipse.core.internal.localstore.FileSystemResourceManager.refresh(FileSystemResourceManager.java:904)
|
||||
at org.eclipse.core.internal.resources.Resource.refreshLocal(Resource.java:1663)
|
||||
at org.eclipse.core.internal.refresh.RefreshJob.runInWorkspace(RefreshJob.java:167)
|
||||
at org.eclipse.core.internal.resources.InternalWorkspaceJob.run(InternalWorkspaceJob.java:38)
|
||||
at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54)
|
||||
Contains: The project description file (.project) for 'trustie2' is missing. This file contains important information about the project. The project will not function properly until this file is restored.
|
||||
!SUBENTRY 2 org.eclipse.core.resources 4 271 2014-03-11 16:49:31.442
|
||||
!MESSAGE Errors occurred while refreshing resources with the local file system.
|
||||
!SUBENTRY 3 org.eclipse.core.resources 4 567 2014-03-11 16:49:31.442
|
||||
!MESSAGE The project description file (.project) for 'trustie2' is missing. This file contains important information about the project. The project will not function properly until this file is restored.
|
||||
|
||||
!ENTRY com.aptana.ruby.core 4 0 2014-03-11 17:05:47.412
|
||||
!MESSAGE (eval):1: Use RbConfig instead of obsolete and deprecated Config.
|
||||
(eval):1: warning: variable $= is no longer effective
|
||||
(eval):1: warning: variable $KCODE is no longer effective
|
||||
(eval):1: warning: variable $KCODE is no longer effective
|
||||
D:/Users/nudt/AppData/Local/Aptana Studio 3/configuration/org.eclipse.osgi/bundles/93/1/.cp/ruby/core_stubber.rb:180:in `eval': Permission denied - E:\code\trustie\trustie2\.metadata\.plugins\com.aptana.ruby.core\1184073882\4 (Errno::EACCES)
|
||||
from D:/Users/nudt/AppData/Local/Aptana Studio 3/configuration/org.eclipse.osgi/bundles/93/1/.cp/ruby/core_stubber.rb:180:in `eval'
|
||||
from D:/Users/nudt/AppData/Local/Aptana Studio 3/configuration/org.eclipse.osgi/bundles/93/1/.cp/ruby/core_stubber.rb:180:in `block (3 levels) in <main>'
|
||||
from D:/Users/nudt/AppData/Local/Aptana Studio 3/configuration/org.eclipse.osgi/bundles/93/1/.cp/ruby/core_stubber.rb:179:in `each'
|
||||
from D:/Users/nudt/AppData/Local/Aptana Studio 3/configuration/org.eclipse.osgi/bundles/93/1/.cp/ruby/core_stubber.rb:179:in `block (2 levels) in <main>'
|
||||
from D:/Users/nudt/AppData/Local/Aptana Studio 3/configuration/org.eclipse.osgi/bundles/93/1/.cp/ruby/core_stubber.rb:178:in `open'
|
||||
from D:/Users/nudt/AppData/Local/Aptana Studio 3/configuration/org.eclipse.osgi/bundles/93/1/.cp/ruby/core_stubber.rb:178:in `block in <main>'
|
||||
from D:/Users/nudt/AppData/Local/Aptana Studio 3/configuration/org.eclipse.osgi/bundles/93/1/.cp/ruby/core_stubber.rb:152:in `each'
|
||||
from D:/Users/nudt/AppData/Local/Aptana Studio 3/configuration/org.eclipse.osgi/bundles/93/1/.cp/ruby/core_stubber.rb:152:in `<main>'
|
||||
|
||||
|
||||
!ENTRY com.aptana.ruby.core 4 0 2014-03-11 17:05:50.704
|
||||
!MESSAGE (Build 3.4.0.201304151603) [ERROR] Not supported yet.
|
||||
!STACK 0
|
||||
java.lang.UnsupportedOperationException: Not supported yet.
|
||||
at org.jrubyparser.ast.LambdaNode.accept(LambdaNode.java:58)
|
||||
at com.aptana.ruby.core.ast.AbstractVisitor.acceptNode(AbstractVisitor.java:37)
|
||||
at com.aptana.ruby.core.ast.InOrderVisitor.visitHashNode(InOrderVisitor.java:414)
|
||||
at org.jrubyparser.ast.HashNode.accept(HashNode.java:57)
|
||||
at com.aptana.ruby.core.ast.AbstractVisitor.acceptNode(AbstractVisitor.java:37)
|
||||
at com.aptana.ruby.core.ast.InOrderVisitor.visitCallNode(InOrderVisitor.java:193)
|
||||
at com.aptana.ruby.core.ast.SourceElementVisitor.visitCallNode(SourceElementVisitor.java:230)
|
||||
at org.jrubyparser.ast.CallNode.accept(CallNode.java:70)
|
||||
at com.aptana.ruby.core.ast.AbstractVisitor.acceptNode(AbstractVisitor.java:53)
|
||||
at com.aptana.ruby.core.ast.InOrderVisitor.visitLocalAsgnNode(InOrderVisitor.java:456)
|
||||
at com.aptana.ruby.core.ast.SourceElementVisitor.visitLocalAsgnNode(SourceElementVisitor.java:839)
|
||||
at org.jrubyparser.ast.LocalAsgnNode.accept(LocalAsgnNode.java:62)
|
||||
at com.aptana.ruby.core.ast.AbstractVisitor.acceptNode(AbstractVisitor.java:53)
|
||||
at com.aptana.ruby.core.ast.InOrderVisitor.visitIfNode(InOrderVisitor.java:438)
|
||||
at org.jrubyparser.ast.IfNode.accept(IfNode.java:65)
|
||||
at com.aptana.ruby.core.ast.AbstractVisitor.acceptNode(AbstractVisitor.java:53)
|
||||
at com.aptana.ruby.core.ast.InOrderVisitor.visitNewlineNode(InOrderVisitor.java:525)
|
||||
at org.jrubyparser.ast.NewlineNode.accept(NewlineNode.java:67)
|
||||
at com.aptana.ruby.core.ast.AbstractVisitor.acceptNode(AbstractVisitor.java:37)
|
||||
at com.aptana.ruby.core.ast.InOrderVisitor.visitDefnNode(InOrderVisitor.java:299)
|
||||
at com.aptana.ruby.core.ast.SourceElementVisitor.visitDefnNode(SourceElementVisitor.java:346)
|
||||
at org.jrubyparser.ast.DefnNode.accept(DefnNode.java:51)
|
||||
at com.aptana.ruby.core.ast.AbstractVisitor.acceptNode(AbstractVisitor.java:53)
|
||||
at com.aptana.ruby.core.ast.InOrderVisitor.visitNewlineNode(InOrderVisitor.java:525)
|
||||
at org.jrubyparser.ast.NewlineNode.accept(NewlineNode.java:67)
|
||||
at com.aptana.ruby.core.ast.AbstractVisitor.acceptNode(AbstractVisitor.java:37)
|
||||
at com.aptana.ruby.core.ast.InOrderVisitor.visitClassNode(InOrderVisitor.java:213)
|
||||
at com.aptana.ruby.core.ast.SourceElementVisitor.visitClassNode(SourceElementVisitor.java:260)
|
||||
at org.jrubyparser.ast.ClassNode.accept(ClassNode.java:68)
|
||||
at com.aptana.ruby.core.ast.AbstractVisitor.acceptNode(AbstractVisitor.java:53)
|
||||
at com.aptana.ruby.core.ast.InOrderVisitor.visitNewlineNode(InOrderVisitor.java:525)
|
||||
at org.jrubyparser.ast.NewlineNode.accept(NewlineNode.java:67)
|
||||
at com.aptana.ruby.core.ast.AbstractVisitor.acceptNode(AbstractVisitor.java:37)
|
||||
at com.aptana.ruby.core.ast.InOrderVisitor.visitModuleNode(InOrderVisitor.java:517)
|
||||
at com.aptana.ruby.core.ast.SourceElementVisitor.visitModuleNode(SourceElementVisitor.java:824)
|
||||
at org.jrubyparser.ast.ModuleNode.accept(ModuleNode.java:66)
|
||||
at com.aptana.ruby.core.ast.AbstractVisitor.acceptNode(AbstractVisitor.java:53)
|
||||
at com.aptana.ruby.core.ast.InOrderVisitor.visitNewlineNode(InOrderVisitor.java:525)
|
||||
at org.jrubyparser.ast.NewlineNode.accept(NewlineNode.java:67)
|
||||
at com.aptana.ruby.core.ast.AbstractVisitor.acceptNode(AbstractVisitor.java:37)
|
||||
at com.aptana.ruby.core.ast.InOrderVisitor.visitRootNode(InOrderVisitor.java:668)
|
||||
at com.aptana.ruby.core.ast.SourceElementVisitor.visitRootNode(SourceElementVisitor.java:848)
|
||||
at org.jrubyparser.ast.RootNode.accept(RootNode.java:84)
|
||||
at com.aptana.ruby.core.ast.AbstractVisitor.acceptNode(AbstractVisitor.java:53)
|
||||
at com.aptana.ruby.internal.core.index.RubyFileIndexingParticipant.indexAST(RubyFileIndexingParticipant.java:73)
|
||||
at com.aptana.ruby.internal.core.index.RubyFileIndexingParticipant.indexSource(RubyFileIndexingParticipant.java:61)
|
||||
at com.aptana.ruby.internal.core.index.RubyFileIndexingParticipant.index(RubyFileIndexingParticipant.java:37)
|
||||
at com.aptana.index.core.IndexRequestJob.indexFileStores(IndexRequestJob.java:205)
|
||||
at com.aptana.index.core.IndexContainerJob.run(IndexContainerJob.java:114)
|
||||
at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54)
|
|
@ -0,0 +1,2 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<connections/>
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
|
@ -0,0 +1,5 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<section name="Workbench">
|
||||
<section name="PromoteToProjectWizard">
|
||||
</section>
|
||||
</section>
|
|
@ -0,0 +1,11 @@
|
|||
class ArgumentError < StandardError
|
||||
|
||||
|
||||
|
||||
|
||||
protected
|
||||
|
||||
|
||||
private
|
||||
|
||||
end
|
|
@ -0,0 +1,13 @@
|
|||
ARGV = []
|
||||
TRUE = true
|
||||
FALSE = false
|
||||
STDOUT = IO.new
|
||||
STDIN = IO.new
|
||||
STDERR = IO.new
|
||||
ENV = {}
|
||||
NIL = nil
|
||||
RUBY_PATCHLEVEL = 392
|
||||
RUBY_COPYRIGHT = 'ruby - Copyright (C) 1993-2013 Yukihiro Matsumoto'
|
||||
TOPLEVEL_BINDING = Binding.new
|
||||
RUBY_VERSION = '1.9.3'
|
||||
RUBY_PLATFORM = 'i386-mingw32'
|
|
@ -0,0 +1,24 @@
|
|||
$; = nil
|
||||
$-F = nil
|
||||
$@ = nil
|
||||
$! = nil
|
||||
$SAFE = 0
|
||||
$~ = nil
|
||||
$& = nil
|
||||
$` = nil
|
||||
$' = nil
|
||||
$+ = nil
|
||||
$= = false
|
||||
$KCODE = nil
|
||||
$-K = nil
|
||||
$, = nil
|
||||
$/ = "\n"
|
||||
$-0 = "\n"
|
||||
$\ = nil
|
||||
$_ = nil
|
||||
$stdin = IO.new
|
||||
$stdout = IO.new
|
||||
$stderr = IO.new
|
||||
$> = IO.new
|
||||
$< = ARGF
|
||||
$. = 0
|
|
@ -0,0 +1,6 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<section name="Workbench">
|
||||
<section name="BasicNewProjectResourceWizard">
|
||||
<item value="E:\code" key="OUTSIDE_LOCATION"/>
|
||||
</section>
|
||||
</section>
|
|
@ -0,0 +1,7 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<connection>
|
||||
<connection>
|
||||
<name>Default</name>
|
||||
<source>file:/C:/Users/nudt</source>
|
||||
</connection>
|
||||
</connection>
|
|
@ -0,0 +1,2 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<sites/>
|
|
@ -0,0 +1,6 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<servers>
|
||||
<server host="0.0.0.0" port="3000" project="E:/code/demo" type="org.radrails.rails.railsServer">
|
||||
<name>demo</name>
|
||||
</server>
|
||||
</servers>
|
Binary file not shown.
|
@ -0,0 +1 @@
|
|||
|
Binary file not shown.
|
@ -0,0 +1 @@
|
|||
|
Binary file not shown.
|
@ -0,0 +1,3 @@
|
|||
#safe table
|
||||
#Tue Mar 11 17:27:27 CST 2014
|
||||
connections=connections.9
|
|
@ -0,0 +1,4 @@
|
|||
#safe table
|
||||
#Tue Mar 11 17:27:27 CST 2014
|
||||
defaultConnection=defaultConnection.9
|
||||
sites=sites.9
|
|
@ -0,0 +1,3 @@
|
|||
#safe table
|
||||
#Tue Mar 11 17:27:27 CST 2014
|
||||
webservers=webservers.8
|
Binary file not shown.
|
@ -0,0 +1,15 @@
|
|||
AbstractTextEditor.Color.Background=20,20,20
|
||||
AbstractTextEditor.Color.Background.SystemDefault=false
|
||||
AbstractTextEditor.Color.Foreground=248,248,248
|
||||
AbstractTextEditor.Color.Foreground.SystemDefault=false
|
||||
AbstractTextEditor.Color.SelectionForeground=248,248,248
|
||||
AbstractTextEditor.Color.SelectionForeground.SystemDefault=false
|
||||
CONFLICTING_COLOR=66,14,9
|
||||
INCOMING_COLOR=235,235,235
|
||||
OUTGOING_COLOR=235,235,235
|
||||
RESOLVED_COLOR=37,59,34
|
||||
additionIndicationColor=37,59,34
|
||||
changeIndicationColor=37,59,34
|
||||
currentLineColor=27,27,27
|
||||
deletionIndicationColor=66,14,9
|
||||
eclipse.preferences.version=1
|
|
@ -0,0 +1,2 @@
|
|||
activeProject=demo
|
||||
eclipse.preferences.version=1
|
|
@ -0,0 +1,2 @@
|
|||
JS_INDEX_VERSION=0.36
|
||||
eclipse.preferences.version=1
|
|
@ -0,0 +1,2 @@
|
|||
eclipse.preferences.version=1
|
||||
last_known_studio_version=3.4.0.1358388620
|
|
@ -0,0 +1,3 @@
|
|||
EDITOR_LINE_NUMBER_SET=true
|
||||
WORKSPACE_ENCODING_SET=true
|
||||
eclipse.preferences.version=1
|
|
@ -0,0 +1,2 @@
|
|||
eclipse.preferences.version=1
|
||||
index_version=5
|
File diff suppressed because one or more lines are too long
|
@ -0,0 +1,3 @@
|
|||
IDEHasLaunchedBefore=true
|
||||
PerspectiveVersion=103
|
||||
eclipse.preferences.version=1
|
|
@ -0,0 +1,4 @@
|
|||
eclipse.preferences.version=1
|
||||
encoding=UTF-8
|
||||
refresh.enabled=true
|
||||
version=1
|
|
@ -0,0 +1,7 @@
|
|||
eclipse.preferences.version=1
|
||||
org.eclipse.debug.ui.PREF_CHANGED_VALUE_BACKGROUND=74,65,13
|
||||
org.eclipse.debug.ui.PREF_LAUNCH_PERSPECTIVES=<?xml version\="1.0" encoding\="UTF-8" standalone\="no"?>\r\n<launchPerspectives/>\r\n
|
||||
org.eclipse.debug.ui.consoleBackground=20,20,20
|
||||
org.eclipse.debug.ui.errorColor=255,0,0
|
||||
org.eclipse.debug.ui.inColor=95,175,176
|
||||
org.eclipse.debug.ui.outColor=248,248,248
|
|
@ -0,0 +1,2 @@
|
|||
eclipse.preferences.version=1
|
||||
org.eclipse.search.potentialMatch.fgColor=94,101,105
|
|
@ -0,0 +1,2 @@
|
|||
browsers=<?xml version\="1.0" encoding\="UTF-8"?>\r\n<web-browsers current\="0">\r\n<system/>\r\n<external location\="C\:\\Program Files\\Internet Explorer\\iexplore.exe" name\="Internet Explorer"/>\r\n</web-browsers>
|
||||
eclipse.preferences.version=1
|
|
@ -0,0 +1,40 @@
|
|||
AbstractTextEditor.Color.Background=20,20,20
|
||||
AbstractTextEditor.Color.Background.SystemDefault=false
|
||||
AbstractTextEditor.Color.Foreground=248,248,248
|
||||
AbstractTextEditor.Color.Foreground.SystemDefault=false
|
||||
AbstractTextEditor.Color.SelectionBackground=60,64,67
|
||||
AbstractTextEditor.Color.SelectionBackground.SystemDefault=false
|
||||
AbstractTextEditor.Color.SelectionForeground=248,248,248
|
||||
AbstractTextEditor.Color.SelectionForeground.SystemDefault=false
|
||||
CONFLICTING_COLOR=66,14,9
|
||||
INCOMING_COLOR=235,235,235
|
||||
OUTGOING_COLOR=235,235,235
|
||||
OccurrenceIndicationColor=94,101,105
|
||||
RESOLVED_COLOR=37,59,34
|
||||
additionIndicationColor=37,59,34
|
||||
changeIndicationColor=37,59,34
|
||||
currentIPColor=14,34,49
|
||||
currentLineColor=27,27,27
|
||||
deletionIndicationColor=66,14,9
|
||||
eclipse.preferences.version=1
|
||||
htmlTagPairOccurrenceIndication=true
|
||||
htmlTagPairOccurrenceIndicationColor=94,94,94
|
||||
htmlTagPairOccurrenceIndicationHighlighting=false
|
||||
htmlTagPairOccurrenceIndicationTextStyle=BOX
|
||||
lineNumberRuler=true
|
||||
occurrenceIndicationColor=60,64,67
|
||||
pydevOccurrenceHighlighting=false
|
||||
pydevOccurrenceIndication=true
|
||||
pydevOccurrenceIndicationColor=94,94,94
|
||||
pydevOccurrenceIndicationTextStyle=BOX
|
||||
rubyBlockPairOccurrenceIndication=true
|
||||
rubyBlockPairOccurrenceIndicationColor=94,94,94
|
||||
rubyBlockPairOccurrenceIndicationHighlighting=false
|
||||
rubyBlockPairOccurrenceIndicationTextStyle=BOX
|
||||
searchResultIndicationColor=94,101,105
|
||||
secondaryIPColor=14,34,49
|
||||
writeOccurrenceIndicationColor=60,64,67
|
||||
xmlTagPairOccurrenceIndication=true
|
||||
xmlTagPairOccurrenceIndicationColor=94,94,94
|
||||
xmlTagPairOccurrenceIndicationHighlighting=false
|
||||
xmlTagPairOccurrenceIndicationTextStyle=BOX
|
|
@ -0,0 +1,7 @@
|
|||
PROBLEMS_FILTERS_MIGRATE=true
|
||||
SHOW_COOLBAR=true
|
||||
SHOW_PERSPECTIVEBAR=true
|
||||
eclipse.preferences.version=1
|
||||
platformState=1394526372425
|
||||
quickStart=false
|
||||
tipsAndTricks=true
|
|
@ -0,0 +1,9 @@
|
|||
AbstractTextEditor.Color.Background=20,20,20
|
||||
AbstractTextEditor.Color.Background.SystemDefault=false
|
||||
AbstractTextEditor.Color.Foreground=248,248,248
|
||||
AbstractTextEditor.Color.Foreground.SystemDefault=false
|
||||
AbstractTextEditor.Color.SelectionBackground=60,64,67
|
||||
AbstractTextEditor.Color.SelectionForeground=248,248,248
|
||||
AbstractTextEditor.Color.SelectionForeground.SystemDefault=false
|
||||
currentLineColor=27,27,27
|
||||
eclipse.preferences.version=1
|
|
@ -0,0 +1,21 @@
|
|||
ACTIVE_HYPERLINK_COLOR=84,143,160
|
||||
HYPERLINK_COLOR=84,143,160
|
||||
com.vectrace.mercurialeclipse.ui.colorsandfonts.IgnoredBackgroundColor=20,20,20
|
||||
com.vectrace.mercurialeclipse.ui.colorsandfonts.IgnoredForegroundColor=248,248,248
|
||||
com.vectrace.mercurialeclipse.ui.colorsandfonts.addedBackgroundColor=37,59,34
|
||||
com.vectrace.mercurialeclipse.ui.colorsandfonts.addedForegroundColor=248,248,248
|
||||
com.vectrace.mercurialeclipse.ui.colorsandfonts.changedBackgroundColor=74,65,13
|
||||
com.vectrace.mercurialeclipse.ui.colorsandfonts.changedForegroundColor=248,248,248
|
||||
com.vectrace.mercurialeclipse.ui.colorsandfonts.conflictBackgroundColor=20,20,20
|
||||
com.vectrace.mercurialeclipse.ui.colorsandfonts.conflictForegroundColor=248,248,248
|
||||
com.vectrace.mercurialeclipse.ui.colorsandfonts.deletedBackgroundColor=66,14,9
|
||||
com.vectrace.mercurialeclipse.ui.colorsandfonts.deletedForegroundColor=248,248,248
|
||||
com.vectrace.mercurialeclipse.ui.colorsandfonts.removedBackgroundColor=66,14,9
|
||||
com.vectrace.mercurialeclipse.ui.colorsandfonts.removedForegroundColor=248,248,248
|
||||
com.vectrace.mercurialeclipse.ui.colorsandfonts.unknownBackgroundColor=20,20,20
|
||||
com.vectrace.mercurialeclipse.ui.colorsandfonts.unknownForegroundColor=248,248,248
|
||||
eclipse.preferences.version=1
|
||||
hyperlinkColor=84,143,160
|
||||
hyperlinkColor.SystemDefault=false
|
||||
org.eclipse.egit.ui.UncommittedChangeBackgroundColor=37,59,34
|
||||
org.eclipse.egit.ui.UncommittedChangeForegroundColor=248,248,248
|
|
@ -0,0 +1,20 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<launchConfiguration type="com.aptana.js.debug.core.webbrowserLaunchConfigurationType">
|
||||
<booleanAttribute key="advancedRunEnabled" value="false"/>
|
||||
<booleanAttribute key="appendProjectName" value="true"/>
|
||||
<stringAttribute key="browserExecutable" value=""/>
|
||||
<stringAttribute key="browserNature" value="Firefox"/>
|
||||
<stringAttribute key="externalBaseUrl" value=""/>
|
||||
<stringAttribute key="httpGetData" value=""/>
|
||||
<stringAttribute key="httpPostContentType" value=""/>
|
||||
<stringAttribute key="httpPostData" value=""/>
|
||||
<booleanAttribute key="overrideDebugPreferences" value="false"/>
|
||||
<intAttribute key="serverType" value="1"/>
|
||||
<intAttribute key="startActionType" value="1"/>
|
||||
<stringAttribute key="startPagePath" value=""/>
|
||||
<stringAttribute key="startPageUrl" value=""/>
|
||||
<booleanAttribute key="suspendOnDebuggerKeywords" value="true"/>
|
||||
<booleanAttribute key="suspendOnErrors" value="true"/>
|
||||
<booleanAttribute key="suspendOnExceptions" value="false"/>
|
||||
<booleanAttribute key="suspendOnFirstLine" value="false"/>
|
||||
</launchConfiguration>
|
|
@ -0,0 +1,20 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<launchConfiguration type="com.aptana.js.debug.core.webbrowserLaunchConfigurationType">
|
||||
<booleanAttribute key="advancedRunEnabled" value="false"/>
|
||||
<booleanAttribute key="appendProjectName" value="true"/>
|
||||
<stringAttribute key="browserExecutable" value="C:\Program Files (x86)\Internet Explorer\iexplore.exe"/>
|
||||
<stringAttribute key="browserNature" value="Internet Explorer"/>
|
||||
<stringAttribute key="externalBaseUrl" value=""/>
|
||||
<stringAttribute key="httpGetData" value=""/>
|
||||
<stringAttribute key="httpPostContentType" value=""/>
|
||||
<stringAttribute key="httpPostData" value=""/>
|
||||
<booleanAttribute key="overrideDebugPreferences" value="false"/>
|
||||
<intAttribute key="serverType" value="1"/>
|
||||
<intAttribute key="startActionType" value="1"/>
|
||||
<stringAttribute key="startPagePath" value=""/>
|
||||
<stringAttribute key="startPageUrl" value=""/>
|
||||
<booleanAttribute key="suspendOnDebuggerKeywords" value="true"/>
|
||||
<booleanAttribute key="suspendOnErrors" value="true"/>
|
||||
<booleanAttribute key="suspendOnExceptions" value="false"/>
|
||||
<booleanAttribute key="suspendOnFirstLine" value="false"/>
|
||||
</launchConfiguration>
|
|
@ -0,0 +1,25 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<launchHistory>
|
||||
<launchGroup id="org.eclipse.ui.externaltools.launchGroup">
|
||||
<mruHistory/>
|
||||
<favorites/>
|
||||
</launchGroup>
|
||||
<launchGroup id="org.eclipse.debug.ui.launchGroup.profile">
|
||||
<mruHistory/>
|
||||
<favorites/>
|
||||
</launchGroup>
|
||||
<launchGroup id="org.eclipse.debug.ui.launchGroup.debug">
|
||||
<mruHistory>
|
||||
<launch memento="<?xml version="1.0" encoding="UTF-8" standalone="no"?> <launchConfiguration local="true" path="Firefox - Internal Server"/> "/>
|
||||
<launch memento="<?xml version="1.0" encoding="UTF-8" standalone="no"?> <launchConfiguration local="true" path="Internet Explorer - Internal Server"/> "/>
|
||||
</mruHistory>
|
||||
<favorites/>
|
||||
</launchGroup>
|
||||
<launchGroup id="org.eclipse.debug.ui.launchGroup.run">
|
||||
<mruHistory>
|
||||
<launch memento="<?xml version="1.0" encoding="UTF-8" standalone="no"?> <launchConfiguration local="true" path="Firefox - Internal Server"/> "/>
|
||||
<launch memento="<?xml version="1.0" encoding="UTF-8" standalone="no"?> <launchConfiguration local="true" path="Internet Explorer - Internal Server"/> "/>
|
||||
</mruHistory>
|
||||
<favorites/>
|
||||
</launchGroup>
|
||||
</launchHistory>
|
|
@ -0,0 +1,14 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<section name="Workbench">
|
||||
<list key="installedFeatures">
|
||||
<item value="com.aptana.feature.rcp:3.4.0.201304151603-7o7nFDBFFeFt3XrpXNucaz0uIWkY"/>
|
||||
<item value="com.aptana.feature.studio:3.4.0.201304151542-7E7G-7MEMVKUHgFcLgFbkKoz0t-7"/>
|
||||
<item value="com.aptana.feature:3.4.0.1365900908-BW7R8FBu-Ylk0DFYW1DC44EXt-dS"/>
|
||||
<item value="com.aptana.php.feature:3.3.0.201304151524-7J7E-7IOW_UXOSJY"/>
|
||||
<item value="com.aptana.pydev.feature:2.7.0.2013032300-7g9I-8Jez0cfdJcee"/>
|
||||
<item value="org.eclipse.help:1.3.0.v20110530-0844-7i7uFFmFFl8nvqbDpEqTvx"/>
|
||||
<item value="org.eclipse.platform:3.7.2.v20120207-1839-9gF7UHPDFxGjd-PqDr2jX_4yKaumkoHTz04_q-q"/>
|
||||
<item value="org.eclipse.rcp:3.7.2.v20120120-1424-9DB5FmnFq5JCf1UA38R-kz0S0272"/>
|
||||
<item value="org.radrails.rails:3.3.0.201304151525-7e-7Q7f5GRKMDENR"/>
|
||||
</list>
|
||||
</section>
|
|
@ -0,0 +1,10 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<section name="Workbench">
|
||||
<section name="ImportExportAction">
|
||||
<item value="com.aptana.projects.internal.wizards.PromoteToProjectWizard" key="ImportExportPage.STORE_SELECTED_IMPORT_WIZARD_ID"/>
|
||||
<list key="ImportExportPage.STORE_EXPANDED_IMPORT_CATEGORIES">
|
||||
<item value="org.eclipse.ui.Basic"/>
|
||||
<item value="com.aptana.git.ui.clone.category"/>
|
||||
</list>
|
||||
</section>
|
||||
</section>
|
|
@ -0,0 +1,202 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<workbench progressCount="30" version="2.0">
|
||||
<workbenchAdvisor/>
|
||||
<window height="940" maximized="true" width="1200" x="13" y="31">
|
||||
<fastViewData fastViewLocation="1024"/>
|
||||
<perspectiveBar>
|
||||
<itemSize x="160"/>
|
||||
</perspectiveBar>
|
||||
<coolbarLayout>
|
||||
<coolItem id="group.file" itemType="typeGroupMarker"/>
|
||||
<coolItem id="org.eclipse.ui.workbench.file" itemType="typeToolBarContribution" x="126" y="22"/>
|
||||
<coolItem id="additions" itemType="typeGroupMarker"/>
|
||||
<coolItem id="org.eclipse.debug.ui.launchActionSet" itemType="typeToolBarContribution" x="145" y="22"/>
|
||||
<coolItem id="org.eclipse.search.searchActionSet" itemType="typeToolBarContribution" x="88" y="22"/>
|
||||
<coolItem id="com.aptana.ui.globalActionSet" itemType="typeToolBarContribution" x="172" y="22"/>
|
||||
<coolItem id="org.eclipse.ui.edit.text.actionSet.presentation" itemType="typeToolBarContribution" x="84" y="22"/>
|
||||
<coolItem id="group.nav" itemType="typeGroupMarker"/>
|
||||
<coolItem id="org.eclipse.ui.workbench.navigate" itemType="typeToolBarContribution" x="99" y="22"/>
|
||||
<coolItem id="group.editor" itemType="typeGroupMarker"/>
|
||||
<coolItem id="group.help" itemType="typeGroupMarker"/>
|
||||
<coolItem id="org.eclipse.ui.workbench.help" itemType="typeToolBarContribution" x="-1" y="-1"/>
|
||||
</coolbarLayout>
|
||||
<page aggregateWorkingSetId="Aggregate for window 1394526806133" focus="true" label="Workspace - Web">
|
||||
<editors>
|
||||
<editorArea activeWorkbook="DefaultEditorWorkbook">
|
||||
<info part="DefaultEditorWorkbook">
|
||||
<folder appearance="1" expanded="2">
|
||||
<presentation id="org.eclipse.ui.presentations.WorkbenchPresentationFactory"/>
|
||||
</folder>
|
||||
</info>
|
||||
</editorArea>
|
||||
</editors>
|
||||
<views>
|
||||
<view id="org.eclipse.ui.navigator.ProjectExplorer" partName="Project Explorer">
|
||||
<viewState CommonNavigator.LINKING_ENABLED="0" org.eclipse.ui.navigator.resources.workingSets.showTopLevelWorkingSets="0"/>
|
||||
</view>
|
||||
<view id="com.aptana.terminal.views.terminal:demo" partName="demo">
|
||||
<viewState>
|
||||
<title>demo</title>
|
||||
<workingDirectory>E:\code\demo</workingDirectory>
|
||||
</viewState>
|
||||
</view>
|
||||
<view id="com.aptana.snippets.ui.views.SnippetsView" partName="Snippets">
|
||||
<viewState/>
|
||||
</view>
|
||||
<view id="com.aptana.terminal.views.terminal" partName="Terminal">
|
||||
<viewState>
|
||||
<title>Terminal</title>
|
||||
<workingDirectory>C:\Users\nudt</workingDirectory>
|
||||
</viewState>
|
||||
</view>
|
||||
<view id="com.aptana.samples.ui.SamplesView" partName="Samples">
|
||||
<viewState/>
|
||||
</view>
|
||||
<view id="org.eclipse.ui.views.ProblemView" partName="Problems">
|
||||
<viewState PRIMARY_SORT_FIELD="org.eclipse.ui.ide.severityAndDescriptionField" categoryGroup="org.eclipse.ui.ide.severity" markerContentGenerator="org.eclipse.ui.ide.problemsGenerator" partName="Problems">
|
||||
<columnWidths org.eclipse.ui.ide.locationField="105" org.eclipse.ui.ide.markerType="105" org.eclipse.ui.ide.pathField="140" org.eclipse.ui.ide.resourceField="105" org.eclipse.ui.ide.severityAndDescriptionField="350"/>
|
||||
<visible IMemento.internal.id="org.eclipse.ui.ide.severityAndDescriptionField"/>
|
||||
<visible IMemento.internal.id="org.eclipse.ui.ide.resourceField"/>
|
||||
<visible IMemento.internal.id="org.eclipse.ui.ide.pathField"/>
|
||||
<visible IMemento.internal.id="org.eclipse.ui.ide.locationField"/>
|
||||
<visible IMemento.internal.id="org.eclipse.ui.ide.markerType"/>
|
||||
</viewState>
|
||||
</view>
|
||||
<view id="org.eclipse.ui.console.ConsoleView" partName="Console">
|
||||
<viewState/>
|
||||
</view>
|
||||
<view id="com.aptana.explorer.view" partName="App Explorer">
|
||||
<viewState CommonNavigator.LINKING_ENABLED="0" GitChangedFilesFilterEnabled="" activeProject="demo">
|
||||
<project name="demo">
|
||||
<selection>
|
||||
<element path="/demo/app"/>
|
||||
</selection>
|
||||
</project>
|
||||
</viewState>
|
||||
</view>
|
||||
<view id="org.eclipse.ui.views.ContentOutline" partName="Outline">
|
||||
<viewState/>
|
||||
</view>
|
||||
</views>
|
||||
<perspectives activePart="com.aptana.explorer.view" activePerspective="com.aptana.ui.WebPerspective">
|
||||
<perspective editorAreaTrimState="2" editorAreaVisible="1" fixed="0" version="0.016">
|
||||
<descriptor class="com.aptana.ui.internal.WebPerspectiveFactory" id="com.aptana.ui.WebPerspective" label="Web"/>
|
||||
<alwaysOnActionSet id="com.aptana.browser.actionSet"/>
|
||||
<alwaysOnActionSet id="com.aptana.ruby.debug.ui.RubyDebugActionSet"/>
|
||||
<alwaysOnActionSet id="org.eclipse.ui.cheatsheets.actionSet"/>
|
||||
<alwaysOnActionSet id="org.eclipse.search.searchActionSet"/>
|
||||
<alwaysOnActionSet id="org.eclipse.ui.edit.text.actionSet.convertLineDelimitersTo"/>
|
||||
<alwaysOnActionSet id="org.eclipse.ui.actionSet.keyBindings"/>
|
||||
<alwaysOnActionSet id="org.eclipse.ui.actionSet.openFiles"/>
|
||||
<alwaysOnActionSet id="com.aptana.editor.common.presentation"/>
|
||||
<alwaysOnActionSet id="org.eclipse.debug.ui.launchActionSet"/>
|
||||
<alwaysOnActionSet id="org.eclipse.debug.ui.breakpointActionSet"/>
|
||||
<alwaysOnActionSet id="com.aptana.js.debug.ui.actionSet"/>
|
||||
<alwaysOnActionSet id="org.eclipse.ui.NavigateActionSet"/>
|
||||
<alwaysOnActionSet id="org.eclipse.ui.edit.text.actionSet.presentation"/>
|
||||
<alwaysOnActionSet id="com.aptana.ui.globalActionSet"/>
|
||||
<alwaysOnActionSet id="com.aptana.terminal.actionSet"/>
|
||||
<show_view_action id="com.aptana.browser.views.webbrowser"/>
|
||||
<show_view_action id="com.aptana.explorer.view"/>
|
||||
<show_view_action id="org.eclipse.ui.navigator.ProjectExplorer"/>
|
||||
<show_view_action id="com.aptana.ui.io.remoteview"/>
|
||||
<show_view_action id="org.eclipse.ui.views.ContentOutline"/>
|
||||
<show_view_action id="com.aptana.samples.ui.SamplesView"/>
|
||||
<show_view_action id="com.aptana.snippets.ui.views.SnippetsView"/>
|
||||
<show_view_action id="com.aptana.terminal.views.terminal"/>
|
||||
<show_view_action id="org.eclipse.ui.console.ConsoleView"/>
|
||||
<show_view_action id="org.eclipse.pde.runtime.LogView"/>
|
||||
<show_view_action id="org.eclipse.ui.views.ProblemView"/>
|
||||
<show_view_action id="org.eclipse.ui.views.TaskList"/>
|
||||
<show_view_action id="com.aptana.webserver.ui.view"/>
|
||||
<new_wizard_action id="com.aptana.editor.php.NewPHPProjectWizard"/>
|
||||
<new_wizard_action id="com.aptana.ui.wizards.NewWebProject"/>
|
||||
<new_wizard_action id="com.aptana.ruby.core.ui.rubyProjectWizard"/>
|
||||
<new_wizard_action id="com.aptana.ui.wizards.new.file"/>
|
||||
<new_wizard_action id="org.eclipse.ui.wizards.new.folder"/>
|
||||
<new_wizard_action id="org.eclipse.ui.editors.wizards.UntitledTextFileWizard"/>
|
||||
<new_wizard_action id="org.radrails.rails.ui.projectWizard"/>
|
||||
<perspective_action id="org.eclipse.debug.ui.DebugPerspective"/>
|
||||
<hide_toolbar_item_id id="org.eclipse.ui.edit.text.toggleShowSelectedElementOnly"/>
|
||||
<view id="com.aptana.explorer.view"/>
|
||||
<view id="org.eclipse.ui.navigator.ProjectExplorer"/>
|
||||
<view id="org.eclipse.ui.console.ConsoleView"/>
|
||||
<view id="com.aptana.terminal.views.terminal"/>
|
||||
<view id="org.eclipse.ui.views.ProblemView"/>
|
||||
<view id="com.aptana.terminal.views.terminal:demo"/>
|
||||
<view id="org.eclipse.ui.views.ContentOutline"/>
|
||||
<view id="com.aptana.samples.ui.SamplesView"/>
|
||||
<view id="com.aptana.snippets.ui.views.SnippetsView"/>
|
||||
<fastViewBars/>
|
||||
<layout>
|
||||
<mainWindow>
|
||||
<info folder="true" part="left">
|
||||
<folder activePageID="com.aptana.explorer.view" appearance="2" expanded="2">
|
||||
<page content="com.aptana.explorer.view" label="App Explorer"/>
|
||||
<page content="org.eclipse.ui.navigator.ProjectExplorer" label="Project Explorer"/>
|
||||
<page content="com.aptana.ui.io.remoteview" label="LabelNotFound"/>
|
||||
<presentation id="org.eclipse.ui.presentations.WorkbenchPresentationFactory">
|
||||
<part id="0"/>
|
||||
<part id="1"/>
|
||||
</presentation>
|
||||
</folder>
|
||||
</info>
|
||||
<info folder="true" part="stickyFolderRight" ratio="0.7495741" ratioLeft="880" ratioRight="294" relationship="2" relative="left">
|
||||
<folder appearance="2" expanded="2">
|
||||
<page content="org.eclipse.help.ui.HelpView" label="LabelNotFound"/>
|
||||
<page content="org.eclipse.ui.internal.introview" label="LabelNotFound"/>
|
||||
<page content="org.eclipse.ui.cheatsheets.views.CheatSheetView" label="LabelNotFound"/>
|
||||
</folder>
|
||||
</info>
|
||||
<info part="org.eclipse.ui.editorss" ratio="0.19931857" ratioLeft="234" ratioRight="940" relationship="2" relative="left"/>
|
||||
<info folder="true" part="terminalArea" ratio="0.75" ratioLeft="627" ratioRight="209" relationship="4" relative="org.eclipse.ui.editorss">
|
||||
<folder activePageID="com.aptana.terminal.views.terminal:demo" appearance="2" expanded="2">
|
||||
<page content="org.eclipse.ui.console.ConsoleView" label="Console"/>
|
||||
<page content="com.aptana.terminal.views.terminal" label="Terminal"/>
|
||||
<page content="org.eclipse.ui.views.ProblemView" label="Problems"/>
|
||||
<page content="com.aptana.terminal.views.terminal:demo" label="demo"/>
|
||||
<page content="org.eclipse.pde.runtime.LogView" label="LabelNotFound"/>
|
||||
<page content="org.eclipse.ui.views.TaskList" label="LabelNotFound"/>
|
||||
<presentation id="org.eclipse.ui.presentations.WorkbenchPresentationFactory">
|
||||
<part id="0"/>
|
||||
<part id="1"/>
|
||||
<part id="2"/>
|
||||
<part id="3"/>
|
||||
</presentation>
|
||||
</folder>
|
||||
</info>
|
||||
<info folder="true" part="org.eclipse.ui.internal.ViewStack@d90254" ratio="0.75" ratioLeft="627" ratioRight="209" relationship="4" relative="left">
|
||||
<folder activePageID="com.aptana.snippets.ui.views.SnippetsView" appearance="2" expanded="2">
|
||||
<page content="org.eclipse.ui.views.ContentOutline" label="Outline"/>
|
||||
<page content="com.aptana.samples.ui.SamplesView" label="Samples"/>
|
||||
<page content="com.aptana.snippets.ui.views.SnippetsView" label="Snippets"/>
|
||||
<presentation id="org.eclipse.ui.presentations.WorkbenchPresentationFactory">
|
||||
<part id="0"/>
|
||||
<part id="1"/>
|
||||
<part id="2"/>
|
||||
</presentation>
|
||||
</folder>
|
||||
</info>
|
||||
</mainWindow>
|
||||
</layout>
|
||||
</perspective>
|
||||
</perspectives>
|
||||
<workingSets/>
|
||||
<navigationHistory/>
|
||||
<input factoryID="org.eclipse.ui.internal.model.ResourceFactory" path="/" type="8"/>
|
||||
</page>
|
||||
<workbenchWindowAdvisor/>
|
||||
<actionBarAdvisor/>
|
||||
<trimLayout>
|
||||
<trimArea IMemento.internal.id="128">
|
||||
<trimItem IMemento.internal.id="org.eclipse.ui.internal.WorkbenchWindow.topBar"/>
|
||||
</trimArea>
|
||||
<trimArea IMemento.internal.id="1024">
|
||||
<trimItem IMemento.internal.id="org.eclise.ui.internal.FastViewBar"/>
|
||||
<trimItem IMemento.internal.id="org.eclipse.jface.action.StatusLineManager"/>
|
||||
<trimItem IMemento.internal.id="org.eclipse.ui.internal.progress.ProgressRegion"/>
|
||||
</trimArea>
|
||||
</trimLayout>
|
||||
</window>
|
||||
<mruList/>
|
||||
</workbench>
|
|
@ -0,0 +1,4 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<workingSetManager>
|
||||
<workingSet aggregate="true" factoryID="org.eclipse.ui.internal.WorkingSetFactory" id="1394526806133_0" label="Window Working Set" name="Aggregate for window 1394526806133"/>
|
||||
</workingSetManager>
|
|
@ -0,0 +1 @@
|
|||
org.eclipse.core.runtime=1
|
1
Gemfile
1
Gemfile
|
@ -6,6 +6,7 @@ unless RUBY_PLATFORM =~ /w32/
|
|||
gem 'rubyzip'
|
||||
gem 'zip-zip'
|
||||
end
|
||||
gem 'seems_rateable', path: 'lib/seems_rateable'
|
||||
gem "rails", "3.2.13"
|
||||
gem "jquery-rails", "~> 2.0.2"
|
||||
gem "i18n", "~> 0.6.0"
|
||||
|
|
|
@ -1,3 +1,10 @@
|
|||
PATH
|
||||
remote: lib/seems_rateable
|
||||
specs:
|
||||
seems_rateable (1.0.13)
|
||||
jquery-rails
|
||||
rails
|
||||
|
||||
GEM
|
||||
remote: https://rubygems.org/
|
||||
specs:
|
||||
|
@ -109,3 +116,4 @@ DEPENDENCIES
|
|||
rails (= 3.2.13)
|
||||
rdoc (>= 2.4.2)
|
||||
ruby-openid (~> 2.1.4)
|
||||
seems_rateable!
|
||||
|
|
|
@ -21,7 +21,7 @@ class AttachmentsController < ApplicationController
|
|||
before_filter :delete_authorize, :only => :destroy
|
||||
before_filter :authorize_global, :only => :upload
|
||||
|
||||
before_filter :require_login, only: [:download]
|
||||
before_filter :login_without_softapplication, only: [:download]
|
||||
|
||||
accept_api_auth :show, :download, :upload
|
||||
|
||||
|
@ -207,4 +207,9 @@ private
|
|||
end
|
||||
content_type.to_s
|
||||
end
|
||||
|
||||
def login_without_softapplication
|
||||
referer = request.headers['Referer']
|
||||
require_login unless referer =~ /softapplication/
|
||||
end
|
||||
end
|
||||
|
|
|
@ -137,6 +137,20 @@ class ContestsController < ApplicationController
|
|||
end
|
||||
end
|
||||
|
||||
# Added by Longjun
|
||||
def destroy_contest
|
||||
@contest = Contest.find(params[:id])
|
||||
if @contest.author_id == User.current.id
|
||||
|
||||
@contest.destroy
|
||||
redirect_to action: 'index'
|
||||
else
|
||||
render_403 :message => :notice_not_contest_delete_authorized
|
||||
end
|
||||
|
||||
end
|
||||
# end
|
||||
|
||||
def show_contest_project
|
||||
contests = Contest.where('parent_id = ?', @contest.id)
|
||||
@projects = []
|
||||
|
|
|
@ -177,11 +177,18 @@ class ProjectsController < ApplicationController
|
|||
|
||||
def course
|
||||
@project_type = params[:project_type]
|
||||
@school_id = params[:school_id]
|
||||
per_page_option = 10
|
||||
|
||||
@projects_all = Project.active.visible.
|
||||
joins("LEFT JOIN #{ProjectStatus.table_name} ON #{Project.table_name}.id = #{ProjectStatus.table_name}.project_id").
|
||||
where("#{Project.table_name}.project_type = ? ", Project::ProjectType_course)
|
||||
if @school_id == "0" or @school.nil?
|
||||
@projects_all = Project.active.visible.
|
||||
joins("LEFT JOIN #{ProjectStatus.table_name} ON #{Project.table_name}.id = #{ProjectStatus.table_name}.project_id").
|
||||
where("#{Project.table_name}.project_type = ? ", Project::ProjectType_course)
|
||||
else
|
||||
@projects_all = Project.active.visible.
|
||||
joins("LEFT JOIN #{ProjectStatus.table_name} ON #{Project.table_name}.id = #{ProjectStatus.table_name}.project_id").
|
||||
joins(:course_extra).
|
||||
where("#{Project.table_name}.project_type = ? AND #{Course.table_name}.school_id = ?", Project::ProjectType_course, @school_id)
|
||||
end
|
||||
|
||||
@project_count = @projects_all.count
|
||||
@project_pages = Paginator.new @project_count, per_page_option, params['page']
|
||||
|
@ -495,7 +502,8 @@ class ProjectsController < ApplicationController
|
|||
# added by bai
|
||||
@course.term = params[:term]
|
||||
@course.time = params[:time]
|
||||
@course.school_id = params[:occupation]
|
||||
#@course.school_id = params[:occupation]
|
||||
@course.school_id = User.current.user_extensions.school_id
|
||||
@course.setup_time = params[:setup_time]
|
||||
@course.endup_time = params[:endup_time]
|
||||
@course.class_period = params[:class_period]
|
||||
|
|
|
@ -1,4 +1,10 @@
|
|||
class SchoolController < ApplicationController
|
||||
|
||||
|
||||
def index
|
||||
|
||||
end
|
||||
|
||||
def get_options
|
||||
@school = School.where("province = ?", params[:province])
|
||||
p = params[:province]
|
||||
|
@ -6,10 +12,23 @@ class SchoolController < ApplicationController
|
|||
options = ""
|
||||
|
||||
@school.each do |s|
|
||||
options << "<option value=#{s.id}>#{s.name}</option>"
|
||||
#options << "<option value=#{s.id}>#{s.name}</option>"
|
||||
options << "<li style = 'width: 33%; float: left'><a id=#{s.id} onclick='test(this.id, this.text)'>#{s.name}</a></li>"
|
||||
end
|
||||
|
||||
|
||||
render :text => options
|
||||
|
||||
end
|
||||
|
||||
def get_schoollist
|
||||
@school = School.where("province = ?", params[:province])
|
||||
|
||||
options = ""
|
||||
@school.each do |s|
|
||||
options << "<li style = 'width: 33%; float: left'><a id=#{s.id} onclick='test(this.id)'>#{s.name}</a></li>"
|
||||
end
|
||||
|
||||
render :text => options
|
||||
end
|
||||
end
|
||||
|
|
|
@ -1,4 +1,8 @@
|
|||
class SoftapplicationsController < ApplicationController
|
||||
before_filter :find_softapplication, only: [:edit, :update, :destroy]
|
||||
before_filter :editable, only: [:edit, :update]
|
||||
before_filter :destroyable, only: :destroy
|
||||
|
||||
# GET /softapplications
|
||||
# GET /softapplications.json
|
||||
def index
|
||||
|
@ -17,18 +21,18 @@ class SoftapplicationsController < ApplicationController
|
|||
@jours = @softapplication.journals_for_messages.order('created_on DESC')
|
||||
@image_results = []
|
||||
@softapplication.attachments.each do |f|
|
||||
f.image? ? @image_results << f : @image_results
|
||||
f.image? ? @image_results << f : @image_results
|
||||
end
|
||||
@app_items = []
|
||||
@app_items = []
|
||||
@softapplication.attachments.each do |f|
|
||||
f.pack? ? @app_items << f : @app_items
|
||||
f.pack? ? @app_items << f : @app_items
|
||||
end
|
||||
@limit = 10
|
||||
@feedback_count = @jours.count
|
||||
@feedback_pages = Paginator.new @feedback_count, @limit, params['page']
|
||||
@offset ||= @feedback_pages.offset
|
||||
@jour = @jours[@offset, @limit]
|
||||
@state = false
|
||||
@state = false
|
||||
respond_to do |format|
|
||||
format.html # show.html.erb
|
||||
format.json { render json: @softapplication }
|
||||
|
@ -71,8 +75,9 @@ class SoftapplicationsController < ApplicationController
|
|||
# PUT /softapplications/1
|
||||
# PUT /softapplications/1.json
|
||||
def update
|
||||
@softapplication = Softapplication.find(params[:id])
|
||||
|
||||
# @softapplication = Softapplication.find(params[:id])
|
||||
@softapplication.attachments.map{|attach| attach.destroy }
|
||||
@softapplication.save_attachments(params[:attachments])
|
||||
respond_to do |format|
|
||||
if @softapplication.update_attributes(params[:softapplication])
|
||||
format.html { redirect_to @softapplication, notice: 'Softapplication was successfully updated.' }
|
||||
|
@ -83,33 +88,33 @@ class SoftapplicationsController < ApplicationController
|
|||
end
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
|
||||
def add_attach
|
||||
@softapplication = Softapplication.find(params[:id])
|
||||
@softapplication.save_attachments(params[:attachments])
|
||||
@softapplication.save_attachments(params[:attachments])
|
||||
end
|
||||
|
||||
# DELETE /softapplications/1
|
||||
# DELETE /softapplications/1.json
|
||||
def destroy
|
||||
@softapplication = Softapplication.find(params[:id])
|
||||
# @softapplication = Softapplication.find(params[:id])
|
||||
@softapplication.destroy
|
||||
|
||||
respond_to do |format|
|
||||
format.html { redirect_to softapplications_url }
|
||||
format.html { redirect_to home_path }
|
||||
format.json { head :no_content }
|
||||
end
|
||||
end
|
||||
|
||||
#应用评价涉及到的方法
|
||||
def new_message
|
||||
@jour = JournalsForMessage.find(params[:journal_id]) if params[:journal_id]
|
||||
if @jour
|
||||
user = @jour.user
|
||||
text = @jour.notes
|
||||
user = @jour.user
|
||||
text = @jour.notes
|
||||
else
|
||||
user = @softapplication.user
|
||||
text = @softapplication.description
|
||||
user = @softapplication.user
|
||||
text = @softapplication.description
|
||||
end
|
||||
text = text.to_s.strip.gsub(%r{<pre>((.|\s)*?)</pre>}m, '[...]')
|
||||
@content = "> #{ll(User.current.language, :text_user_wrote, user)}\n> "
|
||||
|
@ -117,25 +122,24 @@ class SoftapplicationsController < ApplicationController
|
|||
@id = user.id
|
||||
rescue ActiveRecord::RecordNotFound
|
||||
render_404
|
||||
end
|
||||
#新建评价
|
||||
def create_message
|
||||
|
||||
if params[:softapplication_message][:message].size>0
|
||||
if params[:reference_content]
|
||||
message = params[:softapplication_message][:message] + "\n" + params[:reference_content]
|
||||
else
|
||||
message = params[:softapplication_message][:message]
|
||||
end
|
||||
refer_user_id = params[:softapplication_message][:reference_user_id].to_i
|
||||
@softapplication = Softapplication.find(params[:id])
|
||||
@softapplication.add_jour(User.current, message, refer_user_id)
|
||||
|
||||
end
|
||||
|
||||
|
||||
#新建评价
|
||||
def create_message
|
||||
|
||||
if params[:reference_content]
|
||||
message = params[:softapplication_message][:message] + "\n" + params[:reference_content]
|
||||
else
|
||||
message = params[:softapplication_message][:message]
|
||||
end
|
||||
refer_user_id = params[:softapplication_message][:reference_user_id].to_i
|
||||
@softapplication = Softapplication.find(params[:id])
|
||||
@softapplication.add_jour(User.current, message, refer_user_id)
|
||||
|
||||
|
||||
@user = @softapplication.user
|
||||
@jours = @softapplication.journals_for_messages.where('m_parent_id IS NULL').order('created_on DESC')
|
||||
|
||||
|
||||
@limit = 10
|
||||
@feedback_count = @jours.count
|
||||
@feedback_pages = Paginator.new @feedback_count, @limit, params['page']
|
||||
|
@ -167,6 +171,7 @@ class SoftapplicationsController < ApplicationController
|
|||
format.js
|
||||
end
|
||||
end
|
||||
|
||||
#
|
||||
def more
|
||||
@jour = @softapplication.journals_for_messages
|
||||
|
@ -179,6 +184,7 @@ class SoftapplicationsController < ApplicationController
|
|||
#format.api { render_api_ok }
|
||||
end
|
||||
end
|
||||
|
||||
#
|
||||
def back
|
||||
@jour = @softapplication.journals_for_messages
|
||||
|
@ -191,4 +197,24 @@ class SoftapplicationsController < ApplicationController
|
|||
#format.api { render_api_ok }
|
||||
end
|
||||
end
|
||||
|
||||
private
|
||||
def find_softapplication
|
||||
@softapplication = Softapplication.find_by_id(params[:id])
|
||||
end
|
||||
|
||||
def editable
|
||||
unless @softapplication.editable_by? User.current
|
||||
render_403
|
||||
return false
|
||||
end
|
||||
end
|
||||
|
||||
def destroyable
|
||||
unless @softapplication.destroyable_by? User.current
|
||||
render_403
|
||||
return false
|
||||
end
|
||||
end
|
||||
|
||||
end
|
||||
|
|
|
@ -1,4 +1,6 @@
|
|||
class TestController < ApplicationController
|
||||
|
||||
helper :UserScore
|
||||
|
||||
def zip
|
||||
homeworks_attach_path = []
|
||||
|
|
|
@ -0,0 +1,6 @@
|
|||
class UserScoreController < ApplicationController
|
||||
helper :UserScoreHelper
|
||||
|
||||
|
||||
|
||||
end
|
|
@ -1579,9 +1579,14 @@ module ApplicationHelper
|
|||
forum_link = link_to l(:label_project_module_forums), {:controller => "forums", :action => "index"}
|
||||
stores_link = link_to l(:label_stores_index), {:controller => 'stores', :action=> 'index'}
|
||||
|
||||
|
||||
school_all_school_link = link_to l(:label_school_all), {:controller => 'school', :action => 'index'}
|
||||
|
||||
|
||||
#@nav_dispaly_project_label
|
||||
nav_list = Array.new
|
||||
nav_list.push(home_link) if !@nav_dispaly_home_path_label
|
||||
nav_list.push(school_all_school_link) if @nav_dispaly_course_all_label
|
||||
nav_list.push(course_all_course_link) if @nav_dispaly_course_all_label
|
||||
nav_list.push(course_teacher_all_link) if @nav_dispaly_teacher_all_label
|
||||
|
||||
|
@ -1608,4 +1613,13 @@ module ApplicationHelper
|
|||
User.current
|
||||
end
|
||||
|
||||
# def hadcommittedforcontest(curu)
|
||||
# message = JournalsForMessage.find_by_sql("select * from journals_for_messages where jour_type = 'Softapplication' ")
|
||||
# message.each do |createmessage|
|
||||
# if createmessage.user_id == curu
|
||||
# return true
|
||||
# end
|
||||
# end
|
||||
# end
|
||||
|
||||
end
|
||||
|
|
|
@ -0,0 +1,271 @@
|
|||
# encoding: utf-8
|
||||
#
|
||||
# Redmine - project management software
|
||||
# Copyright (C) 2006-2013 Jean-Philippe Lang
|
||||
#
|
||||
# This program is free software; you can redistribute it and/or
|
||||
# modify it under the terms of the GNU General Public License
|
||||
# as published by the Free Software Foundation; either version 2
|
||||
# of the License, or (at your option) any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with this program; if not, write to the Free Software
|
||||
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||
|
||||
module UserScoreHelper
|
||||
def calculate_collaboration_count(user)
|
||||
issue_c = 0
|
||||
issues = Issue.where('author_id = ?', user.id)
|
||||
issues.each do |issue|
|
||||
issue_c = issue_c + issue.journals.where("user_id <> ?", user.id).count
|
||||
end
|
||||
issue_c = issue_c + Journal.where("user_id = ?", user.id).count
|
||||
############################
|
||||
memos = Memo.where('author_id = ? AND parent_id IS NOT NULL', user.id)
|
||||
|
||||
memos.each do |m|
|
||||
if Memo.find(m.parent_id).author.id != user.id
|
||||
issue_c = issue_c + 1
|
||||
else
|
||||
issue_c = issue_c - 1
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
pmemos = Memo.where('author_id = ? AND parent_id IS NULL', user.id)
|
||||
pmemos.each do |pm|
|
||||
issue_c = issue_c + pm.replies_count
|
||||
end
|
||||
############################
|
||||
|
||||
issue_c = issue_c + JournalsForMessage.where('user_id = ? AND reply_id IS NOT NULL AND reply_id <> ?', user.id, user.id).count + JournalsForMessage.where('reply_id = ? AND user_id <> ?', user.id, user.id).count
|
||||
|
||||
|
||||
|
||||
return issue_c
|
||||
end
|
||||
|
||||
def calculate_influence_count(user)
|
||||
watcher_count = Watcher.where("watchable_type = 'principal' AND watchable_id = ?", user.id).count
|
||||
end
|
||||
|
||||
def calculate_skill_count(user)
|
||||
|
||||
praise_count = 0
|
||||
tread_count = 0
|
||||
issues = Issue.where('author_id = ?', user.id)
|
||||
issues.each do |i|
|
||||
ptcs = PraiseTreadCache.where('object_id = ?', i.id)
|
||||
ptcs.each do |p|
|
||||
praise_count = praise_count + p.praise_num
|
||||
tread_count = tread_count + p.tread_num
|
||||
end
|
||||
end
|
||||
|
||||
bids = Bid.where('author_id = ?', user.id)
|
||||
bids.each do |b|
|
||||
ptcs = PraiseTreadCache.where('object_id = ?', b.id)
|
||||
ptcs.each do |p|
|
||||
praise_count = praise_count + p.praise_num
|
||||
tread_count = tread_count + p.tread_num
|
||||
end
|
||||
end
|
||||
|
||||
contests = Contest.where('author_id = ?', user.id)
|
||||
contests.each do |c|
|
||||
ptcs = PraiseTreadCache.where('object_id = ?', c.id)
|
||||
ptcs.each do |p|
|
||||
praise_count = praise_count + p.praise_num
|
||||
tread_count = tread_count + p.tread_num
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
level = calculate_level(user)
|
||||
|
||||
skill_score = 0
|
||||
|
||||
if level == 0
|
||||
skill_score = praise_count - 0.5 * tread_count
|
||||
end
|
||||
if level == 1
|
||||
skill_score = 2 * praise_count - 1.5 * tread_count
|
||||
end
|
||||
if level == 2
|
||||
skill_socre = 3 * praise_count - 2.5 * tread_count
|
||||
end
|
||||
if level == 3
|
||||
skill_socre = 4 * praise_count - 3.5 * tread_count
|
||||
end
|
||||
if level == 4
|
||||
skill_socre = 5 * praise_count - 4.5 * tread_count
|
||||
end
|
||||
|
||||
# case level
|
||||
# when 0 skill_score = praise_count - 0.5 * tread_count
|
||||
# when 1 skill_score = 2 * praise_count - 1.5 * tread_count
|
||||
# when 2 skill_socre = 3 * praise_count - 2.5 * tread_count
|
||||
# when 3 skill_socre = 4 * praise_count - 3.5 * tread_count
|
||||
# when 4 skill_socre = 5 * praise_count - 4.5 * tread_count
|
||||
# end
|
||||
|
||||
|
||||
|
||||
tread_user_count = PraiseTread.where('praise_or_tread = ? AND user_id = ?', 0, user.id).count
|
||||
|
||||
skill_score = skill_score - 0.5 * tread_user_count
|
||||
|
||||
return skill_score
|
||||
|
||||
|
||||
|
||||
end
|
||||
|
||||
def calculate_level(user)
|
||||
commit_count = user.changesets.count
|
||||
max_praise_num = 0
|
||||
|
||||
|
||||
issues = Issue.where('author_id = ?', user.id)
|
||||
issues.each do |i|
|
||||
ptcs = PraiseTreadCache.where('object_id = ?', i.id)
|
||||
ptcs.each do |p|
|
||||
if p.praise_num > max_praise_num
|
||||
max_praise_num = p.praise_num
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
bids = Bid.where('author_id = ?', user.id)
|
||||
bids.each do |b|
|
||||
ptcs = PraiseTreadCache.where('object_id = ?', b.id)
|
||||
ptcs.each do |p|
|
||||
if p.praise_num > max_praise_num
|
||||
max_praise_num = p.praise_num
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
contests = Contest.where('author_id = ?', user.id)
|
||||
contests.each do |c|
|
||||
ptcs = PraiseTreadCache.where('object_id = ?', c.id)
|
||||
ptcs.each do |p|
|
||||
if p.praise_num > max_praise_num
|
||||
max_praise_num = p.praise_num
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
best_answer_num = 0
|
||||
|
||||
isManager = 0
|
||||
members = Member.where('user_id = ?', user.id)
|
||||
members.each do |m|
|
||||
roles = m.member_roles
|
||||
roles.each do |r|
|
||||
if r.role_id == 3
|
||||
isManager = 1
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
level = 0
|
||||
|
||||
if max_praise_num > 4
|
||||
level = 1
|
||||
end
|
||||
if commit_count > 0 and commit_count < 101
|
||||
level = 1
|
||||
end
|
||||
if commit_count > 100 or isManager == 1
|
||||
level = 2
|
||||
end
|
||||
|
||||
return level
|
||||
|
||||
end
|
||||
|
||||
def calculate_activity_count(user)
|
||||
# commit_count = user.changesets.count
|
||||
# issue_details_count = 0
|
||||
# issues = Issue.where('assigned_to_id = ?', user.id)
|
||||
# issues.each do |issue|
|
||||
# change_count = issue.journals.where("prop_key = ?", "done_ratio").count
|
||||
# issue_details_count = change_count + issue_details_count
|
||||
# end
|
||||
# file_count = user.file_commit.count
|
||||
# issue_count = Issue.where('author_id = ?', user.id).count
|
||||
#f = user.user_score.file
|
||||
#i = user.user_score.issue
|
||||
#f_max = UserScore.find_max_file
|
||||
#f_min = UserScore.find_min_file
|
||||
#i_max = UserScore.find_max_issue
|
||||
#i_min = UserScore.find_min_issue
|
||||
#score = 100 * ((f - f_min)/(f_max - f_min) + (i - i_min)/(i_max - i_min))
|
||||
end
|
||||
|
||||
def calculate_file(user)
|
||||
file_count = user.file_commit.count
|
||||
issue_count = Issue.where('author_id = ?', user.id).count
|
||||
return (file_count + issue_count)
|
||||
end
|
||||
|
||||
def calculate_issue(user)
|
||||
commit_count = user.changesets.count
|
||||
|
||||
issue_details_count = 0
|
||||
issues = Issue.where('assigned_to_id = ?', user.id)
|
||||
|
||||
change_count = 0
|
||||
issues.each do |issue|
|
||||
js = issue.journals
|
||||
js.each do |j|
|
||||
change_count = change_count + j.details.where("prop_key = ?", "done_ratio").count
|
||||
end
|
||||
|
||||
|
||||
issue_details_count = change_count + issue_details_count
|
||||
end
|
||||
|
||||
return (commit_count + issue_details_count)
|
||||
|
||||
end
|
||||
|
||||
def calculate_user_score(user)
|
||||
collaboration = calculate_collaboration_count(user)
|
||||
influence = calculate_influence_count(user)
|
||||
skill = calculate_skill_count(user)
|
||||
activity = calculate_activity_count(user)
|
||||
file = calculate_file(user)
|
||||
issue = calculate_issue(user)
|
||||
level = calculate_level(user)
|
||||
#user.user_score << UserScore.new(:collaboration => collaboration, :influence => influence, :skill => skill,
|
||||
# :activity => activity, :file => file, :issue => issue, :level => level)
|
||||
UserScore.new(:collaboration => collaboration, :influence => influence, :skill => skill,
|
||||
:activity => activity, :file => file, :issue => issue, :level => level)
|
||||
end
|
||||
|
||||
def update_user_score(user)
|
||||
collaboration = calculate_collaboration_count(user)
|
||||
influence = calculate_influence_count(user)
|
||||
skill = calculate_skill_count(user)
|
||||
file = calculate_file(user)
|
||||
issue = calculate_issue(user)
|
||||
|
||||
##activity = calculate_activity_count(user)
|
||||
|
||||
level = calculate_level(user)
|
||||
user.user_score.update_attributes(:collaboration => collaboration, :influence => influence, :skill => skill,
|
||||
:activity => activity, :file => file, :issue => issue, :level => level)
|
||||
end
|
||||
|
||||
|
||||
|
||||
|
||||
end
|
|
@ -56,12 +56,49 @@ module WelcomeHelper
|
|||
# # => 前7个项目为新课程,后面三个是参与人数最多的
|
||||
#
|
||||
# Returns project&courses array
|
||||
def find_miracle_course(sum=10, max_rate=7)
|
||||
Project.active.visible.course_entities.
|
||||
joins(:course_extra).
|
||||
joins(:memberships).
|
||||
group('members.project_id').
|
||||
reorder("courses.time DESC, COUNT(members.project_id) DESC").take sum
|
||||
def find_miracle_course(sum=10, max_rate=7, school_id)
|
||||
|
||||
if User.current.user_extensions.school.nil? and school_id.nil?
|
||||
Project.active.visible.course_entities.
|
||||
joins(:course_extra).
|
||||
joins(:memberships).
|
||||
group('members.project_id').
|
||||
reorder("courses.time DESC, COUNT(members.project_id) DESC").take sum
|
||||
# elseif school_id.nil?
|
||||
|
||||
else
|
||||
if school_id.nil?
|
||||
Project.active.visible.course_entities.
|
||||
joins(:course_extra).
|
||||
joins(:memberships).
|
||||
where("#{Course.table_name}.school_id = ?", User.current.user_extensions.school.id).
|
||||
group('members.project_id').
|
||||
reorder("courses.time DESC, COUNT(members.project_id) DESC").take sum
|
||||
else
|
||||
if school_id == "0"
|
||||
Project.active.visible.course_entities.
|
||||
joins(:course_extra).
|
||||
joins(:memberships).
|
||||
group('members.project_id').
|
||||
reorder("courses.time DESC, COUNT(members.project_id) DESC").take sum
|
||||
else
|
||||
Project.active.visible.course_entities.
|
||||
joins(:course_extra).
|
||||
joins(:memberships).
|
||||
where("#{Course.table_name}.school_id = ?", school_id).
|
||||
group('members.project_id').
|
||||
reorder("courses.time DESC, COUNT(members.project_id) DESC").take sum
|
||||
end
|
||||
end
|
||||
end
|
||||
# else
|
||||
# Project.active.visible.course_entities.
|
||||
# joins(:course_extra).
|
||||
# joins(:memberships).
|
||||
# where("#{Course.table_name}.school_id = ?", school_id).
|
||||
# group('members.project_id').
|
||||
# reorder("courses.time DESC, COUNT(members.project_id) DESC").take sum
|
||||
# end
|
||||
# max = sum*(max_rate.to_f/10)
|
||||
# c1 = find_new_course(sum).to_a.dup
|
||||
# c2 = find_all_hot_course(sum).to_a.dup
|
||||
|
@ -98,7 +135,14 @@ module WelcomeHelper
|
|||
end
|
||||
|
||||
def find_all_hot_contest limit=10
|
||||
Contest.reorder("created_on DESC").all.take limit
|
||||
# Contest.reorder("created_on DESC").all.take limit
|
||||
mix_bid = []
|
||||
mix_bid += Contest.reorder("created_on DESC").take(limit).to_a
|
||||
mix_bid += Bid.visible.where('reward_type = ?', 2).reorder('bids.created_on desc').take(limit).to_a
|
||||
mix_bid.sort do |older, newer|
|
||||
newer.created_on - older.created_on
|
||||
end
|
||||
mix_bid.take limit
|
||||
end
|
||||
|
||||
def find_all_hot_softapplication limit=10
|
||||
|
@ -224,6 +268,10 @@ module WelcomeHelper
|
|||
def sort_contest_by_hot
|
||||
sort_bid_by_hot_rails 2
|
||||
end
|
||||
#new added by linchun
|
||||
def sort_contest_by_time
|
||||
sort_bid_by_time 2
|
||||
end
|
||||
|
||||
#取得所有活动
|
||||
def find_all_activities limit=6
|
||||
|
@ -278,6 +326,10 @@ module WelcomeHelper
|
|||
Bid.visible.where('reward_type = ?', reward_type).reorder('bids.commit desc').limit(limit)
|
||||
end
|
||||
|
||||
def sort_bid_by_time reward_type, limit = 10
|
||||
Bid.visible.where('reward_type = ?', reward_type).reorder('bids.created_on desc').limit(limit)
|
||||
end
|
||||
|
||||
def find_all_event_type event
|
||||
case event.event_type
|
||||
when 'news'
|
||||
|
|
|
@ -181,7 +181,7 @@ class Attachment < ActiveRecord::Base
|
|||
end
|
||||
|
||||
def pack?
|
||||
!!(self.filename =~ /\.(zip|rar|tar|gz)$/i)
|
||||
!!(self.filename =~ /\.(zip|rar|tar|gz|exe|jar|7z|iso)$/i)
|
||||
end
|
||||
|
||||
def thumbnailable?
|
||||
|
|
|
@ -29,6 +29,7 @@ class Bid < ActiveRecord::Base
|
|||
has_many :courses, :through => :homework_for_courses, :source => :project
|
||||
has_many :homeworks, :class_name => 'HomeworkAttach', :dependent => :destroy
|
||||
has_many :join_in_contests, :dependent => :destroy
|
||||
has_many :praise_tread, as: :praise_tread_object, dependent: :destroy
|
||||
# has_many :fork_homework, :class_name => 'Bid', :conditions => "#{Bid.table_name}.parent_id = #{id}"
|
||||
|
||||
|
||||
|
|
|
@ -12,6 +12,7 @@ class Contest < ActiveRecord::Base
|
|||
has_many :acts, :class_name => 'Activity', :as => :act, :dependent => :destroy
|
||||
has_many :join_in_competitions, foreign_key: 'competition_id', :dependent => :destroy
|
||||
has_many :join_in_contests, class_name: 'JoinInCompetition', foreign_key: 'competition_id', :dependent => :destroy
|
||||
has_many :praise_tread, as: :praise_tread_object, dependent: :destroy
|
||||
|
||||
|
||||
|
||||
|
|
|
@ -45,7 +45,8 @@ class Issue < ActiveRecord::Base
|
|||
|
||||
# added by fq
|
||||
has_many :acts, :class_name => 'Activity', :as => :act, :dependent => :destroy
|
||||
# end
|
||||
# end
|
||||
has_many :praise_tread, as: :praise_tread_object, dependent: :destroy
|
||||
|
||||
|
||||
acts_as_nested_set :scope => 'root_id', :dependent => :destroy
|
||||
|
|
|
@ -1,4 +1,6 @@
|
|||
class PraiseTread < ActiveRecord::Base
|
||||
attr_accessible :user_id,:praise_tread_object_id,:praise_tread_object_type,:praise_or_tread
|
||||
belongs_to :user
|
||||
belongs_to :praise_tread_object, polymorphic: true
|
||||
|
||||
end
|
||||
|
|
|
@ -1,11 +1,13 @@
|
|||
class Softapplication < ActiveRecord::Base
|
||||
attr_accessible :android_min_version_available, :app_type_id, :app_type_name, :description, :name, :user_id, :contest_id, :application_developers
|
||||
acts_as_attachable
|
||||
seems_rateable :allow_update => true, :dimensions => :quality
|
||||
|
||||
|
||||
has_many :journals_for_messages, :as => :jour, :dependent => :destroy
|
||||
has_many :contesting_softapplications, :dependent => :destroy
|
||||
belongs_to :user
|
||||
belongs_to :contest
|
||||
has_many :contests, :through => :contesting_softapplications
|
||||
|
||||
def add_jour(user, notes, reference_user_id = 0, options = {})
|
||||
if options.count == 0
|
||||
|
@ -19,6 +21,13 @@ class Softapplication < ActiveRecord::Base
|
|||
def set_commit(commit)
|
||||
self.update_attribute(:commit, commit)
|
||||
end
|
||||
|
||||
|
||||
def editable_by? usr
|
||||
usr.admin? || self.user == usr
|
||||
end
|
||||
|
||||
def destroyable_by? usr
|
||||
self.user == usr || usr.admin?
|
||||
end
|
||||
|
||||
end
|
||||
|
|
|
@ -96,6 +96,7 @@ class User < Principal
|
|||
has_many :students_for_courses
|
||||
has_many :courses, :through => :students_for_courses, :source => :project
|
||||
has_many :acts, :class_name => 'Activity', :as => :act, :dependent => :destroy
|
||||
has_many :file_commit, :class_name => 'Attachment', :foreign_key => 'author_id', :conditions => "container_type = 'Project' or container_type = 'Version'"
|
||||
####
|
||||
# added by bai
|
||||
has_many :join_in_contests, :dependent => :destroy
|
||||
|
@ -104,6 +105,7 @@ class User < Principal
|
|||
has_many :wiki_contents, :foreign_key => 'author_id'
|
||||
has_many :journals
|
||||
has_many :messages, :foreign_key => 'author_id'
|
||||
has_one :user_score, :dependent => :destroy
|
||||
# end
|
||||
|
||||
######added by nie
|
||||
|
@ -125,6 +127,7 @@ class User < Principal
|
|||
scope :by_join_date, order("created_on DESC")
|
||||
############################# added by liuping 关注
|
||||
acts_as_watchable
|
||||
seems_rateable_rater
|
||||
has_one :user_extensions,:dependent => :destroy
|
||||
## end
|
||||
|
||||
|
|
|
@ -0,0 +1,36 @@
|
|||
# Redmine - project management software
|
||||
# Copyright (C) 2006-2013 Jean-Philippe Lang
|
||||
#
|
||||
# This program is free software; you can redistribute it and/or
|
||||
# modify it under the terms of the GNU General Public License
|
||||
# as published by the Free Software Foundation; either version 2
|
||||
# of the License, or (at your option) any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with this program; if not, write to the Free Software
|
||||
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||
|
||||
class UserScore < ActiveRecord::Base
|
||||
belongs_to :user
|
||||
|
||||
def self.find_max_file
|
||||
self.maximum(:file)
|
||||
end
|
||||
|
||||
def self.find_min_file
|
||||
self.minimum(:file)
|
||||
end
|
||||
|
||||
def self.find_max_issue
|
||||
self.maximum(:issue)
|
||||
end
|
||||
|
||||
def self.find_min_issue
|
||||
self.minimum(:file)
|
||||
end
|
||||
end
|
|
@ -6,7 +6,7 @@
|
|||
<td>
|
||||
<table width="100%" border="0">
|
||||
<tr>
|
||||
<td colspan="2" valign="top"><strong><%= link_to(contest.author, user_path(contest.author), :class => 'bid_user') %>: <%= link_to(contest.name, show_contest_contest_path(contest), :class => 'bid_path') %></strong></td>
|
||||
<td colspan="2" valign="top"><strong><%= link_to(contest.author, user_path(contest.author), :class => 'bid_user') %>: <%= link_to(contest.name, show_contest_contest_path(contest), :class => 'bid_path', :target => "_blank") %></strong></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td width="500">
|
||||
|
@ -18,8 +18,8 @@
|
|||
</tr>
|
||||
|
||||
<tr>
|
||||
<td><span class="font_lighter"><%= l(:label_contest_project, :count => contest.contesting_projects.count) %>(<strong><span style="font-size: 17px"><%= link_to(contest.contesting_projects.count, show_project_contest_path(contest)) %></span></strong>)</span>
|
||||
<span class="font_lighter"><%= l(:label_contest_softapplication, :count => contest.contesting_softapplications.count) %>(<strong><span style="font-size: 17px"><%= link_to(contest.contesting_softapplications.count, show_softapplication_contest_path(contest)) %></span></strong>)</span>
|
||||
<td><span class="font_lighter"><%= l(:label_contest_project, :count => contest.contesting_projects.count) %>(<strong><span style="font-size: 17px"><%= link_to(contest.contesting_projects.count, show_project_contest_path(contest), :target => "_blank") %></span></strong>)</span>
|
||||
<span class="font_lighter"><%= l(:label_contest_softapplication, :count => contest.contesting_softapplications.count) %>(<strong><span style="font-size: 17px"><%= link_to(contest.contesting_softapplications.count, show_softapplication_contest_path(contest), :target => "_blank") %></span></strong>)</span>
|
||||
|
||||
</td>
|
||||
</tr>
|
||||
|
@ -29,13 +29,14 @@
|
|||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<div class="bid-description" style="border-left: 1px solid #d9d8d8; border-bottom: 1px solid #d9d8d8; padding-left: 20px; padding-bottom: 10px; margin-bottom: 20px;">
|
||||
<table width="100%">
|
||||
<tr>
|
||||
<td> <%= contest.description%> </td>
|
||||
</tr>
|
||||
</table>
|
||||
</div></td>
|
||||
<div class="bid-description" style="border-left: 1px solid #d9d8d8; border-bottom: 1px solid #d9d8d8; padding-left: 20px; padding-bottom: 10px; margin-bottom: 20px;">
|
||||
<table width="100%">
|
||||
<tr>
|
||||
<!-- <td> <%= contest.description%> </td> -->
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
</table></td>
|
||||
</tr>
|
||||
|
|
|
@ -6,7 +6,7 @@
|
|||
<tr>
|
||||
<td><strong>应用软件:</strong></td>
|
||||
<td>
|
||||
<%= link_to(c_softapplication.softapplication.name, softapplication_path(c_softapplication.softapplication)) %>
|
||||
<%= link_to(c_softapplication.softapplication.name, softapplication_path(c_softapplication.softapplication), :target => '_blank') %>
|
||||
</td>
|
||||
</tr></br>
|
||||
</div>
|
||||
|
|
|
@ -7,7 +7,7 @@
|
|||
<td rowspan="2">
|
||||
<% if User.current.logged? %>
|
||||
<% unless User.current.user_extensions.identity == 1 %>
|
||||
<%= link_to(l(:label_newtype_contest), {:controller => 'contests', :action => 'new_contest'}, :class => 'icon icon-add') %>
|
||||
<%= link_to(l(:label_newtype_contest), {:controller => 'contests', :action => 'new_contest'}, :class => 'icon icon-add', :target => "_blank") %>
|
||||
<% end %>
|
||||
<% end %>
|
||||
</td>
|
||||
|
|
|
@ -1,8 +1,9 @@
|
|||
<%
|
||||
id = "finish_course_tag"
|
||||
id = "finish_course_#{project.id}"
|
||||
display = (project.course_extra.teacher.id == User.current.id )
|
||||
%>
|
||||
|
||||
<% if course_endTime_timeout?(project) #如果课程已结束%>
|
||||
<% if display && course_endTime_timeout?(project) #如果课程已结束%>
|
||||
<%= link_to '重启课程', restartcourse_project_path(project), :remote => true, :method => :post, :id => id, :confirm => ('确定要重启课程?') %>
|
||||
<% else %>
|
||||
<%= link_to '关闭课程', finishcourse_project_path(project), :remote => true, :method => :post, :id => id, :confirm => ('确定要关闭课程?') %>
|
||||
|
|
|
@ -9,6 +9,7 @@
|
|||
<p>
|
||||
<span>主办单位:</span>
|
||||
<span class="footer_text_link"><%= link_to "国防科学技术大学并行与分布处理国家重点实验室","http://www.nudt.edu.cn/ArticleShow.asp?ID=47",:target=>"_blank"%></span>
|
||||
<span class="footer_text_link"><%= link_to "计算机科学与技术系", "http://www.nudt.edu.cn/ArticleShow.asp?ID=41", :target => "_blank" %></span>
|
||||
<span id="copyright">版权@2007~2014</span>
|
||||
<span id="contact_us" class="footer_text_link"><%= link_to "联系我们","http://forge.trustie.net/projects/2/member",:target=>"_blank"%></span>
|
||||
<span id="record"class="footer_text_link"><%= link_to "湘ICP备09019772","http://www.miibeian.gov.cn/"%></span>
|
||||
|
@ -26,3 +27,18 @@
|
|||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="debug">
|
||||
<%= debug(params) if Rails.env.development? %>
|
||||
|
||||
<script>
|
||||
(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
|
||||
(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
|
||||
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
|
||||
})(window,document,'script','//www.google-analytics.com/analytics.js','ga');
|
||||
|
||||
ga('create', 'UA-46523987-1', 'trustie.net');
|
||||
ga('send', 'pageview');
|
||||
|
||||
</script>
|
||||
</div>
|
||||
|
|
|
@ -0,0 +1,20 @@
|
|||
<div class="top-content">
|
||||
<table>
|
||||
<tr>
|
||||
<td class="info_font" style="width: 240px; color: #15bccf">创新竞赛社区</td>
|
||||
<td style="width: 430px; color: #15bccf"><strong><%= l(:label_user_location) %> : </strong></td>
|
||||
<td rowspan="2" width="250px"></td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td style="padding-left: 8px"><%=link_to request.host()+"/contests", :controller=>'contests', :action=>'index' %></td>
|
||||
<td ><%=link_to l(:field_homepage), home_path %> >
|
||||
<%=link_to l(:label_contest_innovate), :controller=>'contests', :action=>'index' %> >
|
||||
<span>
|
||||
<% contest = @softapplication.contests.first %><%= contest ? link_to(contest.name, show_contest_contest_path(contest)) : '尚未加入竞赛'%>
|
||||
</span>
|
||||
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
|
@ -10,6 +10,8 @@
|
|||
<%= stylesheet_link_tag 'jquery/jquery-ui-1.9.2', 'application', 'nyan', :media => 'all' %>
|
||||
<%= stylesheet_link_tag 'rtl', :media => 'all' if l(:direction) == 'rtl' %>
|
||||
<%= javascript_heads %>
|
||||
<%= javascript_include_tag "jquery.leanModal.min" %>
|
||||
<%= javascript_include_tag 'seems_rateable/jRating', 'seems_rateable/rateable'%>
|
||||
<%= heads_for_theme %>
|
||||
<%= call_hook :view_layouts_base_html_head %>
|
||||
<!-- page specific tags -->
|
||||
|
|
|
@ -26,23 +26,23 @@
|
|||
<div class="top-content">
|
||||
<table>
|
||||
<tr>
|
||||
<td class="info_font" style="width: 240px; color: #15bccf">创新竞赛社区</td>
|
||||
<td style="width: 430px; color: #15bccf"><strong><%= l(:label_user_location) %> : </strong></td>
|
||||
<td rowspan="2" width="250px">
|
||||
<div class="project-search">
|
||||
<%= form_tag(:controller => 'bids', :action => 'contest', :method => :get) do %>
|
||||
<%= text_field_tag 'name', params[:name], :size => 20 %>
|
||||
<%= hidden_field_tag 'reward_type', @bid.reward_type %>
|
||||
<%= hidden_field_tag 'project_type', params[:project_type] %>
|
||||
<%= submit_tag l(:label_search), :class => "enterprise", :name => nil %>
|
||||
<% end %>
|
||||
</div>
|
||||
</td>
|
||||
<td class="info_font" style="width: 240px; color: #15bccf">创新竞赛社区</td>
|
||||
<td style="width: 430px; color: #15bccf"><strong><%= l(:label_user_location) %> : </strong></td>
|
||||
<td rowspan="2" width="250px">
|
||||
<div class="project-search">
|
||||
<%= form_tag(:controller => 'bids', :action => 'contest', :method => :get) do %>
|
||||
<%= text_field_tag 'name', params[:name], :size => 20 %>
|
||||
<%= hidden_field_tag 'reward_type', @bid.reward_type %>
|
||||
<%= hidden_field_tag 'project_type', params[:project_type] %>
|
||||
<%= submit_tag l(:label_search), :class => "enterprise", :name => nil %>
|
||||
<% end %>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td style="padding-left: 8px"><%=link_to request.host()+"/contest", :controller => 'bids', :action => 'contest' %></td>
|
||||
<td ><%=link_to l(:field_homepage), home_path %> > <%=link_to l(:label_contest_innovate), :controller => 'bids', :action => 'contest' %> >
|
||||
<span><%= link_to @bid.name, bid_path %></span></td>
|
||||
<td style="padding-left: 8px"><%=link_to request.host()+"/contest", :controller => 'bids', :action => 'contest' %></td>
|
||||
<td ><%=link_to l(:field_homepage), home_path %> > <%=link_to l(:label_contest_innovate), :controller => 'bids', :action => 'contest' %> >
|
||||
<span><%= link_to @bid.name, bid_path %></span></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
|
|
|
@ -10,6 +10,7 @@
|
|||
<%= favicon %>
|
||||
<%= stylesheet_link_tag 'jquery/jquery-ui-1.9.2', 'application', :media => 'all' %>
|
||||
<%= stylesheet_link_tag 'rtl', :media => 'all' if l(:direction) == 'rtl' %>
|
||||
|
||||
<%= javascript_heads %>
|
||||
<%= heads_for_theme %>
|
||||
<%= call_hook :view_layouts_base_html_head %>
|
||||
|
@ -26,24 +27,24 @@
|
|||
<div class="top-content">
|
||||
<table>
|
||||
<tr>
|
||||
<td class="info_font" style="width: 240px; color: #15bccf">创新竞赛社区</td>
|
||||
<td style="width: 430px; color: #15bccf"><strong><%= l(:label_user_location) %> : </strong></td>
|
||||
<td rowspan="2" width="250px">
|
||||
<div class="project-search">
|
||||
<%= form_tag({controller: 'contests', action: 'index'}, method: :get) do %>
|
||||
<%= text_field_tag 'name', params[:name], :size => 20 %>
|
||||
<%= hidden_field_tag 'project_type', params[:project_type] %>
|
||||
<%= submit_tag l(:label_search), :class => "enterprise", :name => nil %>
|
||||
<% end %>
|
||||
</div>
|
||||
</td>
|
||||
<td class="info_font" style="width: 240px; color: #15bccf">创新竞赛社区</td>
|
||||
<td style="width: 430px; color: #15bccf"><strong><%= l(:label_user_location) %> : </strong></td>
|
||||
<td rowspan="2" width="250px">
|
||||
<div class="project-search">
|
||||
<%= form_tag({controller: 'contests', action: 'index'}, method: :get) do %>
|
||||
<%= text_field_tag 'name', params[:name], :size => 20 %>
|
||||
<%= hidden_field_tag 'project_type', params[:project_type] %>
|
||||
<%= submit_tag l(:label_search), :class => "enterprise", :name => nil %>
|
||||
<% end %>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td style="padding-left: 8px"><%=link_to request.host()+"/contests", :controller=>'contests', :action=>'index' %></td>
|
||||
<td ><%=link_to l(:field_homepage), home_path %> >
|
||||
<%=link_to l(:label_contest_innovate), :controller=>'contests', :action=>'index' %> >
|
||||
<span><%= link_to @contest.name, show_contest_contest_path %></span>
|
||||
</td>
|
||||
<td style="padding-left: 8px"><%=link_to request.host()+"/contests", :controller=>'contests', :action=>'index' %></td>
|
||||
<td ><%=link_to l(:field_homepage), home_path %> >
|
||||
<%=link_to l(:label_contest_innovate), :controller=>'contests', :action=>'index' %> >
|
||||
<span><%= link_to @contest.name, show_contest_contest_path %></span>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
|
@ -98,11 +99,14 @@
|
|||
</td>
|
||||
<td class="font_index">
|
||||
<%=link_to "#{@contest.contesting_softapplications.count}", :controller => 'contests', :action => 'show_softapplication' %>
|
||||
</td>
|
||||
</td>
|
||||
|
||||
</tr>
|
||||
<tr class="font_aram">
|
||||
<td align="center" width="70px"> <%= l(:label_participate) %></td>
|
||||
<td align="center" width="70px"> <%= l(:label_contest_project) %></td>
|
||||
<td align="center" width="70px"> <%= l(:label_contest_application) %></td>
|
||||
<td align="center" width="70px"> <%= l(:label_contest_application) %></td>
|
||||
|
||||
</tr>
|
||||
</table>
|
||||
<div class="user_underline"></div>
|
||||
|
@ -141,6 +145,13 @@
|
|||
<div class="created_on_project">
|
||||
<strong style="color: #068d9c"><%= l(:label_create_time) %>:</strong><%= format_time(@contest.created_on) %>
|
||||
</div>
|
||||
<% if User.current.logged? %>
|
||||
<% if @contest.author.id == User.current.id %>
|
||||
<div>
|
||||
<%= link_to '删除', {:controller => 'contests', :action => 'destroy_contest', :id => @contest}, data: { confirm: '你确定要删除该竞赛吗?' } %>
|
||||
</div>
|
||||
<% end %>
|
||||
<% end %>
|
||||
</div>
|
||||
<div class="user_underline"></div>
|
||||
</div>
|
||||
|
|
|
@ -1,3 +1,16 @@
|
|||
|
||||
|
||||
<script type="text/javascript">
|
||||
$(document).ready(
|
||||
function(){
|
||||
$("#province").attr("href", "#WOpenWindow")
|
||||
$("#province").leanModal({top: 100, closeButton: ".modal_close"});
|
||||
}
|
||||
);
|
||||
</script>
|
||||
|
||||
|
||||
|
||||
<script type="text/javascript">
|
||||
function get_options(value){
|
||||
$.ajax({
|
||||
|
@ -5,13 +18,18 @@
|
|||
url :'/school/get_options/'+encodeURIComponent(value),
|
||||
data :'text',
|
||||
success: function(data){
|
||||
$("#occupation").html(data);
|
||||
|
||||
|
||||
$("#schoollist").html(data);
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
)
|
||||
}
|
||||
|
||||
|
||||
</script>
|
||||
|
||||
|
||||
|
@ -88,12 +106,50 @@
|
|||
-->
|
||||
|
||||
<!-- added by Wen -->
|
||||
<p style="width:357px;padding-left: 26px;">
|
||||
<%= l(:field_occupation) %> <span class="required">*</span><%= select_tag "province", options_from_collection_for_select(School.find_by_sql("select distinct province from schools"), :province, :province), :onchange => "get_options(this.value)" %>
|
||||
|
||||
|
||||
<%= select_tag "occupation" %>
|
||||
<p style="width:357px;padding-left: 26px;">
|
||||
<% unless User.current.user_extensions.school.nil? %>
|
||||
<%= l(:field_occupation) %> <span class="required">*</span><%= select_tag "province", options_from_collection_for_select(School.find_by_sql("select distinct province from schools"), :province, :province, User.current.user_extensions.school.province), :onchange => "get_options(this.value)" %>
|
||||
<input id="occupation" name="occupation" type="hidden" value="<%=User.current.user_extensions.school.id%>" />
|
||||
<input id="occupation_name" type="text" value="<%=User.current.user_extensions.school.name%>" readonly />
|
||||
|
||||
|
||||
|
||||
|
||||
<!--<%= select_tag "occupation",
|
||||
options_for_select([[User.current.user_extensions.school.name, User.current.user_extensions.school.id]]) %>-->
|
||||
<% else %>
|
||||
<%= l(:field_occupation) %> <span class="required">*</span><%= select_tag "province", options_from_collection_for_select(School.find_by_sql("select distinct province from schools"), :province, :province), :onchange => "get_options(this.value)" %>
|
||||
|
||||
<input id="occupation" name="occupation" type="hidden" />
|
||||
<input id="occupation_name" type="text" readonly />
|
||||
<% end %>
|
||||
<!-- <input id="occupation" readonly />-->
|
||||
</p>
|
||||
|
||||
<div id="WOpenWindow">
|
||||
<a class="modal_close" href="#"></a>
|
||||
<h2>学校列表</h2>
|
||||
<div class="content" style="font-size: 13px">
|
||||
<ul id="schoollist" class="school_list">
|
||||
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<script type="text/javascript">
|
||||
function test(id, name){
|
||||
//$("#occupation").html("<option value='"+id+"'>"+name+"</option>");
|
||||
$("#occupation").val(id);
|
||||
$("#occupation_name").val(name);
|
||||
$("#lean_overlay").hide();
|
||||
$("#WOpenWindow").hide();
|
||||
}
|
||||
</script>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<!-- added by bai 增加了地区 -->
|
||||
|
|
|
@ -16,7 +16,8 @@
|
|||
<%= content_tag('span', "#{l(:label_institution_name)}:", :class => "course-font")%>
|
||||
<% @admin = @project.project_infos%>
|
||||
<%if @admin&&@admin.first&&@admin.first.user&&@admin.first.user.user_extensions%>
|
||||
<%= @admin.first.user.user_extensions.occupation %>
|
||||
<!-- <%= @admin.first.user.user_extensions.occupation %> -->
|
||||
<%= @project.course_extra.school.name %>
|
||||
<% end %>
|
||||
</p>
|
||||
<p >
|
||||
|
|
|
@ -284,13 +284,7 @@
|
|||
|
||||
|
||||
<!--added by Wen -->
|
||||
|
||||
<p style="margin-left:-76px;">
|
||||
<strong><%=l(:label_new_course_school)%></strong><span class="required">*</span>
|
||||
<%= select_tag "province", options_from_collection_for_select(School.find_by_sql("select distinct province from schools"), :province, :province), :onclick => "get_options(this.value)" %>
|
||||
|
||||
<%= select_tag "occupation" %>
|
||||
</p>
|
||||
|
||||
<!-- end -->
|
||||
|
||||
|
|
|
@ -0,0 +1,26 @@
|
|||
<!-- Created by Long Jun
|
||||
Time: 2014-4-8 -->
|
||||
|
||||
|
||||
|
||||
<% content_for :content do %>
|
||||
<div>
|
||||
<h3><strong><%= l(:label_tags_search_result) %></strong></h3>
|
||||
<div align="right">
|
||||
<%= l(:label_tags_numbers) %>
|
||||
<%= l(:label_issue_plural) %>(<%= @issues_tags_num %>) |
|
||||
<%= l(:label_project_plural) %>(<%= @projects_tags_num %>) |
|
||||
<%= l(:label_user_plural) %>(<%= @users_tags_num %>) |
|
||||
<%= l(:label_tags_call)%>(<%= @bids_tags_num %>) |
|
||||
<%= l(:field_filename)%>(<%= @attachments_tags_num %>)
|
||||
</div>
|
||||
<div id="show_results">
|
||||
<%# 求工厂模式重构 %>
|
||||
<%= render :partial => "tag_search_results",:locals => {:issues_results => @issues_results,
|
||||
:projects_results => @projects_results,:users_results => @users_results ,
|
||||
:bids_results=>@bids_results,:forums_results => @forums_results, :attachments_results => @attachments_results, :show_flag => @obj_flag}%>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
<% end %>
|
|
@ -2,7 +2,7 @@
|
|||
<% if Rails.env.development? %>
|
||||
console.debug('课程修改成功:结束时间改为<%=Course.find_by_extra(@project.identifier).try(:endup_time)%>');
|
||||
<% end %>
|
||||
$('#finish_course_tag').replaceWith("<%= j(render partial: 'courses/set_course_time', :locals => {:project => @project} )%>")
|
||||
$('#finish_course_<%=@project.id%>').replaceWith("<%= j(render partial: 'courses/set_course_time', :locals => {:project => @project} )%>")
|
||||
<% else %>
|
||||
alert('设置失败,请在论坛提交问题,等待管理员处理。');
|
||||
<% end %>
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
|
||||
<% if @events_by_day.size >0 %>
|
||||
<div class="content-title-top-avtive">
|
||||
<!-- <h3><%= @author.nil? ? l(:label_activity) : l(:label_user_activity, link_to_user(@author)).html_safe %></h3> -->
|
||||
<p class="subtitle">
|
||||
|
@ -40,26 +40,31 @@
|
|||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
|
||||
<% end %>
|
||||
</div>
|
||||
|
||||
<!-- Added by Longjun 在最后一页显示创建信息 -->
|
||||
<% if format_date(day) == format_date(@date_to - @days) %>
|
||||
<div >
|
||||
<table width="660">
|
||||
<tr>
|
||||
<td><%= image_tag(url_to_avatar(@user), :class => "avatar") %></td>
|
||||
<td colspan="2">
|
||||
<table width="580">
|
||||
<tr>
|
||||
<td > <%= link_to (h @user.try(:name)), user_path(@user) if @user %> <%= l(:label_user_create_project) %> <%= link_to @project.name %><strong> !</strong></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="font_lighter" style="float: right"><%= l :label_update_time %>: <%= format_time(@project.created_on) %>
|
||||
</table></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<% end %>
|
||||
<% end -%>
|
||||
|
||||
<!-- modified by Long Jun -->
|
||||
<div>
|
||||
<table width="660">
|
||||
<tr>
|
||||
<td><%= image_tag(url_to_avatar(@user), :class => "avatar") %></td>
|
||||
<td colspan="2">
|
||||
<table width="580">
|
||||
<tr>
|
||||
<td > <%= link_to (h @user.try(:name)), user_path(@user) if @user %> <%= l(:label_user_create_project) %> <%= link_to @project.name %><strong> !</strong></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="font_lighter" style="float: right"><%= l :label_update_time %>: <%= format_time(@project.created_on) %>
|
||||
</table></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
|
||||
<div class="pagination">
|
||||
<ul>
|
||||
<%= pagination_links_full @events_pages%>
|
||||
|
@ -67,6 +72,22 @@
|
|||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
<% else %>
|
||||
<div class="font_description">
|
||||
<table width="660">
|
||||
<tr>
|
||||
<td><%= image_tag(url_to_avatar(@user), :class => "avatar") %></td>
|
||||
<td colspan="2">
|
||||
<table width="580">
|
||||
<tr>
|
||||
<td > <%= link_to (h @user.try(:name)), user_path(@user) if @user %> <%= l(:label_user_create_project) %> <%= link_to @project.name %><strong> !</strong></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="font_lighter" style="float: right"><%= l :label_update_time %>: <%= format_time(@project.created_on) %>
|
||||
</table></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<% end %>
|
||||
|
||||
|
||||
|
|
|
@ -0,0 +1,42 @@
|
|||
<script type="text/javascript">
|
||||
function get_school(value){
|
||||
$.ajax({
|
||||
type :"POST",
|
||||
url :'/school/get_schoollist/'+encodeURIComponent(value),
|
||||
data :'text',
|
||||
success: function(data){
|
||||
$("#schoollist").html(data);
|
||||
|
||||
//$("#schoollist").html(data);
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
)
|
||||
}
|
||||
</script>
|
||||
|
||||
<script type="text/javascript">
|
||||
function test(id){
|
||||
location.href = "welcome/index?course.trustie.net&school_id="+id;
|
||||
}
|
||||
</script>
|
||||
|
||||
|
||||
<div>
|
||||
<p>
|
||||
<a href="welcome/index?course.trustie.net&school_id=0">全部学校</a>
|
||||
</p>
|
||||
<p>
|
||||
请选择省份:<%= select_tag "province",
|
||||
options_from_collection_for_select(School.find_by_sql("select distinct province from schools"), :province, :province),
|
||||
:onclick => "get_school(this.value)" %>
|
||||
</p>
|
||||
</div>
|
||||
<div>
|
||||
<ul id="schoollist" style="line-height: 25px">
|
||||
|
||||
</ul>
|
||||
</div>
|
||||
|
|
@ -1,64 +1,70 @@
|
|||
<%= form_for(@softapplication) do |f| %>
|
||||
<%= form_for(softapplication) do |f| %>
|
||||
|
||||
<% if @softapplication.errors.any? %>
|
||||
<% if softapplication.errors.any? %>
|
||||
<div id="error_explanation">
|
||||
<h2><%= pluralize(@softapplication.errors.count, "error") %> prohibited this softapplication from being saved:</h2>
|
||||
<h2><%= pluralize(softapplication.errors.count, "error") %> prohibited this softapplication from being saved:</h2>
|
||||
|
||||
<ul>
|
||||
<% @softapplication.errors.full_messages.each do |msg| %>
|
||||
<% softapplication.errors.full_messages.each do |msg| %>
|
||||
<li><%= msg %></li>
|
||||
<% end %>
|
||||
</ul>
|
||||
</div>
|
||||
<% end %>
|
||||
|
||||
<tr style="width:700px; margin-left: -10px">
|
||||
<td><%= l(:label_softapplication_name) %></td>
|
||||
<td style="require, color: #bb0000"> * </td>:
|
||||
<td ><%= f.text_field :name, :required => true, :size => 60, :style => "width:400px;" %></td>
|
||||
<td><%= l(:label_softapplication_name_condition)%></td>
|
||||
</tr></ br><br /><br />
|
||||
<fieldset class="contes-new-box">
|
||||
|
||||
<tr style="width:700px; margin-left: -10px">
|
||||
<span><%= l(:label_softapplication_name) %></span>
|
||||
<span class="contest-star"> * </span>: <td ><%= f.text_field :name, :required => true, :size => 60, :style => "width:400px;" %></td>
|
||||
<span><%= l(:label_softapplication_name_condition)%></span>
|
||||
</tr></ br>
|
||||
<br />
|
||||
<br />
|
||||
|
||||
<tr style="width:800px;">
|
||||
<span><%= l(:label_softapplication_version_available) %></span>
|
||||
<span class="contest-star"> * </span>: <td style="width: 100px"><%= f.text_field :android_min_version_available, :required => true, :size => 60, :style => "width:400px;" %></td>
|
||||
|
||||
<tr style="width:800px;">
|
||||
<td><%= l(:label_softapplication_version_available) %></td>
|
||||
<td style="require, color: #bb0000"> * </td>:
|
||||
<td style="width: 100px"><%= f.text_field :android_min_version_available, :required => true, :size => 60, :style => "width:400px;" %></td>
|
||||
</tr></ br>
|
||||
<br />
|
||||
<br />
|
||||
|
||||
<tr style="width:800px;">
|
||||
<span><%= l(:label_softapplication_type) %></span>
|
||||
|
||||
</tr></ br><br /><br />
|
||||
<span class="contest-star"> * </span>: <td style="width: 100px"><%= f.text_field :app_type_name, :required => true, :size => 60, :style => "width:400px;" %></td>
|
||||
|
||||
<tr style="width:800px;">
|
||||
<td><%= l(:label_softapplication_type) %></td>
|
||||
<td style="require, color: #bb0000"> * </td>:
|
||||
<td style="width: 100px"><%= f.text_field :app_type_name, :required => true, :size => 60, :style => "width:400px;" %></td>
|
||||
</tr></ br>
|
||||
<br />
|
||||
<br />
|
||||
|
||||
<tr style="width:800px;">
|
||||
<span><%= l(:label_softapplication_description) %></span>
|
||||
<span class="contest-star"> * </span>: <td style="width: 100px"><%= f.text_field :description, :required => true, :size => 60, :style => "width:400px;" %></td>
|
||||
|
||||
</tr></ br><br /><br />
|
||||
</tr></ br>
|
||||
<br />
|
||||
<br />
|
||||
|
||||
<tr style="width:800px;">
|
||||
<span><%= l(:label_softapplication_developers) %></span>
|
||||
<span class="contest-star"> * </span>: <td style="width: 100px"><%= f.text_field :application_developers, :required => true, :size => 60, :style => "width:400px;" %></td>
|
||||
|
||||
<tr style="width:800px;">
|
||||
<td><%= l(:label_softapplication_description) %></td>
|
||||
<td style="require, color: #bb0000"> * </td>:
|
||||
<td style="width: 100px"><%= f.text_field :description, :required => true, :size => 60, :style => "width:400px;" %></td>
|
||||
|
||||
</tr></ br><br /><br />
|
||||
|
||||
|
||||
<fieldset style="width: 600px">
|
||||
<div>
|
||||
<%=l(:label_upload_softapplication_packets)%> :<br />
|
||||
<p id="put-bid-form-partial">
|
||||
<%= render :partial => 'attachments/form' %>
|
||||
</p>
|
||||
</div>
|
||||
</fieldset></tr></ br></ br></ br></ br></ br>
|
||||
|
||||
<fieldset style="width: 600px">
|
||||
<div>
|
||||
<span><%=l(:label_upload_softapplication_photo)%> :</span>(<span style="font-size: 3px"><%=l(:label_upload_softapplication_photo_condition)%></span>)<br />
|
||||
<p id="put-bid-form-partial">
|
||||
<%= render :partial => 'attachments/form' %>
|
||||
</p>
|
||||
</div>
|
||||
</fieldset>
|
||||
</tr></ br>
|
||||
<br />
|
||||
<br />
|
||||
|
||||
<fieldset style="width: 500px">
|
||||
<legend>上传应用软件包和应用截图</legend>
|
||||
<%= render_flash_messages %>
|
||||
<p id="put-bid-form-partial">
|
||||
<%= render :partial => 'attachments/form' %>
|
||||
</p>
|
||||
<p style="font-size: 10px">1、<%=l(:label_upload_softapplication_packets_mustpacketed)%><br>2、<%=l(:label_upload_softapplication_photo_condition)%></p>
|
||||
<p style="font-size: 10px; color: red"><%=l(:label_updated_caution)%></p>
|
||||
|
||||
</fieldset>
|
||||
</fieldset></br>
|
||||
<div class="align-center"><%= submit_tag l(:button_create), :onclick => "return true" %></div>
|
||||
<% end %>
|
||||
|
||||
|
|
|
@ -1,6 +1,8 @@
|
|||
<h1>Editing softapplication</h1>
|
||||
<h3 style="font-size: 18px"><%= l(:label_edit_softapplication)%></h3>
|
||||
|
||||
<%= render partial: 'form', locals:{softapplication: @softapplication} %>
|
||||
|
||||
<!-- <%= link_to 'Show', @softapplication %>
|
||||
<%= link_to 'Back', softapplications_path %> -->
|
||||
|
||||
<%= render 'form' %>
|
||||
|
||||
<%= link_to 'Show', @softapplication %> |
|
||||
<%= link_to 'Back', softapplications_path %>
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
<h1>Listing softapplications</h1>
|
||||
<h1>参赛应用</h1>
|
||||
|
||||
<table>
|
||||
<tr>
|
||||
|
|
|
@ -1,76 +1,5 @@
|
|||
<h3 style="font-size: 18px"><%= l(:label_release_softapplication)%></h3>
|
||||
|
||||
|
||||
<%= render partial: 'form', locals:{softapplication: @softapplication} %>
|
||||
|
||||
<div >
|
||||
<%= form_for Softapplication.new, :url => {:controller => 'softapplications', :action => 'create'}, :update => "bidding_project_list", :complete => '$("#put-bid-form").hide();', :html => {:multipart => true, :id => 'add_homework_form'} do |f| %>
|
||||
<fieldset class="contes-new-box">
|
||||
<!-- <legend>
|
||||
<%= l(:label_attachment_plural) %>
|
||||
</legend> -->
|
||||
<tr style="width:700px; margin-left: -10px">
|
||||
<span><%= l(:label_softapplication_name) %></span>
|
||||
<span class="contest-star"> * </span>: <td ><%= f.text_field :name, :required => true, :size => 60, :style => "width:400px;" %></td>
|
||||
<span><%= l(:label_softapplication_name_condition)%></span>
|
||||
</tr></ br>
|
||||
<br />
|
||||
<br />
|
||||
|
||||
<tr style="width:800px;">
|
||||
<span><%= l(:label_softapplication_version_available) %></span>
|
||||
<span class="contest-star"> * </span>: <td style="width: 100px"><%= f.text_field :android_min_version_available, :required => true, :size => 60, :style => "width:400px;" %></td>
|
||||
|
||||
</tr></ br>
|
||||
<br />
|
||||
<br />
|
||||
|
||||
<tr style="width:800px;">
|
||||
<span><%= l(:label_softapplication_type) %></span>
|
||||
|
||||
<span class="contest-star"> * </span>: <td style="width: 100px"><%= f.text_field :app_type_name, :required => true, :size => 60, :style => "width:400px;" %></td>
|
||||
|
||||
</tr></ br>
|
||||
<br />
|
||||
<br />
|
||||
|
||||
<tr style="width:800px;">
|
||||
<span><%= l(:label_softapplication_description) %></span>
|
||||
<span class="contest-star"> * </span>: <td style="width: 100px"><%= f.text_field :description, :required => true, :size => 60, :style => "width:400px;" %></td>
|
||||
|
||||
</tr></ br>
|
||||
<br />
|
||||
<br />
|
||||
|
||||
<tr style="width:800px;">
|
||||
<span><%= l(:label_softapplication_developers) %></span>
|
||||
<span class="contest-star"> * </span>: <td style="width: 100px"><%= f.text_field :application_developers, :required => true, :size => 60, :style => "width:400px;" %></td>
|
||||
|
||||
</tr></ br>
|
||||
<br />
|
||||
<br />
|
||||
<fieldset style="width: 500px">
|
||||
<legend>上传应用软件包和应用截图</legend>
|
||||
<%= render_flash_messages %>
|
||||
<p id="put-bid-form-partial">
|
||||
<%= render :partial => 'attachments/form' %>
|
||||
</p>
|
||||
<p style="font-size: 10px">(<%=l(:label_upload_softapplication_photo_condition)%>)</p>
|
||||
|
||||
</fieldset>
|
||||
</fieldset></br>
|
||||
<div class="align-center"><%= submit_tag l(:button_create), :onclick => "return true" %></div>
|
||||
<script type="text/javascript">
|
||||
function j_submit () {
|
||||
alert('start')
|
||||
var submit_homework = function(){
|
||||
$('#add_homework_form').clone().attr('action', '<%= url_for({:controller => "softapplications", :action => "create"})+".js" %>').ajaxSubmit()
|
||||
};
|
||||
alert('stop')
|
||||
$.globalEval(submit_homework());
|
||||
return false;
|
||||
}
|
||||
</script>
|
||||
</div>
|
||||
|
||||
<% end %>
|
||||
</div>
|
|
@ -1,3 +1,4 @@
|
|||
<%=render :partial => 'layouts/base_softapplication_top_content'%>
|
||||
<style>
|
||||
.softapplication-img .soft-application {
|
||||
float: left;
|
||||
|
@ -10,7 +11,7 @@
|
|||
<p id="notice"><%= notice %></p>
|
||||
|
||||
<!-- <%= image_tag(url_to_avatar(@user), :class => "avatar2") %> -->
|
||||
<div style="height: 130px">
|
||||
<div style="height: auto; padding-bottom: 10px">
|
||||
<tr>
|
||||
<td colspan="2" valign="top" width="320" >
|
||||
</td>
|
||||
|
@ -18,10 +19,15 @@
|
|||
<table width="100%" border="0">
|
||||
<tr style="font-size: 18px">
|
||||
<td colspan="2" valign="top"><strong><%= @softapplication.name %></strong></td>
|
||||
<td style="font-size: 15px">
|
||||
<%= link_to '删除', softapplication_path(@softapplication), method: :delete, data: { confirm: '您确定要删除吗?' } if @softapplication.destroyable_by? User.current %>
|
||||
<%= link_to '编辑', edit_softapplication_path(@softapplication), method: :get if @softapplication.destroyable_by? User.current %>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>所属类别:<%= @softapplication.app_type_name %></td>
|
||||
<td>发布时间:<%=format_time @softapplication.created_at %></td>
|
||||
<% contest = @softapplication.contests.first %>
|
||||
<td>所属竞赛:<%= contest ? link_to(contest.name, show_contest_contest_path(contest)) : '尚未加入竞赛'%></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>发布人员:<%= @softapplication.user.name %></td>
|
||||
|
@ -36,6 +42,10 @@
|
|||
|
||||
<td>开发人员:<%= @softapplication.application_developers %></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>平均评分: <%= rating_for @softapplication, :static => true, dimension: :quality, class: 'rateable div_inline' %></td>
|
||||
<td>发布时间:<%=format_time @softapplication.created_at %></td>
|
||||
</tr>
|
||||
|
||||
|
||||
</table>
|
||||
|
@ -44,9 +54,9 @@
|
|||
</div>
|
||||
<div class="underline-contests_one"></div>
|
||||
|
||||
<div style="height: 60px">
|
||||
<div style="height: auto; padding-bottom: 10px">
|
||||
<strong><div style="font-size: 15px">应用简介:</div></strong>
|
||||
<div><%= @softapplication.description %></div>
|
||||
<div><%= @softapplication.description.truncate(150, omission: '...') %></div>
|
||||
</div>
|
||||
<div class="underline-contests_one"></div>
|
||||
|
||||
|
@ -64,7 +74,7 @@
|
|||
|
||||
<div style="height: 50px">
|
||||
<div style="font-size: 15px"><strong>软件评论:</strong></div>
|
||||
<div></div>
|
||||
<div style="padding-left: 210px">评分: <%= rating_for @softapplication, dimension: :quality, class: 'rateable div_inline' %></div>
|
||||
</div>
|
||||
|
||||
<!--提示登录后对应用进行评价-->
|
||||
|
|
|
@ -1,6 +1,30 @@
|
|||
<h3>test</h3>
|
||||
<%= debug request %>
|
||||
|
||||
|
||||
<% users = User.all%>
|
||||
<table>
|
||||
<tr>
|
||||
<th>name</th><th>C</th><th>I</th><th>S</th><th>filecount</th><th>issuecount</th><th>level</th>
|
||||
</tr>
|
||||
<% users.each do |user| %>
|
||||
|
||||
|
||||
|
||||
<tr>
|
||||
<td><%= user.lastname %><%= user.firstname %></td>
|
||||
<!-- <td><%= calculate_collaboration_count(user) %></td>
|
||||
<td><%= calculate_influence_count(user) %></td>
|
||||
<td><%= calculate_skill_count(user) %></td>
|
||||
<td><%= calculate_file(user) %></td>
|
||||
<td><%= calculate_issue(user) %></td>
|
||||
<td><%= calculate_level(user) %></td>
|
||||
-->
|
||||
<td><%= user.changesets.count %></td>
|
||||
</tr>
|
||||
<% end %>
|
||||
</table>
|
||||
|
||||
<hr/>
|
||||
<%= request.host().class %>
|
||||
|
||||
<hr/>
|
||||
|
|
@ -8,9 +8,11 @@
|
|||
<td>
|
||||
<table width="580" border="0">
|
||||
<tr>
|
||||
<td colspan="2" valign="top"><span><%= link_to_project(membership.project) %></span>
|
||||
<td colspan="2" valign="top">
|
||||
<span><%= link_to_project(membership.project) %></span>
|
||||
<!--added by huang for: filter by roles-->
|
||||
<span style="float: right">
|
||||
<%=render :partial => 'courses/set_course_time', :locals => {:project => membership.project} %>
|
||||
<% if User.current == @user %>
|
||||
<% (membership.roles).each do |role| %>
|
||||
<% unless (role == Role.find(9) || role == Role.find(3)) %>
|
||||
|
|
|
@ -138,24 +138,24 @@
|
|||
<span style="margin-top: -20px;float: right; display: block;"><%= link_to "更多>>", {:controller => 'contests', :action => 'index', :host => Setting.contest_domain}, :target => "_blank" %></span>
|
||||
<div class="d-p-projectlist-box">
|
||||
<div class="d-p-projectlist">
|
||||
<% find_all_hot_contest.map do |contest| break if(contest == find_all_hot_contest[5]) %>
|
||||
<% find_all_hot_contest.map do |contest| break if(contest == find_all_hot_contest[6]) %>
|
||||
|
||||
<li style="position:relative;height:6em;" class='<%= cycle("odd", "even") %>'>
|
||||
<div class="avatar-4"; style="float: left; margin-top: 7px">
|
||||
<%= image_tag('/images/039.gif')%>
|
||||
<%= image_tag('/images/contest1.png')%>
|
||||
</div>
|
||||
|
||||
<div style="float: left; margin-left: -8px; margin-top: 5px; width: 380px;">
|
||||
<%= link_to(contest.name, show_contest_contest_path(contest.id), :class => "d-g-blue d-p-project-name", :title => "#{contest.name}", :target => "_blank") %>
|
||||
<div style="float: left; margin-left: 12px; margin-top: 10px; margin-bottom: -4px; width: 380px;">
|
||||
<%= link_to(contest.name, contest.event_url, :class => "d-g-blue d-p-project-name", :title => "#{contest.name}", :target => "_blank") %>
|
||||
</div>
|
||||
|
||||
<div class='text_nowrap' style="float: left;margin:5px; margin-left: -8px; width: 380px;">
|
||||
<div class='text_nowrap' style="float: left;margin:5px; margin-left: 12px; margin-bottom: 2px; width: 380px;">
|
||||
<span class='font_lighter' title =<%=contest.description.to_s%>><%=contest.description.truncate(50, omission: '...')%></span>
|
||||
</div><br />
|
||||
|
||||
<div style="padding-left: 36px; clear: left;">
|
||||
<span class="font_lighter"><%= l(:label_contest_project, :count => contest.contesting_projects.count) %>(<strong><span style="font-size: 17px"><%= link_to(contest.contesting_projects.count, show_project_contest_path(contest)) %></span></strong>)</span>
|
||||
<span class="font_lighter"><%= l(:label_contest_softapplication, :count => contest.contesting_softapplications.count) %>(<strong><span style="font-size: 17px"><%= link_to(contest.contesting_softapplications.count, show_softapplication_contest_path(contest)) %></span></strong>)</span>
|
||||
<div style="padding-left: 57px; clear: left;">
|
||||
|
||||
<span class="font_lighter">发布时间:<%=format_time contest.created_on %></span>
|
||||
</div>
|
||||
|
||||
</li>
|
||||
|
@ -196,32 +196,37 @@
|
|||
|
||||
<div id="J_Slide" class="d-p-index-box d-p-index-hotproject">
|
||||
<h3 style="margin-left: 5px; color: #e8770d;"><strong>最新参赛应用</strong></h3>
|
||||
|
||||
|
||||
<div class="d-p-projectlist-box">
|
||||
<div class="d-p-projectlist">
|
||||
<% find_all_hot_softapplication.map do |softapplication| break if(softapplication == find_all_hot_softapplication[5]) %>
|
||||
<% if Softapplication.count > 0%>
|
||||
<div class="d-p-projectlist">
|
||||
<% find_all_hot_softapplication.map do |softapplication| break if(softapplication == find_all_hot_softapplication[5]) %>
|
||||
|
||||
<li style="position:relative;height:6em;" class='<%= cycle("odd", "even") %>'>
|
||||
<div class="avatar-4"; style="float: left; margin-top: 7px">
|
||||
<%= image_tag('/images/app1.png')%>
|
||||
</div>
|
||||
|
||||
<div style="float: left; margin-left: 10px; margin-top: 7px;margin-bottom: -2px; width: 380px;">
|
||||
<%= link_to(softapplication.name, softapplication_path(softapplication.id), :class => "d-g-blue d-p-project-name", :title => "#{softapplication.name}", :target => "_blank") %>
|
||||
</div>
|
||||
|
||||
<div class='text_nowrap' style="float: left;margin:5px; margin-left: 10px; margin-bottom:1px; width: 380px;">
|
||||
<span class='font_lighter' title =<%=softapplication.description.to_s%>><%=softapplication.description.truncate(50, omission: '...')%></span>
|
||||
</div><br />
|
||||
|
||||
<div style="padding-left: 55px; clear: left;">
|
||||
<span class="font_lighter">发布时间:<%=format_time softapplication.created_at %></span>
|
||||
</div>
|
||||
|
||||
</li>
|
||||
<% end; reset_cycle %>
|
||||
|
||||
</div>
|
||||
<% else %>
|
||||
<p class="font_lighter"><%= l(:label_no_ftapplication) %></p>
|
||||
|
||||
<li style="position:relative;height:6em;" class='<%= cycle("odd", "even") %>'>
|
||||
<div class="avatar-4"; style="float: left; margin-top: 7px">
|
||||
<%= image_tag('/images/009.gif')%>
|
||||
</div>
|
||||
|
||||
<div style="float: left; margin-left: -8px; margin-top: 5px; width: 380px;">
|
||||
<%= link_to(softapplication.name, softapplication_path(softapplication.id), :class => "d-g-blue d-p-project-name", :title => "#{softapplication.name}", :target => "_blank") %>
|
||||
</div>
|
||||
|
||||
<div class='text_nowrap' style="float: left;margin:5px; margin-left: -8px; width: 380px;">
|
||||
<span class='font_lighter' title =<%=softapplication.description.to_s%>><%=softapplication.description.truncate(50, omission: '...')%></span>
|
||||
</div><br />
|
||||
|
||||
<div style="padding-left: 36px; clear: left;">
|
||||
<span class="font_lighter">发布时间:<%=format_time softapplication.created_at %></span>
|
||||
</div>
|
||||
|
||||
</li>
|
||||
<% end; reset_cycle %>
|
||||
|
||||
</div>
|
||||
<% end %>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
|
|
@ -1,223 +1,237 @@
|
|||
<%= stylesheet_link_tag 'welcome' %>
|
||||
<script type="text/javascript" language="javascript">
|
||||
function clearInfo(id, content) {
|
||||
var text = $('#' + id);
|
||||
if (text.val() == content) {
|
||||
$('#' + id).val('');
|
||||
}
|
||||
}
|
||||
|
||||
$(function(){
|
||||
$("#main").find("a").attr("target", "_blank");
|
||||
});
|
||||
|
||||
function showInfo(id, content) {
|
||||
var text = $('#' + id);
|
||||
if (text.val() == '') {
|
||||
$('#' + id).val(content);
|
||||
}
|
||||
}
|
||||
// 给主页用户弹新页面
|
||||
$(document).ready(function($) {
|
||||
$("#loggedas").find("a").attr("target", "_blank");
|
||||
//$("#content .tabs_new~ .pagination").find("a").removeAttr("target");
|
||||
});
|
||||
</script>
|
||||
|
||||
|
||||
<script type="text/javascript">
|
||||
(function (){
|
||||
window.onload = function(){
|
||||
function fixedBar(id, options){
|
||||
var ele = document.getElementById(id);
|
||||
if(!ele) return;
|
||||
if(/msie (\d+\.\d+)/i.test(navigator.userAgent)){
|
||||
var pageHeight=window.innerHeight;
|
||||
var d=document;
|
||||
if(typeof pageHeight!="number"){
|
||||
if(document.compatMode=="CSS1Compat"){
|
||||
pageHeight=document.documentElement.clientHeight;
|
||||
}else{
|
||||
pageHeight=document.body.clientHeight;
|
||||
}
|
||||
}
|
||||
var ieScrollTop=window.pageYOffset || d.documentElement.scrollTop || d.body.scrollTop;
|
||||
if(options.addclass) ele.className = options.addclass;
|
||||
ele.style.position= 'absolute';
|
||||
|
||||
if(options.show){
|
||||
ele.style.top = 0 + "px";
|
||||
ele.style.display= 'block';
|
||||
}
|
||||
|
||||
window.attachEvent('onscroll' , function (){
|
||||
|
||||
var ieScrollTop=window.pageYOffset || d.documentElement.scrollTop || d.body.scrollTop;
|
||||
|
||||
ele.style.top = 0 + "px";
|
||||
if(options.autoHidden){
|
||||
if(ieScrollTop==0){
|
||||
ele.style.display="none";
|
||||
}else{
|
||||
ele.style.display="block";
|
||||
}
|
||||
}
|
||||
});
|
||||
}else{
|
||||
var ele = document.getElementById(id);
|
||||
if(typeof pageHeight!="number"){
|
||||
if(document.compatMode=="CSS1Compat"){
|
||||
pageHeight=document.documentElement.clientHeight;
|
||||
}else{
|
||||
pageHeight=document.body.clientHeight;
|
||||
}
|
||||
}
|
||||
if(options.show) ele.style.display= 'block';
|
||||
ele.style.top = 0 +'px';
|
||||
window.addEventListener('scroll',function (){
|
||||
if(options.autoHidden){
|
||||
if(baidu.page.getScrollTop()==0){
|
||||
ele.style.display="none";
|
||||
}else{
|
||||
ele.style.display="block";
|
||||
}
|
||||
}
|
||||
},false);
|
||||
}
|
||||
}
|
||||
|
||||
fixedBar('backTopBtn' , {autoHidden: true, top : 186});
|
||||
fixedBar('identifier-pannel' , {autoHidden: false , top : 956 , show : true});
|
||||
}
|
||||
})();
|
||||
</script>
|
||||
<div class='top_bar'>
|
||||
<div id="identifier-pannel" style="display:none">
|
||||
<%= image_tag '/images/qrweixin.jpg', size: '150x150', alt: 'trustie', class: "weixin" %>
|
||||
<div class="weixin-content">微信扫码</div>
|
||||
</div>
|
||||
<div class="main-content-bar">
|
||||
<div class="welcome_left" >
|
||||
<span class="font_welcome_trustie"><%= l(:label_welcome_trustie) %><%= l(:label_welcome_trustie_course) %> </span><span class="font_welcome_tdescription">, <%= l(:label_welcome_trustie_course_description) %></span>
|
||||
</div>
|
||||
<div class="search-bar">
|
||||
<%= render :partial => "search_project", :locals => {:project_type => Project::ProjectType_course}%>
|
||||
</div>
|
||||
<div style="clear: both;"></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div style="clear:both"></div>
|
||||
|
||||
|
||||
<div id="J_Slide" class="d-p-index-box d-p-index-hotproject">
|
||||
<h3><strong>新开课程</strong></h3>
|
||||
<span><%= link_to "更多>>", {:controller => 'projects', :action => 'course', :project_type => 1} %></span>
|
||||
<div class="d-p-projectlist-box">
|
||||
<ul class="d-p-projectlist">
|
||||
<% find_miracle_course(10, 7).map do |project| %>
|
||||
<li class='<%= cycle("odd", "even") %>' title=<%=project.description.to_s%>>
|
||||
<div class='avatar'>
|
||||
<%= image_tag(get_course_avatar(project), :class => "avatar-4") %>
|
||||
</div>
|
||||
<!-- 上左下右 -->
|
||||
<div class='desc_item text_nowrap' >
|
||||
[<%= get_course_term project %>]
|
||||
<%= link_to( project.name, project_path(project.id), :class => "d-g-blue d-p-project-name",:title => "#{project.name}" )%>
|
||||
(<%= link_to "#{studentCount(project)}人", project_member_path(project, :role => 2) ,:course =>'1' %>)
|
||||
<% files_count = (project.attachments.count.to_i+Version.joins(:project).where("projects.id=#{project.id}").count.to_i).to_s %>
|
||||
(<%=link_to "#{files_count}份", project_files_path(project) %>资料)
|
||||
</div>
|
||||
<div class='desc_item' >
|
||||
<span class=''>
|
||||
<% course = Course.find_by_extra(project.identifier) %>
|
||||
<%= course.teacher.user_extensions.occupation.try(:gsub, /(.+)$/, '\1:') %>
|
||||
</span>
|
||||
<span class='font_bolder'>
|
||||
<%= link_to(course.try(:teacher).try(:name), user_path(course.teacher)) %>
|
||||
<%#=course.try(:teacher).try(:name)%>
|
||||
</span>
|
||||
</div>
|
||||
<!-- <div class='desc_item' style="">
|
||||
<span class='font_lighter' title=<%#=project.description.to_s%>><%#=project.description.truncate(25, omission: '...')%></span>
|
||||
</div> -->
|
||||
<div class='join_course_link'>
|
||||
<% if !course_endTime_timeout?(project)%>
|
||||
<div >
|
||||
<%= join_in_course(project, User.current)%>
|
||||
</div>
|
||||
<% end %>
|
||||
</div>
|
||||
</li>
|
||||
<% end; reset_cycle %>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="J_Slide" class="d-p-index-box d-p-index-hotproject hidden" style="float: right;">
|
||||
|
||||
<div class="web_status">
|
||||
<h3 style="margin-left: 5px; color: #e8770d;"><strong>当前网站状态</strong></h3>
|
||||
<table>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td>课程总量: <%#=@course.count%></td>
|
||||
<td>教师数量: <%#=@teacher.count%></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>用户总量: <%#=User.count%></td>
|
||||
<td>学生数量: <%#=@student.count%></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>资源总量: <%#=Attachment.count%></td>
|
||||
<td> </td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
<div class='hidden' style="text-align: right; padding-right: 20px">
|
||||
<%= link_to "意见反馈" , suggestion_send_path, {:class => 'orangeButton', :style => "color: #EEEEEE" }%>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div id="J_Slide" class="d-p-index-box d-p-index-hotproject" style="float: right;">
|
||||
<h3 style="padding-bottom:px ;margin-left: 5px; color: #e8770d;">
|
||||
<strong>问题和反馈动态</strong>
|
||||
<%= link_to "我要提问" , newbie_send_path, {:class => 'orangeButton idea_btn', :style => "color: #EEEEEE" }%>
|
||||
<%= link_to "我要反馈" , suggestion_send_path, {:class => 'orangeButton idea_btn', :style => "color: #EEEEEE" }%>
|
||||
</h3>
|
||||
<span style="margin-top: -20px;float: right; display: block;"><%= link_to "更多>>", forums_path %></span>
|
||||
<div class="d-p-projectlist-box">
|
||||
<ul class="d-p-projectlist">
|
||||
<% find_new_forum_topics(10).each do |topic|%>
|
||||
<li class="message-brief-intro" style="min-height: 65px; line-height:2em; ">
|
||||
<div style="display: inline-block; width: 100%;">
|
||||
<span style="color:gray; display: inline-block; margin-bottom:6px; background: url('/images/list-icon.png') no-repeat scroll ;background-position: left center;">
|
||||
<%= link_to topic.subject.truncate(30, omission: '...'), topic.event_url, :class => "gray" , :style => "font-size: 10pt !important;" %>
|
||||
</span>
|
||||
<br>
|
||||
<span style="margin-left: 24px; color: rgb(172, 174, 177); white-space: nowrap; font-size: 9pt !important;;"><%= l(:field_updated_on) %><%=time_tag_welcome(topic_last_time topic)%>前</span>
|
||||
<span style="margin-left: 8px; margin-bottom: 0px; color: rgb(172, 174, 177) !important; white-space: nowrap;">
|
||||
由 <%= link_to topic.author ? topic.author : 'Anonymous', user_path(topic.author_id), :style => "font-size: 9pt !important; color: rgb(17, 102, 173);" %> 发表
|
||||
</span>
|
||||
<span style="float: right; color: rgb(172, 174, 177); white-space: nowrap; font-size: 9pt !important;;">回复(<%= link_to (topic.parent ? topic.parent.replies_count : topic.replies_count), topic.event_url %>)</span>
|
||||
</div>
|
||||
</li>
|
||||
<% end %>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
<div class="clearfix"></div>
|
||||
|
||||
<div style="width:100%;">
|
||||
<div style="width:600px;margin:0px auto;margin-top:80px;">
|
||||
<table style="width:600px;font-size:15px; color: #e8770d;">
|
||||
<tr>
|
||||
<td><strong>当前网站状态</strong></td>
|
||||
<td>活跃课程: <%=@courseCount%></td>
|
||||
<td>高校: 2个</td>
|
||||
<td>教师: <%=@teacherCount%> 名</td>
|
||||
<td>学生: <%=@studentCount%> 名<td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<%= stylesheet_link_tag 'welcome' %>
|
||||
<script type="text/javascript" language="javascript">
|
||||
function clearInfo(id, content) {
|
||||
var text = $('#' + id);
|
||||
if (text.val() == content) {
|
||||
$('#' + id).val('');
|
||||
}
|
||||
}
|
||||
|
||||
$(function(){
|
||||
$("#main").find("a").attr("target", "_blank");
|
||||
});
|
||||
|
||||
function showInfo(id, content) {
|
||||
var text = $('#' + id);
|
||||
if (text.val() == '') {
|
||||
$('#' + id).val(content);
|
||||
}
|
||||
}
|
||||
// 给主页用户弹新页面
|
||||
$(document).ready(function($) {
|
||||
$("#loggedas").find("a").attr("target", "_blank");
|
||||
//$("#content .tabs_new~ .pagination").find("a").removeAttr("target");
|
||||
});
|
||||
</script>
|
||||
|
||||
|
||||
<script type="text/javascript">
|
||||
(function (){
|
||||
window.onload = function(){
|
||||
function fixedBar(id, options){
|
||||
var ele = document.getElementById(id);
|
||||
if(!ele) return;
|
||||
if(/msie (\d+\.\d+)/i.test(navigator.userAgent)){
|
||||
var pageHeight=window.innerHeight;
|
||||
var d=document;
|
||||
if(typeof pageHeight!="number"){
|
||||
if(document.compatMode=="CSS1Compat"){
|
||||
pageHeight=document.documentElement.clientHeight;
|
||||
}else{
|
||||
pageHeight=document.body.clientHeight;
|
||||
}
|
||||
}
|
||||
var ieScrollTop=window.pageYOffset || d.documentElement.scrollTop || d.body.scrollTop;
|
||||
if(options.addclass) ele.className = options.addclass;
|
||||
ele.style.position= 'absolute';
|
||||
|
||||
if(options.show){
|
||||
ele.style.top = 0 + "px";
|
||||
ele.style.display= 'block';
|
||||
}
|
||||
|
||||
window.attachEvent('onscroll' , function (){
|
||||
|
||||
var ieScrollTop=window.pageYOffset || d.documentElement.scrollTop || d.body.scrollTop;
|
||||
|
||||
ele.style.top = 0 + "px";
|
||||
if(options.autoHidden){
|
||||
if(ieScrollTop==0){
|
||||
ele.style.display="none";
|
||||
}else{
|
||||
ele.style.display="block";
|
||||
}
|
||||
}
|
||||
});
|
||||
}else{
|
||||
var ele = document.getElementById(id);
|
||||
if(typeof pageHeight!="number"){
|
||||
if(document.compatMode=="CSS1Compat"){
|
||||
pageHeight=document.documentElement.clientHeight;
|
||||
}else{
|
||||
pageHeight=document.body.clientHeight;
|
||||
}
|
||||
}
|
||||
if(options.show) ele.style.display= 'block';
|
||||
ele.style.top = 0 +'px';
|
||||
window.addEventListener('scroll',function (){
|
||||
if(options.autoHidden){
|
||||
if(baidu.page.getScrollTop()==0){
|
||||
ele.style.display="none";
|
||||
}else{
|
||||
ele.style.display="block";
|
||||
}
|
||||
}
|
||||
},false);
|
||||
}
|
||||
}
|
||||
|
||||
fixedBar('backTopBtn' , {autoHidden: true, top : 186});
|
||||
fixedBar('identifier-pannel' , {autoHidden: false , top : 956 , show : true});
|
||||
}
|
||||
})();
|
||||
</script>
|
||||
<div class='top_bar'>
|
||||
<div id="identifier-pannel" style="display:none">
|
||||
<%= image_tag '/images/qrweixin.jpg', size: '150x150', alt: 'trustie', class: "weixin" %>
|
||||
<div class="weixin-content">微信扫码</div>
|
||||
</div>
|
||||
<div class="main-content-bar">
|
||||
<div class="welcome_left" >
|
||||
<span class="font_welcome_trustie">
|
||||
<% if params[:school_id].nil? and User.current.user_extensions.school.nil? %>
|
||||
<% else%>
|
||||
<% if params[:school_id] == "0" %>
|
||||
<% else %>
|
||||
<% if params[:school_id].nil? %>
|
||||
<%= School.find(User.current.user_extensions.school.id).name %>
|
||||
<br />
|
||||
<% else %>
|
||||
<%= School.find(params[:school_id]).name %>
|
||||
<br />
|
||||
<% end %>
|
||||
<% end %>
|
||||
<% end %>
|
||||
<%= l(:label_welcome_trustie) %><%= l(:label_welcome_trustie_course) %> </span><span class="font_welcome_tdescription">, <%= l(:label_welcome_trustie_course_description) %></span>
|
||||
</div>
|
||||
<div class="search-bar">
|
||||
<%= render :partial => "search_project", :locals => {:project_type => Project::ProjectType_course}%>
|
||||
</div>
|
||||
<div style="clear: both;"></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div style="clear:both"></div>
|
||||
|
||||
|
||||
<div id="J_Slide" class="d-p-index-box d-p-index-hotproject">
|
||||
<h3><strong>新开课程</strong></h3>
|
||||
<span><%= link_to "更多>>", {:controller => 'projects', :action => 'course', :project_type => 1, :school_id => params[:school_id]} %></span>
|
||||
<div class="d-p-projectlist-box">
|
||||
<ul class="d-p-projectlist">
|
||||
<% find_miracle_course(10, 7,params[:school_id]).map do |project| %>
|
||||
<li class='<%= cycle("odd", "even") %>' title=<%=project.description.to_s%>>
|
||||
<div class='avatar'>
|
||||
<%= image_tag(get_course_avatar(project), :class => "avatar-4") %>
|
||||
</div>
|
||||
<!-- 上左下右 -->
|
||||
<div class='desc_item text_nowrap' >
|
||||
[<%= get_course_term project %>]
|
||||
<%= link_to( project.name, project_path(project.id), :class => "d-g-blue d-p-project-name",:title => "#{project.name}" )%>
|
||||
(<%= link_to "#{studentCount(project)}人", project_member_path(project, :role => 2) ,:course =>'1' %>)
|
||||
<% files_count = (project.attachments.count.to_i+Version.joins(:project).where("projects.id=#{project.id}").count.to_i).to_s %>
|
||||
(<%=link_to "#{files_count}份", project_files_path(project) %>资料)
|
||||
</div>
|
||||
<div class='desc_item' >
|
||||
<span class=''>
|
||||
<% course = Course.find_by_extra(project.identifier) %>
|
||||
<%= course.teacher.user_extensions.occupation.try(:gsub, /(.+)$/, '\1:') %>
|
||||
</span>
|
||||
<span class='font_bolder'>
|
||||
<%= link_to(course.try(:teacher).try(:name), user_path(course.teacher)) %>
|
||||
<%#=course.try(:teacher).try(:name)%>
|
||||
</span>
|
||||
</div>
|
||||
<!-- <div class='desc_item' style="">
|
||||
<span class='font_lighter' title=<%#=project.description.to_s%>><%#=project.description.truncate(25, omission: '...')%></span>
|
||||
</div> -->
|
||||
<div class='join_course_link'>
|
||||
<% if !course_endTime_timeout?(project)%>
|
||||
<div >
|
||||
<%= join_in_course(project, User.current)%>
|
||||
</div>
|
||||
<% end %>
|
||||
</div>
|
||||
</li>
|
||||
<% end; reset_cycle %>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="J_Slide" class="d-p-index-box d-p-index-hotproject hidden" style="float: right;">
|
||||
|
||||
<div class="web_status">
|
||||
<h3 style="margin-left: 5px; color: #e8770d;"><strong>当前网站状态</strong></h3>
|
||||
<table>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td>课程总量: <%#=@course.count%></td>
|
||||
<td>教师数量: <%#=@teacher.count%></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>用户总量: <%#=User.count%></td>
|
||||
<td>学生数量: <%#=@student.count%></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>资源总量: <%#=Attachment.count%></td>
|
||||
<td> </td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
<div class='hidden' style="text-align: right; padding-right: 20px">
|
||||
<%= link_to "意见反馈" , suggestion_send_path, {:class => 'orangeButton', :style => "color: #EEEEEE" }%>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div id="J_Slide" class="d-p-index-box d-p-index-hotproject" style="float: right;">
|
||||
<h3 style="padding-bottom:px ;margin-left: 5px; color: #e8770d;">
|
||||
<strong>问题和反馈动态</strong>
|
||||
<%= link_to "我要提问" , newbie_send_path, {:class => 'orangeButton idea_btn', :style => "color: #EEEEEE" }%>
|
||||
<%= link_to "我要反馈" , suggestion_send_path, {:class => 'orangeButton idea_btn', :style => "color: #EEEEEE" }%>
|
||||
</h3>
|
||||
<span style="margin-top: -20px;float: right; display: block;"><%= link_to "更多>>", forums_path %></span>
|
||||
<div class="d-p-projectlist-box">
|
||||
<ul class="d-p-projectlist">
|
||||
<% find_new_forum_topics(10).each do |topic|%>
|
||||
<li class="message-brief-intro" style="min-height: 65px; line-height:2em; ">
|
||||
<div style="display: inline-block; width: 100%;">
|
||||
<span style="color:gray; display: inline-block; margin-bottom:6px; background: url('/images/list-icon.png') no-repeat scroll ;background-position: left center;">
|
||||
<%= link_to topic.subject.truncate(30, omission: '...'), topic.event_url, :class => "gray" , :style => "font-size: 10pt !important;" %>
|
||||
</span>
|
||||
<br>
|
||||
<span style="margin-left: 24px; color: rgb(172, 174, 177); white-space: nowrap; font-size: 9pt !important;;"><%= l(:field_updated_on) %><%=time_tag_welcome(topic_last_time topic)%>前</span>
|
||||
<span style="margin-left: 8px; margin-bottom: 0px; color: rgb(172, 174, 177) !important; white-space: nowrap;">
|
||||
由 <%= link_to topic.author ? topic.author : 'Anonymous', user_path(topic.author_id), :style => "font-size: 9pt !important; color: rgb(17, 102, 173);" %> 发表
|
||||
</span>
|
||||
<span style="float: right; color: rgb(172, 174, 177); white-space: nowrap; font-size: 9pt !important;;">回复(<%= link_to (topic.parent ? topic.parent.replies_count : topic.replies_count), topic.event_url %>)</span>
|
||||
</div>
|
||||
</li>
|
||||
<% end %>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
<div class="clearfix"></div>
|
||||
|
||||
<div style="width:100%;">
|
||||
<div style="width:600px;margin:0px auto;margin-top:80px;">
|
||||
<table style="width:600px;font-size:15px; color: #e8770d;">
|
||||
<tr>
|
||||
<td><strong>当前网站状态</strong></td>
|
||||
<td>活跃课程: <%=@courseCount%></td>
|
||||
<td>高校: 2个</td>
|
||||
<td>教师: <%=@teacherCount%> 名</td>
|
||||
<td>学生: <%=@studentCount%> 名<td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
|
@ -170,6 +170,7 @@ zh:
|
|||
notice_locking_conflict: 数据已被另一位用户更新
|
||||
notice_not_authorized: 对不起,您无权访问此页面。
|
||||
notice_not_contest_setting_authorized: 对不起,您无权配置此竞赛。
|
||||
notice_not_contest_delete_authorized: 对不起,您无权删除此竞赛。
|
||||
notice_not_authorized_archived_project: 要访问的项目已经归档。
|
||||
notice_email_sent: "邮件已发送至 %{value}"
|
||||
notice_email_error: "发送邮件时发生错误 (%{value})"
|
||||
|
@ -1344,6 +1345,7 @@ zh:
|
|||
label_new_call: 发布需求
|
||||
|
||||
label_newtype_contest: 发布竞赛
|
||||
|
||||
label_user_information: "与我相关"
|
||||
label_bid_succeed: "需求发布成功"
|
||||
label_wrong_budget: 错误的金额格式
|
||||
|
@ -1763,6 +1765,10 @@ zh:
|
|||
label_has_been: 已经被
|
||||
label_course_userd_by: 个课程引用
|
||||
|
||||
|
||||
label_school_all: 学校列表
|
||||
|
||||
|
||||
role_of_course: 课程角色
|
||||
label_student: 学生
|
||||
|
||||
|
@ -1830,6 +1836,7 @@ zh:
|
|||
label_system_platform: 系统平台
|
||||
label_nextstep: 下一步
|
||||
label_participate: 参赛者
|
||||
label_setting: 配置
|
||||
label_contest_project: 参赛项目
|
||||
label_contest_softapplication: 参赛应用
|
||||
label_contest_response: 用户反馈
|
||||
|
@ -1840,7 +1847,9 @@ zh:
|
|||
label_release_softapplication: 发布应用
|
||||
label_upload_softapplication_packets: 上传应用软件包
|
||||
label_upload_softapplication_photo: 上传产品截图
|
||||
label_upload_softapplication_photo_condition: 截图至少上传2张,至多4张;格式为gif/jpg/png, 尺寸480*800, 每张小于2M
|
||||
label_upload_softapplication_packets_mustpacketed: 应用软件作品必须打包后以压缩包的形式上传,便于上传和下载 ;
|
||||
label_upload_softapplication_photo_condition: 应用软件截图需上传4张;格式为gif/jpg/png, 尺寸480*800, 每张小于2M
|
||||
label_updated_caution: 注意:若修改应用,则之前上传的软件包和截图都将被删除,请重新上传!
|
||||
label_softapplication_name: 应用名称
|
||||
label_softapplication_description: 应用简介
|
||||
label_softapplication_type: 应用分类
|
||||
|
@ -1857,6 +1866,8 @@ zh:
|
|||
label_tags_contest_description: 竞赛描述
|
||||
label_release_add_contest_succeed: 该应用发布并添加成功.
|
||||
label_add_contest_succeed_fail: 添加失败,该应用已参赛.
|
||||
label_no_ftapplication: 暂无应用
|
||||
label_edit_softapplication: 修改应用
|
||||
|
||||
|
||||
|
||||
|
|
|
@ -16,6 +16,8 @@
|
|||
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||
|
||||
RedmineApp::Application.routes.draw do
|
||||
mount SeemsRateable::Engine => '/rateable', :as => :rateable
|
||||
|
||||
namespace :zipdown do
|
||||
match 'assort'
|
||||
end
|
||||
|
@ -506,18 +508,6 @@ RedmineApp::Application.routes.draw do
|
|||
match 'upload_avatar', :to => 'avatar#upload', :via => :post
|
||||
# Endof Tao's code
|
||||
get 'robots.txt', :to => 'welcome#robots'
|
||||
|
||||
Dir.glob File.expand_path("plugins/*", Rails.root) do |plugin_dir|
|
||||
file = File.join(plugin_dir, "config/routes.rb")
|
||||
if File.exists?(file)
|
||||
begin
|
||||
instance_eval File.read(file)
|
||||
rescue Exception => e
|
||||
puts "An error occurred while loading the routes definition of #{File.basename(plugin_dir)} plugin (#{file}): #{e.message}."
|
||||
exit 1
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
##############测试留言功能 fq
|
||||
post 'words/new', :to => 'words#new'
|
||||
|
@ -592,7 +582,8 @@ RedmineApp::Application.routes.draw do
|
|||
post 'school/get_options/:province', :to => 'school#get_options'
|
||||
get 'school/get_options/:province', :to => 'school#get_options'
|
||||
|
||||
|
||||
post 'school/get_schoollist/:province', :to => 'school#get_schoollist'
|
||||
get 'school/get_schoollist/:province', :to => 'school#get_schoollist'
|
||||
|
||||
######added by nie
|
||||
match 'tags/show_projects_tags',:to => 'tags#show_projects_tags'
|
||||
|
@ -607,5 +598,16 @@ RedmineApp::Application.routes.draw do
|
|||
|
||||
match 'words/add_brief_introdution', :controller => 'words', :action => 'add_brief_introdution'
|
||||
|
||||
Dir.glob File.expand_path("plugins/*", Rails.root) do |plugin_dir|
|
||||
file = File.join(plugin_dir, "config/routes.rb")
|
||||
if File.exists?(file)
|
||||
begin
|
||||
instance_eval File.read(file)
|
||||
rescue Exception => e
|
||||
puts "An error occurred while loading the routes definition of #{File.basename(plugin_dir)} plugin (#{file}): #{e.message}."
|
||||
exit 1
|
||||
end
|
||||
end
|
||||
end
|
||||
get ':controller(/:action(/:id))'
|
||||
end
|
||||
|
|
|
@ -0,0 +1,13 @@
|
|||
class CreateUserScore < ActiveRecord::Migration
|
||||
def change
|
||||
create_table :user_scores do |t|
|
||||
t.integer :user_id, :null => false
|
||||
t.integer :collaboration
|
||||
t.integer :influence
|
||||
t.integer :skill
|
||||
t.integer :active
|
||||
|
||||
t.timestamps
|
||||
end
|
||||
end
|
||||
end
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue