Merge pull request #5391 from Flaburgan/unify-not-connected-pages

Unify disconnected pages
This commit is contained in:
Steffen van Bergerem 2015-02-19 00:45:15 +01:00
commit 8beadf5400
19 changed files with 260 additions and 532 deletions

View file

@ -96,6 +96,7 @@ diaspora.yml file**. The existing settings from 0.4.x and before will not work a
* Hide sign up button when registrations are disabled [#5612](https://github.com/diaspora/diaspora/pull/5612)
* Standardize capitalization throughout the UI [#5588](https://github.com/diaspora/diaspora/pull/5588)
* Display photos on the profile page as thumbnails [#5521](https://github.com/diaspora/diaspora/pull/5521)
* Unify not connected pages (sign in, sign up, forgot password) [#5391](https://github.com/diaspora/diaspora/pull/5391)
## Bug fixes
* orca cannot see 'Add Contact' button [#5158](https://github.com/diaspora/diaspora/pull/5158)
@ -1252,4 +1253,3 @@ The single-post view will also be revamped/reverted, but that didn't make it int
## Cleanup in maintenance scripts and automated build environment

View file

@ -33,12 +33,6 @@ a { color : $link-blue }
}
}
#forgot_password,
#reset_password {
background-image : image_url("texture/light-bg.png");
height: 100%;
}
.author-name {
color: inherit;
}

View file

@ -1,91 +1,106 @@
input,
input[type=email],
input[type=text],
input[type=password],
textarea { /* Bootstrap reset */
&,
&:active,
&:invalid,
&:invalid:required,
&:focus,
&:active:focus,
&:invalid:focus,
&:invalid:required:focus {
border-color: $border-grey;
box-shadow: none;
color : $text-dark-grey;
}
}
/* autocomplete colors */
input:-webkit-autofill{
background-color: #fff !important;
background-image: none !important;
}
/* Forms described here are only used on the public pages at the moment */
form.block-form {
display : inline-block;
margin: 20px auto;
label {
color : $text-dark-grey;
}
input {
&:invalid,
&:invalid:required,
&:invalid:required:focus {
box-shadow : none;
border : none;
color : $text-dark-grey;
}
position: absolute;
top: -9999px;
left: -9999px;
}
fieldset {
box-shadow : inset 0 1px 1px rgba(0,0,0,0.2), 0 1px 2px rgba(255,255,255,0.7);
margin-bottom : 1em;
background-color : #fff;
border : 1px solid $border-dark-grey;
border-radius: 5px;
margin-bottom: 1em;
background-color: #fff;
position: relative; /* To correctly place the entypo icon */
input[type=text],
input[type=email],
input[type=password] {
box-shadow: 0 0 0 0;
border-radius: 0;
border : none;
background : transparent;
padding : 10px;
margin-bottom : 0;
input {
color : $text-dark-grey;
margin: 0px;
border-bottom-width: 0px;
border-radius: 0px;
}
/* mainly bootstrap overrides */
.control-group {
margin : 0;
border-bottom : 1px solid $border-grey;
.form-control {
font-size: 16px;
height: 40px;
padding: 10px;
padding-left: 40px;
}
.control-label,
input[type=text],
input[type=password],
.field_with_errors label {
padding : 10px;
margin : 0;
}
.controls { margin-left : 100px; position : relative; }
.control-label { width : 80px; }
.controls .field_with_errors input {
background : {
image : image-url('invalid_fat@2x.png');
repeat : no-repeat;
position : 197px;
size: 20px 20px;
}
.form-control:first-of-type {
&,
&:focus,
&:invalid,
&:invalid:focus,
&:invalid:required,
&:invalid:required:focus {
border-top-left-radius: 5px;
border-top-right-radius: 5px;
}
}
}
input[type=submit] {
text-align : center;
display : block;
width : 100%;
padding : 8px 0;
}
}
.form-control:last-of-type {
&,
&:focus,
&:invalid,
&:invalid:focus,
&:invalid:required,
&:invalid:required:focus {
border-bottom-left-radius: 5px;
border-bottom-right-radius: 5px;
border-bottom-width: 1px;
}
}
textarea, input[type=text], input[type=password], input[type=search] {
&:focus,
&:invalid,
&:invalid:focus,
&:invalid:required,
&:invalid:required:focus {
border: 1px solid $border-dark-grey;
outline: none;
box-shadow: none;
color : $text-dark-grey;
.entypo {
position: absolute;
top: 10px;
left: 10px;
width: 20px;
text-align: center;
color: $text-grey;
font-size: 20px;
}
.entypo:nth-of-type(2) {
top: 50px;
}
.entypo:nth-of-type(3) {
top: 90px;
}
.entypo:nth-of-type(4) {
top: 130px;
}
::placeholder { text-transform: uppercase; }
}
}

View file

@ -1,81 +1,16 @@
#login,
#forgot_password,
#reset_password {
position : absolute;
top : 0;
left : 0;
padding-top : 200px;
min-width : 100%;
padding-top: 25px;
//color : #fff;
text-align : center;
label {
text-transform: uppercase;
}
input[type=text],
input[type=password] {
width : 120px;
}
#huge-text {
font-family : Roboto-Light;
font-size : 200px;
color : #ddd;
text-shadow : 0 1px 0 #fff;
}
#forgot_password_link {
margin : 40px;
color : $text-grey;
clear : all;
}
}
#login {
padding-top: 20px;
.branding-asterisk {
margin: auto;
width: 154px;
height: 154px;
margin-bottom: 12px;
}
.form-signin {
margin-bottom: 30px;
.form-control {
font-size: 16px;
height: auto;
padding: 10px;
padding-left: 40px;
}
fieldset {
margin-bottom: 20px;
}
.entypo {
position: relative;
display: inline-block;
width: 20px;
text-align: center;
top: -6px;
left: 12px;
color: $text-grey;
font-size: 20px;
}
input[type=text], input[type=password] {
&:focus {
border: 1px solid #ccc;
}
}
input[type=text] {
margin-bottom: -24px;
border-radius: 5px 5px 0 0;
}
input[type=password] {
margin-bottom: -23px;
border-radius: 0 0 5px 5px;
}
#forgot_password_link {
margin-top: 20px;
}
form.block-form {
max-width: 400px;
}
}

View file

@ -1,48 +1,53 @@
#registration {
position:absolute;
min-width: 100%;
min-height: 100%;
background-color : #afc652;
color: #fff;
& > .container-fluid {
margin-top: 5%;
}
#create-something-text {
font-family : Roboto-Light;
font-size : 100px;
line-height : 100px;
white-space : nowrap;
}
#diaspora-hearts {
font-family : Roboto-Light;
font-size : 24px;
font-size : 30px;
margin-top : 0.2em;
margin-bottom : 1em;
white-space : nowrap;
}
#sign-up-text {
font-family : Roboto-Bold;
color : #7f9448;
margin-bottom : 0.5em;
#pod-name {
text-align: center;
margin: 12px;
font-size : 35px;
}
#collage {
width : 344px;
height : auto;
max-width : 95%;
#create-something-text,
#diaspora-hearts {
font-family : Roboto-Light;
}
form {
.control-label,
.controls {
margin-left : auto;
width : auto;
max-width: 400px;
.captcha_img {
position: absolute;
left: 10px;
width: 120px;
top: 169px;
}
.controls {
float : right;
#user_captcha {
font-size: 16px;
height: 40px;
padding: 10px 10px 10px 130px;
line-height: 20px;
box-sizing: border-box;
width: 100%;
border-bottom: 1px solid $border-grey;
border-bottom-left-radius: 5px;
border-bottom-right-radius: 5px;
}
#terms > a {
color: inherit;
text-decoration: underline;

View file

@ -1,162 +0,0 @@
// Copyright (c) 2010-2011, Diaspora Inc. This file is
// licensed under the Affero General Public License version 3 or later. See
// the COPYRIGHT file.
@font-face {
font-family: 'BrandonGrotesqueLightRegular';
src: url('brandongrotesque_light/Brandon_light-webfont.eot');
src: local('☺'), url('brandongrotesque_light/Brandon_light-webfont.woff') format('woff'), url('brandongrotesque_light/Brandon_light-webfont.ttf') format('truetype'), url('brandongrotesque_light/Brandon_light-webfont.svg#webfont') format('svg');
font: {
weight: normal;
style: normal;
}
}
#flash_notice,
#flash_error,
#flash_alert {
z-index: 100;
top: 32px;
position: absolute;
color: #000;
width: 400px;
margin: 0 0 0 -200px;
left: 50%;
text-align: center;
font-size: 14px;
padding: 3px 0;
}
#flash_notice {
background-color: #CFC;
border: solid 1px #6C6;
}
#flash_error,
#flash_alert {
background-color: #FCC;
border: solid 1px #C66;
}
.fieldWithErrors {
display: inline;
}
.error_messages {
width: 400px;
border: 2px solid #CF0000;
padding: 0;
padding-bottom: 12px;
margin-bottom: 20px;
background-color: #f0f0f0;
font-size: 12px;
h2 {
text-align: left;
padding: 5px 5px 5px 15px;
margin: 0;
font: {
weight: bold;
size: 12px;
}
background-color: #c00;
}
p {
margin: 8px 10px;
}
ul {
margin: 0;
}
}
/* via blueprint */
html {
font-size: 100.01%;
}
/* via blueprint */
body {
font: {
size: 75%;
family: "Helvetica Neue", Arial, Helvetica, sans-serif;
}
color: #222;
background: #fff;
margin-left: 100px;
}
/* via blueprint */
input[type=text],
input[type=password],
textarea, select {
background-color: #fff;
border: 1px solid #bbb;
}
/* via blueprint */
input[type=text]:focus,
input[type=password]:focus,
input.text:focus,
input.title:focus,
textarea:focus, select:focus {
border-color: #666;
}
#huge_text {
font: {
size: 40px;
family: 'BrandonGrotesqueLightRegular';
}
line-height: 120px;
color: #333;
text-shadow: 0 1px 1px #999;
}
input {
font-size: 14px;
}
form p {
position: relative;
padding: 0;
}
label {
color: #999;
position: absolute;
padding-top: 7px;
left: 8px;
font: {
size: 14px;
weight: normal;
}
}
input[type='text'],
input[type='password'] {
font-family: "Helvetica Neue", Arial, Helvetica, sans-serif;
padding: 0.3em;
width: 395px;
border-top: 1px solid #999;
}
#user {
display: inline;
width: 500px;
.username {
width: 200px;
display: inline;
input {
display: inline;
width: 200px;
}
}
.user_network {
width: 200px;
display: inline;
font-size: 18px;
}
}

