Merge pull request #5391 from Flaburgan/unify-not-connected-pages
Unify disconnected pages
This commit is contained in:
commit
8beadf5400
19 changed files with 260 additions and 532 deletions
|
|
@ -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)
|
* 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)
|
* 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)
|
* 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
|
## Bug fixes
|
||||||
* orca cannot see 'Add Contact' button [#5158](https://github.com/diaspora/diaspora/pull/5158)
|
* 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
|
## Cleanup in maintenance scripts and automated build environment
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -33,12 +33,6 @@ a { color : $link-blue }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#forgot_password,
|
|
||||||
#reset_password {
|
|
||||||
background-image : image_url("texture/light-bg.png");
|
|
||||||
height: 100%;
|
|
||||||
}
|
|
||||||
|
|
||||||
.author-name {
|
.author-name {
|
||||||
color: inherit;
|
color: inherit;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -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 */
|
/* autocomplete colors */
|
||||||
input:-webkit-autofill{
|
input:-webkit-autofill{
|
||||||
background-color: #fff !important;
|
background-color: #fff !important;
|
||||||
background-image: none !important;
|
background-image: none !important;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Forms described here are only used on the public pages at the moment */
|
||||||
form.block-form {
|
form.block-form {
|
||||||
display : inline-block;
|
margin: 20px auto;
|
||||||
|
|
||||||
label {
|
label {
|
||||||
color : $text-dark-grey;
|
color : $text-dark-grey;
|
||||||
}
|
position: absolute;
|
||||||
|
top: -9999px;
|
||||||
input {
|
left: -9999px;
|
||||||
&:invalid,
|
|
||||||
&:invalid:required,
|
|
||||||
&:invalid:required:focus {
|
|
||||||
box-shadow : none;
|
|
||||||
|
|
||||||
border : none;
|
|
||||||
color : $text-dark-grey;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
fieldset {
|
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;
|
||||||
margin-bottom : 1em;
|
background-color: #fff;
|
||||||
background-color : #fff;
|
position: relative; /* To correctly place the entypo icon */
|
||||||
border : 1px solid $border-dark-grey;
|
|
||||||
border-radius: 5px;
|
|
||||||
|
|
||||||
input[type=text],
|
input {
|
||||||
input[type=email],
|
color : $text-dark-grey;
|
||||||
input[type=password] {
|
margin: 0px;
|
||||||
box-shadow: 0 0 0 0;
|
border-bottom-width: 0px;
|
||||||
border-radius: 0;
|
border-radius: 0px;
|
||||||
border : none;
|
|
||||||
background : transparent;
|
|
||||||
padding : 10px;
|
|
||||||
margin-bottom : 0;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/* mainly bootstrap overrides */
|
.form-control {
|
||||||
.control-group {
|
font-size: 16px;
|
||||||
margin : 0;
|
height: 40px;
|
||||||
border-bottom : 1px solid $border-grey;
|
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; }
|
.form-control:first-of-type {
|
||||||
.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;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
input[type=submit] {
|
|
||||||
text-align : center;
|
|
||||||
display : block;
|
|
||||||
width : 100%;
|
|
||||||
padding : 8px 0;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
textarea, input[type=text], input[type=password], input[type=search] {
|
|
||||||
&:focus,
|
&:focus,
|
||||||
&:invalid,
|
&:invalid,
|
||||||
&:invalid:focus,
|
&:invalid:focus,
|
||||||
&:invalid:required,
|
&:invalid:required,
|
||||||
&:invalid:required:focus {
|
&:invalid:required:focus {
|
||||||
border: 1px solid $border-dark-grey;
|
border-top-left-radius: 5px;
|
||||||
outline: none;
|
border-top-right-radius: 5px;
|
||||||
box-shadow: none;
|
}
|
||||||
color : $text-dark-grey;
|
}
|
||||||
|
|
||||||
|
.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;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.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; }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,81 +1,16 @@
|
||||||
|
#login,
|
||||||
#forgot_password,
|
#forgot_password,
|
||||||
#reset_password {
|
#reset_password {
|
||||||
position : absolute;
|
padding-top: 25px;
|
||||||
top : 0;
|
|
||||||
left : 0;
|
|
||||||
padding-top : 200px;
|
|
||||||
min-width : 100%;
|
|
||||||
|
|
||||||
//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 {
|
.branding-asterisk {
|
||||||
margin: auto;
|
margin: auto;
|
||||||
width: 154px;
|
width: 154px;
|
||||||
height: 154px;
|
height: 154px;
|
||||||
|
margin-bottom: 12px;
|
||||||
}
|
}
|
||||||
.form-signin {
|
|
||||||
margin-bottom: 30px;
|
|
||||||
|
|
||||||
.form-control {
|
form.block-form {
|
||||||
font-size: 16px;
|
max-width: 400px;
|
||||||
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;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,46 +1,51 @@
|
||||||
#registration {
|
#registration {
|
||||||
position:absolute;
|
& > .container-fluid {
|
||||||
min-width: 100%;
|
margin-top: 5%;
|
||||||
min-height: 100%;
|
}
|
||||||
background-color : #afc652;
|
|
||||||
color: #fff;
|
|
||||||
|
|
||||||
#create-something-text {
|
#create-something-text {
|
||||||
font-family : Roboto-Light;
|
|
||||||
font-size : 100px;
|
font-size : 100px;
|
||||||
line-height : 100px;
|
line-height : 100px;
|
||||||
white-space : nowrap;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#diaspora-hearts {
|
#diaspora-hearts {
|
||||||
font-family : Roboto-Light;
|
font-size : 30px;
|
||||||
font-size : 24px;
|
|
||||||
margin-top : 0.2em;
|
margin-top : 0.2em;
|
||||||
margin-bottom : 1em;
|
margin-bottom : 1em;
|
||||||
white-space : nowrap;
|
white-space : nowrap;
|
||||||
}
|
}
|
||||||
|
|
||||||
#sign-up-text {
|
#pod-name {
|
||||||
font-family : Roboto-Bold;
|
text-align: center;
|
||||||
color : #7f9448;
|
margin: 12px;
|
||||||
margin-bottom : 0.5em;
|
font-size : 35px;
|
||||||
}
|
}
|
||||||
|
|
||||||
#collage {
|
#create-something-text,
|
||||||
width : 344px;
|
#diaspora-hearts {
|
||||||
height : auto;
|
font-family : Roboto-Light;
|
||||||
max-width : 95%;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
form {
|
form {
|
||||||
.control-label,
|
max-width: 400px;
|
||||||
.controls {
|
|
||||||
margin-left : auto;
|
.captcha_img {
|
||||||
width : auto;
|
position: absolute;
|
||||||
|
left: 10px;
|
||||||
|
width: 120px;
|
||||||
|
top: 169px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.controls {
|
#user_captcha {
|
||||||
float : right;
|
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 {
|
#terms > a {
|
||||||
|
|
|
||||||
|
|
@ -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;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
class PasswordsController < Devise::PasswordsController
|
class PasswordsController < Devise::PasswordsController
|
||||||
layout "application", :only => [:new]
|
layout ->(c) { request.format == :mobile ? "application" : "with_header_with_footer" }
|
||||||
before_filter -> { @css_framework = :bootstrap }, only: [:new, :create, :edit]
|
before_filter -> { @css_framework = :bootstrap }
|
||||||
end
|
end
|
||||||
|
|
|
||||||
|
|
@ -1,27 +1,29 @@
|
||||||
- content_for :page_title do
|
- 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
|
#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|
|
= form_for(resource, as: resource_name, url: password_path(resource_name), html: {class: "form-horizontal block-form", method: :put }, autocomplete: 'off') do |f|
|
||||||
%fieldset
|
%fieldset
|
||||||
= f.hidden_field :reset_password_token
|
%label{for: "user_password"}
|
||||||
.control-group
|
|
||||||
%label{class: "control-label", for: "user_password", style: "width: 45%; text-align: right; padding: 10px 0; overflow: hidden"}
|
|
||||||
= t('devise.passwords.edit.new_password')
|
= t('devise.passwords.edit.new_password')
|
||||||
.controls
|
%i.entypo.lock
|
||||||
= f.password_field :password, :required => true, :placeholder => "••••••••", :autocapitalize => "off", :autocorrect => "off", :autofocus => true, :style => "width: 55%;"
|
= 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
|
||||||
.control-group
|
|
||||||
%label{class: "control-label", for: "user_password_confirmation", style: "width: 45%; text-align: right; padding: 10px 0; overflow: hidden"}
|
= f.hidden_field :reset_password_token
|
||||||
|
|
||||||
|
%label{for: "user_password_confirmation"}
|
||||||
= t('devise.passwords.edit.confirm_password')
|
= t('devise.passwords.edit.confirm_password')
|
||||||
.controls
|
%i.entypo.lock
|
||||||
= f.password_field :password_confirmation, :required => true, :placeholder => "••••••••", :autocapitalize => "off", :autocorrect => "off", :style => "width: 55%;"
|
= f.password_field :password_confirmation, class: "input-block-level form-control", required: true, placeholder: t('devise.passwords.edit.confirm_password'), autocapitalize: "none", autocorrect: "off"
|
||||||
= hidden_field(:user, :remember_me, :value => 1)
|
|
||||||
= f.submit t('devise.passwords.edit.change_password'), :class => "new-btn"
|
|
||||||
|
|
||||||
%br/
|
= hidden_field(:user, :remember_me, value: 1)
|
||||||
%br/
|
= f.submit t('devise.passwords.edit.change_password'), class: "btn btn-block"
|
||||||
%br/
|
|
||||||
|
.text-center
|
||||||
= link_to t('devise.shared.links.sign_in'), new_session_path(resource_name)
|
= link_to t('devise.shared.links.sign_in'), new_session_path(resource_name)
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,22 +1,24 @@
|
||||||
- content_for :page_title do
|
- 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
|
#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|
|
= 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
|
%legend
|
||||||
%i= t('devise.passwords.new.no_account') unless devise_error_messages!.empty?
|
%i
|
||||||
|
= t('devise.passwords.new.no_account') # this is an error message and should not be displayed as a legend
|
||||||
%fieldset
|
%fieldset
|
||||||
.control-group
|
%label{for: "user_email"}
|
||||||
%label{class: "control-label", for: "user_email", style: "width: 40%; text-align: center; padding: 10px 0; overflow: hidden"}
|
|
||||||
= t('devise.passwords.new.email')
|
= t('devise.passwords.new.email')
|
||||||
.controls
|
%i.entypo.mail
|
||||||
= f.text_field :email, :required => true, :autocapitalize => "off", :placeholder => "••••••••", :autocorrect => "off", :autofocus => true, :style => "width: 60%;"
|
= 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 => "new-btn"
|
= f.submit t('devise.passwords.new.send_password_instructions'), class: "btn btn-block"
|
||||||
|
|
||||||
%br/
|
.text-center
|
||||||
%br/
|
|
||||||
%br/
|
|
||||||
= link_to t('devise.shared.links.sign_in'), new_session_path(resource_name)
|
= link_to t('devise.shared.links.sign_in'), new_session_path(resource_name)
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -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
|
|
||||||
44
app/views/registrations/new.haml
Normal file
44
app/views/registrations/new.haml
Normal 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')}
|
||||||
|
|
@ -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>
|
|
||||||
|
|
@ -1,40 +1,42 @@
|
||||||
- content_for :page_title do
|
- 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
|
.container-fluid#login
|
||||||
.row-fluid
|
.text-center
|
||||||
.span12.text-center
|
|
||||||
.branding-asterisk
|
.branding-asterisk
|
||||||
%h1
|
%h1
|
||||||
= AppConfig.settings.pod_name
|
= AppConfig.settings.pod_name
|
||||||
|
|
||||||
.row-fluid
|
= form_for resource, as: resource_name, url: session_path(resource_name), html: {class: 'block-form'}, autocomplete: 'off' do |f|
|
||||||
.span4.offset4
|
|
||||||
= form_for resource, :as => resource_name, :url => session_path(resource_name), :html => {:class => 'form-signin'}, :autocomplete => 'off' do |f|
|
|
||||||
%fieldset
|
%fieldset
|
||||||
= f.text_field :username,
|
%label{for: "user_username"}
|
||||||
:placeholder => t('registrations.new.username'),
|
= 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
|
%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,
|
%label{for: "user_password"}
|
||||||
:placeholder => t('registrations.new.password'),
|
= t('registrations.new.password')
|
||||||
:class => 'input-block-level form-control',
|
|
||||||
:required => true
|
|
||||||
%i.entypo.lock
|
%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.hidden_field :remember_me, value: 1
|
||||||
= f.submit t('devise.sessions.new.sign_in'), :class => 'btn btn-large btn-block green'
|
= f.submit t('devise.sessions.new.sign_in'), class: 'btn btn-large btn-block'
|
||||||
|
|
||||||
|
.text-center
|
||||||
- if display_password_reset_link?
|
- 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"
|
||||||
= link_to t('devise.shared.links.forgot_your_password'), new_password_path(resource_name), :id => "forgot_password_link"
|
%br
|
||||||
|
|
||||||
- if display_registration_link?
|
- if display_registration_link?
|
||||||
.text-center
|
|
||||||
= link_to t('devise.shared.links.sign_up'), new_registration_path(resource_name)
|
= link_to t('devise.shared.links.sign_up'), new_registration_path(resource_name)
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,3 @@
|
||||||
.control-label
|
.captcha_img
|
||||||
= simple_captcha_options[:image]
|
= simple_captcha_options[:image]
|
||||||
.controls
|
= simple_captcha_options[:field]
|
||||||
= simple_captcha_options[:field]
|
|
||||||
|
|
|
||||||
|
|
@ -1009,12 +1009,11 @@ en:
|
||||||
enter_password_again: "Enter the same password as before"
|
enter_password_again: "Enter the same password as before"
|
||||||
hey_make: "HEY,<br/>MAKE<br/>SOMETHING."
|
hey_make: "HEY,<br/>MAKE<br/>SOMETHING."
|
||||||
diaspora: "<3 diaspora*"
|
diaspora: "<3 diaspora*"
|
||||||
sign_up: "SIGN UP"
|
sign_up: "Sign up"
|
||||||
email: "EMAIL"
|
email: "Email"
|
||||||
username: "USERNAME"
|
username: "Username"
|
||||||
password: "PASSWORD"
|
password: "Password"
|
||||||
password_confirmation: "PASSWORD CONFIRMATION"
|
password_confirmation: "Password confirmation"
|
||||||
continue: "Continue"
|
|
||||||
submitting: "Submitting..."
|
submitting: "Submitting..."
|
||||||
terms: "By creating an account you accept the %{terms_link}."
|
terms: "By creating an account you accept the %{terms_link}."
|
||||||
terms_link: "terms of service"
|
terms_link: "terms of service"
|
||||||
|
|
|
||||||
|
|
@ -4,7 +4,7 @@ Feature: invitation acceptance
|
||||||
Given I have been invited by an admin
|
Given I have been invited by an admin
|
||||||
And I am on my acceptance form page
|
And I am on my acceptance form page
|
||||||
And I fill in the new user form
|
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
|
Then I should be on the getting started page
|
||||||
And I should see "Well, hello there!"
|
And I should see "Well, hello there!"
|
||||||
And I fill in the following:
|
And I fill in the following:
|
||||||
|
|
@ -19,7 +19,7 @@ Feature: invitation acceptance
|
||||||
Given I have been invited by bob
|
Given I have been invited by bob
|
||||||
And I am on my acceptance form page
|
And I am on my acceptance form page
|
||||||
And I fill in the new user form
|
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
|
Then I should be on the getting started page
|
||||||
And I should see "Well, hello there!"
|
And I should see "Well, hello there!"
|
||||||
And I fill in the following:
|
And I fill in the following:
|
||||||
|
|
|
||||||
|
|
@ -12,16 +12,18 @@ Feature: Change password
|
||||||
Then I should be on the stream page
|
Then I should be on the stream page
|
||||||
|
|
||||||
Scenario: Reset my password
|
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
|
Given I am on forgot password page
|
||||||
When I fill out forgot password form with "forgetful@users.net"
|
When I fill out forgot password form with "forgetful@users.net"
|
||||||
And I submit forgot password form
|
And I submit forgot password form
|
||||||
Then I should see "You will receive an email with instructions"
|
Then I should see "You will receive an email with instructions"
|
||||||
When I follow the "Change my password" link from the last sent email
|
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"
|
When I fill out reset password form with "supersecret" and "supersecret"
|
||||||
And I submit reset password form
|
And I submit reset password form
|
||||||
Then I should be on the stream page
|
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
|
Scenario: Attempt to reset password with invalid email
|
||||||
Given I am on forgot password page
|
Given I am on forgot password page
|
||||||
|
|
|
||||||
|
|
@ -5,6 +5,6 @@ Feature: Invitations
|
||||||
When I visit alice's invitation code url
|
When I visit alice's invitation code url
|
||||||
# Then I should see the "alice is excited" message
|
# Then I should see the "alice is excited" message
|
||||||
When I fill in the new user form
|
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
|
Then I should see the "welcome to diaspora" message
|
||||||
And I should be able to friend Alice
|
And I should be able to friend Alice
|
||||||
|
|
|
||||||
|
|
@ -71,20 +71,20 @@ Feature: new user registration
|
||||||
And I go to the new user registration page
|
And I go to the new user registration page
|
||||||
And I fill in the following:
|
And I fill in the following:
|
||||||
| user_username | $%&(/&%$&/=)(/ |
|
| user_username | $%&(/&%$&/=)(/ |
|
||||||
And I press "Continue"
|
And I press "Sign up"
|
||||||
Then I should not be able to 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"
|
And I should have a validation error on "user_username, user_password, user_email"
|
||||||
|
|
||||||
When I fill in the following:
|
When I fill in the following:
|
||||||
| user_username | valid_user |
|
| user_username | valid_user |
|
||||||
| user_email | this is not a valid email $%&/()( |
|
| 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
|
Then I should not be able to sign up
|
||||||
And I should have a validation error on "user_password, user_email"
|
And I should have a validation error on "user_password, user_email"
|
||||||
|
|
||||||
When I fill in the following:
|
When I fill in the following:
|
||||||
| user_email | valid@email.com |
|
| user_email | valid@email.com |
|
||||||
| user_password | 1 |
|
| user_password | 1 |
|
||||||
And I press "Continue"
|
And I press "Sign up"
|
||||||
Then I should not be able to sign up
|
Then I should not be able to sign up
|
||||||
And I should have a validation error on "user_password, user_password_confirmation"
|
And I should have a validation error on "user_password, user_password_confirmation"
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue