From 4c13fd2b4264d8ca126c51bb3950d2ac18c79bcf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Simon=20W=C3=B6rner?= Date: Wed, 14 Jan 2015 16:42:00 +0100 Subject: [PATCH] Revert "remove aspect sorting logic" This reverts commit 8d8d3c649a12f10270efcf9331c72110181999a7. Conflicts: app/assets/javascripts/main.js --- app/assets/javascripts/aspects-sorting.js | 18 ++++++++++++++++++ app/assets/javascripts/main.js | 2 ++ app/controllers/users_controller.rb | 2 ++ app/models/user.rb | 8 ++++++++ 4 files changed, 30 insertions(+) create mode 100644 app/assets/javascripts/aspects-sorting.js diff --git a/app/assets/javascripts/aspects-sorting.js b/app/assets/javascripts/aspects-sorting.js new file mode 100644 index 000000000..74d08e17a --- /dev/null +++ b/app/assets/javascripts/aspects-sorting.js @@ -0,0 +1,18 @@ +/* Copyright (c) 2010-2011, Diaspora Inc. This file is + * licensed under the Affero General Public License version 3 or later. See + * the COPYRIGHT file. + */ + +$(document).ready(function() { + $('#aspect_nav.left_nav .all_aspects .sub_nav').sortable({ + items: "li[data-aspect_id]", + update: function(event, ui) { + var order = $(this).sortable("toArray", {attribute: "data-aspect_id"}), + obj = { 'reorder_aspects': order, '_method': 'put' }; + $.ajax('/user', { type: 'post', dataType: 'script', data: obj }); + }, + revert: true, + helper: 'clone' + }); +}); + diff --git a/app/assets/javascripts/main.js b/app/assets/javascripts/main.js index aaa0c50ea..2dad8aea4 100644 --- a/app/assets/javascripts/main.js +++ b/app/assets/javascripts/main.js @@ -20,6 +20,7 @@ //= require jquery-idletimer/dist/idle-timer //= require jquery.infinitescroll-custom //= require jquery.autocomplete-custom +//= require jquery-ui //= require keycodes //= require fileuploader-custom //= require handlebars.runtime @@ -39,6 +40,7 @@ //= require_tree ./widgets //= require view //= require aspects-dropdown +//= require aspects-sorting //= require mentions //= require bootstrap-tooltip //= require bootstrap-popover diff --git a/app/controllers/users_controller.rb b/app/controllers/users_controller.rb index 00932312a..dcffe700f 100644 --- a/app/controllers/users_controller.rb +++ b/app/controllers/users_controller.rb @@ -70,6 +70,8 @@ class UsersController < ApplicationController flash[:error] = I18n.t 'users.update.follow_settings_not_changed' end end + elsif aspect_order = params[:reorder_aspects] + @user.reorder_aspects(aspect_order) end set_email_preferences diff --git a/app/models/user.rb b/app/models/user.rb index b318465a2..f9c83c4ff 100644 --- a/app/models/user.rb +++ b/app/models/user.rb @@ -486,6 +486,14 @@ class User < ActiveRecord::Base end end + def reorder_aspects(aspect_order) + i = 0 + aspect_order.each do |id| + self.aspects.find(id).update_attributes({ :order_id => i }) + i += 1 + end + end + # Generate public/private keys for User and associated Person def generate_keys key_size = (Rails.env == 'test' ? 512 : 4096)