View file

@ -1,4 +1,4 @@
class PasswordsController < Devise::PasswordsController
layout "application", :only => [:new]
before_filter -> { @css_framework = :bootstrap }, only: [:new, :create, :edit]
layout ->(c) { request.format == :mobile ? "application" : "with_header_with_footer" }
before_filter -> { @css_framework = :bootstrap }
end

View file

@ -1,27 +1,29 @@
- content_for :page_title do
= "#{AppConfig.settings.pod_name} / #{t('devise.passwords.edit.change_password')}"
= "#{AppConfig.settings.pod_name} - #{t('devise.passwords.edit.change_password')}"
#reset_password
%h1{id: "huge-text"}= AppConfig.settings.pod_name
.container-fluid
.text-center
.branding-asterisk
%h1
= AppConfig.settings.pod_name
= form_for(resource, :as => resource_name, :url => password_path(resource_name), :html => {:class => "form-horizontal block-form", :method => :put }, :autocomplete => 'off') do |f|
%fieldset
= f.hidden_field :reset_password_token
.control-group
%label{class: "control-label", for: "user_password", style: "width: 45%; text-align: right; padding: 10px 0; overflow: hidden"}
= form_for(resource, as: resource_name, url: password_path(resource_name), html: {class: "form-horizontal block-form", method: :put }, autocomplete: 'off') do |f|
%fieldset
%label{for: "user_password"}
= t('devise.passwords.edit.new_password')
.controls
= f.password_field :password, :required => true, :placeholder => "••••••••", :autocapitalize => "off", :autocorrect => "off", :autofocus => true, :style => "width: 55%;"
.control-group
%label{class: "control-label", for: "user_password_confirmation", style: "width: 45%; text-align: right; padding: 10px 0; overflow: hidden"}
%i.entypo.lock
= f.password_field :password, class: "input-block-level form-control", required: true, placeholder: t('devise.passwords.edit.new_password'), autocapitalize: "none", autocorrect: "off", autofocus: true
= f.hidden_field :reset_password_token
%label{for: "user_password_confirmation"}
= t('devise.passwords.edit.confirm_password')
.controls
= f.password_field :password_confirmation, :required => true, :placeholder => "••••••••", :autocapitalize => "off", :autocorrect => "off", :style => "width: 55%;"
= hidden_field(:user, :remember_me, :value => 1)
= f.submit t('devise.passwords.edit.change_password'), :class => "new-btn"
%i.entypo.lock
= f.password_field :password_confirmation, class: "input-block-level form-control", required: true, placeholder: t('devise.passwords.edit.confirm_password'), autocapitalize: "none", autocorrect: "off"
%br/
%br/
%br/
= link_to t('devise.shared.links.sign_in'), new_session_path(resource_name)
= hidden_field(:user, :remember_me, value: 1)
= f.submit t('devise.passwords.edit.change_password'), class: "btn btn-block"
.text-center
= link_to t('devise.shared.links.sign_in'), new_session_path(resource_name)

