commit
cd278cb795
|
@ -11,4 +11,4 @@
|
|||
/Gemfile
|
||||
/Gemfile.lock
|
||||
/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'
|
||||
gem "rails", "3.2.13"
|
||||
gem "jquery-rails", "~> 2.0.2"
|
||||
gem "i18n", "~> 0.6.0"
|
||||
|
|
|
@ -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 = []
|
||||
|
|
|
@ -0,0 +1,15 @@
|
|||
require_dependency "seems_rateable/application_controller"
|
||||
|
||||
class RatingsController < ::ApplicationController
|
||||
def create
|
||||
raise NoCurrentUserInstanceError unless current_user
|
||||
|
||||
obj = params[:kls].classify.constantize.find(params[:idBox])
|
||||
begin
|
||||
obj.rate(params[:rate].to_i, current_user.id, params[:dimension])
|
||||
render :json => true
|
||||
rescue Errors::AlreadyRatedError
|
||||
render :json => {:error => true}
|
||||
end
|
||||
end
|
||||
end
|
|
@ -84,7 +84,6 @@ class SoftapplicationsController < ApplicationController
|
|||
end
|
||||
end
|
||||
|
||||
|
||||
def add_attach
|
||||
@softapplication = Softapplication.find(params[:id])
|
||||
@softapplication.save_attachments(params[:attachments])
|
||||
|
@ -101,6 +100,7 @@ class SoftapplicationsController < ApplicationController
|
|||
format.json { head :no_content }
|
||||
end
|
||||
end
|
||||
|
||||
#应用评价涉及到的方法
|
||||
def new_message
|
||||
@jour = JournalsForMessage.find(params[:journal_id]) if params[:journal_id]
|
||||
|
@ -118,10 +118,10 @@ class SoftapplicationsController < ApplicationController
|
|||
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
|
||||
|
@ -131,7 +131,6 @@ class SoftapplicationsController < ApplicationController
|
|||
@softapplication = Softapplication.find(params[:id])
|
||||
@softapplication.add_jour(User.current, message, refer_user_id)
|
||||
|
||||
end
|
||||
|
||||
@user = @softapplication.user
|
||||
@jours = @softapplication.journals_for_messages.where('m_parent_id IS NULL').order('created_on DESC')
|
||||
|
@ -167,6 +166,7 @@ class SoftapplicationsController < ApplicationController
|
|||
format.js
|
||||
end
|
||||
end
|
||||
|
||||
#
|
||||
def more
|
||||
@jour = @softapplication.journals_for_messages
|
||||
|
@ -179,6 +179,7 @@ class SoftapplicationsController < ApplicationController
|
|||
#format.api { render_api_ok }
|
||||
end
|
||||
end
|
||||
|
||||
#
|
||||
def back
|
||||
@jour = @softapplication.journals_for_messages
|
||||
|
|
|
@ -1608,4 +1608,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
|
||||
|
|
|
@ -1,6 +1,8 @@
|
|||
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
|
||||
|
|
|
@ -127,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
|
||||
|
||||
|
|
|
@ -10,6 +10,7 @@
|
|||
<%= 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 'seems_rateable/jRating', 'seems_rateable/rateable'%>
|
||||
<%= heads_for_theme %>
|
||||
<%= call_hook :view_layouts_base_html_head %>
|
||||
<!-- page specific tags -->
|
||||
|
|
|
@ -100,10 +100,13 @@
|
|||
<td class="font_index">
|
||||
<%=link_to "#{@contest.contesting_softapplications.count}", :controller => 'contests', :action => 'show_softapplication' %>
|
||||
</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>
|
||||
|
||||
</tr>
|
||||
</table>
|
||||
<div class="user_underline"></div>
|
||||
|
@ -142,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>
|
||||
|
|
|
@ -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 %>
|
|
@ -36,6 +36,10 @@
|
|||
|
||||
<td>开发人员:<%= @softapplication.application_developers %></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>平均评分: <%= rating_for @softapplication, :static => true, dimension: :quality, class: 'rateable div_inline' %></td>
|
||||
<td></td>
|
||||
</tr>
|
||||
|
||||
|
||||
</table>
|
||||
|
@ -64,7 +68,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>
|
||||
|
||||
<!--提示登录后对应用进行评价-->
|
||||
|
|
|
@ -198,6 +198,7 @@
|
|||
<h3 style="margin-left: 5px; color: #e8770d;"><strong>最新参赛应用</strong></h3>
|
||||
|
||||
<div class="d-p-projectlist-box">
|
||||
<% if Softapplication.count > 0%>
|
||||
<div class="d-p-projectlist">
|
||||
<% find_all_hot_softapplication.map do |softapplication| break if(softapplication == find_all_hot_softapplication[5]) %>
|
||||
|
||||
|
@ -222,6 +223,10 @@
|
|||
<% end; reset_cycle %>
|
||||
|
||||
</div>
|
||||
<% else %>
|
||||
<p class="font_lighter"><%= l(:label_no_ftapplication) %></p>
|
||||
|
||||
<% end %>
|
||||
</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: 错误的金额格式
|
||||
|
@ -1824,6 +1826,7 @@ zh:
|
|||
label_system_platform: 系统平台
|
||||
label_nextstep: 下一步
|
||||
label_participate: 参赛者
|
||||
label_setting: 配置
|
||||
label_contest_project: 参赛项目
|
||||
label_contest_softapplication: 参赛应用
|
||||
label_contest_response: 用户反馈
|
||||
|
@ -1851,6 +1854,7 @@ zh:
|
|||
label_tags_contest_description: 竞赛描述
|
||||
label_release_add_contest_succeed: 该应用发布并添加成功.
|
||||
label_add_contest_succeed_fail: 添加失败,该应用已参赛.
|
||||
label_no_ftapplication: 暂无应用
|
||||
|
||||
|
||||
|
|
@ -16,6 +16,7 @@
|
|||
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||
|
||||
RedmineApp::Application.routes.draw do
|
||||
resources :ratings, :only => :create
|
||||
namespace :zipdown do
|
||||
match 'assort'
|
||||
end
|
||||
|
@ -507,18 +508,6 @@ RedmineApp::Application.routes.draw do
|
|||
# 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'
|
||||
post 'words/create', :to => 'words#create'
|
||||
|
@ -607,5 +596,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,950 @@
|
|||
# encoding: UTF-8
|
||||
# This file is auto-generated from the current state of the database. Instead
|
||||
# of editing this file, please use the migrations feature of Active Record to
|
||||
# incrementally modify your database, and then regenerate this schema definition.
|
||||
#
|
||||
# Note that this schema.rb definition is the authoritative source for your
|
||||
# database schema. If you need to create the application database on another
|
||||
# system, you should be using db:schema:load, not running all the migrations
|
||||
# from scratch. The latter is a flawed and unsustainable approach (the more migrations
|
||||
# you'll amass, the slower it'll run and the greater likelihood for issues).
|
||||
#
|
||||
# It's strongly recommended to check this file into your version control system.
|
||||
|
||||
ActiveRecord::Schema.define(:version => 20140421044830) do
|
||||
|
||||
create_table "activities", :force => true do |t|
|
||||
t.integer "act_id", :null => false
|
||||
t.string "act_type", :null => false
|
||||
t.integer "user_id", :null => false
|
||||
end
|
||||
|
||||
add_index "activities", ["act_id", "act_type"], :name => "index_activities_on_act_id_and_act_type"
|
||||
add_index "activities", ["user_id", "act_type"], :name => "index_activities_on_user_id_and_act_type"
|
||||
add_index "activities", ["user_id"], :name => "index_activities_on_user_id"
|
||||
|
||||
create_table "attachments", :force => true do |t|
|
||||
t.integer "container_id"
|
||||
t.string "container_type", :limit => 30
|
||||
t.string "filename", :default => "", :null => false
|
||||
t.string "disk_filename", :default => "", :null => false
|
||||
t.integer "filesize", :default => 0, :null => false
|
||||
t.string "content_type", :default => ""
|
||||
t.string "digest", :limit => 40, :default => "", :null => false
|
||||
t.integer "downloads", :default => 0, :null => false
|
||||
t.integer "author_id", :default => 0, :null => false
|
||||
t.datetime "created_on"
|
||||
t.string "description"
|
||||
t.string "disk_directory"
|
||||
end
|
||||
|
||||
add_index "attachments", ["author_id"], :name => "index_attachments_on_author_id"
|
||||
add_index "attachments", ["container_id", "container_type"], :name => "index_attachments_on_container_id_and_container_type"
|
||||
add_index "attachments", ["created_on"], :name => "index_attachments_on_created_on"
|
||||
|
||||
create_table "auth_sources", :force => true do |t|
|
||||
t.string "type", :limit => 30, :default => "", :null => false
|
||||
t.string "name", :limit => 60, :default => "", :null => false
|
||||
t.string "host", :limit => 60
|
||||
t.integer "port"
|
||||
t.string "account"
|
||||
t.string "account_password", :default => ""
|
||||
t.string "base_dn"
|
||||
t.string "attr_login", :limit => 30
|
||||
t.string "attr_firstname", :limit => 30
|
||||
t.string "attr_lastname", :limit => 30
|
||||
t.string "attr_mail", :limit => 30
|
||||
t.boolean "onthefly_register", :default => false, :null => false
|
||||
t.boolean "tls", :default => false, :null => false
|
||||
t.string "filter"
|
||||
t.integer "timeout"
|
||||
end
|
||||
|
||||
add_index "auth_sources", ["id", "type"], :name => "index_auth_sources_on_id_and_type"
|
||||
|
||||
create_table "biding_projects", :force => true do |t|
|
||||
t.integer "project_id"
|
||||
t.integer "bid_id"
|
||||
t.integer "user_id"
|
||||
t.string "description"
|
||||
t.datetime "created_at", :null => false
|
||||
t.datetime "updated_at", :null => false
|
||||
t.string "reward"
|
||||
end
|
||||
|
||||
create_table "bids", :force => true do |t|
|
||||
t.string "name"
|
||||
t.string "budget", :null => false
|
||||
t.integer "author_id"
|
||||
t.date "deadline"
|
||||
t.string "description"
|
||||
t.datetime "created_on", :null => false
|
||||
t.datetime "updated_on", :null => false
|
||||
t.integer "commit"
|
||||
t.integer "reward_type"
|
||||
t.integer "homework_type"
|
||||
t.integer "parent_id"
|
||||
t.string "password"
|
||||
end
|
||||
|
||||
create_table "boards", :force => true do |t|
|
||||
t.integer "project_id", :null => false
|
||||
t.string "name", :default => "", :null => false
|
||||
t.string "description"
|
||||
t.integer "position", :default => 1
|
||||
t.integer "topics_count", :default => 0, :null => false
|
||||
t.integer "messages_count", :default => 0, :null => false
|
||||
t.integer "last_message_id"
|
||||
t.integer "parent_id"
|
||||
end
|
||||
|
||||
add_index "boards", ["last_message_id"], :name => "index_boards_on_last_message_id"
|
||||
add_index "boards", ["project_id"], :name => "boards_project_id"
|
||||
|
||||
create_table "changes", :force => true do |t|
|
||||
t.integer "changeset_id", :null => false
|
||||
t.string "action", :limit => 1, :default => "", :null => false
|
||||
t.text "path", :null => false
|
||||
t.text "from_path"
|
||||
t.string "from_revision"
|
||||
t.string "revision"
|
||||
t.string "branch"
|
||||
end
|
||||
|
||||
add_index "changes", ["changeset_id"], :name => "changesets_changeset_id"
|
||||
|
||||
create_table "changeset_parents", :id => false, :force => true do |t|
|
||||
t.integer "changeset_id", :null => false
|
||||
t.integer "parent_id", :null => false
|
||||
end
|
||||
|
||||
add_index "changeset_parents", ["changeset_id"], :name => "changeset_parents_changeset_ids"
|
||||
add_index "changeset_parents", ["parent_id"], :name => "changeset_parents_parent_ids"
|
||||
|
||||
create_table "changesets", :force => true do |t|
|
||||
t.integer "repository_id", :null => false
|
||||
t.string "revision", :null => false
|
||||
t.string "committer"
|
||||
t.datetime "committed_on", :null => false
|
||||
t.text "comments"
|
||||
t.date "commit_date"
|
||||
t.string "scmid"
|
||||
t.integer "user_id"
|
||||
end
|
||||
|
||||
add_index "changesets", ["committed_on"], :name => "index_changesets_on_committed_on"
|
||||
add_index "changesets", ["repository_id", "revision"], :name => "changesets_repos_rev", :unique => true
|
||||
add_index "changesets", ["repository_id", "scmid"], :name => "changesets_repos_scmid"
|
||||
add_index "changesets", ["repository_id"], :name => "index_changesets_on_repository_id"
|
||||
add_index "changesets", ["user_id"], :name => "index_changesets_on_user_id"
|
||||
|
||||
create_table "changesets_issues", :id => false, :force => true do |t|
|
||||
t.integer "changeset_id", :null => false
|
||||
t.integer "issue_id", :null => false
|
||||
end
|
||||
|
||||
add_index "changesets_issues", ["changeset_id", "issue_id"], :name => "changesets_issues_ids", :unique => true
|
||||
|
||||
create_table "comments", :force => true do |t|
|
||||
t.string "commented_type", :limit => 30, :default => "", :null => false
|
||||
t.integer "commented_id", :default => 0, :null => false
|
||||
t.integer "author_id", :default => 0, :null => false
|
||||
t.text "comments"
|
||||
t.datetime "created_on", :null => false
|
||||
t.datetime "updated_on", :null => false
|
||||
end
|
||||
|
||||
add_index "comments", ["author_id"], :name => "index_comments_on_author_id"
|
||||
add_index "comments", ["commented_id", "commented_type"], :name => "index_comments_on_commented_id_and_commented_type"
|
||||
|
||||
create_table "contesting_projects", :force => true do |t|
|
||||
t.integer "project_id"
|
||||
t.string "contest_id"
|
||||
t.integer "user_id"
|
||||
t.string "description"
|
||||
t.datetime "created_at", :null => false
|
||||
t.datetime "updated_at", :null => false
|
||||
t.string "reward"
|
||||
end
|
||||
|
||||
create_table "contesting_softapplications", :force => true do |t|
|
||||
t.integer "softapplication_id"
|
||||
t.integer "contest_id"
|
||||
t.integer "user_id"
|
||||
t.string "description"
|
||||
t.datetime "created_at", :null => false
|
||||
t.datetime "updated_at", :null => false
|
||||
t.string "reward"
|
||||
end
|
||||
|
||||
create_table "contests", :force => true do |t|
|
||||
t.string "name"
|
||||
t.integer "budget"
|
||||
t.integer "author_id"
|
||||
t.date "deadline"
|
||||
t.string "description"
|
||||
t.integer "commit"
|
||||
t.string "password"
|
||||
t.datetime "created_on", :null => false
|
||||
t.datetime "updated_on", :null => false
|
||||
end
|
||||
|
||||
create_table "courses", :force => true do |t|
|
||||
t.integer "tea_id"
|
||||
t.string "name"
|
||||
t.integer "state"
|
||||
t.string "code"
|
||||
t.integer "time"
|
||||
t.string "extra"
|
||||
t.datetime "created_at", :null => false
|
||||
t.datetime "updated_at", :null => false
|
||||
t.string "location"
|
||||
t.string "term"
|
||||
t.string "string"
|
||||
t.string "password"
|
||||
t.string "setup_time"
|
||||
t.string "endup_time"
|
||||
t.string "class_period"
|
||||
t.integer "school_id"
|
||||
end
|
||||
|
||||
create_table "custom_fields", :force => true do |t|
|
||||
t.string "type", :limit => 30, :default => "", :null => false
|
||||
t.string "name", :limit => 30, :default => "", :null => false
|
||||
t.string "field_format", :limit => 30, :default => "", :null => false
|
||||
t.text "possible_values"
|
||||
t.string "regexp", :default => ""
|
||||
t.integer "min_length", :default => 0, :null => false
|
||||
t.integer "max_length", :default => 0, :null => false
|
||||
t.boolean "is_required", :default => false, :null => false
|
||||
t.boolean "is_for_all", :default => false, :null => false
|
||||
t.boolean "is_filter", :default => false, :null => false
|
||||
t.integer "position", :default => 1
|
||||
t.boolean "searchable", :default => false
|
||||
t.text "default_value"
|
||||
t.boolean "editable", :default => true
|
||||
t.boolean "visible", :default => true, :null => false
|
||||
t.boolean "multiple", :default => false
|
||||
end
|
||||
|
||||
add_index "custom_fields", ["id", "type"], :name => "index_custom_fields_on_id_and_type"
|
||||
|
||||
create_table "custom_fields_projects", :id => false, :force => true do |t|
|
||||
t.integer "custom_field_id", :default => 0, :null => false
|
||||
t.integer "project_id", :default => 0, :null => false
|
||||
end
|
||||
|
||||
add_index "custom_fields_projects", ["custom_field_id", "project_id"], :name => "index_custom_fields_projects_on_custom_field_id_and_project_id", :unique => true
|
||||
|
||||
create_table "custom_fields_trackers", :id => false, :force => true do |t|
|
||||
t.integer "custom_field_id", :default => 0, :null => false
|
||||
t.integer "tracker_id", :default => 0, :null => false
|
||||
end
|
||||
|
||||
add_index "custom_fields_trackers", ["custom_field_id", "tracker_id"], :name => "index_custom_fields_trackers_on_custom_field_id_and_tracker_id", :unique => true
|
||||
|
||||
create_table "custom_values", :force => true do |t|
|
||||
t.string "customized_type", :limit => 30, :default => "", :null => false
|
||||
t.integer "customized_id", :default => 0, :null => false
|
||||
t.integer "custom_field_id", :default => 0, :null => false
|
||||
t.text "value"
|
||||
end
|
||||
|
||||
add_index "custom_values", ["custom_field_id"], :name => "index_custom_values_on_custom_field_id"
|
||||
add_index "custom_values", ["customized_type", "customized_id"], :name => "custom_values_customized"
|
||||
|
||||
create_table "documents", :force => true do |t|
|
||||
t.integer "project_id", :default => 0, :null => false
|
||||
t.integer "category_id", :default => 0, :null => false
|
||||
t.string "title", :limit => 60, :default => "", :null => false
|
||||
t.text "description"
|
||||
t.datetime "created_on"
|
||||
end
|
||||
|
||||
add_index "documents", ["category_id"], :name => "index_documents_on_category_id"
|
||||
add_index "documents", ["created_on"], :name => "index_documents_on_created_on"
|
||||
add_index "documents", ["project_id"], :name => "documents_project_id"
|
||||
|
||||
create_table "enabled_modules", :force => true do |t|
|
||||
t.integer "project_id"
|
||||
t.string "name", :null => false
|
||||
end
|
||||
|
||||
add_index "enabled_modules", ["project_id"], :name => "enabled_modules_project_id"
|
||||
|
||||
create_table "enumerations", :force => true do |t|
|
||||
t.string "name", :limit => 30, :default => "", :null => false
|
||||
t.integer "position", :default => 1
|
||||
t.boolean "is_default", :default => false, :null => false
|
||||
t.string "type"
|
||||
t.boolean "active", :default => true, :null => false
|
||||
t.integer "project_id"
|
||||
t.integer "parent_id"
|
||||
t.string "position_name", :limit => 30
|
||||
end
|
||||
|
||||
add_index "enumerations", ["id", "type"], :name => "index_enumerations_on_id_and_type"
|
||||
add_index "enumerations", ["project_id"], :name => "index_enumerations_on_project_id"
|
||||
|
||||
create_table "forums", :force => true do |t|
|
||||
t.string "name", :null => false
|
||||
t.string "description", :default => ""
|
||||
t.integer "topic_count", :default => 0
|
||||
t.integer "memo_count", :default => 0
|
||||
t.integer "last_memo_id", :default => 0
|
||||
t.integer "creator_id", :null => false
|
||||
t.datetime "created_at", :null => false
|
||||
t.datetime "updated_at", :null => false
|
||||
end
|
||||
|
||||
create_table "groups_users", :id => false, :force => true do |t|
|
||||
t.integer "group_id", :null => false
|
||||
t.integer "user_id", :null => false
|
||||
end
|
||||
|
||||
add_index "groups_users", ["group_id", "user_id"], :name => "groups_users_ids", :unique => true
|
||||
|
||||
create_table "homework_attaches", :force => true do |t|
|
||||
t.integer "bid_id"
|
||||
t.integer "user_id"
|
||||
t.datetime "created_at", :null => false
|
||||
t.datetime "updated_at", :null => false
|
||||
t.string "reward"
|
||||
end
|
||||
|
||||
create_table "homework_for_courses", :force => true do |t|
|
||||
t.integer "project_id"
|
||||
t.integer "bid_id"
|
||||
end
|
||||
|
||||
create_table "issue_categories", :force => true do |t|
|
||||
t.integer "project_id", :default => 0, :null => false
|
||||
t.string "name", :limit => 30, :default => "", :null => false
|
||||
t.integer "assigned_to_id"
|
||||
end
|
||||
|
||||
add_index "issue_categories", ["assigned_to_id"], :name => "index_issue_categories_on_assigned_to_id"
|
||||
add_index "issue_categories", ["project_id"], :name => "issue_categories_project_id"
|
||||
|
||||
create_table "issue_relations", :force => true do |t|
|
||||
t.integer "issue_from_id", :null => false
|
||||
t.integer "issue_to_id", :null => false
|
||||
t.string "relation_type", :default => "", :null => false
|
||||
t.integer "delay"
|
||||
end
|
||||
|
||||
add_index "issue_relations", ["issue_from_id", "issue_to_id"], :name => "index_issue_relations_on_issue_from_id_and_issue_to_id", :unique => true
|
||||
add_index "issue_relations", ["issue_from_id"], :name => "index_issue_relations_on_issue_from_id"
|
||||
add_index "issue_relations", ["issue_to_id"], :name => "index_issue_relations_on_issue_to_id"
|
||||
|
||||
create_table "issue_statuses", :force => true do |t|
|
||||
t.string "name", :limit => 30, :default => "", :null => false
|
||||
t.boolean "is_closed", :default => false, :null => false
|
||||
t.boolean "is_default", :default => false, :null => false
|
||||
t.integer "position", :default => 1
|
||||
t.integer "default_done_ratio"
|
||||
end
|
||||
|
||||
add_index "issue_statuses", ["is_closed"], :name => "index_issue_statuses_on_is_closed"
|
||||
add_index "issue_statuses", ["is_default"], :name => "index_issue_statuses_on_is_default"
|
||||
add_index "issue_statuses", ["position"], :name => "index_issue_statuses_on_position"
|
||||
|
||||
create_table "issues", :force => true do |t|
|
||||
t.integer "tracker_id", :null => false
|
||||
t.integer "project_id", :null => false
|
||||
t.string "subject", :default => "", :null => false
|
||||
t.text "description"
|
||||
t.date "due_date"
|
||||
t.integer "category_id"
|
||||
t.integer "status_id", :null => false
|
||||
t.integer "assigned_to_id"
|
||||
t.integer "priority_id", :null => false
|
||||
t.integer "fixed_version_id"
|
||||
t.integer "author_id", :null => false
|
||||
t.integer "lock_version", :default => 0, :null => false
|
||||
t.datetime "created_on"
|
||||
t.datetime "updated_on"
|
||||
t.date "start_date"
|
||||
t.integer "done_ratio", :default => 0, :null => false
|
||||
t.float "estimated_hours"
|
||||
t.integer "parent_id"
|
||||
t.integer "root_id"
|
||||
t.integer "lft"
|
||||
t.integer "rgt"
|
||||
t.boolean "is_private", :default => false, :null => false
|
||||
t.datetime "closed_on"
|
||||
end
|
||||
|
||||
add_index "issues", ["assigned_to_id"], :name => "index_issues_on_assigned_to_id"
|
||||
add_index "issues", ["author_id"], :name => "index_issues_on_author_id"
|
||||
add_index "issues", ["category_id"], :name => "index_issues_on_category_id"
|
||||
add_index "issues", ["created_on"], :name => "index_issues_on_created_on"
|
||||
add_index "issues", ["fixed_version_id"], :name => "index_issues_on_fixed_version_id"
|
||||
add_index "issues", ["priority_id"], :name => "index_issues_on_priority_id"
|
||||
add_index "issues", ["project_id"], :name => "issues_project_id"
|
||||
add_index "issues", ["root_id", "lft", "rgt"], :name => "index_issues_on_root_id_and_lft_and_rgt"
|
||||
add_index "issues", ["status_id"], :name => "index_issues_on_status_id"
|
||||
add_index "issues", ["tracker_id"], :name => "index_issues_on_tracker_id"
|
||||
|
||||
create_table "join_in_competitions", :force => true do |t|
|
||||
t.integer "user_id"
|
||||
t.integer "competition_id"
|
||||
t.datetime "created_at", :null => false
|
||||
t.datetime "updated_at", :null => false
|
||||
end
|
||||
|
||||
create_table "join_in_contests", :force => true do |t|
|
||||
t.integer "user_id"
|
||||
t.integer "bid_id"
|
||||
t.datetime "created_at", :null => false
|
||||
t.datetime "updated_at", :null => false
|
||||
end
|
||||
|
||||
create_table "journal_details", :force => true do |t|
|
||||
t.integer "journal_id", :default => 0, :null => false
|
||||
t.string "property", :limit => 30, :default => "", :null => false
|
||||
t.string "prop_key", :limit => 30, :default => "", :null => false
|
||||
t.text "old_value"
|
||||
t.text "value"
|
||||
end
|
||||
|
||||
add_index "journal_details", ["journal_id"], :name => "journal_details_journal_id"
|
||||
|
||||
create_table "journal_replies", :id => false, :force => true do |t|
|
||||
t.integer "journal_id"
|
||||
t.integer "user_id"
|
||||
t.integer "reply_id"
|
||||
end
|
||||
|
||||
add_index "journal_replies", ["journal_id"], :name => "index_journal_replies_on_journal_id"
|
||||
add_index "journal_replies", ["reply_id"], :name => "index_journal_replies_on_reply_id"
|
||||
add_index "journal_replies", ["user_id"], :name => "index_journal_replies_on_user_id"
|
||||
|
||||
create_table "journals", :force => true do |t|
|
||||
t.integer "journalized_id", :default => 0, :null => false
|
||||
t.string "journalized_type", :limit => 30, :default => "", :null => false
|
||||
t.integer "user_id", :default => 0, :null => false
|
||||
t.text "notes"
|
||||
t.datetime "created_on", :null => false
|
||||
t.boolean "private_notes", :default => false, :null => false
|
||||
end
|
||||
|
||||
add_index "journals", ["created_on"], :name => "index_journals_on_created_on"
|
||||
add_index "journals", ["journalized_id", "journalized_type"], :name => "journals_journalized_id"
|
||||
add_index "journals", ["journalized_id"], :name => "index_journals_on_journalized_id"
|
||||
add_index "journals", ["user_id"], :name => "index_journals_on_user_id"
|
||||
|
||||
create_table "journals_for_messages", :force => true do |t|
|
||||
t.integer "jour_id"
|
||||
t.string "jour_type"
|
||||
t.integer "user_id"
|
||||
t.text "notes"
|
||||
t.integer "status"
|
||||
t.integer "reply_id"
|
||||
t.datetime "created_on", :null => false
|
||||
t.datetime "updated_on", :null => false
|
||||
t.string "m_parent_id"
|
||||
t.boolean "is_readed"
|
||||
t.integer "m_reply_count"
|
||||
t.integer "m_reply_id"
|
||||
end
|
||||
|
||||
create_table "member_roles", :force => true do |t|
|
||||
t.integer "member_id", :null => false
|
||||
t.integer "role_id", :null => false
|
||||
t.integer "inherited_from"
|
||||
end
|
||||
|
||||
add_index "member_roles", ["member_id"], :name => "index_member_roles_on_member_id"
|
||||
add_index "member_roles", ["role_id"], :name => "index_member_roles_on_role_id"
|
||||
|
||||
create_table "members", :force => true do |t|
|
||||
t.integer "user_id", :default => 0, :null => false
|
||||
t.integer "project_id", :default => 0, :null => false
|
||||
t.datetime "created_on"
|
||||
t.boolean "mail_notification", :default => false, :null => false
|
||||
end
|
||||
|
||||
add_index "members", ["project_id"], :name => "index_members_on_project_id"
|
||||
add_index "members", ["user_id", "project_id"], :name => "index_members_on_user_id_and_project_id", :unique => true
|
||||
add_index "members", ["user_id"], :name => "index_members_on_user_id"
|
||||
|
||||
create_table "memos", :force => true do |t|
|
||||
t.integer "forum_id", :null => false
|
||||
t.integer "parent_id"
|
||||
t.string "subject", :null => false
|
||||
t.text "content", :null => false
|
||||
t.integer "author_id", :null => false
|
||||
t.integer "replies_count", :default => 0
|
||||
t.integer "last_reply_id"
|
||||
t.boolean "lock", :default => false
|
||||
t.boolean "sticky", :default => false
|
||||
t.datetime "created_at", :null => false
|
||||
t.datetime "updated_at", :null => false
|
||||
t.integer "viewed_count", :default => 0
|
||||
end
|
||||
|
||||
create_table "messages", :force => true do |t|
|
||||
t.integer "board_id", :null => false
|
||||
t.integer "parent_id"
|
||||
t.string "subject", :default => "", :null => false
|
||||
t.text "content"
|
||||
t.integer "author_id"
|
||||
t.integer "replies_count", :default => 0, :null => false
|
||||
t.integer "last_reply_id"
|
||||
t.datetime "created_on", :null => false
|
||||
t.datetime "updated_on", :null => false
|
||||
t.boolean "locked", :default => false
|
||||
t.integer "sticky", :default => 0
|
||||
end
|
||||
|
||||
add_index "messages", ["author_id"], :name => "index_messages_on_author_id"
|
||||
add_index "messages", ["board_id"], :name => "messages_board_id"
|
||||
add_index "messages", ["created_on"], :name => "index_messages_on_created_on"
|
||||
add_index "messages", ["last_reply_id"], :name => "index_messages_on_last_reply_id"
|
||||
add_index "messages", ["parent_id"], :name => "messages_parent_id"
|
||||
|
||||
create_table "news", :force => true do |t|
|
||||
t.integer "project_id"
|
||||
t.string "title", :limit => 60, :default => "", :null => false
|
||||
t.string "summary", :default => ""
|
||||
t.text "description"
|
||||
t.integer "author_id", :default => 0, :null => false
|
||||
t.datetime "created_on"
|
||||
t.integer "comments_count", :default => 0, :null => false
|
||||
end
|
||||
|
||||
add_index "news", ["author_id"], :name => "index_news_on_author_id"
|
||||
add_index "news", ["created_on"], :name => "index_news_on_created_on"
|
||||
add_index "news", ["project_id"], :name => "news_project_id"
|
||||
|
||||
create_table "open_id_authentication_associations", :force => true do |t|
|
||||
t.integer "issued"
|
||||
t.integer "lifetime"
|
||||
t.string "handle"
|
||||
t.string "assoc_type"
|
||||
t.binary "server_url"
|
||||
t.binary "secret"
|
||||
end
|
||||
|
||||
create_table "open_id_authentication_nonces", :force => true do |t|
|
||||
t.integer "timestamp", :null => false
|
||||
t.string "server_url"
|
||||
t.string "salt", :null => false
|
||||
end
|
||||
|
||||
create_table "praise_tread_caches", :force => true do |t|
|
||||
t.integer "object_id", :null => false
|
||||
t.string "object_type"
|
||||
t.integer "praise_num"
|
||||
t.integer "tread_num"
|
||||
t.datetime "created_at", :null => false
|
||||
t.datetime "updated_at", :null => false
|
||||
end
|
||||
|
||||
create_table "praise_treads", :force => true do |t|
|
||||
t.integer "user_id", :null => false
|
||||
t.integer "praise_tread_object_id"
|
||||
t.string "praise_tread_object_type"
|
||||
t.integer "praise_or_tread"
|
||||
t.datetime "created_at", :null => false
|
||||
t.datetime "updated_at", :null => false
|
||||
end
|
||||
|
||||
create_table "project_infos", :force => true do |t|
|
||||
t.integer "project_id"
|
||||
t.integer "user_id"
|
||||
t.datetime "created_at", :null => false
|
||||
t.datetime "updated_at", :null => false
|
||||
end
|
||||
|
||||
create_table "project_statuses", :force => true do |t|
|
||||
t.integer "changesets_count"
|
||||
t.integer "watchers_count"
|
||||
t.integer "project_id"
|
||||
t.integer "project_type"
|
||||
t.float "grade", :default => 0.0
|
||||
t.integer "course_ac_para", :default => 0
|
||||
end
|
||||
|
||||
add_index "project_statuses", ["grade"], :name => "index_project_statuses_on_grade"
|
||||
|
||||
create_table "projects", :force => true do |t|
|
||||
t.string "name", :default => "", :null => false
|
||||
t.text "description"
|
||||
t.string "homepage", :default => ""
|
||||
t.boolean "is_public", :default => true, :null => false
|
||||
t.integer "parent_id"
|
||||
t.datetime "created_on"
|
||||
t.datetime "updated_on"
|
||||
t.string "identifier"
|
||||
t.integer "status", :default => 1, :null => false
|
||||
t.integer "lft"
|
||||
t.integer "rgt"
|
||||
t.boolean "inherit_members", :default => false, :null => false
|
||||
t.integer "project_type"
|
||||
t.boolean "hidden_repo", :default => false, :null => false
|
||||
end
|
||||
|
||||
add_index "projects", ["lft"], :name => "index_projects_on_lft"
|
||||
add_index "projects", ["rgt"], :name => "index_projects_on_rgt"
|
||||
|
||||
create_table "projects_trackers", :id => false, :force => true do |t|
|
||||
t.integer "project_id", :default => 0, :null => false
|
||||
t.integer "tracker_id", :default => 0, :null => false
|
||||
end
|
||||
|
||||
add_index "projects_trackers", ["project_id", "tracker_id"], :name => "projects_trackers_unique", :unique => true
|
||||
add_index "projects_trackers", ["project_id"], :name => "projects_trackers_project_id"
|
||||
|
||||
create_table "queries", :force => true do |t|
|
||||
t.integer "project_id"
|
||||
t.string "name", :default => "", :null => false
|
||||
t.text "filters"
|
||||
t.integer "user_id", :default => 0, :null => false
|
||||
t.boolean "is_public", :default => false, :null => false
|
||||
t.text "column_names"
|
||||
t.text "sort_criteria"
|
||||
t.string "group_by"
|
||||
t.string "type"
|
||||
end
|
||||
|
||||
add_index "queries", ["project_id"], :name => "index_queries_on_project_id"
|
||||
add_index "queries", ["user_id"], :name => "index_queries_on_user_id"
|
||||
|
||||
create_table "repositories", :force => true do |t|
|
||||
t.integer "project_id", :default => 0, :null => false
|
||||
t.string "url", :default => "", :null => false
|
||||
t.string "login", :limit => 60, :default => ""
|
||||
t.string "password", :default => ""
|
||||
t.string "root_url", :default => ""
|
||||
t.string "type"
|
||||
t.string "path_encoding", :limit => 64
|
||||
t.string "log_encoding", :limit => 64
|
||||
t.text "extra_info"
|
||||
t.string "identifier"
|
||||
t.boolean "is_default", :default => false
|
||||
end
|
||||
|
||||
add_index "repositories", ["project_id"], :name => "index_repositories_on_project_id"
|
||||
|
||||
create_table "roles", :force => true do |t|
|
||||
t.string "name", :limit => 30, :default => "", :null => false
|
||||
t.integer "position", :default => 1
|
||||
t.boolean "assignable", :default => true
|
||||
t.integer "builtin", :default => 0, :null => false
|
||||
t.text "permissions"
|
||||
t.string "issues_visibility", :limit => 30, :default => "default", :null => false
|
||||
end
|
||||
|
||||
create_table "schools", :force => true do |t|
|
||||
t.string "name"
|
||||
t.string "province"
|
||||
t.datetime "created_at", :null => false
|
||||
t.datetime "updated_at", :null => false
|
||||
end
|
||||
|
||||
create_table "seems_rateable_cached_ratings", :force => true do |t|
|
||||
t.integer "cacheable_id", :limit => 8
|
||||
t.string "cacheable_type"
|
||||
t.float "avg", :null => false
|
||||
t.integer "cnt", :null => false
|
||||
t.string "dimension"
|
||||
t.datetime "created_at", :null => false
|
||||
t.datetime "updated_at", :null => false
|
||||
end
|
||||
|
||||
create_table "seems_rateable_rates", :force => true do |t|
|
||||
t.integer "rater_id", :limit => 8
|
||||
t.integer "rateable_id"
|
||||
t.string "rateable_type"
|
||||
t.float "stars", :null => false
|
||||
t.string "dimension"
|
||||
t.datetime "created_at", :null => false
|
||||
t.datetime "updated_at", :null => false
|
||||
end
|
||||
|
||||
create_table "settings", :force => true do |t|
|
||||
t.string "name", :default => "", :null => false
|
||||
t.text "value"
|
||||
t.datetime "updated_on"
|
||||
end
|
||||
|
||||
add_index "settings", ["name"], :name => "index_settings_on_name"
|
||||
|
||||
create_table "shares", :force => true do |t|
|
||||
t.date "created_on"
|
||||
t.string "url"
|
||||
t.string "title"
|
||||
t.integer "share_type"
|
||||
t.datetime "created_at", :null => false
|
||||
t.datetime "updated_at", :null => false
|
||||
t.integer "project_id"
|
||||
t.integer "user_id"
|
||||
t.string "description"
|
||||
end
|
||||
|
||||
create_table "softapplications", :force => true do |t|
|
||||
t.string "name"
|
||||
t.string "description"
|
||||
t.integer "app_type_id"
|
||||
t.string "app_type_name"
|
||||
t.string "android_min_version_available"
|
||||
t.integer "user_id"
|
||||
t.datetime "created_at", :null => false
|
||||
t.datetime "updated_at", :null => false
|
||||
t.integer "contest_id"
|
||||
t.integer "softapplication_id"
|
||||
t.integer "is_public"
|
||||
t.string "application_developers"
|
||||
end
|
||||
|
||||
create_table "students_for_courses", :force => true do |t|
|
||||
t.integer "student_id"
|
||||
t.integer "course_id"
|
||||
t.datetime "created_at", :null => false
|
||||
t.datetime "updated_at", :null => false
|
||||
end
|
||||
|
||||
create_table "taggings", :force => true do |t|
|
||||
t.integer "tag_id"
|
||||
t.integer "taggable_id"
|
||||
t.string "taggable_type"
|
||||
t.integer "tagger_id"
|
||||
t.string "tagger_type"
|
||||
t.string "context", :limit => 128
|
||||
t.datetime "created_at"
|
||||
end
|
||||
|
||||
add_index "taggings", ["tag_id"], :name => "index_taggings_on_tag_id"
|
||||
add_index "taggings", ["taggable_id", "taggable_type", "context"], :name => "index_taggings_on_taggable_id_and_taggable_type_and_context"
|
||||
|
||||
create_table "tags", :force => true do |t|
|
||||
t.string "name"
|
||||
end
|
||||
|
||||
create_table "teachers", :force => true do |t|
|
||||
t.string "tea_name"
|
||||
t.string "location"
|
||||
t.integer "couurse_time"
|
||||
t.integer "course_code"
|
||||
t.datetime "created_at", :null => false
|
||||
t.datetime "updated_at", :null => false
|
||||
t.string "extra"
|
||||
end
|
||||
|
||||
create_table "time_entries", :force => true do |t|
|
||||
t.integer "project_id", :null => false
|
||||
t.integer "user_id", :null => false
|
||||
t.integer "issue_id"
|
||||
t.float "hours", :null => false
|
||||
t.string "comments"
|
||||
t.integer "activity_id", :null => false
|
||||
t.date "spent_on", :null => false
|
||||
t.integer "tyear", :null => false
|
||||
t.integer "tmonth", :null => false
|
||||
t.integer "tweek", :null => false
|
||||
t.datetime "created_on", :null => false
|
||||
t.datetime "updated_on", :null => false
|
||||
end
|
||||
|
||||
add_index "time_entries", ["activity_id"], :name => "index_time_entries_on_activity_id"
|
||||
add_index "time_entries", ["created_on"], :name => "index_time_entries_on_created_on"
|
||||
add_index "time_entries", ["issue_id"], :name => "time_entries_issue_id"
|
||||
add_index "time_entries", ["project_id"], :name => "time_entries_project_id"
|
||||
add_index "time_entries", ["user_id"], :name => "index_time_entries_on_user_id"
|
||||
|
||||
create_table "tokens", :force => true do |t|
|
||||
t.integer "user_id", :default => 0, :null => false
|
||||
t.string "action", :limit => 30, :default => "", :null => false
|
||||
t.string "value", :limit => 40, :default => "", :null => false
|
||||
t.datetime "created_on", :null => false
|
||||
end
|
||||
|
||||
add_index "tokens", ["user_id"], :name => "index_tokens_on_user_id"
|
||||
add_index "tokens", ["value"], :name => "tokens_value", :unique => true
|
||||
|
||||
create_table "trackers", :force => true do |t|
|
||||
t.string "name", :limit => 30, :default => "", :null => false
|
||||
t.boolean "is_in_chlog", :default => false, :null => false
|
||||
t.integer "position", :default => 1
|
||||
t.boolean "is_in_roadmap", :default => true, :null => false
|
||||
t.integer "fields_bits", :default => 0
|
||||
end
|
||||
|
||||
create_table "user_extensions", :force => true do |t|
|
||||
t.integer "user_id", :null => false
|
||||
t.date "birthday"
|
||||
t.string "brief_introduction"
|
||||
t.integer "gender"
|
||||
t.string "location"
|
||||
t.string "occupation"
|
||||
t.integer "work_experience"
|
||||
t.integer "zip_code"
|
||||
t.datetime "created_at", :null => false
|
||||
t.datetime "updated_at", :null => false
|
||||
t.string "technical_title"
|
||||
t.integer "identity"
|
||||
t.string "student_id"
|
||||
t.string "teacher_realname"
|
||||
t.string "student_realname"
|
||||
t.string "location_city"
|
||||
t.integer "school_id"
|
||||
end
|
||||
|
||||
create_table "user_grades", :force => true do |t|
|
||||
t.integer "user_id", :null => false
|
||||
t.integer "project_id", :null => false
|
||||
t.float "grade", :default => 0.0
|
||||
t.datetime "created_at", :null => false
|
||||
t.datetime "updated_at", :null => false
|
||||
end
|
||||
|
||||
add_index "user_grades", ["grade"], :name => "index_user_grades_on_grade"
|
||||
add_index "user_grades", ["project_id"], :name => "index_user_grades_on_project_id"
|
||||
add_index "user_grades", ["user_id"], :name => "index_user_grades_on_user_id"
|
||||
|
||||
create_table "user_preferences", :force => true do |t|
|
||||
t.integer "user_id", :default => 0, :null => false
|
||||
t.text "others"
|
||||
t.boolean "hide_mail", :default => false
|
||||
t.string "time_zone"
|
||||
end
|
||||
|
||||
add_index "user_preferences", ["user_id"], :name => "index_user_preferences_on_user_id"
|
||||
|
||||
create_table "user_statuses", :force => true do |t|
|
||||
t.integer "changesets_count"
|
||||
t.integer "watchers_count"
|
||||
t.integer "user_id"
|
||||
t.datetime "created_at", :null => false
|
||||
t.datetime "updated_at", :null => false
|
||||
t.float "grade", :default => 0.0
|
||||
end
|
||||
|
||||
add_index "user_statuses", ["changesets_count"], :name => "index_user_statuses_on_changesets_count"
|
||||
add_index "user_statuses", ["grade"], :name => "index_user_statuses_on_grade"
|
||||
add_index "user_statuses", ["watchers_count"], :name => "index_user_statuses_on_watchers_count"
|
||||
|
||||
create_table "users", :force => true do |t|
|
||||
t.string "login", :default => "", :null => false
|
||||
t.string "hashed_password", :limit => 40, :default => "", :null => false
|
||||
t.string "firstname", :limit => 30, :default => "", :null => false
|
||||
t.string "lastname", :default => "", :null => false
|
||||
t.string "mail", :limit => 60, :default => "", :null => false
|
||||
t.boolean "admin", :default => false, :null => false
|
||||
t.integer "status", :default => 1, :null => false
|
||||
t.datetime "last_login_on"
|
||||
t.string "language", :limit => 5, :default => ""
|
||||
t.integer "auth_source_id"
|
||||
t.datetime "created_on"
|
||||
t.datetime "updated_on"
|
||||
t.string "type"
|
||||
t.string "identity_url"
|
||||
t.string "mail_notification", :default => "", :null => false
|
||||
t.string "salt", :limit => 64
|
||||
end
|
||||
|
||||
add_index "users", ["auth_source_id"], :name => "index_users_on_auth_source_id"
|
||||
add_index "users", ["id", "type"], :name => "index_users_on_id_and_type"
|
||||
add_index "users", ["type"], :name => "index_users_on_type"
|
||||
|
||||
create_table "versions", :force => true do |t|
|
||||
t.integer "project_id", :default => 0, :null => false
|
||||
t.string "name", :default => "", :null => false
|
||||
t.string "description", :default => ""
|
||||
t.date "effective_date"
|
||||
t.datetime "created_on"
|
||||
t.datetime "updated_on"
|
||||
t.string "wiki_page_title"
|
||||
t.string "status", :default => "open"
|
||||
t.string "sharing", :default => "none", :null => false
|
||||
end
|
||||
|
||||
add_index "versions", ["project_id"], :name => "versions_project_id"
|
||||
add_index "versions", ["sharing"], :name => "index_versions_on_sharing"
|
||||
|
||||
create_table "watchers", :force => true do |t|
|
||||
t.string "watchable_type", :default => "", :null => false
|
||||
t.integer "watchable_id", :default => 0, :null => false
|
||||
t.integer "user_id"
|
||||
end
|
||||
|
||||
add_index "watchers", ["user_id", "watchable_type"], :name => "watchers_user_id_type"
|
||||
add_index "watchers", ["user_id"], :name => "index_watchers_on_user_id"
|
||||
add_index "watchers", ["watchable_id", "watchable_type"], :name => "index_watchers_on_watchable_id_and_watchable_type"
|
||||
|
||||
create_table "wiki_content_versions", :force => true do |t|
|
||||
t.integer "wiki_content_id", :null => false
|
||||
t.integer "page_id", :null => false
|
||||
t.integer "author_id"
|
||||
t.binary "data", :limit => 2147483647
|
||||
t.string "compression", :limit => 6, :default => ""
|
||||
t.string "comments", :default => ""
|
||||
t.datetime "updated_on", :null => false
|
||||
t.integer "version", :null => false
|
||||
end
|
||||
|
||||
add_index "wiki_content_versions", ["updated_on"], :name => "index_wiki_content_versions_on_updated_on"
|
||||
add_index "wiki_content_versions", ["wiki_content_id"], :name => "wiki_content_versions_wcid"
|
||||
|
||||
create_table "wiki_contents", :force => true do |t|
|
||||
t.integer "page_id", :null => false
|
||||
t.integer "author_id"
|
||||
t.text "text", :limit => 2147483647
|
||||
t.string "comments", :default => ""
|
||||
t.datetime "updated_on", :null => false
|
||||
t.integer "version", :null => false
|
||||
end
|
||||
|
||||
add_index "wiki_contents", ["author_id"], :name => "index_wiki_contents_on_author_id"
|
||||
add_index "wiki_contents", ["page_id"], :name => "wiki_contents_page_id"
|
||||
|
||||
create_table "wiki_pages", :force => true do |t|
|
||||
t.integer "wiki_id", :null => false
|
||||
t.string "title", :null => false
|
||||
t.datetime "created_on", :null => false
|
||||
t.boolean "protected", :default => false, :null => false
|
||||
t.integer "parent_id"
|
||||
end
|
||||
|
||||
add_index "wiki_pages", ["parent_id"], :name => "index_wiki_pages_on_parent_id"
|
||||
add_index "wiki_pages", ["wiki_id", "title"], :name => "wiki_pages_wiki_id_title"
|
||||
add_index "wiki_pages", ["wiki_id"], :name => "index_wiki_pages_on_wiki_id"
|
||||
|
||||
create_table "wiki_redirects", :force => true do |t|
|
||||
t.integer "wiki_id", :null => false
|
||||
t.string "title"
|
||||
t.string "redirects_to"
|
||||
t.datetime "created_on", :null => false
|
||||
end
|
||||
|
||||
add_index "wiki_redirects", ["wiki_id", "title"], :name => "wiki_redirects_wiki_id_title"
|
||||
add_index "wiki_redirects", ["wiki_id"], :name => "index_wiki_redirects_on_wiki_id"
|
||||
|
||||
create_table "wikis", :force => true do |t|
|
||||
t.integer "project_id", :null => false
|
||||
t.string "start_page", :null => false
|
||||
t.integer "status", :default => 1, :null => false
|
||||
end
|
||||
|
||||
add_index "wikis", ["project_id"], :name => "wikis_project_id"
|
||||
|
||||
create_table "workflows", :force => true do |t|
|
||||
t.integer "tracker_id", :default => 0, :null => false
|
||||
t.integer "old_status_id", :default => 0, :null => false
|
||||
t.integer "new_status_id", :default => 0, :null => false
|
||||
t.integer "role_id", :default => 0, :null => false
|
||||
t.boolean "assignee", :default => false, :null => false
|
||||
t.boolean "author", :default => false, :null => false
|
||||
t.string "type", :limit => 30
|
||||
t.string "field_name", :limit => 30
|
||||
t.string "rule", :limit => 30
|
||||
end
|
||||
|
||||
add_index "workflows", ["new_status_id"], :name => "index_workflows_on_new_status_id"
|
||||
add_index "workflows", ["old_status_id"], :name => "index_workflows_on_old_status_id"
|
||||
add_index "workflows", ["role_id", "tracker_id", "old_status_id"], :name => "wkfs_role_tracker_old_status"
|
||||
add_index "workflows", ["role_id"], :name => "index_workflows_on_role_id"
|
||||
|
||||
end
|
|
@ -1,17 +0,0 @@
|
|||
require_dependency "seems_rateable/application_controller"
|
||||
|
||||
module SeemsRateable
|
||||
class RatingsController < ::ApplicationController
|
||||
def create
|
||||
raise NoCurrentUserInstanceError unless current_user
|
||||
|
||||
obj = params[:kls].classify.constantize.find(params[:idBox])
|
||||
begin
|
||||
obj.rate(params[:rate].to_i, current_user.id, params[:dimension])
|
||||
render :json => true
|
||||
rescue Errors::AlreadyRatedError
|
||||
render :json => {:error => true}
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
Binary file not shown.
After Width: | Height: | Size: 572 B |
Binary file not shown.
After Width: | Height: | Size: 427 B |
Binary file not shown.
After Width: | Height: | Size: 1018 B |
|
@ -12,13 +12,13 @@
|
|||
$.fn.jRating = function(op) {
|
||||
var defaults = {
|
||||
/** String vars **/
|
||||
bigStarsPath : '<%= image_path "seems_rateable/stars.png" %>', // path of the icon stars.png
|
||||
smallStarsPath : '<%= image_path "seems_rateable/small.png" %>', // path of the icon small.png
|
||||
path : '<%= SeemsRateable::Engine.routes.url_helpers.ratings_path %>',
|
||||
bigStarsPath : '/images/seems_rateable/stars.png', // path of the icon stars.png
|
||||
smallStarsPath : '/images/seems_rateable/small.png', // path of the icon small.png
|
||||
path : '/ratings',
|
||||
type : 'big', // can be set to 'small' or 'big'
|
||||
|
||||
/** Boolean vars **/
|
||||
step:false, // if true, mouseover binded star by star,
|
||||
step: true, // if true, mouseover binded star by star,
|
||||
isDisabled:false,
|
||||
showRateInfo: false,
|
||||
canRateAgain : false,
|
|
@ -11,7 +11,7 @@ $(document).ready(function(){
|
|||
//showRateInfo:false, //Rate info panel, set true to display
|
||||
//rateInfosX : 45, //In pixel - Absolute left position of the information box during mousemove.
|
||||
//rateInfosY : 5, //In pixel - Absolute top position of the information box during mousemove.
|
||||
path : '<%= SeemsRateable::Engine.routes.url_helpers.ratings_path %>',
|
||||
path : '/ratings',
|
||||
onSuccess : function(element, rate){
|
||||
//something like ->
|
||||
//alert('success');
|
|
@ -5,6 +5,9 @@
|
|||
-moz-box-sizing: border-box;
|
||||
-box-sizing: border-box;
|
||||
}
|
||||
.div_inline{
|
||||
display: inline-block;
|
||||
}
|
||||
/*文字不换行*/
|
||||
.text_nowrap{
|
||||
word-break:keep-all;
|
||||
|
@ -65,7 +68,54 @@
|
|||
* {
|
||||
font-family: Helvetica, Tahoma, Arial, "Microsoft YaHei", "微软雅黑", SimSun, "宋体", STXihei, "华文细黑", Heiti, "黑体", sans-serif;
|
||||
}
|
||||
/* 模态窗口
|
||||
*******************************************************************************/
|
||||
/** jRating CSS **/
|
||||
|
||||
/**Div containing the color of the stars */
|
||||
|
||||
|
||||
.jRatingAverage {
|
||||
background-color:#f62929;
|
||||
position:relative;
|
||||
top:0;
|
||||
left:0;
|
||||
z-index:2;
|
||||
height:100%;
|
||||
}
|
||||
.jRatingColor {
|
||||
background-color:#FFD400; /* bgcolor of the stars*/
|
||||
position:relative;
|
||||
top:0;
|
||||
left:0;
|
||||
z-index:2;
|
||||
height:100%;
|
||||
}
|
||||
|
||||
/** Div containing the stars **/
|
||||
.jStar {
|
||||
position:relative;
|
||||
left:0;
|
||||
z-index:3;
|
||||
}
|
||||
|
||||
/** P containing the rate informations **/
|
||||
p.jRatingInfos {
|
||||
position: absolute;
|
||||
z-index:9999;
|
||||
background: transparent url('bg_jRatingInfos.png') no-repeat;
|
||||
color: #CACACA;
|
||||
display: none;
|
||||
width: 91px;
|
||||
height: 29px;
|
||||
font-size:16px;
|
||||
text-align:center;
|
||||
padding-top:5px;
|
||||
}
|
||||
p.jRatingInfos span.maxRate {
|
||||
color:#c9c9c9;
|
||||
font-size:14px;
|
||||
}
|
||||
/* 模态窗口
|
||||
*******************************************************************************/
|
||||
|
||||
|
|
Loading…
Reference in New Issue