erge branch 'develop'

Conflicts:
	.gitignore
exceptionHandle
xianbo 11 years ago
commit cd278cb795

2
.gitignore vendored

@ -11,4 +11,4 @@
/Gemfile /Gemfile
/Gemfile.lock /Gemfile.lock
/db/schema.rb /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/>

@ -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>

@ -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

@ -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

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="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#13;&#10;&lt;launchConfiguration local=&quot;true&quot; path=&quot;Firefox - Internal Server&quot;/&gt;&#13;&#10;"/>
<launch memento="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#13;&#10;&lt;launchConfiguration local=&quot;true&quot; path=&quot;Internet Explorer - Internal Server&quot;/&gt;&#13;&#10;"/>
</mruHistory>
<favorites/>
</launchGroup>
<launchGroup id="org.eclipse.debug.ui.launchGroup.run">
<mruHistory>
<launch memento="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#13;&#10;&lt;launchConfiguration local=&quot;true&quot; path=&quot;Firefox - Internal Server&quot;/&gt;&#13;&#10;"/>
<launch memento="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#13;&#10;&lt;launchConfiguration local=&quot;true&quot; path=&quot;Internet Explorer - Internal Server&quot;/&gt;&#13;&#10;"/>
</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

@ -6,6 +6,7 @@ unless RUBY_PLATFORM =~ /w32/
gem 'rubyzip' gem 'rubyzip'
gem 'zip-zip' gem 'zip-zip'
end end
gem 'seems_rateable'
gem "rails", "3.2.13" gem "rails", "3.2.13"
gem "jquery-rails", "~> 2.0.2" gem "jquery-rails", "~> 2.0.2"
gem "i18n", "~> 0.6.0" gem "i18n", "~> 0.6.0"

@ -21,7 +21,7 @@ class AttachmentsController < ApplicationController
before_filter :delete_authorize, :only => :destroy before_filter :delete_authorize, :only => :destroy
before_filter :authorize_global, :only => :upload 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 accept_api_auth :show, :download, :upload
@ -207,4 +207,9 @@ private
end end
content_type.to_s content_type.to_s
end end
def login_without_softapplication
referer = request.headers['Referer']
require_login unless referer =~ /softapplication/
end
end end

@ -137,6 +137,20 @@ class ContestsController < ApplicationController
end end
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 def show_contest_project
contests = Contest.where('parent_id = ?', @contest.id) contests = Contest.where('parent_id = ?', @contest.id)
@projects = [] @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

@ -17,18 +17,18 @@ class SoftapplicationsController < ApplicationController
@jours = @softapplication.journals_for_messages.order('created_on DESC') @jours = @softapplication.journals_for_messages.order('created_on DESC')
@image_results = [] @image_results = []
@softapplication.attachments.each do |f| @softapplication.attachments.each do |f|
f.image? ? @image_results << f : @image_results f.image? ? @image_results << f : @image_results
end end
@app_items = [] @app_items = []
@softapplication.attachments.each do |f| @softapplication.attachments.each do |f|
f.pack? ? @app_items << f : @app_items f.pack? ? @app_items << f : @app_items
end end
@limit = 10 @limit = 10
@feedback_count = @jours.count @feedback_count = @jours.count
@feedback_pages = Paginator.new @feedback_count, @limit, params['page'] @feedback_pages = Paginator.new @feedback_count, @limit, params['page']
@offset ||= @feedback_pages.offset @offset ||= @feedback_pages.offset
@jour = @jours[@offset, @limit] @jour = @jours[@offset, @limit]
@state = false @state = false
respond_to do |format| respond_to do |format|
format.html # show.html.erb format.html # show.html.erb
format.json { render json: @softapplication } format.json { render json: @softapplication }
@ -83,11 +83,10 @@ class SoftapplicationsController < ApplicationController
end end
end end
end end
def add_attach def add_attach
@softapplication = Softapplication.find(params[:id]) @softapplication = Softapplication.find(params[:id])
@softapplication.save_attachments(params[:attachments]) @softapplication.save_attachments(params[:attachments])
end end
# DELETE /softapplications/1 # DELETE /softapplications/1
@ -101,15 +100,16 @@ class SoftapplicationsController < ApplicationController
format.json { head :no_content } format.json { head :no_content }
end end
end end
#应用评价涉及到的方法 #应用评价涉及到的方法
def new_message def new_message
@jour = JournalsForMessage.find(params[:journal_id]) if params[:journal_id] @jour = JournalsForMessage.find(params[:journal_id]) if params[:journal_id]
if @jour if @jour
user = @jour.user user = @jour.user
text = @jour.notes text = @jour.notes
else else
user = @softapplication.user user = @softapplication.user
text = @softapplication.description text = @softapplication.description
end end
text = text.to_s.strip.gsub(%r{<pre>((.|\s)*?)</pre>}m, '[...]') text = text.to_s.strip.gsub(%r{<pre>((.|\s)*?)</pre>}m, '[...]')
@content = "> #{ll(User.current.language, :text_user_wrote, user)}\n> " @content = "> #{ll(User.current.language, :text_user_wrote, user)}\n> "
@ -117,25 +117,24 @@ class SoftapplicationsController < ApplicationController
@id = user.id @id = user.id
rescue ActiveRecord::RecordNotFound rescue ActiveRecord::RecordNotFound
render_404 render_404
end end
#新建评价 #新建评价
def create_message def create_message
if params[:softapplication_message][:message].size>0 if params[:reference_content]
if params[:reference_content]
message = params[:softapplication_message][:message] + "\n" + params[:reference_content] message = params[:softapplication_message][:message] + "\n" + params[:reference_content]
else else
message = params[:softapplication_message][:message] message = params[:softapplication_message][:message]
end
refer_user_id = params[:softapplication_message][:reference_user_id].to_i
@softapplication = Softapplication.find(params[:id])
@softapplication.add_jour(User.current, message, refer_user_id)
end end
refer_user_id = params[:softapplication_message][:reference_user_id].to_i
@softapplication = Softapplication.find(params[:id])
@softapplication.add_jour(User.current, message, refer_user_id)
@user = @softapplication.user @user = @softapplication.user
@jours = @softapplication.journals_for_messages.where('m_parent_id IS NULL').order('created_on DESC') @jours = @softapplication.journals_for_messages.where('m_parent_id IS NULL').order('created_on DESC')
@limit = 10 @limit = 10
@feedback_count = @jours.count @feedback_count = @jours.count
@feedback_pages = Paginator.new @feedback_count, @limit, params['page'] @feedback_pages = Paginator.new @feedback_count, @limit, params['page']
@ -167,6 +166,7 @@ class SoftapplicationsController < ApplicationController
format.js format.js
end end
end end
# #
def more def more
@jour = @softapplication.journals_for_messages @jour = @softapplication.journals_for_messages
@ -179,6 +179,7 @@ class SoftapplicationsController < ApplicationController
#format.api { render_api_ok } #format.api { render_api_ok }
end end
end end
# #
def back def back
@jour = @softapplication.journals_for_messages @jour = @softapplication.journals_for_messages

@ -1608,4 +1608,13 @@ module ApplicationHelper
User.current User.current
end 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 end

@ -1,6 +1,8 @@
class Softapplication < ActiveRecord::Base class Softapplication < ActiveRecord::Base
attr_accessible :android_min_version_available, :app_type_id, :app_type_name, :description, :name, :user_id, :contest_id, :application_developers attr_accessible :android_min_version_available, :app_type_id, :app_type_name, :description, :name, :user_id, :contest_id, :application_developers
acts_as_attachable acts_as_attachable
seems_rateable :allow_update => true, :dimensions => :quality
has_many :journals_for_messages, :as => :jour, :dependent => :destroy has_many :journals_for_messages, :as => :jour, :dependent => :destroy
has_many :contesting_softapplications, :dependent => :destroy has_many :contesting_softapplications, :dependent => :destroy