View file

@ -1,22 +1,24 @@
- content_for :page_title do
= "#{AppConfig.settings.pod_name} / #{t('devise.passwords.new.forgot_password')}"
= "#{AppConfig.settings.pod_name} - #{t('devise.passwords.new.forgot_password')}"
#forgot_password
%h1{id: "huge-text"}= AppConfig.settings.pod_name
.container-fluid
.text-center
.branding-asterisk
%h1
= AppConfig.settings.pod_name
= form_for(resource, :as => resource_name, :url => password_path(resource_name), :html => {:class => "form-horizontal block-form"}, :autocomplete => 'off') do |f|
%legend
%i= t('devise.passwords.new.no_account') unless devise_error_messages!.empty?
%fieldset
.control-group
%label{class: "control-label", for: "user_email", style: "width: 40%; text-align: center; padding: 10px 0; overflow: hidden"}
= form_for(resource, as: resource_name, url: password_path(resource_name), html: {class: "form-horizontal block-form"}, autocomplete: 'off') do |f|
- if !devise_error_messages!.empty?
%legend
%i
= t('devise.passwords.new.no_account') # this is an error message and should not be displayed as a legend
%fieldset
%label{for: "user_email"}
= t('devise.passwords.new.email')
.controls
= f.text_field :email, :required => true, :autocapitalize => "off", :placeholder => "••••••••", :autocorrect => "off", :autofocus => true, :style => "width: 60%;"
= f.submit t('devise.passwords.new.send_password_instructions'), :class => "new-btn"
%br/
%br/
%br/
= link_to t('devise.shared.links.sign_in'), new_session_path(resource_name)
%i.entypo.mail
= f.text_field :email, class: "input-block-level form-control", required: true, autocapitalize: "off", placeholder: t('devise.passwords.new.email'), autocorrect: "off", autofocus: true
= f.submit t('devise.passwords.new.send_password_instructions'), class: "btn btn-block"
.text-center
= link_to t('devise.shared.links.sign_in'), new_session_path(resource_name)

View file

@ -1,28 +0,0 @@
%h2
= t('.edit', :name => resource_name.to_s.humanize)
= form_for(resource, :as => resource_name, :url => registration_path(resource_name), :html => { :method => :put }) do |f|
= devise_error_messages!
%p
= f.label :email
%br/
= f.text_field :email
%p
= f.label :password
%i = t('.leave_blank')
%br/
= f.password_field :password
%p
= f.label :password_confirmation
%br/
= f.password_field :password_confirmation
%p
= f.label :current_password
%i = t('.password_to_confirm')
%br/
= f.password_field :current_password
%p
= f.submit t('.update')
%h3 t('.cancel_my_account')
%p
= t('.unhappy') #{link_to t('.cancel_my_account'), registration_path(resource_name), :data => { :confirm => t('are_you_sure') }, :method => :delete}.
= link_to t('back'), :back

View file

@ -0,0 +1,44 @@
#registration
.container-fluid
.row-fluid
.span10.offset1
.span7.hidden-phone
%h1#create-something-text
= t('.hey_make').html_safe
%h3#diaspora-hearts
= t('.diaspora')
.span5
.text-center
%h2#pod-name
= AppConfig.settings.pod_name
= form_for(resource, url: registration_path(resource_name), html: {class: "form-horizontal block-form", autocomplete: "off"}) do |f|
%fieldset
%label.control-label{for: "user_email"}
= t('.email')
%i.entypo.mail
= f.email_field :email, class: "input-block-level form-control", placeholder: t('.email'), title: t('registrations.new.enter_email'), required: true
%label.control-label{for: "user_username"}
= t('.username')
%i.entypo.user
= f.text_field :username, class: "input-block-level form-control", placeholder: t('.username'), title: t('registrations.new.enter_username'), required: true, pattern: "[A-Za-z0-9_]+"
%label.control-label{for: "user_password"}
= t('.password')
%i.entypo.lock
= f.password_field :password, class: "input-block-level form-control", placeholder: t('.password'), title: t('registrations.new.enter_password'), required: true, pattern: "......+"
%label.control-label{for: "user_password_confirmation"}
= t('.password_confirmation')
%i.entypo.lock
= f.password_field :password_confirmation, class: "input-block-level form-control", placeholder: t('.password_confirmation'), title: t('registrations.new.enter_password_again'), required: true, pattern: "......+"
- if AppConfig.settings.captcha.enable?
= show_simple_captcha :object => 'user', :code_type => 'numeric'
= invite_hidden_tag(invite)
- if AppConfig.settings.terms.enable?
%p#terms.text-center
= t('.terms', terms_link: link_to(t('.terms_link'), terms_path, target: "_blank")).html_safe
= f.submit t('.sign_up'), class: "btn btn-block btn-large", data: {disable_with: t('.submitting')}

View file

@ -1,81 +0,0 @@
<div id="registration">
<div class="container">
<div class="row">
<div class="span4" id="image-container">
<%= image_tag('signupimages@2x_mini.jpg', :id => "collage") %>
</div>
<div class="span8">
<h1 id="create-something-text">
<%= t('.hey_make').html_safe %>
</h1>
<h3 id="diaspora-hearts">
<%= t('.diaspora') %>
</h3>
<h4 id="sign-up-text">
<%= t('.sign_up') %>
</h4>
<%= form_for(resource, :url => registration_path(resource_name), :html => {:class => "form-horizontal block-form", :autocomplete => "off"}) do |f| %>
<fieldset>
<div class="control-group">
<label class="control-label" for="user_email">
<%= t('.email') %>
</label>
<div class="controls">
<%= f.email_field :email, :placeholder => "luke@hoth.net", :title => t('registrations.new.enter_email'), :required => true %>
</div>
</div>
<div class="control-group">
<label class="control-label" for="user_username">
<%= t('.username') %>
</label>
<div class="controls">
<%= f.text_field :username, :placeholder => "jedi_guy", :title => t('registrations.new.enter_username'), :required => true, :pattern => "[A-Za-z0-9_]+" %>
</div>
</div>
<div class="control-group">
<label class="control-label" for="user_password">
<%= t('.password') %>
</label>
<div class="controls">
<%= f.password_field :password, :placeholder => "••••••••", :title => t('registrations.new.enter_password'), :required => true, :pattern => "......+" %>
</div>
</div>
<div class="control-group">
<label class="control-label" for="user_password_confirmation">
<%= t('.password_confirmation') %>
</label>
<div class="controls">
<%= f.password_field :password_confirmation, :placeholder => "••••••••", :title => t('registrations.new.enter_password_again'), :required => true, :pattern => "......+" %>
</div>
</div>
<% if AppConfig.settings.captcha.enable? %>
<div class="control-group" id="captcha">
<%= show_simple_captcha(:object => 'user', :code_type => 'numeric') %>
</div>
<% end %>
<%= invite_hidden_tag(invite) %>
</fieldset>
<% if AppConfig.settings.terms.enable? %>
<div id="terms" class="text-center">
<%= t('.terms', terms_link: link_to(t('.terms_link'), terms_path, target: "_blank")).html_safe %>
</div>
<% end %>
<%= f.submit t('.continue'), class: "new-btn", data: {disable_with: t('.submitting')} %>
<% end %>
</div>
</div>
</div>
</div>

