diff --git a/app/assets/images/orcid.png b/app/assets/images/orcid.png new file mode 100644 index 0000000..2db382d --- /dev/null +++ b/app/assets/images/orcid.png Binary files differ diff --git a/app/assets/stylesheets/admin.css.less b/app/assets/stylesheets/admin.css.less index 132e00e..00ea783 100644 --- a/app/assets/stylesheets/admin.css.less +++ b/app/assets/stylesheets/admin.css.less @@ -567,7 +567,6 @@ } - /*********************************** Home page ************************************/ diff --git a/app/assets/stylesheets/bootstrap_and_overrides.css.less b/app/assets/stylesheets/bootstrap_and_overrides.css.less index f0b730b..e71ec49 100644 --- a/app/assets/stylesheets/bootstrap_and_overrides.css.less +++ b/app/assets/stylesheets/bootstrap_and_overrides.css.less @@ -576,7 +576,21 @@ -moz-border-radius: 3px; } - +/*********************************** + User Profile Page +************************************/ +td.force-left .select2-container { + position: relative; + float: left; + clear: left; +} +.user-identifier { + background-repeat: no-repeat; + background-size: 25px; + background-position: 6px 50%; + margin-left: -7px; + padding: 3px 0 3px 35px; +} /*********************************** Home page diff --git a/app/controllers/registrations_controller.rb b/app/controllers/registrations_controller.rb index 3394ba2..27ebbd2 100644 --- a/app/controllers/registrations_controller.rb +++ b/app/controllers/registrations_controller.rb @@ -2,7 +2,8 @@ class RegistrationsController < Devise::RegistrationsController def edit - @languages = Language.all.order("name") + @languages = Language.order("name") + @identifier_schemes = IdentifierScheme.order(:name) end # POST /resource diff --git a/app/models/identifier_scheme.rb b/app/models/identifier_scheme.rb new file mode 100644 index 0000000..79a89ad --- /dev/null +++ b/app/models/identifier_scheme.rb @@ -0,0 +1,3 @@ +class IdentifierScheme < ActiveRecord::Base + has_many :user_identifiers +end \ No newline at end of file diff --git a/app/models/user.rb b/app/models/user.rb index d3bec38..ab016a7 100644 --- a/app/models/user.rb +++ b/app/models/user.rb @@ -15,6 +15,7 @@ has_many :project_groups, :dependent => :destroy #has_many :organisations , through: :user_org_roles has_many :user_role_types, through: :user_org_roles + has_many :user_identifiers has_one :language belongs_to :organisation @@ -70,6 +71,11 @@ end end + def identifier_for(scheme) + user_identifier = user_identifiers.where(identifier_scheme: scheme).first + (user_identifier.nil? ? '' : user_identifier.identifier) + end + ## # sets a new organisation id for the user # if the user has any roles such as org_admin or admin, those are removed diff --git a/app/models/user_identifier.rb b/app/models/user_identifier.rb new file mode 100644 index 0000000..cf0c188 --- /dev/null +++ b/app/models/user_identifier.rb @@ -0,0 +1,4 @@ +class UserIdentifier < ActiveRecord::Base + belongs_to :user + belongs_to :identifier_scheme +end \ No newline at end of file diff --git a/app/views/devise/registrations/_external_identifier.html.erb b/app/views/devise/registrations/_external_identifier.html.erb new file mode 100644 index 0000000..cac7b72 --- /dev/null +++ b/app/views/devise/registrations/_external_identifier.html.erb @@ -0,0 +1,25 @@ +
)"> + + <% if id.nil? || id == '' %> + + <%= link_to "#{constant("identifier_schemes.#{scheme.name}.connect")}", + "#{scheme.auth_uri}", + title: constant("identifier_schemes.#{scheme.name}.tooltip") %> + + <% else %> + <% uri = "#{scheme.user_uri.gsub(/\{id\}/, id)}" %> + <%= link_to uri, uri, target: '_blank', + title: constant("identifier_schemes.#{scheme.name}.tooltip") %> + <% end %> +
+ + \ No newline at end of file diff --git a/app/views/devise/registrations/edit.html.erb b/app/views/devise/registrations/edit.html.erb index 7357115..9e8ad73 100644 --- a/app/views/devise/registrations/edit.html.erb +++ b/app/views/devise/registrations/edit.html.erb @@ -36,7 +36,7 @@ <%= t("helpers.org_type.organisation") %> - <%= collection_select(:user, + <%= collection_select(:user, :organisation_id, Organisation.where("parent_id IS NULL").order("name"), :id, :name, {include_blank: constant("organisation_types.organisation")}, { :class => "typeahead org_sign_up" }) %> @@ -53,7 +53,7 @@ <%= t('helpers.user_details_language') %> - +