decidim-core 0.0.1.alpha2 → 0.0.1.alpha3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/Rakefile +11 -6
- data/app/assets/config/decidim_core_manifest.js +1 -0
- data/app/assets/images/decidim/badge-ajuntament-footer.png +0 -0
- data/app/assets/images/decidim/badge-ajuntament-header.svg +60 -0
- data/app/assets/images/decidim/cc-badge.png +0 -0
- data/app/assets/images/decidim/hero-home.jpg +0 -0
- data/app/assets/images/decidim/icons.svg +1 -0
- data/app/assets/javascripts/decidim.js +12 -1
- data/app/assets/stylesheets/{decidim.css → decidim.scss} +2 -1
- data/app/assets/stylesheets/decidim/application.sass +7 -0
- data/app/assets/stylesheets/decidim/layouts/_home.scss +244 -0
- data/app/assets/stylesheets/decidim/layouts/_user.scss +24 -0
- data/app/assets/stylesheets/decidim/layouts/_view.scss +22 -0
- data/app/assets/stylesheets/decidim/modules/_address.scss +26 -0
- data/app/assets/stylesheets/decidim/modules/_author-avatar.scss +119 -0
- data/app/assets/stylesheets/decidim/modules/_buttons.scss +120 -0
- data/app/assets/stylesheets/decidim/modules/_callout.scss +25 -0
- data/app/assets/stylesheets/decidim/modules/_card-grid.scss +22 -0
- data/app/assets/stylesheets/decidim/modules/_cards.scss +520 -0
- data/app/assets/stylesheets/decidim/modules/_comments.scss +119 -0
- data/app/assets/stylesheets/decidim/modules/_defintion-data.scss +54 -0
- data/app/assets/stylesheets/decidim/modules/_extra.scss +43 -0
- data/app/assets/stylesheets/decidim/modules/_filters.scss +96 -0
- data/app/assets/stylesheets/decidim/modules/_flag.scss +9 -0
- data/app/assets/stylesheets/decidim/modules/_footer.scss +90 -0
- data/app/assets/stylesheets/decidim/modules/_forms.scss +30 -0
- data/app/assets/stylesheets/decidim/modules/_help.scss +14 -0
- data/app/assets/stylesheets/decidim/modules/_icons.scss +32 -0
- data/app/assets/stylesheets/decidim/modules/_layout.scss +58 -0
- data/app/assets/stylesheets/decidim/modules/_list-docs.scss +30 -0
- data/app/assets/stylesheets/decidim/modules/_main-container.scss +70 -0
- data/app/assets/stylesheets/decidim/modules/_map.scss +72 -0
- data/app/assets/stylesheets/decidim/modules/_navbar.scss +258 -0
- data/app/assets/stylesheets/decidim/modules/_opinion-toggle.scss +30 -0
- data/app/assets/stylesheets/decidim/modules/_order-by.scss +66 -0
- data/app/assets/stylesheets/decidim/modules/_owl-carousel.scss +72 -0
- data/app/assets/stylesheets/decidim/modules/_phase-nav.scss +177 -0
- data/app/assets/stylesheets/decidim/modules/_popularity.scss +74 -0
- data/app/assets/stylesheets/decidim/modules/_process-header.scss +125 -0
- data/app/assets/stylesheets/decidim/modules/_process-info.scss +44 -0
- data/app/assets/stylesheets/decidim/modules/_process-nav.scss +99 -0
- data/app/assets/stylesheets/decidim/modules/_reference.scss +6 -0
- data/app/assets/stylesheets/decidim/modules/_reveal.scss +20 -0
- data/app/assets/stylesheets/decidim/modules/_share.scss +28 -0
- data/app/assets/stylesheets/decidim/modules/_signup.scss +39 -0
- data/app/assets/stylesheets/decidim/modules/_static-pages.scss +46 -0
- data/app/assets/stylesheets/decidim/modules/_status-labels.scss +14 -0
- data/app/assets/stylesheets/decidim/modules/_tags.scss +29 -0
- data/app/assets/stylesheets/decidim/modules/_timeline.scss +189 -0
- data/app/assets/stylesheets/decidim/modules/_title-action.scss +28 -0
- data/app/assets/stylesheets/decidim/modules/_typography.scss +116 -0
- data/app/assets/stylesheets/decidim/modules/_user-form.scss +14 -0
- data/app/assets/stylesheets/decidim/modules/_video.scss +18 -0
- data/app/assets/stylesheets/decidim/utils/_fontface.scss +1 -0
- data/app/assets/stylesheets/decidim/utils/_helpers.sass +21 -0
- data/app/assets/stylesheets/decidim/utils/_keyframes.sass +13 -0
- data/app/assets/stylesheets/decidim/utils/_mixins.sass +33 -0
- data/app/assets/stylesheets/decidim/utils/_settings.scss +570 -0
- data/app/assets/stylesheets/decidim/utils/_toggle-expand.scss +8 -0
- data/app/assets/stylesheets/decidim/utils/_variables.scss +25 -0
- data/app/controllers/concerns/decidim/needs_organization.rb +31 -0
- data/app/controllers/decidim/application_controller.rb +1 -0
- data/app/controllers/decidim/devise/confirmations_controller.rb +10 -0
- data/app/controllers/decidim/devise/invitations_controller.rb +20 -0
- data/app/controllers/decidim/devise/passwords_controller.rb +10 -0
- data/app/controllers/decidim/devise/registrations_controller.rb +19 -0
- data/app/controllers/decidim/devise/sessions_controller.rb +10 -0
- data/app/helpers/decidim/application_helper.rb +3 -0
- data/app/helpers/decidim/layout_helper.rb +27 -0
- data/app/helpers/decidim/translations_helper.rb +16 -0
- data/app/mailers/decidim/decidim_devise_mailer.rb +11 -0
- data/app/middleware/decidim/current_organization.rb +28 -0
- data/app/models/decidim/organization.rb +9 -0
- data/app/models/decidim/participatory_process.rb +14 -0
- data/app/models/decidim/user.rb +28 -4
- data/app/views/decidim/devise/confirmations/new.html.erb +15 -0
- data/app/views/decidim/devise/invitations/edit.html.erb +14 -0
- data/app/views/decidim/devise/passwords/edit.html.erb +20 -0
- data/app/views/decidim/devise/passwords/new.html.erb +15 -0
- data/app/views/decidim/devise/registrations/edit.html.erb +35 -0
- data/app/views/decidim/devise/registrations/new.html.erb +23 -0
- data/app/views/decidim/devise/sessions/new.html.erb +23 -0
- data/app/views/decidim/devise/shared/_links.html.erb +25 -0
- data/app/views/decidim/home/show.html.erb +16 -4
- data/app/views/devise/mailer/confirmation_instructions.html.erb +4 -0
- data/app/views/devise/mailer/organization_admin_invitation_instructions.html.erb +10 -0
- data/app/views/devise/mailer/organization_admin_invitation_instructions.text.erb +11 -0
- data/app/views/devise/mailer/password_change.html.erb +3 -0
- data/app/views/devise/mailer/reset_password_instructions.html.erb +8 -0
- data/app/views/layouts/decidim/_footer.html.erb +28 -2
- data/app/views/layouts/decidim/_header.html.erb +59 -2
- data/config/i18n-tasks.yml +120 -0
- data/config/initializers/devise.rb +58 -8
- data/config/locales/en.yml +35 -0
- data/config/routes.rb +12 -1
- data/db/migrate/20160919104837_create_decidim_organizations.rb +13 -0
- data/db/migrate/20160920140207_devise_invitable_add_to_decidim_users.rb +23 -0
- data/db/migrate/20160920141039_user_belongs_to_organization.rb +5 -0
- data/db/migrate/20160920141151_user_has_roles.rb +5 -0
- data/db/migrate/20161005130108_add_participatory_processes.rb +17 -0
- data/db/migrate/20161005153007_add_description_to_organizations.rb +9 -0
- data/db/migrate/20161006085629_add_confirmable_to_devise.rb +14 -0
- data/db/seeds.rb +35 -0
- data/lib/decidim/core.rb +0 -1
- data/lib/decidim/core/engine.rb +30 -0
- data/lib/decidim/core/version.rb +1 -1
- data/lib/decidim/devise_failure_app.rb +36 -0
- data/lib/decidim/form_builder.rb +38 -0
- data/lib/decidim/translatable_attributes.rb +86 -0
- data/lib/devise/models/decidim_validatable.rb +67 -0
- data/lib/tasks/factory_girl.rake +16 -0
- metadata +254 -9
- data/config/locales/devise.en.yml +0 -62
- data/lib/decidim/testing_support/common_rake.rb +0 -13
- data/lib/generators/decidim/dummy_generator.rb +0 -58
- data/lib/generators/decidim/install_generator.rb +0 -76
- data/lib/generators/decidim/templates/initializer.rb +0 -4
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
// Variables
|
|
2
|
+
|
|
3
|
+
$primary: map-get($foundation-palette, primary);
|
|
4
|
+
$secondary: map-get($foundation-palette, secondary);
|
|
5
|
+
$success: map-get($foundation-palette, success);
|
|
6
|
+
$warning: map-get($foundation-palette, warning);
|
|
7
|
+
$alert: map-get($foundation-palette, alert);
|
|
8
|
+
|
|
9
|
+
$light-gray-dark: darken($light-gray, 2.5);
|
|
10
|
+
|
|
11
|
+
$proposals: #238FF7;
|
|
12
|
+
$actions: #57D685;
|
|
13
|
+
$debates: #FA6C96;
|
|
14
|
+
$meetings: #FABC6C;
|
|
15
|
+
|
|
16
|
+
$twitter: #55acee;
|
|
17
|
+
$facebook: #3b5998;
|
|
18
|
+
$google: #dd4b39;
|
|
19
|
+
|
|
20
|
+
$muted: lighten($body-font-color, 30);
|
|
21
|
+
|
|
22
|
+
$border: 1px solid $medium-gray;
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require "active_support/concern"
|
|
4
|
+
|
|
5
|
+
module Decidim
|
|
6
|
+
# Shared behaviour for controllers that need an organization present in order
|
|
7
|
+
# to work. The origanization is injected via the CurrentOrganization
|
|
8
|
+
# middleware.
|
|
9
|
+
module NeedsOrganization
|
|
10
|
+
extend ActiveSupport::Concern
|
|
11
|
+
|
|
12
|
+
included do
|
|
13
|
+
before_action :verify_organization
|
|
14
|
+
helper_method :current_organization
|
|
15
|
+
|
|
16
|
+
# The current organization for the request.
|
|
17
|
+
#
|
|
18
|
+
# Returns an Organization.
|
|
19
|
+
def current_organization
|
|
20
|
+
@current_organization ||= request.env["decidim.current_organization"]
|
|
21
|
+
end
|
|
22
|
+
|
|
23
|
+
private
|
|
24
|
+
|
|
25
|
+
# Raises a 404 if no organization is present.
|
|
26
|
+
def verify_organization
|
|
27
|
+
raise ActionController::RoutingError, "Not Found" unless current_organization
|
|
28
|
+
end
|
|
29
|
+
end
|
|
30
|
+
end
|
|
31
|
+
end
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
module Decidim
|
|
3
|
+
module Devise
|
|
4
|
+
# Custom Devise ConfirmationsController to avoid namespace problems.
|
|
5
|
+
class ConfirmationsController < ::Devise::ConfirmationsController
|
|
6
|
+
include Decidim::NeedsOrganization
|
|
7
|
+
layout "application"
|
|
8
|
+
end
|
|
9
|
+
end
|
|
10
|
+
end
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
module Decidim
|
|
3
|
+
module Devise
|
|
4
|
+
# This controller customizes the behaviour of Devise::Invitiable.
|
|
5
|
+
class InvitationsController < ::Devise::InvitationsController
|
|
6
|
+
# We don't users to create invitations, so we just redirect them to the
|
|
7
|
+
# homepage.
|
|
8
|
+
def authenticate_inviter!
|
|
9
|
+
redirect_to root_path
|
|
10
|
+
end
|
|
11
|
+
|
|
12
|
+
# Overwrite the method that returns the path after a user accepts an
|
|
13
|
+
# invitation. Using the param `invite_redirect` we can redirect the user
|
|
14
|
+
# to a custom path after it has accepted the invitation.
|
|
15
|
+
def after_accept_path_for(resource)
|
|
16
|
+
params[:invite_redirect] || after_sign_in_path_for(resource)
|
|
17
|
+
end
|
|
18
|
+
end
|
|
19
|
+
end
|
|
20
|
+
end
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
module Decidim
|
|
3
|
+
module Devise
|
|
4
|
+
# Custom Devise PasswordsController to avoid namespace problems.
|
|
5
|
+
class PasswordsController < ::Devise::PasswordsController
|
|
6
|
+
include Decidim::NeedsOrganization
|
|
7
|
+
layout "application"
|
|
8
|
+
end
|
|
9
|
+
end
|
|
10
|
+
end
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
module Decidim
|
|
3
|
+
module Devise
|
|
4
|
+
# This controller customizes the behaviour of Devise's
|
|
5
|
+
# RegistrationsController so we can specify a custom layout.
|
|
6
|
+
class RegistrationsController < ::Devise::RegistrationsController
|
|
7
|
+
include Decidim::NeedsOrganization
|
|
8
|
+
layout "application"
|
|
9
|
+
|
|
10
|
+
protected
|
|
11
|
+
|
|
12
|
+
# Called before resource.save
|
|
13
|
+
def build_resource(hash = nil)
|
|
14
|
+
super(hash)
|
|
15
|
+
resource.organization = current_organization
|
|
16
|
+
end
|
|
17
|
+
end
|
|
18
|
+
end
|
|
19
|
+
end
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
module Decidim
|
|
3
|
+
module Devise
|
|
4
|
+
# Custom Devise SessionsController to avoid namespace problems.
|
|
5
|
+
class SessionsController < ::Devise::SessionsController
|
|
6
|
+
include Decidim::NeedsOrganization
|
|
7
|
+
layout "application"
|
|
8
|
+
end
|
|
9
|
+
end
|
|
10
|
+
end
|
|
@@ -5,5 +5,32 @@ module Decidim
|
|
|
5
5
|
def decidim_page_title
|
|
6
6
|
Decidim.config.application_name
|
|
7
7
|
end
|
|
8
|
+
|
|
9
|
+
# Outputs an SVG-based icon.
|
|
10
|
+
#
|
|
11
|
+
# name - The String with the icon name.
|
|
12
|
+
# options - The Hash options used to customize the icon (default {}):
|
|
13
|
+
# :width - The Number of width in pixels (optional).
|
|
14
|
+
# :height - The Number of height in pixels (optional).
|
|
15
|
+
# :aria_label - The String to set as aria label (optional).
|
|
16
|
+
# :aria_hidden - The Truthy value to enable aria_hidden (optional).
|
|
17
|
+
# :role - The String to set as the role (optional).
|
|
18
|
+
# :class - The String to add as a CSS class (optional).
|
|
19
|
+
#
|
|
20
|
+
# Returns a String.
|
|
21
|
+
def icon(name, options = {})
|
|
22
|
+
html_properties = {}
|
|
23
|
+
|
|
24
|
+
html_properties["width"] = options[:width]
|
|
25
|
+
html_properties["height"] = options[:height]
|
|
26
|
+
html_properties["aria-label"] = options[:aria_label]
|
|
27
|
+
html_properties["role"] = options[:role]
|
|
28
|
+
html_properties["aria-hidden"] = options[:aria_hidden]
|
|
29
|
+
html_properties["class"] = "icon icon--#{name} #{options[:class]}"
|
|
30
|
+
|
|
31
|
+
content_tag :svg, html_properties do
|
|
32
|
+
content_tag :use, nil, "xlink:href" => "#{asset_url("decidim/icons.svg")}#icon-#{name}"
|
|
33
|
+
end
|
|
34
|
+
end
|
|
8
35
|
end
|
|
9
36
|
end
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
module Decidim
|
|
3
|
+
# Helper that provides convenient methods to deal with translated attributes.
|
|
4
|
+
module TranslationsHelper
|
|
5
|
+
# Public: Returns the translation of an attribute using the current locale,
|
|
6
|
+
# if available.
|
|
7
|
+
#
|
|
8
|
+
# attribute - A Hash where keys (strings) are locales, and their values are
|
|
9
|
+
# the translation for each locale.
|
|
10
|
+
#
|
|
11
|
+
# Returns a String with the translation.
|
|
12
|
+
def translated_attribute(attribute)
|
|
13
|
+
attribute.try(:[], I18n.locale.to_s)
|
|
14
|
+
end
|
|
15
|
+
end
|
|
16
|
+
end
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
module Decidim
|
|
3
|
+
# A custom mailer for Devise so we can tweak the invitation instructions for
|
|
4
|
+
# each role.
|
|
5
|
+
class DecidimDeviseMailer < Devise::Mailer
|
|
6
|
+
def invitation_instructions(record, token, opts = {})
|
|
7
|
+
@token = token
|
|
8
|
+
devise_mail(record, opts[:invitation_instructions] || :invitation_instructions, opts)
|
|
9
|
+
end
|
|
10
|
+
end
|
|
11
|
+
end
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
module Decidim
|
|
3
|
+
# A middleware that enhances the request with the current organization based
|
|
4
|
+
# on the hostname.
|
|
5
|
+
class CurrentOrganization
|
|
6
|
+
# Initializes the Rack Middleware.
|
|
7
|
+
#
|
|
8
|
+
# app - The Rack application
|
|
9
|
+
def initialize(app)
|
|
10
|
+
@app = app
|
|
11
|
+
end
|
|
12
|
+
|
|
13
|
+
# Main entry point for a Rack Middleware.
|
|
14
|
+
#
|
|
15
|
+
# env - A Hash.
|
|
16
|
+
def call(env)
|
|
17
|
+
env["decidim.current_organization"] = detect_current_organization(env)
|
|
18
|
+
@app.call(env)
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
private
|
|
22
|
+
|
|
23
|
+
def detect_current_organization(env)
|
|
24
|
+
host = Rack::Request.new(env).host.downcase
|
|
25
|
+
Decidim::Organization.where(host: host).first
|
|
26
|
+
end
|
|
27
|
+
end
|
|
28
|
+
end
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
module Decidim
|
|
3
|
+
# Organizations are one of the main models of Decidim. In a single Decidim
|
|
4
|
+
# installation we can find many organizations and each of them can start
|
|
5
|
+
# their own participatory processes.
|
|
6
|
+
class Organization < ApplicationRecord
|
|
7
|
+
validates :name, :host, uniqueness: true
|
|
8
|
+
end
|
|
9
|
+
end
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
module Decidim
|
|
3
|
+
# Interaction between a user and an organization is done via a
|
|
4
|
+
# ParticipatoryProcess. It's a unit of action from the Organization point of
|
|
5
|
+
# view that groups several features (proposals, debates...) distributed in
|
|
6
|
+
# steps that get enabled or disabled depending on which step is currently
|
|
7
|
+
# active.
|
|
8
|
+
class ParticipatoryProcess < ApplicationRecord
|
|
9
|
+
belongs_to :organization, foreign_key: "decidim_organization_id", class_name: Decidim::Organization
|
|
10
|
+
|
|
11
|
+
validates :title, :slug, :subtitle, :short_description, :description, presence: true
|
|
12
|
+
validates :slug, uniqueness: true
|
|
13
|
+
end
|
|
14
|
+
end
|
data/app/models/decidim/user.rb
CHANGED
|
@@ -1,10 +1,34 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
|
+
require_dependency "devise/models/decidim_validatable"
|
|
3
|
+
|
|
2
4
|
module Decidim
|
|
3
5
|
# A User is a citizen that wants to join the platform to participate.
|
|
4
6
|
class User < ApplicationRecord
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
7
|
+
devise :invitable, :database_authenticatable, :registerable, :confirmable,
|
|
8
|
+
:recoverable, :rememberable, :trackable, :decidim_validatable
|
|
9
|
+
|
|
10
|
+
belongs_to :organization, foreign_key: "decidim_organization_id", class_name: Decidim::Organization
|
|
11
|
+
|
|
12
|
+
ROLES = %w(admin moderator official).freeze
|
|
13
|
+
|
|
14
|
+
validates :organization, presence: true
|
|
15
|
+
validate :all_roles_are_valid
|
|
16
|
+
|
|
17
|
+
# Public: Allows customizing the invitation instruction email content when
|
|
18
|
+
# inviting a user.
|
|
19
|
+
#
|
|
20
|
+
# Returns a String.
|
|
21
|
+
attr_accessor :invitation_instructions
|
|
22
|
+
|
|
23
|
+
private
|
|
24
|
+
|
|
25
|
+
def all_roles_are_valid
|
|
26
|
+
errors.add(:roles, :invalid) unless roles.all? { |role| ROLES.include?(role) }
|
|
27
|
+
end
|
|
28
|
+
|
|
29
|
+
# Changes default Devise behaviour to use ActiveJob to send async emails.
|
|
30
|
+
def send_devise_notification(notification, *args)
|
|
31
|
+
devise_mailer.send(notification, self, *args).deliver_later
|
|
32
|
+
end
|
|
9
33
|
end
|
|
10
34
|
end
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
<h2><%= t("devise.confirmations.new.resend_confirmation_instructions") %></h2>
|
|
2
|
+
|
|
3
|
+
<%= form_for(resource, as: resource_name, url: confirmation_path(resource_name), html: { method: :post }) do |f| %>
|
|
4
|
+
<%= devise_error_messages! %>
|
|
5
|
+
|
|
6
|
+
<div class="field">
|
|
7
|
+
<%= f.email_field :email, autofocus: true, value: (resource.pending_reconfirmation? ? resource.unconfirmed_email : resource.email) %>
|
|
8
|
+
</div>
|
|
9
|
+
|
|
10
|
+
<div class="actions">
|
|
11
|
+
<%= f.submit t("devise.confirmations.new.resend_confirmation_instructions") %>
|
|
12
|
+
</div>
|
|
13
|
+
<% end %>
|
|
14
|
+
|
|
15
|
+
<%= render "decidim/devise/shared/links" %>
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
<h2><%= t "devise.invitations.edit.header" %></h2>
|
|
2
|
+
|
|
3
|
+
<%= form_for resource, as: resource_name, url: invitation_path(resource_name, invite_redirect: params[:invite_redirect]), html: { method: :put } do |f| %>
|
|
4
|
+
<%= devise_error_messages! %>
|
|
5
|
+
<%= f.hidden_field :invitation_token %>
|
|
6
|
+
|
|
7
|
+
<% if f.object.class.require_password_on_accepting %>
|
|
8
|
+
<%= f.password_field :password %></p>
|
|
9
|
+
|
|
10
|
+
<%= f.password_field :password_confirmation %></p>
|
|
11
|
+
<% end %>
|
|
12
|
+
|
|
13
|
+
<p><%= f.submit t("devise.invitations.edit.submit_button") %></p>
|
|
14
|
+
<% end %>
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
<h2><%= t("devise.passwords.edit.change_your_password") %></h2>
|
|
2
|
+
|
|
3
|
+
<%= form_for(resource, as: resource_name, url: password_path(resource_name), html: { method: :put }) do |f| %>
|
|
4
|
+
<%= devise_error_messages! %>
|
|
5
|
+
<%= f.hidden_field :reset_password_token %>
|
|
6
|
+
|
|
7
|
+
<div class="field">
|
|
8
|
+
<%= f.password_field :password, autocomplete: "off" %>
|
|
9
|
+
</div>
|
|
10
|
+
|
|
11
|
+
<div class="field">
|
|
12
|
+
<%= f.password_field :password_confirmation, autocomplete: "off" %>
|
|
13
|
+
</div>
|
|
14
|
+
|
|
15
|
+
<div class="actions">
|
|
16
|
+
<%= f.submit t("devise.passwords.edit.change_my_password") %>
|
|
17
|
+
</div>
|
|
18
|
+
<% end %>
|
|
19
|
+
|
|
20
|
+
<%= render "decidim/devise/shared/links" %>
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
<h2><%= t("devise.passwords.new.forgot_your_password") %></h2>
|
|
2
|
+
|
|
3
|
+
<%= form_for(resource, as: resource_name, url: password_path(resource_name), html: { method: :post }) do |f| %>
|
|
4
|
+
<%= devise_error_messages! %>
|
|
5
|
+
|
|
6
|
+
<div class="field">
|
|
7
|
+
<%= f.email_field :email, autofocus: true %>
|
|
8
|
+
</div>
|
|
9
|
+
|
|
10
|
+
<div class="actions">
|
|
11
|
+
<%= f.submit t("devise.passwords.new.send_me_reset_password_instructions") %>
|
|
12
|
+
</div>
|
|
13
|
+
<% end %>
|
|
14
|
+
|
|
15
|
+
<%= render "decidim/devise/shared/links" %>
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
<h2><%= t("devise.registrations.edit.title", resource: resource_class.model_name.human) %></h2>
|
|
2
|
+
|
|
3
|
+
<%= form_for(resource, as: resource_name, url: registration_path(resource_name), html: { method: :put }) do |f| %>
|
|
4
|
+
<%= devise_error_messages! %>
|
|
5
|
+
|
|
6
|
+
<div class="field">
|
|
7
|
+
<%= f.email_field :email %>
|
|
8
|
+
</div>
|
|
9
|
+
|
|
10
|
+
<% if devise_mapping.confirmable? && resource.pending_reconfirmation? %>
|
|
11
|
+
<p>
|
|
12
|
+
<%= t("devise.registrations.edit.currently_waiting_confirmation_for_email", email: resource.unconfirmed_email) %>
|
|
13
|
+
</p>
|
|
14
|
+
<% end %>
|
|
15
|
+
|
|
16
|
+
<div class="field">
|
|
17
|
+
<%= f.password_field :password, autocomplete: "off" %>
|
|
18
|
+
</div>
|
|
19
|
+
|
|
20
|
+
<div class="field">
|
|
21
|
+
<%= f.password_field :password_confirmation %>
|
|
22
|
+
</div>
|
|
23
|
+
|
|
24
|
+
<div class="field">
|
|
25
|
+
<%= f.password_field :current_password %>
|
|
26
|
+
</div>
|
|
27
|
+
|
|
28
|
+
<div><%= f.submit t("devise.registrations.edit.update") %></div>
|
|
29
|
+
<% end %>
|
|
30
|
+
|
|
31
|
+
<h3><%= t("devise.registrations.edit.cancel_my_account") %></h3>
|
|
32
|
+
|
|
33
|
+
<p><%= t("devise.registrations.edit.unhappy") %> <%= link_to t("devise.registrations.edit.cancel_my_account"), registration_path(resource_name), data: { confirm: t("devise.registrations.edit.are_you_sure") }, method: :delete %>.</p>
|
|
34
|
+
|
|
35
|
+
<%= link_to t("devise.shared.links.back"), :back %>
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
<h2><%= t("devise.registrations.new.sign_up") %></h2>
|
|
2
|
+
|
|
3
|
+
<%= form_for(resource, as: resource_name, url: registration_path(resource_name)) do |f| %>
|
|
4
|
+
<%= devise_error_messages! %>
|
|
5
|
+
|
|
6
|
+
<div class="field">
|
|
7
|
+
<%= f.email_field :email, autofocus: true %>
|
|
8
|
+
</div>
|
|
9
|
+
|
|
10
|
+
<div class="field">
|
|
11
|
+
<%= f.password_field :password, autocomplete: "off" %>
|
|
12
|
+
</div>
|
|
13
|
+
|
|
14
|
+
<div class="field">
|
|
15
|
+
<%= f.password_field :password_confirmation, autocomplete: "off" %>
|
|
16
|
+
</div>
|
|
17
|
+
|
|
18
|
+
<div class="actions">
|
|
19
|
+
<%= f.submit t("devise.registrations.new.sign_up") %>
|
|
20
|
+
</div>
|
|
21
|
+
<% end %>
|
|
22
|
+
|
|
23
|
+
<%= render "decidim/devise/shared/links" %>
|