Merge branch 'szzh' of http://xianbo_trustie2@repository.trustie.net/xianbo/trustie2.git into szzh
This commit is contained in:
commit
f1495686e9
|
@ -209,3 +209,60 @@ java.lang.UnsupportedOperationException: Not supported yet.
|
||||||
at com.aptana.index.core.IndexRequestJob.indexFileStores(IndexRequestJob.java:205)
|
at com.aptana.index.core.IndexRequestJob.indexFileStores(IndexRequestJob.java:205)
|
||||||
at com.aptana.index.core.IndexContainerJob.run(IndexContainerJob.java:114)
|
at com.aptana.index.core.IndexContainerJob.run(IndexContainerJob.java:114)
|
||||||
at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54)
|
at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54)
|
||||||
|
!SESSION 2015-01-17 11:30:30.655 -----------------------------------------------
|
||||||
|
eclipse.buildId=unknown
|
||||||
|
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.core.resources 4 567 2015-01-17 11:30:37.624
|
||||||
|
!MESSAGE Workspace restored, but some problems occurred.
|
||||||
|
!SUBENTRY 1 org.eclipse.core.resources 4 567 2015-01-17 11:30:37.624
|
||||||
|
!MESSAGE Could not read metadata for 'demo'.
|
||||||
|
!STACK 1
|
||||||
|
org.eclipse.core.internal.resources.ResourceException: The project description file (.project) for 'demo' is missing. This file contains important information about the project. The project will not function properly until this file is restored.
|
||||||
|
at org.eclipse.core.internal.localstore.FileSystemResourceManager.read(FileSystemResourceManager.java:851)
|
||||||
|
at org.eclipse.core.internal.resources.SaveManager.restoreMetaInfo(SaveManager.java:874)
|
||||||
|
at org.eclipse.core.internal.resources.SaveManager.restoreMetaInfo(SaveManager.java:854)
|
||||||
|
at org.eclipse.core.internal.resources.SaveManager.restore(SaveManager.java:703)
|
||||||
|
at org.eclipse.core.internal.resources.SaveManager.startup(SaveManager.java:1528)
|
||||||
|
at org.eclipse.core.internal.resources.Workspace.startup(Workspace.java:2503)
|
||||||
|
at org.eclipse.core.internal.resources.Workspace.open(Workspace.java:2251)
|
||||||
|
at org.eclipse.core.resources.ResourcesPlugin.start(ResourcesPlugin.java:439)
|
||||||
|
at org.eclipse.osgi.framework.internal.core.BundleContextImpl$1.run(BundleContextImpl.java:711)
|
||||||
|
at java.security.AccessController.doPrivileged(Native Method)
|
||||||
|
at org.eclipse.osgi.framework.internal.core.BundleContextImpl.startActivator(BundleContextImpl.java:702)
|
||||||
|
at org.eclipse.osgi.framework.internal.core.BundleContextImpl.start(BundleContextImpl.java:683)
|
||||||
|
at org.eclipse.osgi.framework.internal.core.BundleHost.startWorker(BundleHost.java:381)
|
||||||
|
at org.eclipse.osgi.framework.internal.core.AbstractBundle.start(AbstractBundle.java:299)
|
||||||
|
at org.eclipse.osgi.framework.util.SecureAction.start(SecureAction.java:440)
|
||||||
|
at org.eclipse.osgi.internal.loader.BundleLoader.setLazyTrigger(BundleLoader.java:268)
|
||||||
|
at org.eclipse.core.runtime.internal.adaptor.EclipseLazyStarter.postFindLocalClass(EclipseLazyStarter.java:107)
|
||||||
|
at org.eclipse.osgi.baseadaptor.loader.ClasspathManager.findLocalClass(ClasspathManager.java:463)
|
||||||
|
at org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.findLocalClass(DefaultClassLoader.java:216)
|
||||||
|
at org.eclipse.osgi.internal.loader.BundleLoader.findLocalClass(BundleLoader.java:400)
|
||||||
|
at org.eclipse.osgi.internal.loader.SingleSourcePackage.loadClass(SingleSourcePackage.java:35)
|
||||||
|
at org.eclipse.osgi.internal.loader.BundleLoader.findClassInternal(BundleLoader.java:473)
|
||||||
|
at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:429)
|
||||||
|
at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:417)
|
||||||
|
at org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.loadClass(DefaultClassLoader.java:107)
|
||||||
|
at java.lang.ClassLoader.loadClass(Unknown Source)
|
||||||
|
at com.aptana.rcp.IDEApplication.start(IDEApplication.java:125)
|
||||||
|
at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196)
|
||||||
|
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:110)
|
||||||
|
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:79)
|
||||||
|
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:344)
|
||||||
|
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:179)
|
||||||
|
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
|
||||||
|
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
|
||||||
|
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
|
||||||
|
at java.lang.reflect.Method.invoke(Unknown Source)
|
||||||
|
at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:622)
|
||||||
|
at org.eclipse.equinox.launcher.Main.basicRun(Main.java:577)
|
||||||
|
at org.eclipse.equinox.launcher.Main.run(Main.java:1410)
|
||||||
|
!SUBENTRY 2 org.eclipse.core.resources 4 567 2015-01-17 11:30:37.626
|
||||||
|
!MESSAGE The project description file (.project) for 'demo' is missing. This file contains important information about the project. The project will not function properly until this file is restored.
|
||||||
|
|
||||||
|
!ENTRY org.eclipse.core.jobs 2 2 2015-01-17 11:33:58.913
|
||||||
|
!MESSAGE Job found still running after platform shutdown. Jobs should be canceled by the plugin that scheduled them during shutdown: com.aptana.usage.internal.DefaultAnalyticsEventHandler$1
|
||||||
|
|
|
@ -1,2 +0,0 @@
|
||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<connections/>
|
|
|
@ -1,7 +0,0 @@
|
||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<connection>
|
|
||||||
<connection>
|
|
||||||
<name>Default</name>
|
|
||||||
<source>file:/C:/Users/nudt</source>
|
|
||||||
</connection>
|
|
||||||
</connection>
|
|
|
@ -1,2 +0,0 @@
|
||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<sites/>
|
|
|
@ -1,6 +0,0 @@
|
||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<servers>
|
|
||||||
<server host="0.0.0.0" port="3000" project="E:/code/demo" type="org.radrails.rails.railsServer">
|
|
||||||
<name>demo</name>
|
|
||||||
</server>
|
|
||||||
</servers>
|
|
Binary file not shown.
Binary file not shown.
|
@ -1,3 +0,0 @@
|
||||||
#safe table
|
|
||||||
#Tue Mar 11 17:27:27 CST 2014
|
|
||||||
connections=connections.9
|
|
|
@ -1,4 +0,0 @@
|
||||||
#safe table
|
|
||||||
#Tue Mar 11 17:27:27 CST 2014
|
|
||||||
defaultConnection=defaultConnection.9
|
|
||||||
sites=sites.9
|
|
|
@ -1,3 +0,0 @@
|
||||||
#safe table
|
|
||||||
#Tue Mar 11 17:27:27 CST 2014
|
|
||||||
webservers=webservers.8
|
|
Binary file not shown.
|
@ -1,2 +1,2 @@
|
||||||
activeProject=demo
|
activeProject=trustie
|
||||||
eclipse.preferences.version=1
|
eclipse.preferences.version=1
|
||||||
|
|
|
@ -1,2 +1,2 @@
|
||||||
eclipse.preferences.version=1
|
eclipse.preferences.version=1
|
||||||
last_known_studio_version=3.4.0.1358388620
|
last_known_studio_version=3.4.2.1368863613
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
ACTIVE_HYPERLINK_COLOR=84,143,160
|
ACTIVE_HYPERLINK_COLOR=84,143,160
|
||||||
ACTIVE_THEME=Aptana Studio
|
ACTIVE_THEME=Aptana Studio
|
||||||
HYPERLINK_COLOR=84,143,160
|
HYPERLINK_COLOR=84,143,160
|
||||||
THEME_CHANGED=1394527579080
|
THEME_CHANGED=1421465443240
|
||||||
eclipse.preferences.version=1
|
eclipse.preferences.version=1
|
||||||
hyperlinkColor=84,143,160
|
hyperlinkColor=84,143,160
|
||||||
hyperlinkColor.SystemDefault=false
|
hyperlinkColor.SystemDefault=false
|
||||||
|
|
|
@ -2,6 +2,6 @@ PROBLEMS_FILTERS_MIGRATE=true
|
||||||
SHOW_COOLBAR=true
|
SHOW_COOLBAR=true
|
||||||
SHOW_PERSPECTIVEBAR=true
|
SHOW_PERSPECTIVEBAR=true
|
||||||
eclipse.preferences.version=1
|
eclipse.preferences.version=1
|
||||||
platformState=1394526372425
|
platformState=1420528131671
|
||||||
quickStart=false
|
quickStart=false
|
||||||
tipsAndTricks=true
|
tipsAndTricks=true
|
||||||
|
|
|
@ -3,7 +3,7 @@
|
||||||
<booleanAttribute key="advancedRunEnabled" value="false"/>
|
<booleanAttribute key="advancedRunEnabled" value="false"/>
|
||||||
<booleanAttribute key="appendProjectName" value="true"/>
|
<booleanAttribute key="appendProjectName" value="true"/>
|
||||||
<stringAttribute key="browserCmdLine" value=""/>
|
<stringAttribute key="browserCmdLine" value=""/>
|
||||||
<stringAttribute key="browserExecutable" value=""/>
|
<stringAttribute key="browserExecutable" value="C:\Program Files (x86)\Mozilla Firefox\firefox.exe"/>
|
||||||
<stringAttribute key="browserNature" value="Firefox"/>
|
<stringAttribute key="browserNature" value="Firefox"/>
|
||||||
<stringAttribute key="externalBaseUrl" value=""/>
|
<stringAttribute key="externalBaseUrl" value=""/>
|
||||||
<stringAttribute key="httpGetData" value=""/>
|
<stringAttribute key="httpGetData" value=""/>
|
||||||
|
|
|
@ -1,14 +1,14 @@
|
||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<section name="Workbench">
|
<section name="Workbench">
|
||||||
<list key="installedFeatures">
|
<list key="installedFeatures">
|
||||||
<item value="com.aptana.feature.rcp:3.4.0.201304151603-7o7nFDBFFeFt3XrpXNucaz0uIWkY"/>
|
<item value="com.aptana.feature.rcp:3.4.2.201308081805-7o7nFDFFFcLz-2l0rkQ0UYz0u_Wm"/>
|
||||||
<item value="com.aptana.feature.studio:3.4.0.201304151542-7E7G-7MEMVKUHgFcLgFbkKoz0t-7"/>
|
<item value="com.aptana.feature.studio:3.4.2.201308081736-7W7I57boG98RAi489ctbvKi7VXbq"/>
|
||||||
<item value="com.aptana.feature:3.4.0.1365900908-BW7R8FBu-Ylk0DFYW1DC44EXt-dS"/>
|
<item value="com.aptana.feature:3.4.2.1376005939-B87T88BWOnwWRYdZO1DC44EXtPxS"/>
|
||||||
<item value="com.aptana.php.feature:3.3.0.201304151524-7J7E-7IOW_UXOSJY"/>
|
<item value="com.aptana.php.feature:3.4.2.201308081728-7J7E-7IOYXVXXUJS"/>
|
||||||
<item value="com.aptana.pydev.feature:2.7.0.2013032300-7g9I-8Jez0cfdJcee"/>
|
<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.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.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.eclipse.rcp:3.7.2.v20120120-1424-9DB5FmnFq5JCf1UA38R-kz0S0272"/>
|
||||||
<item value="org.radrails.rails:3.3.0.201304151525-7e-7Q7f5GRKMDENR"/>
|
<item value="org.radrails.rails:3.4.2.201308081726-7n-7Z7oKfjkqlemv"/>
|
||||||
</list>
|
</list>
|
||||||
</section>
|
</section>
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<workbench progressCount="30" version="2.0">
|
<workbench progressCount="26" version="2.0">
|
||||||
<workbenchAdvisor/>
|
<workbenchAdvisor/>
|
||||||
<window height="940" maximized="true" width="1200" x="13" y="31">
|
<window height="940" maximized="true" width="1200" x="13" y="31">
|
||||||
<fastViewData fastViewLocation="1024"/>
|
<fastViewData fastViewLocation="1024"/>
|
||||||
|
@ -8,14 +8,14 @@
|
||||||
</perspectiveBar>
|
</perspectiveBar>
|
||||||
<coolbarLayout>
|
<coolbarLayout>
|
||||||
<coolItem id="group.file" itemType="typeGroupMarker"/>
|
<coolItem id="group.file" itemType="typeGroupMarker"/>
|
||||||
<coolItem id="org.eclipse.ui.workbench.file" itemType="typeToolBarContribution" x="126" y="22"/>
|
<coolItem id="org.eclipse.ui.workbench.file" itemType="typeToolBarContribution" x="124" y="22"/>
|
||||||
<coolItem id="additions" itemType="typeGroupMarker"/>
|
<coolItem id="additions" itemType="typeGroupMarker"/>
|
||||||
<coolItem id="org.eclipse.debug.ui.launchActionSet" itemType="typeToolBarContribution" x="145" y="22"/>
|
<coolItem id="org.eclipse.debug.ui.launchActionSet" itemType="typeToolBarContribution" x="141" y="22"/>
|
||||||
<coolItem id="org.eclipse.search.searchActionSet" itemType="typeToolBarContribution" x="88" y="22"/>
|
<coolItem id="org.eclipse.search.searchActionSet" itemType="typeToolBarContribution" x="86" y="22"/>
|
||||||
<coolItem id="com.aptana.ui.globalActionSet" itemType="typeToolBarContribution" x="172" y="22"/>
|
<coolItem id="com.aptana.ui.globalActionSet" itemType="typeToolBarContribution" x="170" y="22"/>
|
||||||
<coolItem id="org.eclipse.ui.edit.text.actionSet.presentation" itemType="typeToolBarContribution" x="84" 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="group.nav" itemType="typeGroupMarker"/>
|
||||||
<coolItem id="org.eclipse.ui.workbench.navigate" itemType="typeToolBarContribution" x="99" y="22"/>
|
<coolItem id="org.eclipse.ui.workbench.navigate" itemType="typeToolBarContribution" x="95" y="22"/>
|
||||||
<coolItem id="group.editor" itemType="typeGroupMarker"/>
|
<coolItem id="group.editor" itemType="typeGroupMarker"/>
|
||||||
<coolItem id="group.help" itemType="typeGroupMarker"/>
|
<coolItem id="group.help" itemType="typeGroupMarker"/>
|
||||||
<coolItem id="org.eclipse.ui.workbench.help" itemType="typeToolBarContribution" x="-1" y="-1"/>
|
<coolItem id="org.eclipse.ui.workbench.help" itemType="typeToolBarContribution" x="-1" y="-1"/>
|
||||||
|
@ -37,7 +37,7 @@
|
||||||
<view id="com.aptana.terminal.views.terminal:demo" partName="demo">
|
<view id="com.aptana.terminal.views.terminal:demo" partName="demo">
|
||||||
<viewState>
|
<viewState>
|
||||||
<title>demo</title>
|
<title>demo</title>
|
||||||
<workingDirectory>E:\code\demo</workingDirectory>
|
<workingDirectory>C:\Users\zh</workingDirectory>
|
||||||
</viewState>
|
</viewState>
|
||||||
</view>
|
</view>
|
||||||
<view id="com.aptana.snippets.ui.views.SnippetsView" partName="Snippets">
|
<view id="com.aptana.snippets.ui.views.SnippetsView" partName="Snippets">
|
||||||
|
@ -66,10 +66,10 @@
|
||||||
<viewState/>
|
<viewState/>
|
||||||
</view>
|
</view>
|
||||||
<view id="com.aptana.explorer.view" partName="App Explorer">
|
<view id="com.aptana.explorer.view" partName="App Explorer">
|
||||||
<viewState CommonNavigator.LINKING_ENABLED="0" GitChangedFilesFilterEnabled="" activeProject="demo">
|
<viewState CommonNavigator.LINKING_ENABLED="0" GitChangedFilesFilterEnabled="" activeProject="trustie">
|
||||||
<project name="demo">
|
<project name="trustie">
|
||||||
<selection>
|
<selection>
|
||||||
<element path="/demo/app"/>
|
<element path="/trustie"/>
|
||||||
</selection>
|
</selection>
|
||||||
</project>
|
</project>
|
||||||
</viewState>
|
</viewState>
|
||||||
|
@ -78,7 +78,7 @@
|
||||||
<viewState/>
|
<viewState/>
|
||||||
</view>
|
</view>
|
||||||
</views>
|
</views>
|
||||||
<perspectives activePart="com.aptana.explorer.view" activePerspective="com.aptana.ui.WebPerspective">
|
<perspectives activePart="org.eclipse.ui.navigator.ProjectExplorer" activePerspective="com.aptana.ui.WebPerspective">
|
||||||
<perspective editorAreaTrimState="2" editorAreaVisible="1" fixed="0" version="0.016">
|
<perspective editorAreaTrimState="2" editorAreaVisible="1" fixed="0" version="0.016">
|
||||||
<descriptor class="com.aptana.ui.internal.WebPerspectiveFactory" id="com.aptana.ui.WebPerspective" label="Web"/>
|
<descriptor class="com.aptana.ui.internal.WebPerspectiveFactory" id="com.aptana.ui.WebPerspective" label="Web"/>
|
||||||
<alwaysOnActionSet id="com.aptana.browser.actionSet"/>
|
<alwaysOnActionSet id="com.aptana.browser.actionSet"/>
|
||||||
|
@ -124,14 +124,19 @@
|
||||||
<view id="com.aptana.terminal.views.terminal"/>
|
<view id="com.aptana.terminal.views.terminal"/>
|
||||||
<view id="org.eclipse.ui.views.ProblemView"/>
|
<view id="org.eclipse.ui.views.ProblemView"/>
|
||||||
<view id="com.aptana.terminal.views.terminal:demo"/>
|
<view id="com.aptana.terminal.views.terminal:demo"/>
|
||||||
<view id="org.eclipse.ui.views.ContentOutline"/>
|
<fastViewBars>
|
||||||
<view id="com.aptana.samples.ui.SamplesView"/>
|
<fastViewBar fastViewLocation="16384" id="org.eclipse.ui.internal.ViewStack@d90254" orientation="256" selectedTabId="com.aptana.snippets.ui.views.SnippetsView" style="0">
|
||||||
<view id="com.aptana.snippets.ui.views.SnippetsView"/>
|
<fastViews>
|
||||||
<fastViewBars/>
|
<view id="org.eclipse.ui.views.ContentOutline" ratio="0.3"/>
|
||||||
|
<view id="com.aptana.samples.ui.SamplesView" ratio="0.3"/>
|
||||||
|
<view id="com.aptana.snippets.ui.views.SnippetsView" ratio="0.3"/>
|
||||||
|
</fastViews>
|
||||||
|
</fastViewBar>
|
||||||
|
</fastViewBars>
|
||||||
<layout>
|
<layout>
|
||||||
<mainWindow>
|
<mainWindow>
|
||||||
<info folder="true" part="left">
|
<info folder="true" part="left">
|
||||||
<folder activePageID="com.aptana.explorer.view" appearance="2" expanded="2">
|
<folder activePageID="org.eclipse.ui.navigator.ProjectExplorer" appearance="2" expanded="2">
|
||||||
<page content="com.aptana.explorer.view" label="App Explorer"/>
|
<page content="com.aptana.explorer.view" label="App Explorer"/>
|
||||||
<page content="org.eclipse.ui.navigator.ProjectExplorer" label="Project Explorer"/>
|
<page content="org.eclipse.ui.navigator.ProjectExplorer" label="Project Explorer"/>
|
||||||
<page content="com.aptana.ui.io.remoteview" label="LabelNotFound"/>
|
<page content="com.aptana.ui.io.remoteview" label="LabelNotFound"/>
|
||||||
|
@ -166,15 +171,11 @@
|
||||||
</folder>
|
</folder>
|
||||||
</info>
|
</info>
|
||||||
<info folder="true" part="org.eclipse.ui.internal.ViewStack@d90254" ratio="0.75" ratioLeft="627" ratioRight="209" relationship="4" relative="left">
|
<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">
|
<folder appearance="2" expanded="0">
|
||||||
<page content="org.eclipse.ui.views.ContentOutline" label="Outline"/>
|
<page content="org.eclipse.ui.views.ContentOutline" label="LabelNotFound"/>
|
||||||
<page content="com.aptana.samples.ui.SamplesView" label="Samples"/>
|
<page content="com.aptana.samples.ui.SamplesView" label="LabelNotFound"/>
|
||||||
<page content="com.aptana.snippets.ui.views.SnippetsView" label="Snippets"/>
|
<page content="com.aptana.snippets.ui.views.SnippetsView" label="LabelNotFound"/>
|
||||||
<presentation id="org.eclipse.ui.presentations.WorkbenchPresentationFactory">
|
<presentation id="org.eclipse.ui.presentations.WorkbenchPresentationFactory"/>
|
||||||
<part id="0"/>
|
|
||||||
<part id="1"/>
|
|
||||||
<part id="2"/>
|
|
||||||
</presentation>
|
|
||||||
</folder>
|
</folder>
|
||||||
</info>
|
</info>
|
||||||
</mainWindow>
|
</mainWindow>
|
||||||
|
@ -188,6 +189,9 @@
|
||||||
<workbenchWindowAdvisor/>
|
<workbenchWindowAdvisor/>
|
||||||
<actionBarAdvisor/>
|
<actionBarAdvisor/>
|
||||||
<trimLayout>
|
<trimLayout>
|
||||||
|
<trimArea IMemento.internal.id="16384">
|
||||||
|
<trimItem IMemento.internal.id="org.eclipse.ui.internal.ViewStack@d90254"/>
|
||||||
|
</trimArea>
|
||||||
<trimArea IMemento.internal.id="128">
|
<trimArea IMemento.internal.id="128">
|
||||||
<trimItem IMemento.internal.id="org.eclipse.ui.internal.WorkbenchWindow.topBar"/>
|
<trimItem IMemento.internal.id="org.eclipse.ui.internal.WorkbenchWindow.topBar"/>
|
||||||
</trimArea>
|
</trimArea>
|
||||||
|
|
|
@ -3,7 +3,24 @@ class AppliedProjectController < ApplicationController
|
||||||
#申请加入项目
|
#申请加入项目
|
||||||
def applied_join_project
|
def applied_join_project
|
||||||
@user_id = params[:user_id]
|
@user_id = params[:user_id]
|
||||||
@project = Project.find(params[:project_id])
|
@project = Project.find_by_id(params[:project_id])
|
||||||
|
if params[:project_join]
|
||||||
|
if @project
|
||||||
|
@applieds = AppliedProject.where("user_id = ? and project_id = ?", params[:user_id],params[:project_id])
|
||||||
|
if @applieds.count == 0
|
||||||
|
appliedproject = AppliedProject.create(:user_id => params[:user_id], :project_id => params[:project_id])
|
||||||
|
Mailer.applied_project(appliedproject).deliver
|
||||||
|
end
|
||||||
|
@status = 1
|
||||||
|
else
|
||||||
|
@status = 0
|
||||||
|
end
|
||||||
|
respond_to do |format|
|
||||||
|
format.js
|
||||||
|
end
|
||||||
|
return
|
||||||
|
end
|
||||||
|
|
||||||
@applieds = AppliedProject.where("user_id = ? and project_id = ?", params[:user_id],params[:project_id])
|
@applieds = AppliedProject.where("user_id = ? and project_id = ?", params[:user_id],params[:project_id])
|
||||||
if @applieds.count == 0
|
if @applieds.count == 0
|
||||||
appliedproject = AppliedProject.create(:user_id => params[:user_id], :project_id => params[:project_id])
|
appliedproject = AppliedProject.create(:user_id => params[:user_id], :project_id => params[:project_id])
|
||||||
|
|
|
@ -0,0 +1,7 @@
|
||||||
|
<% if @status == 0%>
|
||||||
|
alert("您申请的项目不存在");
|
||||||
|
<% elsif @status == 1%>
|
||||||
|
alert("申请成功");
|
||||||
|
<%else%>
|
||||||
|
alert("申请失败");
|
||||||
|
<%end%>
|
|
@ -69,7 +69,7 @@
|
||||||
else{
|
else{
|
||||||
$('#ajax-modal').html('<%= escape_javascript(render :partial => 'poll_submit', locals: { :poll => @poll,:is_remote => false}) %>');
|
$('#ajax-modal').html('<%= escape_javascript(render :partial => 'poll_submit', locals: { :poll => @poll,:is_remote => false}) %>');
|
||||||
showModal('ajax-modal', '310px');
|
showModal('ajax-modal', '310px');
|
||||||
$('#ajax-modal').css('height','115px');
|
$('#ajax-modal').css('height','120px');
|
||||||
$('#ajax-modal').siblings().remove();
|
$('#ajax-modal').siblings().remove();
|
||||||
$('#ajax-modal').before("<span style='float: right;cursor:pointer;'>" +
|
$('#ajax-modal').before("<span style='float: right;cursor:pointer;'>" +
|
||||||
"<a href='#' onclick='clickCanel();'><img src='/images/bid/close.png' width='26px' height='26px' /></a></span>");
|
"<a href='#' onclick='clickCanel();'><img src='/images/bid/close.png' width='26px' height='26px' /></a></span>");
|
||||||
|
|
|
@ -15,7 +15,7 @@
|
||||||
"</div>" +
|
"</div>" +
|
||||||
"</div>");
|
"</div>");
|
||||||
showModal('ajax-modal', '310px');
|
showModal('ajax-modal', '310px');
|
||||||
$('#ajax-modal').css('height','115px');
|
$('#ajax-modal').css('height','120px');
|
||||||
$('#ajax-modal').siblings().remove();
|
$('#ajax-modal').siblings().remove();
|
||||||
$('#ajax-modal').before("<span style='float: right;cursor:pointer;'>" +
|
$('#ajax-modal').before("<span style='float: right;cursor:pointer;'>" +
|
||||||
"<a onclick='clickCanel();'><img src='/images/bid/close.png' width='26px' height='26px' /></a></span>");
|
"<a onclick='clickCanel();'><img src='/images/bid/close.png' width='26px' height='26px' /></a></span>");
|
||||||
|
@ -47,7 +47,7 @@
|
||||||
"</div>" +
|
"</div>" +
|
||||||
"</div>");
|
"</div>");
|
||||||
showModal('ajax-modal', '310px');
|
showModal('ajax-modal', '310px');
|
||||||
$('#ajax-modal').css('height','115px');
|
$('#ajax-modal').css('height','120px');
|
||||||
$('#ajax-modal').siblings().remove();
|
$('#ajax-modal').siblings().remove();
|
||||||
$('#ajax-modal').before("<span style='float: right;cursor:pointer;'>" +
|
$('#ajax-modal').before("<span style='float: right;cursor:pointer;'>" +
|
||||||
"<a href='#' onclick='clickCanel();'><img src='/images/bid/close.png' width='26px' height='26px' /></a></span>");
|
"<a href='#' onclick='clickCanel();'><img src='/images/bid/close.png' width='26px' height='26px' /></a></span>");
|
||||||
|
|
|
@ -1,4 +1,3 @@
|
||||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
|
||||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||||
<head>
|
<head>
|
||||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
||||||
|
@ -34,7 +33,7 @@
|
||||||
{
|
{
|
||||||
hideModal(obj);
|
hideModal(obj);
|
||||||
$("#new-watcher-form").submit();
|
$("#new-watcher-form").submit();
|
||||||
alert("申请成功");
|
// alert("申请成功");
|
||||||
}
|
}
|
||||||
|
|
||||||
function hidden_join_course_form()
|
function hidden_join_course_form()
|
||||||
|
@ -60,6 +59,7 @@
|
||||||
<ul>
|
<ul>
|
||||||
<li style="padding-top: 15px;">
|
<li style="padding-top: 15px;">
|
||||||
<span class="tips">项 目 ID:</span>
|
<span class="tips">项 目 ID:</span>
|
||||||
|
<input type="hidden" name="project_join" value="1">
|
||||||
<input type="hidden" name="user_id" value="<%= User.current.id%>">
|
<input type="hidden" name="user_id" value="<%= User.current.id%>">
|
||||||
<input class=" width190" name="project_id" id="project_id" type="text" value="" >
|
<input class=" width190" name="project_id" id="project_id" type="text" value="" >
|
||||||
<input type="text" style="display: none"/>
|
<input type="text" style="display: none"/>
|
||||||
|
|
|
@ -1,164 +1,164 @@
|
||||||
.overlay_nuncio img { border: none; }
|
.overlay_nuncio img { border: none; }
|
||||||
|
|
||||||
.overlay_nuncio {
|
.overlay_nuncio {
|
||||||
background-color: #666666;
|
background-color: #666666;
|
||||||
}
|
}
|
||||||
|
|
||||||
.nuncio_nw {
|
.nuncio_nw {
|
||||||
width: 12px;
|
width: 12px;
|
||||||
height: 28px;
|
height: 28px;
|
||||||
background: url(nuncio/top_left.png) no-repeat;
|
background: url(nuncio/top_left.png) no-repeat;
|
||||||
}
|
}
|
||||||
|
|
||||||
.nuncio_n {
|
.nuncio_n {
|
||||||
background: url(nuncio/top_mid.png) repeat-x;
|
background: url(nuncio/top_mid.png) repeat-x;
|
||||||
height: 28px;
|
height: 28px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.nuncio_ne {
|
.nuncio_ne {
|
||||||
width: 21px;
|
width: 21px;
|
||||||
height: 28px;
|
height: 28px;
|
||||||
background: url(nuncio/top_right.png) no-repeat;
|
background: url(nuncio/top_right.png) no-repeat;
|
||||||
}
|
}
|
||||||
|
|
||||||
.nuncio_e {
|
.nuncio_e {
|
||||||
width: 21px;
|
width: 21px;
|
||||||
background: url(nuncio/center_right.png) repeat-y top right;
|
background: url(nuncio/center_right.png) repeat-y top right;
|
||||||
}
|
}
|
||||||
|
|
||||||
.nuncio_w {
|
.nuncio_w {
|
||||||
width: 12px;
|
width: 12px;
|
||||||
background: url(nuncio/center_left.png) repeat-y top left;
|
background: url(nuncio/center_left.png) repeat-y top left;
|
||||||
}
|
}
|
||||||
|
|
||||||
.nuncio_sw {
|
.nuncio_sw {
|
||||||
width: 12px;
|
width: 12px;
|
||||||
height: 18px;
|
height: 18px;
|
||||||
background: url(nuncio/bottom_left.png) no-repeat;
|
background: url(nuncio/bottom_left.png) no-repeat;
|
||||||
}
|
}
|
||||||
|
|
||||||
.nuncio_s {
|
.nuncio_s {
|
||||||
background: url(nuncio/bottom_mid.png) repeat-x 0 0;
|
background: url(nuncio/bottom_mid.png) repeat-x 0 0;
|
||||||
height: 18px;
|
height: 18px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.nuncio_se, .nuncio_sizer {
|
.nuncio_se, .nuncio_sizer {
|
||||||
width: 21px;
|
width: 21px;
|
||||||
height: 18px;
|
height: 18px;
|
||||||
background: url(nuncio/bottom_right.png) no-repeat;
|
background: url(nuncio/bottom_right.png) no-repeat;
|
||||||
}
|
}
|
||||||
|
|
||||||
.nuncio_close {
|
.nuncio_close {
|
||||||
width: 14px;
|
width: 14px;
|
||||||
height: 14px;
|
height: 14px;
|
||||||
background: url(nuncio/close.png) no-repeat;
|
background: url(nuncio/close.png) no-repeat;
|
||||||
position:absolute;
|
position:absolute;
|
||||||
top:10px;
|
top:10px;
|
||||||
right:22px;
|
right:22px;
|
||||||
cursor:pointer;
|
cursor:pointer;
|
||||||
z-index:2000;
|
z-index:2000;
|
||||||
}
|
}
|
||||||
|
|
||||||
.nuncio_minimize {
|
.nuncio_minimize {
|
||||||
width: 14px;
|
width: 14px;
|
||||||
height: 15px;
|
height: 15px;
|
||||||
background: url(nuncio/minimize.png) no-repeat;
|
background: url(nuncio/minimize.png) no-repeat;
|
||||||
position:absolute;
|
position:absolute;
|
||||||
top:10px;
|
top:10px;
|
||||||
right:40px;
|
right:40px;
|
||||||
cursor:pointer;
|
cursor:pointer;
|
||||||
z-index:2000;
|
z-index:2000;
|
||||||
}
|
}
|
||||||
|
|
||||||
.nuncio_title {
|
.nuncio_title {
|
||||||
float:left;
|
float:left;
|
||||||
font-size:11px;
|
font-size:11px;
|
||||||
font-weight: bold;
|
font-weight: bold;
|
||||||
font-style: italic;
|
font-style: italic;
|
||||||
color: #fff;
|
color: #fff;
|
||||||
width: 100%
|
width: 100%
|
||||||
}
|
}
|
||||||
|
|
||||||
.nuncio_content {
|
.nuncio_content {
|
||||||
background: url(nuncio/overlay.png) repeat;
|
background: url(nuncio/overlay.png) repeat;
|
||||||
overflow:auto;
|
overflow:auto;
|
||||||
color: #ddd;
|
color: #ddd;
|
||||||
font-family: Tahoma, Arial, "sans-serif";
|
font-family: Tahoma, Arial, "sans-serif";
|
||||||
font-size: 10px;
|
font-size: 10px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.nuncio_sizer {
|
.nuncio_sizer {
|
||||||
cursor:se-resize;
|
cursor:se-resize;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
.top_draggable, .bottom_draggable {
|
.top_draggable, .bottom_draggable {
|
||||||
cursor:move
|
cursor:move
|
||||||
}
|
}
|
||||||
/* FOR IE */
|
/* FOR IE */
|
||||||
* html .nuncio_nw {
|
* html .nuncio_nw {
|
||||||
background-color: transparent;
|
background-color: transparent;
|
||||||
background-image: none;
|
background-image: none;
|
||||||
filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src="../themes/nuncio/top_left.png", sizingMethod="crop");
|
filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src="../themes/nuncio/top_left.png", sizingMethod="crop");
|
||||||
}
|
}
|
||||||
|
|
||||||
* html .nuncio_n {
|
* html .nuncio_n {
|
||||||
background-color: transparent;
|
background-color: transparent;
|
||||||
background-image: none;
|
background-image: none;
|
||||||
filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src="../themes/nuncio/top_mid.png", sizingMethod="scale");
|
filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src="../themes/nuncio/top_mid.png", sizingMethod="scale");
|
||||||
}
|
}
|
||||||
|
|
||||||
* html .nuncio_ne {
|
* html .nuncio_ne {
|
||||||
background-color: transparent;
|
background-color: transparent;
|
||||||
background-image: none;
|
background-image: none;
|
||||||
filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src="../themes/nuncio/top_right.png", sizingMethod="crop");
|
filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src="../themes/nuncio/top_right.png", sizingMethod="crop");
|
||||||
}
|
}
|
||||||
|
|
||||||
* html .nuncio_w {
|
* html .nuncio_w {
|
||||||
background-color: transparent;
|
background-color: transparent;
|
||||||
background-image: none;
|
background-image: none;
|
||||||
filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src="../themes/nuncio/center_left.png", sizingMethod="scale");
|
filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src="../themes/nuncio/center_left.png", sizingMethod="scale");
|
||||||
}
|
}
|
||||||
|
|
||||||
* html .nuncio_e {
|
* html .nuncio_e {
|
||||||
background-color: transparent;
|
background-color: transparent;
|
||||||
background-image: none;
|
background-image: none;
|
||||||
filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src="../themes/nuncio/center_right.png", sizingMethod="scale");
|
filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src="../themes/nuncio/center_right.png", sizingMethod="scale");
|
||||||
}
|
}
|
||||||
|
|
||||||
* html .nuncio_sw {
|
* html .nuncio_sw {
|
||||||
background-color: transparent;
|
background-color: transparent;
|
||||||
background-image: none;
|
background-image: none;
|
||||||
filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src="../themes/nuncio/bottom_left.png", sizingMethod="crop");
|
filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src="../themes/nuncio/bottom_left.png", sizingMethod="crop");
|
||||||
}
|
}
|
||||||
|
|
||||||
* html .nuncio_s {
|
* html .nuncio_s {
|
||||||
background-color: transparent;
|
background-color: transparent;
|
||||||
background-image: none;
|
background-image: none;
|
||||||
filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src="../themes/nuncio/bottom_mid.png", sizingMethod="scale");
|
filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src="../themes/nuncio/bottom_mid.png", sizingMethod="scale");
|
||||||
}
|
}
|
||||||
|
|
||||||
* html .nuncio_se {
|
* html .nuncio_se {
|
||||||
background-color: transparent;
|
background-color: transparent;
|
||||||
background-image: none;
|
background-image: none;
|
||||||
filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src="../themes/nuncio/bottom_right.png", sizingMethod="crop");
|
filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src="../themes/nuncio/bottom_right.png", sizingMethod="crop");
|
||||||
}
|
}
|
||||||
|
|
||||||
* html .nuncio_sizer {
|
* html .nuncio_sizer {
|
||||||
background-color: transparent;
|
background-color: transparent;
|
||||||
background-image: none;
|
background-image: none;
|
||||||
filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src="../themes/nuncio/bottom_right.png", sizingMethod="crop");
|
filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src="../themes/nuncio/bottom_right.png", sizingMethod="crop");
|
||||||
}
|
}
|
||||||
|
|
||||||
* html .nuncio_close {
|
* html .nuncio_close {
|
||||||
background-color: transparent;
|
background-color: transparent;
|
||||||
background-image: none;
|
background-image: none;
|
||||||
filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src="../themes/nuncio/close.png", sizingMethod="crop");
|
filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src="../themes/nuncio/close.png", sizingMethod="crop");
|
||||||
}
|
}
|
||||||
|
|
||||||
* html .nuncio_minimize {
|
* html .nuncio_minimize {
|
||||||
background-color: transparent;
|
background-color: transparent;
|
||||||
background-image: none;
|
background-image: none;
|
||||||
filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src="../themes/nuncio/minimize.png", sizingMethod="crop");
|
filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src="../themes/nuncio/minimize.png", sizingMethod="crop");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1,108 +1,108 @@
|
||||||
.overlay_spread {
|
.overlay_spread {
|
||||||
background-color: #85BBEF;
|
background-color: #85BBEF;
|
||||||
filter:alpha(opacity=60);
|
filter:alpha(opacity=60);
|
||||||
-moz-opacity: 0.6;
|
-moz-opacity: 0.6;
|
||||||
opacity: 0.6;
|
opacity: 0.6;
|
||||||
}
|
}
|
||||||
|
|
||||||
.spread_nw {
|
.spread_nw {
|
||||||
background: transparent url(spread/left-top.gif) no-repeat 0 0;
|
background: transparent url(spread/left-top.gif) no-repeat 0 0;
|
||||||
width:10px;
|
width:10px;
|
||||||
height:25px;
|
height:25px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.spread_n {
|
.spread_n {
|
||||||
background: transparent url(spread/top-middle.gif) repeat-x 0 0;
|
background: transparent url(spread/top-middle.gif) repeat-x 0 0;
|
||||||
height:25px;
|
height:25px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.spread_ne {
|
.spread_ne {
|
||||||
background: transparent url(spread/right-top.gif) no-repeat 0 0;
|
background: transparent url(spread/right-top.gif) no-repeat 0 0;
|
||||||
width:10px;
|
width:10px;
|
||||||
height:25px;
|
height:25px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.spread_w {
|
.spread_w {
|
||||||
background: transparent url(spread/frame-left.gif) repeat-y top left;
|
background: transparent url(spread/frame-left.gif) repeat-y top left;
|
||||||
width:7px;
|
width:7px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.spread_e {
|
.spread_e {
|
||||||
background: transparent url(spread/frame-right.gif) repeat-y top right;
|
background: transparent url(spread/frame-right.gif) repeat-y top right;
|
||||||
width:7px;
|
width:7px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.spread_sw {
|
.spread_sw {
|
||||||
background: transparent url(spread/bottom-left-c.gif) no-repeat 0 0;
|
background: transparent url(spread/bottom-left-c.gif) no-repeat 0 0;
|
||||||
width:7px;
|
width:7px;
|
||||||
height:7px;
|
height:7px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.spread_s {
|
.spread_s {
|
||||||
background: transparent url(spread/bottom-middle.gif) repeat-x 0 0;
|
background: transparent url(spread/bottom-middle.gif) repeat-x 0 0;
|
||||||
height:7px;
|
height:7px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.spread_se, .spread_sizer {
|
.spread_se, .spread_sizer {
|
||||||
background: transparent url(spread/bottom-right-c.gif) no-repeat 0 0;
|
background: transparent url(spread/bottom-right-c.gif) no-repeat 0 0;
|
||||||
width:7px;
|
width:7px;
|
||||||
height:7px;
|
height:7px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.spread_sizer {
|
.spread_sizer {
|
||||||
cursor:se-resize;
|
cursor:se-resize;
|
||||||
}
|
}
|
||||||
|
|
||||||
.spread_close {
|
.spread_close {
|
||||||
width: 23px;
|
width: 23px;
|
||||||
height: 23px;
|
height: 23px;
|
||||||
background: transparent url(spread/button-close-focus.gif) no-repeat 0 0;
|
background: transparent url(spread/button-close-focus.gif) no-repeat 0 0;
|
||||||
position:absolute;
|
position:absolute;
|
||||||
top:0px;
|
top:0px;
|
||||||
right:11px;
|
right:11px;
|
||||||
cursor:pointer;
|
cursor:pointer;
|
||||||
z-index:1000;
|
z-index:1000;
|
||||||
}
|
}
|
||||||
|
|
||||||
.spread_minimize {
|
.spread_minimize {
|
||||||
width: 23px;
|
width: 23px;
|
||||||
height: 23px;
|
height: 23px;
|
||||||
background: transparent url(spread/button-min-focus.gif) no-repeat 0 0;
|
background: transparent url(spread/button-min-focus.gif) no-repeat 0 0;
|
||||||
position:absolute;
|
position:absolute;
|
||||||
top:0px;
|
top:0px;
|
||||||
right:55px;
|
right:55px;
|
||||||
cursor:pointer;
|
cursor:pointer;
|
||||||
z-index:1000;
|
z-index:1000;
|
||||||
}
|
}
|
||||||
|
|
||||||
.spread_maximize {
|
.spread_maximize {
|
||||||
width: 23px;
|
width: 23px;
|
||||||
height: 23px;
|
height: 23px;
|
||||||
background: transparent url(spread/button-max-focus.gif) no-repeat 0 0;
|
background: transparent url(spread/button-max-focus.gif) no-repeat 0 0;
|
||||||
position:absolute;
|
position:absolute;
|
||||||
top:0px;
|
top:0px;
|
||||||
right:33px;
|
right:33px;
|
||||||
cursor:pointer;
|
cursor:pointer;
|
||||||
z-index:1000;
|
z-index:1000;
|
||||||
}
|
}
|
||||||
|
|
||||||
.spread_title {
|
.spread_title {
|
||||||
float:left;
|
float:left;
|
||||||
height:14px;
|
height:14px;
|
||||||
font-family: Tahoma, Arial, sans-serif;
|
font-family: Tahoma, Arial, sans-serif;
|
||||||
font-size:14px;
|
font-size:14px;
|
||||||
font-weight:bold;
|
font-weight:bold;
|
||||||
text-align:left;
|
text-align:left;
|
||||||
margin-top:2px;
|
margin-top:2px;
|
||||||
width:100%;
|
width:100%;
|
||||||
color:#E47211;
|
color:#E47211;
|
||||||
}
|
}
|
||||||
|
|
||||||
.spread_content {
|
.spread_content {
|
||||||
overflow:auto;
|
overflow:auto;
|
||||||
color: #222;
|
color: #222;
|
||||||
font-family: Tahoma, Arial, sans-serif;
|
font-family: Tahoma, Arial, sans-serif;
|
||||||
font-size: 10px;
|
font-size: 10px;
|
||||||
background:#A9EA00;
|
background:#A9EA00;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,10 @@
|
||||||
|
require 'faker'
|
||||||
|
|
||||||
|
FactoryGirl.define do
|
||||||
|
factory :user do
|
||||||
|
login "ExampleUser"
|
||||||
|
mail "user@example.com"
|
||||||
|
password "foobar"
|
||||||
|
password_confirmation "foobar"
|
||||||
|
end
|
||||||
|
end
|
|
@ -0,0 +1,140 @@
|
||||||
|
require 'spec_helper'
|
||||||
|
describe User do
|
||||||
|
#测试数据验证
|
||||||
|
# before { @user = User.new(login: "ExampleUser" ,mail: "user@example.com",
|
||||||
|
# password: "foobar",password_confirmation: "foobar" ) }
|
||||||
|
before :each do
|
||||||
|
@user = User.new(login: "ExampleUser" ,mail: "user@example.com",
|
||||||
|
password: "foobar",password_confirmation: "foobar" )
|
||||||
|
end
|
||||||
|
subject { @user }#指定@user为测试对象
|
||||||
|
#属性存在性的测试
|
||||||
|
it { should respond_to(:login) }
|
||||||
|
it { should respond_to(:mail) }
|
||||||
|
|
||||||
|
#此处采用与构建的方式生成数据
|
||||||
|
# it"is invalid without login" do
|
||||||
|
# user=FactoryGirl.build(:user,login: nil)
|
||||||
|
# expect(user).to_not be_valid
|
||||||
|
# end
|
||||||
|
#用户名唯一性的测试
|
||||||
|
describe "when login is already taken" do
|
||||||
|
before do
|
||||||
|
user_with_same_login=@user.dup
|
||||||
|
user_with_same_login.save
|
||||||
|
end
|
||||||
|
it{should_not be_valid}
|
||||||
|
# it "should be valid" do
|
||||||
|
# expect(@user).to be_valid
|
||||||
|
# end
|
||||||
|
end
|
||||||
|
|
||||||
|
#邮箱唯一性测试
|
||||||
|
describe "when mail address is already taken " do
|
||||||
|
before do
|
||||||
|
user_with_same_mail=@user.dup#dup method copy mail
|
||||||
|
user_with_same_mail.mail=@user.mail.upcase#转大写
|
||||||
|
user_with_same_mail.save
|
||||||
|
end
|
||||||
|
it{should_not be_valid}
|
||||||
|
end
|
||||||
|
#邮箱唯一性测试2
|
||||||
|
# describe " is invalid with a same email address" do
|
||||||
|
# User.create(login:'peter',mail:'test@qq.com')#先保存一个合法的对象
|
||||||
|
# user1=User.new(login:'jim',mail:'testqq@.com')#再创建user1作为测试的对比对象
|
||||||
|
# # expect(user1).to have(1).errors_on(:mail)
|
||||||
|
# it{should_not be_valid}
|
||||||
|
# end
|
||||||
|
|
||||||
|
#login长度测试(login最大25字符)
|
||||||
|
describe "when the login is too long " do
|
||||||
|
before{@user.login='a'*25}
|
||||||
|
it{should be_valid}
|
||||||
|
end
|
||||||
|
#姓和名的长度测试
|
||||||
|
describe "when the first name is too long " do
|
||||||
|
before{@user.firstname='a'*30}
|
||||||
|
it{should_not be_valid}
|
||||||
|
end
|
||||||
|
describe "when the last name is too long " do
|
||||||
|
before{@user.lastname='a'*30}
|
||||||
|
it{should_not be_valid}
|
||||||
|
end
|
||||||
|
|
||||||
|
#login合法性的测试(符合正则表达式规则的用户名:数字英文)
|
||||||
|
describe "when login format is invalid" do
|
||||||
|
it"should be invalid" do
|
||||||
|
username=%w[aa!3 aaa%$&*! 1111==!]
|
||||||
|
username.each do |valid_username|
|
||||||
|
@user.login=valid_username
|
||||||
|
expect(@user).not_to be_valid
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
describe "when login format is valid" do
|
||||||
|
it"should be valid" do
|
||||||
|
username = %w[jim123 123456 aaaaaa]
|
||||||
|
username.each do |valid_username|
|
||||||
|
@user.login=valid_username
|
||||||
|
expect(@user).to be_valid
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
#邮箱合法性测试,在模型user中邮箱使用了正则表达式
|
||||||
|
describe "is the mail valid" do
|
||||||
|
context "when mail format is invalid" do
|
||||||
|
it"should be invalid" do
|
||||||
|
address=%w[user@foo,com user_at_foo.org example.user@foo.foo@bar_baz.com foo@bar+baz.com]
|
||||||
|
address.each do |valid_address|
|
||||||
|
@user.mail=valid_address
|
||||||
|
expect(@user).not_to be_valid
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
context "when mail format is valid" do
|
||||||
|
it"should be valid" do
|
||||||
|
addresses = %w[user@foo.COM A_US-ER@f.b.org frst.lst@foo.jp a+b@baz.cn]
|
||||||
|
addresses.each do |valid_address|
|
||||||
|
@user.mail=valid_address
|
||||||
|
expect(@user).not_to be_valid
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
describe "when the mail is too long" do#邮箱长度验证的测试
|
||||||
|
before{@user.mail='a'*60}
|
||||||
|
it{should_not be_valid}
|
||||||
|
end
|
||||||
|
|
||||||
|
#验证两次输入的密码是否一致的测试
|
||||||
|
describe "when the password does not match confirmation" do
|
||||||
|
before{@user.password_confirmation="admin123"}
|
||||||
|
it{should_not be_valid}
|
||||||
|
end
|
||||||
|
|
||||||
|
#调用相关方法是否能返回期待的结果
|
||||||
|
#userInfo方法,选择项目成员时显示的用户信息的文字
|
||||||
|
describe "returns the user info when choice the members of the project" do
|
||||||
|
context "第一种情况" do
|
||||||
|
@user=User.new()
|
||||||
|
expect(@user.userInfo).to eq ''
|
||||||
|
end
|
||||||
|
context "二种情况" do
|
||||||
|
@user=User.new()
|
||||||
|
expect(@user.userInfo).to eq ''
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
# def name
|
||||||
|
# [firstname, lastname].join(' ')
|
||||||
|
# end
|
||||||
|
# it "returns a contact's full name as a string" do
|
||||||
|
# contact = Contact.new(firstname: 'John', lastname: 'Doe',
|
||||||
|
# email: 'johndoe@example.com')
|
||||||
|
# expect(contact.name).to eq 'John Doe'#调用contact的name方法
|
||||||
|
# end
|
||||||
|
end
|
Loading…
Reference in New Issue