@ -127,6 +127,7 @@ class User < Principal
scope :by_join_date, order("created_on DESC") scope :by_join_date, order("created_on DESC")
############################# added by liuping 关注 ############################# added by liuping 关注
acts_as_watchable acts_as_watchable
seems_rateable_rater
has_one :user_extensions,:dependent => :destroy has_one :user_extensions,:dependent => :destroy
## end ## end

@ -10,6 +10,7 @@
<%= stylesheet_link_tag 'jquery/jquery-ui-1.9.2', 'application', 'nyan', :media => 'all' %> <%= stylesheet_link_tag 'jquery/jquery-ui-1.9.2', 'application', 'nyan', :media => 'all' %>
<%= stylesheet_link_tag 'rtl', :media => 'all' if l(:direction) == 'rtl' %> <%= stylesheet_link_tag 'rtl', :media => 'all' if l(:direction) == 'rtl' %>
<%= javascript_heads %> <%= javascript_heads %>
<%= javascript_include_tag 'seems_rateable/jRating', 'seems_rateable/rateable'%>
<%= heads_for_theme %> <%= heads_for_theme %>
<%= call_hook :view_layouts_base_html_head %> <%= call_hook :view_layouts_base_html_head %>
<!-- page specific tags --> <!-- page specific tags -->

@ -99,11 +99,14 @@
</td> </td>
<td class="font_index"> <td class="font_index">
<%=link_to "#{@contest.contesting_softapplications.count}", :controller => 'contests', :action => 'show_softapplication' %> <%=link_to "#{@contest.contesting_softapplications.count}", :controller => 'contests', :action => 'show_softapplication' %>
</td> </td>
</tr>
<tr class="font_aram"> <tr class="font_aram">
<td align="center" width="70px"> <%= l(:label_participate) %></td> <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_project) %></td>
<td align="center" width="70px"> <%= l(:label_contest_application) %></td> <td align="center" width="70px"> <%= l(:label_contest_application) %></td>
</tr> </tr>
</table> </table>
<div class="user_underline"></div> <div class="user_underline"></div>
@ -142,6 +145,13 @@
<div class="created_on_project"> <div class="created_on_project">
<strong style="color: #068d9c"><%= l(:label_create_time) %></strong><%= format_time(@contest.created_on) %> <strong style="color: #068d9c"><%= l(:label_create_time) %></strong><%= format_time(@contest.created_on) %>
</div> </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>
<div class="user_underline"></div> <div class="user_underline"></div>
</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> <td>开发人员:<%= @softapplication.application_developers %></td>
</tr> </tr>
<tr>
<td>平均评分: <%= rating_for @softapplication, :static => true, dimension: :quality, class: 'rateable div_inline' %></td>
<td></td>
</tr>
</table> </table>
@ -64,7 +68,7 @@
<div style="height: 50px"> <div style="height: 50px">
<div style="font-size: 15px"><strong>软件评论:</strong></div> <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> </div>
<!--提示登录后对应用进行评价--> <!--提示登录后对应用进行评价-->