View file

@ -1,40 +1,42 @@
- content_for :page_title do
= AppConfig.settings.pod_name + " / " + t('devise.sessions.new.sign_in')
= AppConfig.settings.pod_name + " - " + t('devise.sessions.new.sign_in')
.container-fluid#login
.row-fluid
.span12.text-center
.branding-asterisk
%h1
= AppConfig.settings.pod_name
.text-center
.branding-asterisk
%h1
= AppConfig.settings.pod_name
.row-fluid
.span4.offset4
= form_for resource, :as => resource_name, :url => session_path(resource_name), :html => {:class => 'form-signin'}, :autocomplete => 'off' do |f|
%fieldset
= f.text_field :username,
:placeholder => t('registrations.new.username'),
:class => 'input-block-level form-control',
:required => true,
:pattern => '[A-Za-z0-9_.@\-]+',
:autocapitalize => 'off',
:autocorrect => 'off',
:autofocus => true
%i.entypo.user
= form_for resource, as: resource_name, url: session_path(resource_name), html: {class: 'block-form'}, autocomplete: 'off' do |f|
%fieldset
%label{for: "user_username"}
= t('registrations.new.username')
%i.entypo.user
= f.text_field :username,
placeholder: t('registrations.new.username'),
class: 'input-block-level form-control',
required: true,
pattern: '[A-Za-z0-9_.@\-]+',
autocapitalize: 'none',
autocorrect: 'off',
autofocus: true
= f.password_field :password,
:placeholder => t('registrations.new.password'),
:class => 'input-block-level form-control',
:required => true
%i.entypo.lock
%label{for: "user_password"}
= t('registrations.new.password')
%i.entypo.lock
= f.password_field :password,
placeholder: t('registrations.new.password'),
class: 'input-block-level form-control',
required: true,
autocapitalize: 'none',
autocorrect: 'off'
= f.hidden_field :remember_me, :value => 1
= f.submit t('devise.sessions.new.sign_in'), :class => 'btn btn-large btn-block green'
= f.hidden_field :remember_me, value: 1
= f.submit t('devise.sessions.new.sign_in'), class: 'btn btn-large btn-block'
- if display_password_reset_link?
.text-center
= link_to t('devise.shared.links.forgot_your_password'), new_password_path(resource_name), :id => "forgot_password_link"
- if display_registration_link?
.text-center
= link_to t('devise.shared.links.sign_up'), new_registration_path(resource_name)
.text-center
- if display_password_reset_link?
= link_to t('devise.shared.links.forgot_your_password'), new_password_path(resource_name), id: "forgot_password_link"
%br
- if display_registration_link?
= link_to t('devise.shared.links.sign_up'), new_registration_path(resource_name)

View file

@ -1,4 +1,3 @@
.control-label
.captcha_img
= simple_captcha_options[:image]
.controls
= simple_captcha_options[:field]
= simple_captcha_options[:field]

