Merge branch 'szzh' of http://repository.trustie.net/xianbo/trustie2 into szzh
This commit is contained in:
commit
0ff22b1ac0
|
@ -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%>
|
|
@ -44,9 +44,7 @@ a:hover.mail_reply{ background:#06a9bc; text-decoration:none;}
|
||||||
<p><%= l(:mail_issue_greetings)%></p>
|
<p><%= l(:mail_issue_greetings)%></p>
|
||||||
</div><!--mail_head end-->
|
</div><!--mail_head end-->
|
||||||
<%= yield %>
|
<%= yield %>
|
||||||
<hr />
|
</div>
|
||||||
<span class="footer" style="margin:0; padding:0;"><%= Redmine::WikiFormatting.to_html(Setting.text_formatting, Setting.emails_footer).html_safe %></span><!--mail_foot end-->
|
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
|
|
@ -1,26 +1,29 @@
|
||||||
<!-- <h1><%#= link_to(h("#{issue.tracker.name} ##{issue.project_index}: #{issue.subject}"), issue_url) %></h1> -->
|
<!-- <h1><%#= link_to(h("#{issue.tracker.name} ##{issue.project_index}: #{issue.subject}"), issue_url) %></h1> -->
|
||||||
<p>
|
<p>
|
||||||
|
|
||||||
<span class="c_blue" style="color:#1b55a7;">
|
<span class="c_blue" style="color:#1b55a7;">
|
||||||
<%= link_to(h("#{@author.login}(#{@author.show_name})"), @issue_author_url , :style=>'color:#1b55a7; font-weight:bold;') %>
|
<%= link_to(h("#{@author.login}(#{@author.show_name})"), @issue_author_url , :style=>'color:#1b55a7; font-weight:bold;') %>
|
||||||
</span><%= l(:mail_issue_title_userin)%>
|
</span><%= l(:mail_issue_title_userin)%>
|
||||||
<span class="c_blue" style="color:#1b55a7;"><%= link_to(h("#{@issue.project.name}"), @project_url, :style=>'color:#1b55a7; font-weight:bold;') %></span><%= l(:mail_issue_title_active)%></p>
|
<span class="c_blue" style="color:#1b55a7;"><%= link_to(h("#{@issue.project.name}"), @project_url, :style=>'color:#1b55a7; font-weight:bold;') %></span><%= l(:mail_issue_title_active)%></p>
|
||||||
<div class="mail_box" style="border:1px solid #c8c8c8; width:570px; height: auto; padding:15px; margin-top:10px; margin-bottom:10px;">
|
<div class="mail_box" style="border:1px solid #c8c8c8; width:570px; height: auto; padding:15px; margin-top:10px; margin-bottom:10px;">
|
||||||
<ul style="list-style-type:none; margin:0; padding:0;">
|
<ul style="list-style-type:none; margin:0; padding:0;">
|
||||||
<li style="list-style-type:none; margin:0; padding:0;"><span style="float: left;"><strong><%= l(:mail_issue_subject)%></strong></span><span style="float: left; width: 526px"><%= link_to(issue.subject, issue_url, :style=>'color:#1b55a7; font-weight:bold;') %></span></li>
|
<li style="list-style-type:none; margin:0; padding:0;float: left; "><span style="float: left;"><strong><%= l(:mail_issue_subject)%></strong></span><span style="float: left; width: 526px"><%= link_to(issue.subject, issue_url, :style=>'color:#1b55a7; font-weight:bold;') %></span></li>
|
||||||
<li style="list-style-type:none; margin:0; padding:0;"><span style="float: left;"><strong><%= l(:mail_issue_sent_from)%></strong></span><span style="float: left; width: 526px"><%= issue.project.name %><b>| </b><%= l(:mail_issue_from_project)%></span></li>
|
<li style="list-style-type:none; margin:0; padding:0;float: left; "><span style="float: left;"><strong><%= l(:mail_issue_sent_from)%></strong></span><span style="float: left; width: 526px"><%= issue.project.name %><b>| </b><%= l(:mail_issue_from_project)%></span></li>
|
||||||
<li style="list-style-type:none; margin:0; padding:0;"><span style="float: left;"><strong><%= l(:mail_issue_content)%></strong></span>
|
<li style="list-style-type:none; margin:0; padding:0; float: left; "><span style="float: left;"><strong><%= l(:mail_issue_content)%></strong></span>
|
||||||
<span style="float: left; width: 526px">
|
<span style="float: left; width: 526px">
|
||||||
|
|
||||||
<% if @journal.nil? %>
|
<% if @journal.nil? %>
|
||||||
<%= issue.description %>
|
<%= issue.description=='' ? l(:label_none) : issue.description %>
|
||||||
<% else %>
|
<% else %>
|
||||||
<%= @journal.notes %>
|
<%= @journal.notes=='' ? l(:label_none) : @journal.notes %>
|
||||||
<% end%>
|
<% end%>
|
||||||
</span>
|
</span>
|
||||||
</li>
|
</li>
|
||||||
<li style="list-style-type:none; margin:0; padding:0;">
|
<li style="list-style-type:none; margin:0; padding:0;float: left; ">
|
||||||
|
<span style="float: left"> <strong><%= l(:mail_issue_attachments)%></strong></span>
|
||||||
<% unless @issue.attachments.nil? %>
|
<% if @issue.attachments.count == 0 %>
|
||||||
<span style="float: left"> <strong><%= l(:mail_issue_attachments)%></strong></span>
|
<%= l(:label_none)%>
|
||||||
|
<% else %>
|
||||||
<span style="float: left; width: 526px; margin:0; padding:0;">
|
<span style="float: left; width: 526px; margin:0; padding:0;">
|
||||||
<% @issue.attachments.each do |attach| %>
|
<% @issue.attachments.each do |attach| %>
|
||||||
<p style="float: left; width: 526px; margin:0; padding:0;"><%= link_to_attachment(attach, :download => true, :token => @token.value, :only_path => false, :style=>'color:#1b55a7; font-weight:bold;')%></p>
|
<p style="float: left; width: 526px; margin:0; padding:0;"><%= link_to_attachment(attach, :download => true, :token => @token.value, :only_path => false, :style=>'color:#1b55a7; font-weight:bold;')%></p>
|
||||||
|
|
|
@ -1,10 +1,6 @@
|
||||||
<div>
|
|
||||||
<%= l(:text_issue_updated, :id => "##{@issue.project_index}", :author => h(@journal.user)) %>
|
|
||||||
|
|
||||||
|
|
||||||
</div>
|
|
||||||
<div class="cl" style="margin-top: 15px; clear:both; overflow:hidden;"></div>
|
<div class="cl" style="margin-top: 15px; clear:both; overflow:hidden;"></div>
|
||||||
<hr/>
|
|
||||||
|
|
||||||
<%= render :partial => 'issue', :formats => [:html], :locals => { :issue => @issue, :issue_url => @issue_url } %>
|
<%= render :partial => 'issue', :formats => [:html], :locals => { :issue => @issue, :issue_url => @issue_url } %>
|
||||||
<div class="mail_foot"><%= link_to( l(:mail_issue_footer), @user_url, :style=>'font-size:12px; font-weight:normal; color:#1b55a7;') %> </div>
|
<div class="mail_foot"><%= link_to( l(:mail_issue_footer), @user_url, :style=>'font-size:12px; font-weight:normal; color:#1b55a7;') %> </div>
|
||||||
|
|
|
@ -24,7 +24,7 @@
|
||||||
</li>
|
</li>
|
||||||
<li style="list-style-type:none; margin:0; padding:0;"><span style="float: left;"><strong><%= l(:mail_issue_content)%></strong></span>
|
<li style="list-style-type:none; margin:0; padding:0;"><span style="float: left;"><strong><%= l(:mail_issue_content)%></strong></span>
|
||||||
<span style="float: left; width: 526px">
|
<span style="float: left; width: 526px">
|
||||||
<%= @news.description %>
|
<%= @comment.comments %>
|
||||||
</span>
|
</span>
|
||||||
</li>
|
</li>
|
||||||
|
|
||||||
|
|
|
@ -1,5 +1,6 @@
|
||||||
<!-- <h1>New memo</h1> -->
|
<!-- <h1>New memo</h1> -->
|
||||||
<% @replying = !@memo.parent.nil? %>
|
<% @replying = !@memo.parent.nil? %>
|
||||||
|
|
||||||
<h3><%=l(:label_memo_edit)%></h3>
|
<h3><%=l(:label_memo_edit)%></h3>
|
||||||
<%= labelled_form_for(@memo, :url => forum_memo_path(@memo.forum_id, @memo)) do |f| %>
|
<%= labelled_form_for(@memo, :url => forum_memo_path(@memo.forum_id, @memo)) do |f| %>
|
||||||
<% if @memo.errors.any? %>
|
<% if @memo.errors.any? %>
|
||||||
|
@ -19,8 +20,12 @@
|
||||||
<% end %>
|
<% end %>
|
||||||
<div class="actions">
|
<div class="actions">
|
||||||
<p>
|
<p>
|
||||||
<%= f.text_field :subject, :required => true, :size => 96 ,:readonly => @replying, :maxlength => 50%>
|
<% if @memo.parent.nil? && @memo.children.first.nil? %>
|
||||||
</p>
|
<%= f.text_field :subject, :required => true, :size => 96 ,:readonly => false, :maxlength => 50%>
|
||||||
|
<% else %>
|
||||||
|
<%= f.text_field :subject, :required => true, :size => 96 ,:readonly => true, :style => "border: 1px solid gray", :maxlength => 50%>
|
||||||
|
<% end %>
|
||||||
|
</p>
|
||||||
<% if User.current.admin?%>
|
<% if User.current.admin?%>
|
||||||
<p>
|
<p>
|
||||||
<% unless @replying %>
|
<% unless @replying %>
|
||||||
|
|
|
@ -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>");
|
||||||
|
|
|
@ -2,34 +2,43 @@
|
||||||
<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" />
|
||||||
<title><%= l(:label_poll_result) %></title>
|
<title>
|
||||||
|
<%= l(:label_poll_result) %>
|
||||||
|
</title>
|
||||||
<%= stylesheet_link_tag 'polls', :media => 'all' %>
|
<%= stylesheet_link_tag 'polls', :media => 'all' %>
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
<div class="polls_content polls_box" id="polls">
|
<div class="polls_content polls_box" id="polls">
|
||||||
<div class="ur_page_head" >
|
<div class="ur_page_head" >
|
||||||
<h1 class="ur_page_title"><%= @poll.polls_name %> <%= l(:label_poll) %></h1>
|
<h1 class="ur_page_title">
|
||||||
|
<%= @poll.polls_name %>
|
||||||
|
<%= l(:label_poll) %>
|
||||||
|
</h1>
|
||||||
</div>
|
</div>
|
||||||
<div class="">
|
<div>
|
||||||
<% @poll_questions.each do |poll_question| %>
|
<% @poll_questions.each do |poll_question| %>
|
||||||
<ol>
|
<ol style="margin-left: -40px;">
|
||||||
<li class="ur_question_item">
|
<li class="ur_question_item">
|
||||||
<div class="ur_title_result">
|
<div class="ur_title_result">
|
||||||
<span class="title_index">第<%= poll_question.question_number %>题:</span><%= poll_question.question_title %> <span class="title_index">[<%= options_show(poll_question.question_type) %>]</span>
|
<span class="title_index">
|
||||||
</div>
|
第<%= poll_question.question_number %>题:
|
||||||
<% if poll_question.question_type == 1 || poll_question.question_type == 2 %>
|
</span>
|
||||||
<%= render :partial =>'choice_show', :locals =>{ :poll_question => poll_question } %>
|
<%= poll_question.question_title %>
|
||||||
<% else %>
|
<span class="title_index">
|
||||||
<%= render :partial =>'quiz_answers', :locals =>{ :poll_question => poll_question } %>
|
[<%= options_show(poll_question.question_type) %>]
|
||||||
<% end %>
|
</span>
|
||||||
</li>
|
</div>
|
||||||
</ol>
|
<% if poll_question.question_type == 1 || poll_question.question_type == 2 %>
|
||||||
<% end %>
|
<%= render :partial =>'choice_show', :locals =>{ :poll_question => poll_question } %>
|
||||||
<ul class="wlist">
|
<% else %>
|
||||||
<%= pagination_links_full @obj_pages, @obj_count, :per_page_links => false, :remote => false, :flag => true%>
|
<%= render :partial =>'quiz_answers', :locals =>{ :poll_question => poll_question } %>
|
||||||
</ul>
|
<% end %>
|
||||||
<div class="cl"></div>
|
</li>
|
||||||
<div class="ur_buttons"></div>
|
</ol>
|
||||||
|
<% end %>
|
||||||
|
<ul class="wlist">
|
||||||
|
<%= pagination_links_full @obj_pages, @obj_count, :per_page_links => false, :remote => false, :flag => true%>
|
||||||
|
</ul>
|
||||||
<div class="cl"></div>
|
<div class="cl"></div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -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,17 +1,17 @@
|
||||||
/* CSS Document */
|
/* CSS Document */
|
||||||
#polls{ font-size:12px; font-family:"微软雅黑","宋体" !important; line-height:1.9; background:#fff; font-style:normal;}
|
#polls{ font-size:12px; font-family:"微软雅黑","宋体" !important; line-height:1.9; background:#fff; font-style:normal;}
|
||||||
div,html,img,ul,li,p,body,h1,h2,h3,h4,p,a,table,tr,td,fieldset,input,span{ margin:0; padding:0;}
|
div,html,img,ul,li,p,body,h1,h2,h3,h4,p,a,table,tr,td,fieldset,input,span{ margin:0; padding:0;}
|
||||||
#polls div,img,tr,td{ border:0;}
|
div,img,tr,td{ border:0;}
|
||||||
#polls table,tr,td{border:0; cellspacing:0; cellpadding:0;}
|
table,tr,td{border:0; cellspacing:0; cellpadding:0;}
|
||||||
#polls ul,li{ list-style-type:none}
|
ul,li{ list-style-type:none}
|
||||||
#polls .cl{ clear:both; overflow:hidden; }
|
.cl{ clear:both; overflow:hidden; }
|
||||||
#polls a{ text-decoration:none; }
|
a{ text-decoration:none; }
|
||||||
#polls a:hover{ text-decoration:underline; }
|
a:hover{ text-decoration:underline; }
|
||||||
#polls .ml10{ margin-left:10px;}
|
.ml10{ margin-left:10px;}
|
||||||
#polls .ml20{ margin-left:20px;}
|
.ml20{ margin-left:20px;}
|
||||||
#polls .mr10{ margin-right:10px;}
|
.mr10{ margin-right:10px;}
|
||||||
#polls .fl{ float: left;}
|
.fl{ float: left;}
|
||||||
#polls .fr{ float:right;}
|
.fr{ float:right;}
|
||||||
|
|
||||||
/*问卷按钮*/
|
/*问卷按钮*/
|
||||||
/*.polls_btn{ height:33px;border-top:1px solid #15bed1; border-bottom:1px solid #15bed1;border-right:1px solid #cee6e6; width:225px; padding:7px 0 0 15px; }*/
|
/*.polls_btn{ height:33px;border-top:1px solid #15bed1; border-bottom:1px solid #15bed1;border-right:1px solid #cee6e6; width:225px; padding:7px 0 0 15px; }*/
|
||||||
|
@ -41,7 +41,7 @@ ul.wlist li a:hover{ background:#15bccf; color:#fff; text-decoration:none;}
|
||||||
|
|
||||||
|
|
||||||
/*问卷页面*/
|
/*问卷页面*/
|
||||||
.polls_box{ border:1px solid #dcdcdc; padding:15px 30px;}
|
.polls_box{ border:1px solid #dcdcdc; padding:15px 30px;margin-left: 7px;}
|
||||||
.ur_page_title{ font-size:16px; text-align:center; color:#353535; word-break:break-all; word-wrap:break-word;}
|
.ur_page_title{ font-size:16px; text-align:center; color:#353535; word-break:break-all; word-wrap:break-word;}
|
||||||
.ur_prefix_content{ color:#656565; text-indent:30px; margin-top:10px; }
|
.ur_prefix_content{ color:#656565; text-indent:30px; margin-top:10px; }
|
||||||
.ur_card{border-top:1px solid #dcdcdc;margin-top:20px; color:#3a3a3a;}
|
.ur_card{border-top:1px solid #dcdcdc;margin-top:20px; color:#3a3a3a;}
|
||||||
|
@ -113,7 +113,7 @@ a:hover.icon_add{background:url(images/icons.png) -20px -310px no-repeat;}
|
||||||
a:hover.icon_remove{background:url(images/icons.png) -20px -338px no-repeat;}
|
a:hover.icon_remove{background:url(images/icons.png) -20px -338px no-repeat;}
|
||||||
.ur_editor_toolbar{ margin-bottom:10px;}
|
.ur_editor_toolbar{ margin-bottom:10px;}
|
||||||
.ur_editor_toolbar input{ width:40px; height:20px;}
|
.ur_editor_toolbar input{ width:40px; height:20px;}
|
||||||
.ur_editor02{width:655px; border:1px solid #cbcbcb; padding:10px; margin-bottom:10px;}
|
.ur_editor02{width:655px; padding:10px; margin-bottom:10px;}
|
||||||
a.ur_button_submit{ display:block; width:106px; height:37px; margin:0 auto; background:#15bccf; color:#fff; font-size:16px; text-align:center; padding-top:3px; margin-bottom:10px; }
|
a.ur_button_submit{ display:block; width:106px; height:37px; margin:0 auto; background:#15bccf; color:#fff; font-size:16px; text-align:center; padding-top:3px; margin-bottom:10px; }
|
||||||
a:hover.ur_button_submit{ background:#0fa9bb; text-decoration:none;}
|
a:hover.ur_button_submit{ background:#0fa9bb; text-decoration:none;}
|
||||||
a.ur_icon_de{ background:url(images/icons.png) 0px -338px no-repeat; width:16px; height:27px; display:block;float:right; margin-top:15px;}
|
a.ur_icon_de{ background:url(images/icons.png) 0px -338px no-repeat; width:16px; height:27px; display:block;float:right; margin-top:15px;}
|
||||||
|
|
|
@ -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