@ -196,32 +196,37 @@
<div id="J_Slide" class="d-p-index-box d-p-index-hotproject"> <div id="J_Slide" class="d-p-index-box d-p-index-hotproject">
<h3 style="margin-left: 5px; color: #e8770d;"><strong>最新参赛应用</strong></h3> <h3 style="margin-left: 5px; color: #e8770d;"><strong>最新参赛应用</strong></h3>
<div class="d-p-projectlist-box"> <div class="d-p-projectlist-box">
<div class="d-p-projectlist"> <% if Softapplication.count > 0%>
<% find_all_hot_softapplication.map do |softapplication| break if(softapplication == find_all_hot_softapplication[5]) %> <div class="d-p-projectlist">
<% find_all_hot_softapplication.map do |softapplication| break if(softapplication == find_all_hot_softapplication[5]) %>
<li style="position:relative;height:6em;" class='<%= cycle("odd", "even") %>'>
<div class="avatar-4"; style="float: left; margin-top: 7px">
<%= image_tag('/images/009.gif')%>
</div>
<div style="float: left; margin-left: -8px; margin-top: 5px; width: 380px;">
<%= link_to(softapplication.name, softapplication_path(softapplication.id), :class => "d-g-blue d-p-project-name", :title => "#{softapplication.name}", :target => "_blank") %>
</div>
<div class='text_nowrap' style="float: left;margin:5px; margin-left: -8px; width: 380px;"> <li style="position:relative;height:6em;" class='<%= cycle("odd", "even") %>'>
<span class='font_lighter' title =<%=softapplication.description.to_s%>><%=softapplication.description.truncate(50, omission: '...')%></span> <div class="avatar-4"; style="float: left; margin-top: 7px">
</div><br /> <%= image_tag('/images/009.gif')%>
</div>
<div style="padding-left: 36px; clear: left;">
<span class="font_lighter">发布时间:<%=format_time softapplication.created_at %></span> <div style="float: left; margin-left: -8px; margin-top: 5px; width: 380px;">
</div> <%= link_to(softapplication.name, softapplication_path(softapplication.id), :class => "d-g-blue d-p-project-name", :title => "#{softapplication.name}", :target => "_blank") %>
</div>
<div class='text_nowrap' style="float: left;margin:5px; margin-left: -8px; width: 380px;">
<span class='font_lighter' title =<%=softapplication.description.to_s%>><%=softapplication.description.truncate(50, omission: '...')%></span>
</div><br />
<div style="padding-left: 36px; clear: left;">
<span class="font_lighter">发布时间:<%=format_time softapplication.created_at %></span>
</div>
</li>
<% end; reset_cycle %>
</li> </div>
<% end; reset_cycle %> <% else %>
<p class="font_lighter"><%= l(:label_no_ftapplication) %></p>
</div> <% end %>
</div> </div>
</div> </div>

@ -170,6 +170,7 @@ zh:
notice_locking_conflict: 数据已被另一位用户更新 notice_locking_conflict: 数据已被另一位用户更新
notice_not_authorized: 对不起,您无权访问此页面。 notice_not_authorized: 对不起,您无权访问此页面。
notice_not_contest_setting_authorized: 对不起,您无权配置此竞赛。 notice_not_contest_setting_authorized: 对不起,您无权配置此竞赛。
notice_not_contest_delete_authorized: 对不起,您无权删除此竞赛。
notice_not_authorized_archived_project: 要访问的项目已经归档。 notice_not_authorized_archived_project: 要访问的项目已经归档。
notice_email_sent: "邮件已发送至 %{value}" notice_email_sent: "邮件已发送至 %{value}"
notice_email_error: "发送邮件时发生错误 (%{value})" notice_email_error: "发送邮件时发生错误 (%{value})"
@ -1344,6 +1345,7 @@ zh:
label_new_call: 发布需求 label_new_call: 发布需求
label_newtype_contest: 发布竞赛 label_newtype_contest: 发布竞赛
label_user_information: "与我相关" label_user_information: "与我相关"
label_bid_succeed: "需求发布成功" label_bid_succeed: "需求发布成功"
label_wrong_budget: 错误的金额格式 label_wrong_budget: 错误的金额格式
@ -1824,6 +1826,7 @@ zh:
label_system_platform: 系统平台 label_system_platform: 系统平台
label_nextstep: 下一步 label_nextstep: 下一步
label_participate: 参赛者 label_participate: 参赛者
label_setting: 配置
label_contest_project: 参赛项目 label_contest_project: 参赛项目
label_contest_softapplication: 参赛应用 label_contest_softapplication: 参赛应用
label_contest_response: 用户反馈 label_contest_response: 用户反馈
@ -1851,6 +1854,7 @@ zh:
label_tags_contest_description: 竞赛描述 label_tags_contest_description: 竞赛描述
label_release_add_contest_succeed: 该应用发布并添加成功. label_release_add_contest_succeed: 该应用发布并添加成功.
label_add_contest_succeed_fail: 添加失败,该应用已参赛. label_add_contest_succeed_fail: 添加失败,该应用已参赛.
label_no_ftapplication: 暂无应用

