diff --git a/app/assets/javascripts/app/app.js.coffee b/app/assets/javascripts/app/app.js.coffee deleted file mode 100644 index bee55ffcb..000000000 --- a/app/assets/javascripts/app/app.js.coffee +++ /dev/null @@ -1,51 +0,0 @@ -angular.module('timeoverflow').controller 'UserListCtrl', ["$scope", "$modal", "$http", "$location", ($scope, $modal, $http, $location) -> - - $scope.sortBy = (field) -> - $scope.sort = if $scope.sort == field then "-#{field}" else field - $scope.filterTerm = '' - $scope.$location = $location - - ['filterTerm', 'sort'].map (prop) -> - Object.defineProperty($scope, prop, - get: -> - if prop == 'sort' and $location.search()[prop] == undefined - 'member_id' - else - $location.search()[prop] - set: (val) -> $location.search(prop, val || null) - ) - - $scope.toggle_manager = (user) -> - $modal.open( - templateUrl: 'confirm_toggle_manager.html' - size: 'sm' - scope: $scope - controller: ["$scope", ($scope) -> $scope.username = user.username] - ).result - .then(-> $http.put(user.toggle_manager_link)) - .then(-> user.manager = !user.manager) - - $scope.toggle_active = (user) -> - $modal.open( - templateUrl: 'confirm_toggle_active.html' - size: 'sm' - scope: $scope - controller: ["$scope", ($scope) -> $scope.username = user.username] - ).result - .then(-> $http.put(user.toggle_active_link)) - .then(-> user.active = !user.active) -] - -# override this in a view where the organizations are needed -angular.module('timeoverflow').value 'Organizations', [] - -angular.module('timeoverflow').filter 'timeBalance', -> - (seconds) -> - if seconds isnt 0 - minutes = Math.abs(seconds) / 60 - hours = (minutes / 60) >> 0 - minutes %= 60 - minutes >>= 0; - if seconds < 0 then "-#{hours}:#{minutes}" else "#{hours}:#{minutes}" - else - "—" diff --git a/app/assets/javascripts/application.js.coffee b/app/assets/javascripts/application.js.coffee index 8fcd14578..d37fff8f0 100644 --- a/app/assets/javascripts/application.js.coffee +++ b/app/assets/javascripts/application.js.coffee @@ -2,15 +2,11 @@ #= require datepicker #= require give_time #= require tags -#= require_tree ./app - -angular.module "timeoverflow", ["ng-rails-csrf", 'ui.bootstrap'] $(document).on 'click', 'a[data-popup]', (event) -> window.open($(this).attr('href'), 'popup', 'width=600,height=600') event.preventDefault() - $(document).on 'click', 'span.show-password', (event) -> if $(this).hasClass('checked') $(this).removeClass('checked'); @@ -20,4 +16,4 @@ $(document).on 'click', 'span.show-password', (event) -> $(this).addClass('checked'); $(this).prev('input').attr('type', 'text'); $(this).find('.material-icons').html("visibility_off") - event.preventDefault() \ No newline at end of file + event.preventDefault() diff --git a/app/assets/javascripts/libs.js b/app/assets/javascripts/libs.js index d54523d4c..63a46c808 100644 --- a/app/assets/javascripts/libs.js +++ b/app/assets/javascripts/libs.js @@ -6,6 +6,3 @@ //= require highcharts //= require highcharts-exporting //= require select2 -//= require angular.min -//= require ui-bootstrap-tpls-0.11.0 -//= require ng-rails-csrf diff --git a/app/assets/stylesheets/application.css.scss b/app/assets/stylesheets/application.css.scss index 8ba81a245..364c77d35 100644 --- a/app/assets/stylesheets/application.css.scss +++ b/app/assets/stylesheets/application.css.scss @@ -27,11 +27,6 @@ $pages-anchor-hover: #8a8a8a; $features-background: #f5f5f5; $features-separator: #d8d8d8; -[ng-cloak], -.ng-cloak { - visibility: hidden !important; -} - html { font-size:62.5%; } @@ -166,7 +161,7 @@ html { font-weight: 400; height: 7.5rem; } - + .form-control:focus { border-color: none; box-shadow: none; @@ -264,6 +259,10 @@ html { padding: 10px; } +.table-responsive { + overflow-x: inherit; +} + table.users { padding: 10px; } @@ -631,7 +630,7 @@ form .checkbox input[type="checkbox"] { .material-icons { font-size: 3rem; } - + .checkbox { color: $form-login-gray-text; font-size: 1.6rem; diff --git a/app/controllers/users_controller.rb b/app/controllers/users_controller.rb index 68f6fb828..660eba642 100644 --- a/app/controllers/users_controller.rb +++ b/app/controllers/users_controller.rb @@ -1,17 +1,15 @@ class UsersController < ApplicationController before_filter :authenticate_user! - def scoped_users - current_organization.users - end - def index - @users = scoped_users - @memberships = current_organization.members. - where(user_id: @users.map(&:id)). - includes(:account).each_with_object({}) do |mem, ob| - ob[mem.user_id] = mem - end + @search = current_organization.users.ransack(params[:q]) + + @users = @search + .result(distinct: false) + .joins(members: :account) + .eager_load(members: :account) + .page(params[:page]) + .per(25) end def show @@ -75,6 +73,10 @@ def give_time private + def scoped_users + current_organization.users + end + def user_params fields_to_permit = %w"gender username email date_of_birth phone alt_phone active description notifications" diff --git a/app/helpers/users_helper.rb b/app/helpers/users_helper.rb index 947b95fa0..ac3d541a0 100644 --- a/app/helpers/users_helper.rb +++ b/app/helpers/users_helper.rb @@ -1,34 +1,14 @@ module UsersHelper - # TODO refactor or eliminate - poosibly the second. - def users_as_json - @users = (admin? || superadmin?) ? @users : @users.actives - @users.map do |user| - membership = @memberships[user.id] - { - id: user.id, - avatar: avatar_url(user), - member_id: membership.member_uid, - username: user.username, - email: user.email_if_real, - unconfirmed_email: user.unconfirmed_email, - phone: user.phone, - alt_phone: user.alt_phone, - balance: membership.account_balance.to_i, - - url: user_path(user), - edit_link: edit_user_path(user), - cancel_link: cancel_member_path(membership), - toggle_manager_link: toggle_manager_member_path(membership), - manager: !!membership.manager, - toggle_active_link: toggle_active_member_path(membership), - active: membership.active?, - valid_email: user.has_valid_email? - } - end.to_json.html_safe - end - private + def time_balance(seconds) + if seconds.zero? + "—" + else + [seconds / (60 * 60), (seconds / 60) % 60].map{|value| value.to_s.rjust(2, "0") }.join(":") + end + end + def edit_user_path(user) can_edit_user?(user) ? super : "" end diff --git a/app/views/application/menus/_language_switcher.html.erb b/app/views/application/menus/_language_switcher.html.erb index 54bed0ebc..2ec7adbd7 100644 --- a/app/views/application/menus/_language_switcher.html.erb +++ b/app/views/application/menus/_language_switcher.html.erb @@ -1,7 +1,7 @@
  • -
  • \ No newline at end of file + diff --git a/app/views/application/menus/_organization_listings_menu.html.erb b/app/views/application/menus/_organization_listings_menu.html.erb index 6ea4ba67e..b04271ece 100644 --- a/app/views/application/menus/_organization_listings_menu.html.erb +++ b/app/views/application/menus/_organization_listings_menu.html.erb @@ -1,5 +1,5 @@