View file

@ -829,17 +829,17 @@ en:
subject: "Your diaspora* account has been flagged for removal due to inactivity"
body: |-
Hello,
It looks as though you no longer want your account at %{pod_url}, as you havent used it for %{after_days} days. To ensure our active users get the best performance from this diaspora* pod, wed like to remove unwanted accounts from our database.
Wed love you to stay part of diaspora*s community, and youre welcome to keep your account live if you want to.
If you want to keep your account live, all you need to do is to sign in to your account before %{remove_after}. When you sign in, take a moment to have a look around diaspora*. It has changed a lot since you last looked in, and we think youll like the improvements weve made. Follow some #tags to find content you love.
Sign in here: %{login_url}. If youve forgotten your sign-in details, you can ask for a reminder on that page.
Hoping to see you again,
The diaspora* email robot!
people:
zero: "No people"
@ -1009,12 +1009,11 @@ en:
enter_password_again: "Enter the same password as before"
hey_make: "HEY,<br/>MAKE<br/>SOMETHING."
diaspora: "<3 diaspora*"
sign_up: "SIGN UP"
email: "EMAIL"
username: "USERNAME"
password: "PASSWORD"
password_confirmation: "PASSWORD CONFIRMATION"
continue: "Continue"
sign_up: "Sign up"
email: "Email"
username: "Username"
password: "Password"
password_confirmation: "Password confirmation"
submitting: "Submitting..."
terms: "By creating an account you accept the %{terms_link}."
terms_link: "terms of service"

View file

@ -4,7 +4,7 @@ Feature: invitation acceptance
Given I have been invited by an admin
And I am on my acceptance form page
And I fill in the new user form
And I press "Continue"
And I press "Sign up"
Then I should be on the getting started page
And I should see "Well, hello there!"
And I fill in the following:
@ -19,7 +19,7 @@ Feature: invitation acceptance
Given I have been invited by bob
And I am on my acceptance form page
And I fill in the new user form
And I press "Continue"
And I press "Sign up"
Then I should be on the getting started page
And I should see "Well, hello there!"
And I fill in the following:

View file

@ -12,16 +12,18 @@ Feature: Change password
Then I should be on the stream page
Scenario: Reset my password
Given a user with email "forgetful@users.net"
Given a user named "Georges Abitbol" with email "forgetful@users.net"
Given I am on forgot password page
When I fill out forgot password form with "forgetful@users.net"
And I submit forgot password form
Then I should see "You will receive an email with instructions"
When I follow the "Change my password" link from the last sent email
Then I should see "NEW PASSWORD"
When I fill out reset password form with "supersecret" and "supersecret"
And I submit reset password form
Then I should be on the stream page
And I sign out manually
And I sign in manually as "georges_abitbol" with password "supersecret"
Then I should be on the stream page
Scenario: Attempt to reset password with invalid email
Given I am on forgot password page

View file

@ -5,6 +5,6 @@ Feature: Invitations
When I visit alice's invitation code url
# Then I should see the "alice is excited" message
When I fill in the new user form
And I press "Continue"
And I press "Sign up"
Then I should see the "welcome to diaspora" message
And I should be able to friend Alice

View file

@ -71,20 +71,20 @@ Feature: new user registration
And I go to the new user registration page
And I fill in the following:
| user_username | $%&(/&%$&/=)(/ |
And I press "Continue"
And I press "Sign up"
Then I should not be able to sign up
And I should have a validation error on "user_username, user_password, user_email"
When I fill in the following:
| user_username | valid_user |
| user_email | this is not a valid email $%&/()( |
And I press "Continue"
And I press "Sign up"
Then I should not be able to sign up
And I should have a validation error on "user_password, user_email"
When I fill in the following:
| user_email | valid@email.com |
| user_password | 1 |
And I press "Continue"
And I press "Sign up"
Then I should not be able to sign up
And I should have a validation error on "user_password, user_password_confirmation"