@ -16,6 +16,7 @@
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
RedmineApp::Application.routes.draw do RedmineApp::Application.routes.draw do
resources :ratings, :only => :create
namespace :zipdown do namespace :zipdown do
match 'assort' match 'assort'
end end
@ -506,18 +507,6 @@ RedmineApp::Application.routes.draw do
match 'upload_avatar', :to => 'avatar#upload', :via => :post match 'upload_avatar', :to => 'avatar#upload', :via => :post
# Endof Tao's code # Endof Tao's code
get 'robots.txt', :to => 'welcome#robots' 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 ##############测试留言功能 fq
post 'words/new', :to => 'words#new' post 'words/new', :to => 'words#new'
@ -607,5 +596,16 @@ RedmineApp::Application.routes.draw do
match 'words/add_brief_introdution', :controller => 'words', :action => 'add_brief_introdution' 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))' get ':controller(/:action(/:id))'
end 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) { $.fn.jRating = function(op) {
var defaults = { var defaults = {
/** String vars **/ /** String vars **/
bigStarsPath : '<%= image_path "seems_rateable/stars.png" %>', // path of the icon stars.png bigStarsPath : '/images/seems_rateable/stars.png', // path of the icon stars.png
smallStarsPath : '<%= image_path "seems_rateable/small.png" %>', // path of the icon small.png smallStarsPath : '/images/seems_rateable/small.png', // path of the icon small.png
path : '<%= SeemsRateable::Engine.routes.url_helpers.ratings_path %>', path : '/ratings',
type : 'big', // can be set to 'small' or 'big' type : 'big', // can be set to 'small' or 'big'
/** Boolean vars **/ /** Boolean vars **/
step:false, // if true, mouseover binded star by star, step: true, // if true, mouseover binded star by star,
isDisabled:false, isDisabled:false,
showRateInfo: false, showRateInfo: false,
canRateAgain : false, canRateAgain : false,

@ -11,7 +11,7 @@ $(document).ready(function(){
//showRateInfo:false, //Rate info panel, set true to display //showRateInfo:false, //Rate info panel, set true to display
//rateInfosX : 45, //In pixel - Absolute left position of the information box during mousemove. //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. //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){ onSuccess : function(element, rate){
//something like -> //something like ->
//alert('success'); //alert('success');
@ -21,5 +21,5 @@ $(document).ready(function(){
$('<span class="text-error"><small style="display:inline-block;">You have already rated!</small></span>').insertAfter(element) $('<span class="text-error"><small style="display:inline-block;">You have already rated!</small></span>').insertAfter(element)
} }
}); });
}); });

@ -5,6 +5,9 @@
-moz-box-sizing: border-box; -moz-box-sizing: border-box;
-box-sizing: border-box; -box-sizing: border-box;
} }
.div_inline{
display: inline-block;
}
/*文字不换行*/ /*文字不换行*/
.text_nowrap{ .text_nowrap{
word-break:keep-all; word-break:keep-all;
@ -65,7 +68,54 @@
* { * {
font-family: Helvetica, Tahoma, Arial, "Microsoft YaHei", "微软雅黑", SimSun, "宋体", STXihei, "华文细黑", Heiti, "黑体", sans-serif; 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…
Cancel
Save