Show saved status of column preferences

This commit is contained in:
Rob Harrington
2016-05-15 22:57:34 +10:00
parent 55da83d0c0
commit f2de498d61
3 changed files with 11 additions and 3 deletions

View File

@@ -2,3 +2,4 @@ angular.module("admin.dropdown").controller "ColumnsDropdownCtrl", ($scope, Colu
$scope.columns = Columns.columns
$scope.toggle = Columns.toggleColumn
$scope.saveColumnPreferences = Columns.savePreferences
$scope.saved = Columns.preferencesSaved

View File

@@ -1,13 +1,14 @@
angular.module("admin.indexUtils").factory 'Columns', ($rootScope, $http, columns) ->
new class Columns
savedColumns: {}
columns: {}
visibleCount: 0
saving: false
constructor: ->
@columns = {}
for column in columns
@columns[column.column_name] = column
@savedColumns[column.column_name] = angular.copy(column)
@calculateVisibleCount()
toggleColumn: (column) =>
@@ -18,10 +19,16 @@ angular.module("admin.indexUtils").factory 'Columns', ($rootScope, $http, column
@visibleCount = (column for name, column of @columns when column.visible).length
$rootScope.$broadcast "columnCount:changed", @visibleCount
savePreferences: (action_name) ->
preferencesSaved: =>
angular.equals(@columns, @savedColumns)
savePreferences: (action_name) =>
$http
method: "PUT"
url: "/admin/column_preferences/bulk_update"
data:
action_name: action_name
column_preferences: (preference for column_name, preference of @columns)
.success (data) =>
for column in data
@savedColumns[column.column_name] = column

View File

@@ -7,4 +7,4 @@
%span.name {{column.name }}
%hr
%div.menu_item.text-center
%input.fullwidth.red{ type: "button", value: 'Save As Default', ng: { click: "saveColumnPreferences(action)"} }
%input.fullwidth.red{ type: "button", ng: { value: "saved() ? 'Saved': 'Save As Default'", disabled: "saved()", click: "saveColumnPreferences(action)"} }