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.IndexContainerJob.run(IndexContainerJob.java:114)
|
||||
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
|
||||
|
|
|
@ -1,2 +1,2 @@
|
|||
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_THEME=Aptana Studio
|
||||
HYPERLINK_COLOR=84,143,160
|
||||
THEME_CHANGED=1394527579080
|
||||
THEME_CHANGED=1421465443240
|
||||
eclipse.preferences.version=1
|
||||
hyperlinkColor=84,143,160
|
||||
hyperlinkColor.SystemDefault=false
|
||||
|
|
|
@ -2,6 +2,6 @@ PROBLEMS_FILTERS_MIGRATE=true
|
|||
SHOW_COOLBAR=true
|
||||
SHOW_PERSPECTIVEBAR=true
|
||||
eclipse.preferences.version=1
|
||||
platformState=1394526372425
|
||||
platformState=1420528131671
|
||||
quickStart=false
|
||||
tipsAndTricks=true
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
<booleanAttribute key="advancedRunEnabled" value="false"/>
|
||||
<booleanAttribute key="appendProjectName" value="true"/>
|
||||
<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="externalBaseUrl" value=""/>
|
||||
<stringAttribute key="httpGetData" value=""/>
|
||||
|
|
|
@ -1,14 +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.feature.rcp:3.4.2.201308081805-7o7nFDFFFcLz-2l0rkQ0UYz0u_Wm"/>
|
||||
<item value="com.aptana.feature.studio:3.4.2.201308081736-7W7I57boG98RAi489ctbvKi7VXbq"/>
|
||||
<item value="com.aptana.feature:3.4.2.1376005939-B87T88BWOnwWRYdZO1DC44EXtPxS"/>
|
||||
<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="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"/>
|
||||
<item value="org.radrails.rails:3.4.2.201308081726-7n-7Z7oKfjkqlemv"/>
|
||||
</list>
|
||||
</section>
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<workbench progressCount="30" version="2.0">
|
||||
<workbench progressCount="26" version="2.0">
|
||||
<workbenchAdvisor/>
|
||||
<window height="940" maximized="true" width="1200" x="13" y="31">
|
||||
<fastViewData fastViewLocation="1024"/>
|
||||
|
@ -8,14 +8,14 @@
|
|||
</perspectiveBar>
|
||||
<coolbarLayout>
|
||||
<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="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.debug.ui.launchActionSet" itemType="typeToolBarContribution" x="141" y="22"/>
|
||||
<coolItem id="org.eclipse.search.searchActionSet" itemType="typeToolBarContribution" x="86" 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="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.help" itemType="typeGroupMarker"/>
|
||||
<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">
|
||||
<viewState>
|
||||
<title>demo</title>
|
||||
<workingDirectory>E:\code\demo</workingDirectory>
|
||||
<workingDirectory>C:\Users\zh</workingDirectory>
|
||||
</viewState>
|
||||
</view>
|
||||
<view id="com.aptana.snippets.ui.views.SnippetsView" partName="Snippets">
|
||||
|
@ -66,10 +66,10 @@
|
|||
<viewState/>
|
||||
</view>
|
||||
<view id="com.aptana.explorer.view" partName="App Explorer">
|
||||
<viewState CommonNavigator.LINKING_ENABLED="0" GitChangedFilesFilterEnabled="" activeProject="demo">
|
||||
<project name="demo">
|
||||
<viewState CommonNavigator.LINKING_ENABLED="0" GitChangedFilesFilterEnabled="" activeProject="trustie">
|
||||
<project name="trustie">
|
||||
<selection>
|
||||
<element path="/demo/app"/>
|
||||
<element path="/trustie"/>
|
||||
</selection>
|
||||
</project>
|
||||
</viewState>
|
||||
|
@ -78,7 +78,7 @@
|
|||
<viewState/>
|
||||
</view>
|
||||
</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">
|
||||
<descriptor class="com.aptana.ui.internal.WebPerspectiveFactory" id="com.aptana.ui.WebPerspective" label="Web"/>
|
||||
<alwaysOnActionSet id="com.aptana.browser.actionSet"/>
|
||||
|
@ -124,14 +124,19 @@
|
|||
<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/>
|
||||
<fastViewBars>
|
||||
<fastViewBar fastViewLocation="16384" id="org.eclipse.ui.internal.ViewStack@d90254" orientation="256" selectedTabId="com.aptana.snippets.ui.views.SnippetsView" style="0">
|
||||
<fastViews>
|
||||
<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>
|
||||
<mainWindow>
|
||||
<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="org.eclipse.ui.navigator.ProjectExplorer" label="Project Explorer"/>
|
||||
<page content="com.aptana.ui.io.remoteview" label="LabelNotFound"/>
|
||||
|
@ -166,15 +171,11 @@
|
|||
</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 appearance="2" expanded="0">
|
||||
<page content="org.eclipse.ui.views.ContentOutline" label="LabelNotFound"/>
|
||||
<page content="com.aptana.samples.ui.SamplesView" label="LabelNotFound"/>
|
||||
<page content="com.aptana.snippets.ui.views.SnippetsView" label="LabelNotFound"/>
|
||||
<presentation id="org.eclipse.ui.presentations.WorkbenchPresentationFactory"/>
|
||||
</folder>
|
||||
</info>
|
||||
</mainWindow>
|
||||
|
@ -188,6 +189,9 @@
|
|||
<workbenchWindowAdvisor/>
|
||||
<actionBarAdvisor/>
|
||||
<trimLayout>
|
||||
<trimArea IMemento.internal.id="16384">
|
||||
<trimItem IMemento.internal.id="org.eclipse.ui.internal.ViewStack@d90254"/>
|
||||
</trimArea>
|
||||
<trimArea IMemento.internal.id="128">
|
||||
<trimItem IMemento.internal.id="org.eclipse.ui.internal.WorkbenchWindow.topBar"/>
|
||||
</trimArea>
|
||||
|
|
|
@ -3,7 +3,24 @@ class AppliedProjectController < ApplicationController
|
|||
#申请加入项目
|
||||
def applied_join_project
|
||||
@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])
|
||||
if @applieds.count == 0
|
||||
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>
|
||||
</div><!--mail_head end-->
|
||||
<%= yield %>
|
||||
<hr />
|
||||
<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>
|
||||
</html>
|
||||
|
|
|
@ -1,26 +1,29 @@
|
|||
<!-- <h1><%#= link_to(h("#{issue.tracker.name} ##{issue.project_index}: #{issue.subject}"), issue_url) %></h1> -->
|
||||
<p>
|
||||
|
||||
<span class="c_blue" style="color:#1b55a7;">
|
||||
<%= link_to(h("#{@author.login}(#{@author.show_name})"), @issue_author_url , :style=>'color:#1b55a7; font-weight:bold;') %>
|
||||
</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>
|
||||
<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;">
|
||||
<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;"><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_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_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_content)%></strong></span>
|
||||
<span style="float: left; width: 526px">
|
||||
|
||||
<% if @journal.nil? %>
|
||||
<%= issue.description %>
|
||||
<%= issue.description=='' ? l(:label_none) : issue.description %>
|
||||
<% else %>
|
||||
<%= @journal.notes %>
|
||||
<%= @journal.notes=='' ? l(:label_none) : @journal.notes %>
|
||||
<% end%>
|
||||
</span>
|
||||
</li>
|
||||
<li style="list-style-type:none; margin:0; padding:0;">
|
||||
|
||||
<% unless @issue.attachments.nil? %>
|
||||
<span style="float: left"> <strong><%= l(:mail_issue_attachments)%></strong></span>
|
||||
<li style="list-style-type:none; margin:0; padding:0;float: left; ">
|
||||
<span style="float: left"> <strong><%= l(:mail_issue_attachments)%></strong></span>
|
||||
<% if @issue.attachments.count == 0 %>
|
||||
<%= l(:label_none)%>
|
||||
<% else %>
|
||||
<span style="float: left; width: 526px; margin:0; padding:0;">
|
||||
<% @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>
|
||||
|
|
|
@ -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>
|
||||
<hr/>
|
||||
|
||||
|
||||
<%= 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>
|
||||
|
|
|
@ -24,7 +24,7 @@
|
|||
</li>
|
||||
<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">
|
||||
<%= @news.description %>
|
||||
<%= @comment.comments %>
|
||||
</span>
|
||||
</li>
|
||||
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
<!-- <h1>New memo</h1> -->
|
||||
<% @replying = !@memo.parent.nil? %>
|
||||
|
||||
<h3><%=l(:label_memo_edit)%></h3>
|
||||
<%= labelled_form_for(@memo, :url => forum_memo_path(@memo.forum_id, @memo)) do |f| %>
|
||||
<% if @memo.errors.any? %>
|
||||
|
@ -19,8 +20,12 @@
|
|||
<% end %>
|
||||
<div class="actions">
|
||||
<p>
|
||||
<%= f.text_field :subject, :required => true, :size => 96 ,:readonly => @replying, :maxlength => 50%>
|
||||
</p>
|
||||
<% if @memo.parent.nil? && @memo.children.first.nil? %>
|
||||
<%= 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?%>
|
||||
<p>
|
||||
<% unless @replying %>
|
||||
|
|
|
@ -69,7 +69,7 @@
|
|||
else{
|
||||
$('#ajax-modal').html('<%= escape_javascript(render :partial => 'poll_submit', locals: { :poll => @poll,:is_remote => false}) %>');
|
||||
showModal('ajax-modal', '310px');
|
||||
$('#ajax-modal').css('height','115px');
|
||||
$('#ajax-modal').css('height','120px');
|
||||
$('#ajax-modal').siblings().remove();
|
||||
$('#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>");
|
||||
|
|
|
@ -15,7 +15,7 @@
|
|||
"</div>" +
|
||||
"</div>");
|
||||
showModal('ajax-modal', '310px');
|
||||
$('#ajax-modal').css('height','115px');
|
||||
$('#ajax-modal').css('height','120px');
|
||||
$('#ajax-modal').siblings().remove();
|
||||
$('#ajax-modal').before("<span style='float: right;cursor:pointer;'>" +
|
||||
"<a onclick='clickCanel();'><img src='/images/bid/close.png' width='26px' height='26px' /></a></span>");
|
||||
|
@ -47,7 +47,7 @@
|
|||
"</div>" +
|
||||
"</div>");
|
||||
showModal('ajax-modal', '310px');
|
||||
$('#ajax-modal').css('height','115px');
|
||||
$('#ajax-modal').css('height','120px');
|
||||
$('#ajax-modal').siblings().remove();
|
||||
$('#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>");
|
||||
|
|
|
@ -2,34 +2,43 @@
|
|||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<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' %>
|
||||
</head>
|
||||
<body>
|
||||
<div class="polls_content polls_box" id="polls">
|
||||
<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 class="">
|
||||
<% @poll_questions.each do |poll_question| %>
|
||||
<ol>
|
||||
<li class="ur_question_item">
|
||||
<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>
|
||||
</div>
|
||||
<% if poll_question.question_type == 1 || poll_question.question_type == 2 %>
|
||||
<%= render :partial =>'choice_show', :locals =>{ :poll_question => poll_question } %>
|
||||
<% else %>
|
||||
<%= render :partial =>'quiz_answers', :locals =>{ :poll_question => poll_question } %>
|
||||
<% end %>
|
||||
</li>
|
||||
</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="ur_buttons"></div>
|
||||
<div>
|
||||
<% @poll_questions.each do |poll_question| %>
|
||||
<ol style="margin-left: -40px;">
|
||||
<li class="ur_question_item">
|
||||
<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>
|
||||
</div>
|
||||
<% if poll_question.question_type == 1 || poll_question.question_type == 2 %>
|
||||
<%= render :partial =>'choice_show', :locals =>{ :poll_question => poll_question } %>
|
||||
<% else %>
|
||||
<%= render :partial =>'quiz_answers', :locals =>{ :poll_question => poll_question } %>
|
||||
<% end %>
|
||||
</li>
|
||||
</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>
|
||||
</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">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
||||
|
@ -34,7 +33,7 @@
|
|||
{
|
||||
hideModal(obj);
|
||||
$("#new-watcher-form").submit();
|
||||
alert("申请成功");
|
||||
// alert("申请成功");
|
||||
}
|
||||
|
||||
function hidden_join_course_form()
|
||||
|
@ -60,6 +59,7 @@
|
|||
<ul>
|
||||
<li style="padding-top: 15px;">
|
||||
<span class="tips">项 目 ID:</span>
|
||||
<input type="hidden" name="project_join" value="1">
|
||||
<input type="hidden" name="user_id" value="<%= User.current.id%>">
|
||||
<input class=" width190" name="project_id" id="project_id" type="text" value="" >
|
||||
<input type="text" style="display: none"/>
|
||||
|
|
|
@ -1,17 +1,17 @@
|
|||
/* CSS Document */
|
||||
#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;}
|
||||
#polls div,img,tr,td{ border:0;}
|
||||
#polls table,tr,td{border:0; cellspacing:0; cellpadding:0;}
|
||||
#polls ul,li{ list-style-type:none}
|
||||
#polls .cl{ clear:both; overflow:hidden; }
|
||||
#polls a{ text-decoration:none; }
|
||||
#polls a:hover{ text-decoration:underline; }
|
||||
#polls .ml10{ margin-left:10px;}
|
||||
#polls .ml20{ margin-left:20px;}
|
||||
#polls .mr10{ margin-right:10px;}
|
||||
#polls .fl{ float: left;}
|
||||
#polls .fr{ float:right;}
|
||||
div,img,tr,td{ border:0;}
|
||||
table,tr,td{border:0; cellspacing:0; cellpadding:0;}
|
||||
ul,li{ list-style-type:none}
|
||||
.cl{ clear:both; overflow:hidden; }
|
||||
a{ text-decoration:none; }
|
||||
a:hover{ text-decoration:underline; }
|
||||
.ml10{ margin-left:10px;}
|
||||
.ml20{ margin-left:20px;}
|
||||
.mr10{ margin-right:10px;}
|
||||
.fl{ float: left;}
|
||||
.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; }*/
|
||||
|
@ -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_prefix_content{ color:#656565; text-indent:30px; margin-top:10px; }
|
||||
.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;}
|
||||
.ur_editor_toolbar{ margin-bottom:10px;}
|
||||
.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: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;}
|
||||
|
|
|
@ -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