decidim-admin 0.20.1 → 0.23.1

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of decidim-admin might be problematic. Click here for more details.

Files changed (220) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +13 -0
  3. data/app/assets/javascripts/decidim/admin/application.js.es6 +8 -0
  4. data/app/assets/javascripts/decidim/admin/budget_rule_toggler.component.js.es6 +52 -0
  5. data/app/assets/javascripts/decidim/admin/bundle.js +26 -32
  6. data/app/assets/javascripts/decidim/admin/bundle.js.map +1 -1
  7. data/app/assets/javascripts/decidim/admin/choose_language.js +12 -0
  8. data/app/assets/javascripts/decidim/admin/dynamic_fields.component.js.es6 +24 -5
  9. data/app/assets/javascripts/decidim/admin/form.js.es6 +24 -10
  10. data/app/assets/javascripts/decidim/admin/gallery.js.es6 +5 -0
  11. data/app/assets/javascripts/decidim/admin/newsletters.js.es6 +12 -0
  12. data/app/assets/javascripts/decidim/admin/officializations.js.es6 +20 -0
  13. data/app/assets/javascripts/decidim/admin/scope_picker_enabler.component.js.es6 +14 -0
  14. data/app/assets/stylesheets/decidim/admin/_decidim.scss +2 -0
  15. data/app/assets/stylesheets/decidim/admin/_variables.scss +2 -2
  16. data/app/assets/stylesheets/decidim/admin/extra/_action-icon.scss +6 -0
  17. data/app/assets/stylesheets/decidim/admin/extra/_cards.scss +11 -0
  18. data/app/assets/stylesheets/decidim/admin/extra/_newsletter-templates-gallery.scss +3 -0
  19. data/app/assets/stylesheets/decidim/admin/extra/_organization-appearance.scss +141 -0
  20. data/app/assets/stylesheets/decidim/admin/extra/_show_email.scss +31 -0
  21. data/app/assets/stylesheets/decidim/admin/extra/_title_bar.scss +4 -0
  22. data/app/assets/stylesheets/decidim/admin/modules/_buttons.scss +15 -1
  23. data/app/assets/stylesheets/decidim/admin/modules/_callouts.scss +11 -0
  24. data/app/assets/stylesheets/decidim/admin/modules/_cards.scss +13 -2
  25. data/app/assets/stylesheets/decidim/admin/modules/_filters.scss +78 -1
  26. data/app/assets/stylesheets/decidim/admin/modules/_forms.scss +16 -2
  27. data/app/assets/stylesheets/decidim/admin/modules/_import_result.scss +10 -0
  28. data/app/assets/stylesheets/decidim/admin/modules/_layout.scss +1 -1
  29. data/app/assets/stylesheets/decidim/admin/modules/_loading-spinner.scss +19 -0
  30. data/app/assets/stylesheets/decidim/admin/modules/_main-nav.scss +0 -1
  31. data/app/assets/stylesheets/decidim/admin/modules/_modules.scss +5 -1
  32. data/app/assets/stylesheets/decidim/admin/modules/_process-header.scss +0 -1
  33. data/app/assets/stylesheets/decidim/admin/modules/_secondary-nav.scss +5 -2
  34. data/app/assets/stylesheets/decidim/admin/modules/_table-list.scss +23 -7
  35. data/app/assets/stylesheets/decidim/admin/modules/_tabs.scss +7 -0
  36. data/app/assets/stylesheets/decidim/admin/modules/_users_statistics.scss +18 -0
  37. data/app/assets/stylesheets/decidim/admin/utils/_mixins.scss +42 -0
  38. data/app/assets/stylesheets/decidim/admin/utils/_settings.scss +4 -1
  39. data/app/cells/decidim/admin/content_block/show.erb +2 -2
  40. data/app/cells/decidim/admin/results_per_page/show.erb +16 -0
  41. data/app/cells/decidim/admin/results_per_page_cell.rb +14 -0
  42. data/app/commands/decidim/admin/create_attachment.rb +2 -2
  43. data/app/commands/decidim/admin/create_newsletter.rb +34 -9
  44. data/app/commands/decidim/admin/deliver_newsletter.rb +1 -1
  45. data/app/commands/decidim/admin/destroy_share_token.rb +46 -0
  46. data/app/commands/decidim/admin/reorder_content_blocks.rb +1 -1
  47. data/app/commands/decidim/admin/update_component.rb +27 -3
  48. data/app/commands/decidim/admin/update_content_block.rb +25 -1
  49. data/app/commands/decidim/admin/update_newsletter.rb +31 -9
  50. data/app/commands/decidim/admin/update_organization.rb +15 -1
  51. data/app/commands/decidim/admin/update_organization_appearance.rb +3 -1
  52. data/app/controllers/concerns/decidim/admin/filterable.rb +152 -0
  53. data/app/controllers/concerns/decidim/admin/officializations/filterable.rb +31 -0
  54. data/app/controllers/concerns/decidim/admin/paginable.rb +20 -0
  55. data/app/controllers/concerns/decidim/admin/participatory_space_export.rb +8 -2
  56. data/app/controllers/decidim/admin/admin_terms_controller.rb +20 -0
  57. data/app/controllers/decidim/admin/application_controller.rb +3 -0
  58. data/app/controllers/decidim/admin/authorization_workflows_controller.rb +6 -0
  59. data/app/controllers/decidim/admin/components/base_controller.rb +5 -1
  60. data/app/controllers/decidim/admin/components_controller.rb +30 -23
  61. data/app/controllers/decidim/admin/concerns/has_private_users.rb +4 -0
  62. data/app/controllers/decidim/admin/dashboard_controller.rb +33 -1
  63. data/app/controllers/decidim/admin/metrics_controller.rb +22 -0
  64. data/app/controllers/decidim/admin/newsletter_templates_controller.rb +41 -0
  65. data/app/controllers/decidim/admin/newsletters_controller.rb +43 -4
  66. data/app/controllers/decidim/admin/officializations_controller.rb +15 -6
  67. data/app/controllers/decidim/admin/organization_appearance_controller.rb +1 -0
  68. data/app/controllers/decidim/admin/organization_controller.rb +4 -3
  69. data/app/controllers/decidim/admin/organization_homepage_content_blocks_controller.rb +2 -1
  70. data/app/controllers/decidim/admin/share_tokens_controller.rb +30 -0
  71. data/app/forms/decidim/admin/attachment_form.rb +3 -0
  72. data/app/forms/decidim/admin/component_form.rb +5 -22
  73. data/app/forms/decidim/admin/newsletter_form.rb +15 -3
  74. data/app/forms/decidim/admin/organization_appearance_form.rb +7 -4
  75. data/app/forms/decidim/admin/organization_form.rb +27 -0
  76. data/app/forms/decidim/admin/participatory_space_private_user_csv_import_form.rb +14 -0
  77. data/app/forms/decidim/admin/participatory_space_private_user_form.rb +8 -2
  78. data/app/frontend/components/autocomplete.component.test.tsx +2 -1
  79. data/app/frontend/components/autocomplete.component.tsx +29 -0
  80. data/app/helpers/decidim/admin/admin_terms_helper.rb +47 -0
  81. data/app/helpers/decidim/admin/application_helper.rb +2 -0
  82. data/app/helpers/decidim/admin/dashboard_helper.rb +25 -0
  83. data/app/helpers/decidim/admin/filterable_helper.rb +129 -0
  84. data/app/helpers/decidim/admin/icon_link_helper.rb +1 -1
  85. data/app/helpers/decidim/admin/newsletters_helper.rb +20 -0
  86. data/app/helpers/decidim/admin/paginable/per_page_helper.rb +22 -0
  87. data/app/helpers/decidim/admin/resource_scope_helper.rb +43 -0
  88. data/app/helpers/decidim/admin/scopes_helper.rb +6 -0
  89. data/app/helpers/decidim/admin/settings_helper.rb +56 -47
  90. data/app/helpers/decidim/admin/uploader_image_dimensions_helper.rb +30 -0
  91. data/app/helpers/decidim/admin/user_roles_helper.rb +19 -0
  92. data/app/models/decidim/admin/fake_newsletter.rb +49 -0
  93. data/app/permissions/decidim/admin/permissions.rb +30 -7
  94. data/app/presenters/decidim/admin/dashboard_metric_charts_presenter.rb +57 -0
  95. data/app/queries/decidim/admin/active_users_counter.rb +35 -0
  96. data/app/queries/decidim/admin/newsletter_recipients.rb +20 -9
  97. data/app/views/decidim/admin/admin_terms/show.html.erb +26 -0
  98. data/app/views/decidim/admin/attachment_collections/index.html.erb +1 -1
  99. data/app/views/decidim/admin/authorization_workflows/index.html.erb +1 -0
  100. data/app/views/decidim/admin/categories/index.html.erb +1 -1
  101. data/app/views/decidim/admin/components/_component.html.erb +40 -33
  102. data/app/views/decidim/admin/components/_form.html.erb +4 -0
  103. data/app/views/decidim/admin/components/_settings_fields.html.erb +2 -2
  104. data/app/views/decidim/admin/components/index.html.erb +11 -8
  105. data/app/views/decidim/admin/dashboard/show.html.erb +49 -9
  106. data/app/views/decidim/admin/exports/_dropdown.html.erb +6 -2
  107. data/app/views/decidim/admin/impersonatable_users/index.html.erb +2 -2
  108. data/app/views/decidim/admin/metrics/_metrics.html.erb +21 -0
  109. data/app/views/decidim/admin/metrics/index.html.erb +7 -0
  110. data/app/views/decidim/admin/newsletter_templates/index.html.erb +28 -0
  111. data/app/views/decidim/admin/newsletter_templates/show.html.erb +12 -0
  112. data/app/views/decidim/admin/newsletters/_form.html.erb +1 -7
  113. data/app/views/decidim/admin/newsletters/edit.html.erb +1 -1
  114. data/app/views/decidim/admin/newsletters/index.html.erb +9 -3
  115. data/app/views/decidim/admin/newsletters/new.html.erb +1 -1
  116. data/app/views/decidim/admin/newsletters/select_recipients_to_deliver.html.erb +4 -4
  117. data/app/views/decidim/admin/officializations/_show_email_modal.html.erb +31 -0
  118. data/app/views/decidim/admin/officializations/index.html.erb +9 -41
  119. data/app/views/decidim/admin/officializations/show_email.html.erb +2 -0
  120. data/app/views/decidim/admin/organization/_form.html.erb +37 -0
  121. data/app/views/decidim/admin/organization_appearance/_form.html.erb +2 -72
  122. data/app/views/decidim/admin/organization_appearance/form/_colors.html.erb +23 -0
  123. data/app/views/decidim/admin/organization_appearance/form/_images.html.erb +38 -0
  124. data/app/views/decidim/admin/organization_appearance/form/_minimap.html.erb +46 -0
  125. data/app/views/decidim/admin/resource_permissions/_options_form.html.erb +1 -1
  126. data/app/views/decidim/admin/share_tokens/_share_tokens.html.erb +57 -0
  127. data/app/views/decidim/admin/shared/_filters.html.erb +40 -0
  128. data/app/views/decidim/admin/shared/_gallery.html.erb +21 -0
  129. data/app/views/decidim/admin/static_pages/_form.html.erb +1 -1
  130. data/app/views/decidim/admin/user_groups/index.html.erb +4 -4
  131. data/app/views/decidim/admin/users_statistics/_users_count.html.erb +39 -0
  132. data/app/views/layouts/decidim/admin/_application.html.erb +2 -1
  133. data/app/views/layouts/decidim/admin/_header.html.erb +3 -0
  134. data/app/views/layouts/decidim/admin/_title_bar.html.erb +20 -10
  135. data/app/views/layouts/decidim/admin/newsletters.erb +1 -1
  136. data/config/locales/am-ET.yml +1 -0
  137. data/config/locales/ar.yml +52 -47
  138. data/config/locales/bg-BG.yml +16 -0
  139. data/config/locales/bg.yml +135 -0
  140. data/config/locales/ca.yml +127 -48
  141. data/config/locales/cs.yml +182 -103
  142. data/config/locales/da-DK.yml +1 -0
  143. data/config/locales/da.yml +1 -0
  144. data/config/locales/de.yml +145 -47
  145. data/config/locales/el.yml +819 -0
  146. data/config/locales/en.yml +127 -48
  147. data/config/locales/eo-UY.yml +0 -1
  148. data/config/locales/eo.yml +51 -0
  149. data/config/locales/es-MX.yml +127 -48
  150. data/config/locales/es-PY.yml +127 -48
  151. data/config/locales/es.yml +127 -48
  152. data/config/locales/et-EE.yml +1 -0
  153. data/config/locales/et.yml +1 -0
  154. data/config/locales/eu.yml +21 -47
  155. data/config/locales/fi-plain.yml +127 -48
  156. data/config/locales/fi.yml +140 -61
  157. data/config/locales/fr-CA.yml +849 -0
  158. data/config/locales/fr.yml +133 -53
  159. data/config/locales/ga-IE.yml +1 -0
  160. data/config/locales/gl.yml +21 -47
  161. data/config/locales/hr-HR.yml +1 -0
  162. data/config/locales/hr.yml +1 -0
  163. data/config/locales/hu.yml +100 -48
  164. data/config/locales/id-ID.yml +21 -47
  165. data/config/locales/is-IS.yml +19 -45
  166. data/config/locales/is.yml +568 -0
  167. data/config/locales/it.yml +132 -83
  168. data/config/locales/ja-JP.yml +855 -0
  169. data/config/locales/ja.yml +849 -0
  170. data/config/locales/ko-KR.yml +1 -0
  171. data/config/locales/ko.yml +1 -0
  172. data/config/locales/lt-LT.yml +1 -0
  173. data/config/locales/lt.yml +1 -0
  174. data/config/locales/lv.yml +799 -0
  175. data/config/locales/mt-MT.yml +1 -0
  176. data/config/locales/mt.yml +1 -0
  177. data/config/locales/nl.yml +102 -48
  178. data/config/locales/no.yml +147 -84
  179. data/config/locales/om-ET.yml +1 -0
  180. data/config/locales/pl.yml +364 -238
  181. data/config/locales/pt-BR.yml +22 -48
  182. data/config/locales/pt.yml +334 -237
  183. data/config/locales/ro-RO.yml +814 -0
  184. data/config/locales/ru.yml +20 -46
  185. data/config/locales/sk-SK.yml +823 -0
  186. data/config/locales/sk.yml +806 -0
  187. data/config/locales/sl.yml +166 -0
  188. data/config/locales/so-SO.yml +1 -0
  189. data/config/locales/sr-CS.yml +590 -0
  190. data/config/locales/sv.yml +140 -55
  191. data/config/locales/ti-ER.yml +1 -0
  192. data/config/locales/tr-TR.yml +21 -47
  193. data/config/locales/uk.yml +19 -48
  194. data/config/locales/vi-VN.yml +1 -0
  195. data/config/locales/vi.yml +1 -0
  196. data/config/locales/zh-CN.yml +849 -0
  197. data/config/locales/zh-TW.yml +1 -0
  198. data/config/routes.rb +20 -3
  199. data/db/migrate/20191118112040_add_accepted_admin_terms_at_field_to_users.rb +7 -0
  200. data/lib/decidim/admin.rb +17 -0
  201. data/lib/decidim/admin/engine.rb +12 -9
  202. data/lib/decidim/admin/form_builder.rb +7 -2
  203. data/lib/decidim/admin/test.rb +2 -0
  204. data/lib/decidim/admin/test/filterable_examples.rb +129 -0
  205. data/lib/decidim/admin/test/manage_attachment_collections_examples.rb +1 -1
  206. data/lib/decidim/admin/test/manage_component_permissions_examples.rb +15 -15
  207. data/lib/decidim/admin/test/manage_paginated_collection_examples.rb +22 -0
  208. data/lib/decidim/admin/version.rb +1 -1
  209. data/vendor/assets/javascripts/jquery.serializejson.js +344 -0
  210. metadata +98 -30
  211. data/app/commands/decidim/admin/create_oauth_application.rb +0 -36
  212. data/app/commands/decidim/admin/destroy_oauth_application.rb +0 -39
  213. data/app/commands/decidim/admin/update_oauth_application.rb +0 -39
  214. data/app/controllers/decidim/admin/oauth_applications_controller.rb +0 -90
  215. data/app/forms/decidim/admin/oauth_application_form.rb +0 -32
  216. data/app/views/decidim/admin/oauth_applications/_form.html.erb +0 -19
  217. data/app/views/decidim/admin/oauth_applications/edit.html.erb +0 -13
  218. data/app/views/decidim/admin/oauth_applications/index.html.erb +0 -40
  219. data/app/views/decidim/admin/oauth_applications/new.html.erb +0 -13
  220. data/app/views/decidim/admin/oauth_applications/show.html.erb +0 -27
@@ -4,7 +4,7 @@ module Decidim
4
4
  # This holds the decidim-admin version.
5
5
  module Admin
6
6
  def self.version
7
- "0.20.1"
7
+ "0.23.1"
8
8
  end
9
9
  end
10
10
  end
@@ -0,0 +1,344 @@
1
+ /*!
2
+ SerializeJSON jQuery plugin.
3
+ https://github.com/marioizquierdo/jquery.serializeJSON
4
+ version 2.9.0 (Jan, 2018)
5
+
6
+ Copyright (c) 2012-2018 Mario Izquierdo
7
+ Dual licensed under the MIT (http://www.opensource.org/licenses/mit-license.php)
8
+ and GPL (http://www.opensource.org/licenses/gpl-license.php) licenses.
9
+ */
10
+ (function (factory) {
11
+ if (typeof define === 'function' && define.amd) { // AMD. Register as an anonymous module.
12
+ define(['jquery'], factory);
13
+ } else if (typeof exports === 'object') { // Node/CommonJS
14
+ var jQuery = require('jquery');
15
+ module.exports = factory(jQuery);
16
+ } else { // Browser globals (zepto supported)
17
+ factory(window.jQuery || window.Zepto || window.$); // Zepto supported on browsers as well
18
+ }
19
+
20
+ }(function ($) {
21
+ "use strict";
22
+
23
+ // jQuery('form').serializeJSON()
24
+ $.fn.serializeJSON = function (options) {
25
+ var f, $form, opts, formAsArray, serializedObject, name, value, parsedValue, _obj, nameWithNoType, type, keys, skipFalsy;
26
+ f = $.serializeJSON;
27
+ $form = this; // NOTE: the set of matched elements is most likely a form, but it could also be a group of inputs
28
+ opts = f.setupOpts(options); // calculate values for options {parseNumbers, parseBoolens, parseNulls, ...} with defaults
29
+
30
+ // Use native `serializeArray` function to get an array of {name, value} objects.
31
+ formAsArray = $form.serializeArray();
32
+ f.readCheckboxUncheckedValues(formAsArray, opts, $form); // add objects to the array from unchecked checkboxes if needed
33
+
34
+ // Convert the formAsArray into a serializedObject with nested keys
35
+ serializedObject = {};
36
+ $.each(formAsArray, function (i, obj) {
37
+ name = obj.name; // original input name
38
+ value = obj.value; // input value
39
+ _obj = f.extractTypeAndNameWithNoType(name);
40
+ nameWithNoType = _obj.nameWithNoType; // input name with no type (i.e. "foo:string" => "foo")
41
+ type = _obj.type; // type defined from the input name in :type colon notation
42
+ if (!type) type = f.attrFromInputWithName($form, name, 'data-value-type');
43
+ f.validateType(name, type, opts); // make sure that the type is one of the valid types if defined
44
+
45
+ if (type !== 'skip') { // ignore inputs with type 'skip'
46
+ keys = f.splitInputNameIntoKeysArray(nameWithNoType);
47
+ parsedValue = f.parseValue(value, name, type, opts); // convert to string, number, boolean, null or customType
48
+
49
+ skipFalsy = !parsedValue && f.shouldSkipFalsy($form, name, nameWithNoType, type, opts); // ignore falsy inputs if specified
50
+ if (!skipFalsy) {
51
+ f.deepSet(serializedObject, keys, parsedValue, opts);
52
+ }
53
+ }
54
+ });
55
+ return serializedObject;
56
+ };
57
+
58
+ // Use $.serializeJSON as namespace for the auxiliar functions
59
+ // and to define defaults
60
+ $.serializeJSON = {
61
+
62
+ defaultOptions: {
63
+ checkboxUncheckedValue: undefined, // to include that value for unchecked checkboxes (instead of ignoring them)
64
+
65
+ parseNumbers: false, // convert values like "1", "-2.33" to 1, -2.33
66
+ parseBooleans: false, // convert "true", "false" to true, false
67
+ parseNulls: false, // convert "null" to null
68
+ parseAll: false, // all of the above
69
+ parseWithFunction: null, // to use custom parser, a function like: function(val){ return parsed_val; }
70
+
71
+ skipFalsyValuesForTypes: [], // skip serialization of falsy values for listed value types
72
+ skipFalsyValuesForFields: [], // skip serialization of falsy values for listed field names
73
+
74
+ customTypes: {}, // override defaultTypes
75
+ defaultTypes: {
76
+ "string": function(str) { return String(str); },
77
+ "number": function(str) { return Number(str); },
78
+ "boolean": function(str) { var falses = ["false", "null", "undefined", "", "0"]; return falses.indexOf(str) === -1; },
79
+ "null": function(str) { var falses = ["false", "null", "undefined", "", "0"]; return falses.indexOf(str) === -1 ? str : null; },
80
+ "array": function(str) { return JSON.parse(str); },
81
+ "object": function(str) { return JSON.parse(str); },
82
+ "auto": function(str) { return $.serializeJSON.parseValue(str, null, null, {parseNumbers: true, parseBooleans: true, parseNulls: true}); }, // try again with something like "parseAll"
83
+ "skip": null // skip is a special type that makes it easy to ignore elements
84
+ },
85
+
86
+ useIntKeysAsArrayIndex: false // name="foo[2]" value="v" => {foo: [null, null, "v"]}, instead of {foo: ["2": "v"]}
87
+ },
88
+
89
+ // Merge option defaults into the options
90
+ setupOpts: function(options) {
91
+ var opt, validOpts, defaultOptions, optWithDefault, parseAll, f;
92
+ f = $.serializeJSON;
93
+
94
+ if (options == null) { options = {}; } // options ||= {}
95
+ defaultOptions = f.defaultOptions || {}; // defaultOptions
96
+
97
+ // Make sure that the user didn't misspell an option
98
+ validOpts = ['checkboxUncheckedValue', 'parseNumbers', 'parseBooleans', 'parseNulls', 'parseAll', 'parseWithFunction', 'skipFalsyValuesForTypes', 'skipFalsyValuesForFields', 'customTypes', 'defaultTypes', 'useIntKeysAsArrayIndex']; // re-define because the user may override the defaultOptions
99
+ for (opt in options) {
100
+ if (validOpts.indexOf(opt) === -1) {
101
+ throw new Error("serializeJSON ERROR: invalid option '" + opt + "'. Please use one of " + validOpts.join(', '));
102
+ }
103
+ }
104
+
105
+ // Helper to get the default value for this option if none is specified by the user
106
+ optWithDefault = function(key) { return (options[key] !== false) && (options[key] !== '') && (options[key] || defaultOptions[key]); };
107
+
108
+ // Return computed options (opts to be used in the rest of the script)
109
+ parseAll = optWithDefault('parseAll');
110
+ return {
111
+ checkboxUncheckedValue: optWithDefault('checkboxUncheckedValue'),
112
+
113
+ parseNumbers: parseAll || optWithDefault('parseNumbers'),
114
+ parseBooleans: parseAll || optWithDefault('parseBooleans'),
115
+ parseNulls: parseAll || optWithDefault('parseNulls'),
116
+ parseWithFunction: optWithDefault('parseWithFunction'),
117
+
118
+ skipFalsyValuesForTypes: optWithDefault('skipFalsyValuesForTypes'),
119
+ skipFalsyValuesForFields: optWithDefault('skipFalsyValuesForFields'),
120
+ typeFunctions: $.extend({}, optWithDefault('defaultTypes'), optWithDefault('customTypes')),
121
+
122
+ useIntKeysAsArrayIndex: optWithDefault('useIntKeysAsArrayIndex')
123
+ };
124
+ },
125
+
126
+ // Given a string, apply the type or the relevant "parse" options, to return the parsed value
127
+ parseValue: function(valStr, inputName, type, opts) {
128
+ var f, parsedVal;
129
+ f = $.serializeJSON;
130
+ parsedVal = valStr; // if no parsing is needed, the returned value will be the same
131
+
132
+ if (opts.typeFunctions && type && opts.typeFunctions[type]) { // use a type if available
133
+ parsedVal = opts.typeFunctions[type](valStr);
134
+ } else if (opts.parseNumbers && f.isNumeric(valStr)) { // auto: number
135
+ parsedVal = Number(valStr);
136
+ } else if (opts.parseBooleans && (valStr === "true" || valStr === "false")) { // auto: boolean
137
+ parsedVal = (valStr === "true");
138
+ } else if (opts.parseNulls && valStr == "null") { // auto: null
139
+ parsedVal = null;
140
+ } else if (opts.typeFunctions && opts.typeFunctions["string"]) { // make sure to apply :string type if it was re-defined
141
+ parsedVal = opts.typeFunctions["string"](valStr);
142
+ }
143
+
144
+ // Custom parse function: apply after parsing options, unless there's an explicit type.
145
+ if (opts.parseWithFunction && !type) {
146
+ parsedVal = opts.parseWithFunction(parsedVal, inputName);
147
+ }
148
+
149
+ return parsedVal;
150
+ },
151
+
152
+ isObject: function(obj) { return obj === Object(obj); }, // is it an Object?
153
+ isUndefined: function(obj) { return obj === void 0; }, // safe check for undefined values
154
+ isValidArrayIndex: function(val) { return /^[0-9]+$/.test(String(val)); }, // 1,2,3,4 ... are valid array indexes
155
+ isNumeric: function(obj) { return obj - parseFloat(obj) >= 0; }, // taken from jQuery.isNumeric implementation. Not using jQuery.isNumeric to support old jQuery and Zepto versions
156
+
157
+ optionKeys: function(obj) { if (Object.keys) { return Object.keys(obj); } else { var key, keys = []; for(key in obj){ keys.push(key); } return keys;} }, // polyfill Object.keys to get option keys in IE<9
158
+
159
+
160
+ // Fill the formAsArray object with values for the unchecked checkbox inputs,
161
+ // using the same format as the jquery.serializeArray function.
162
+ // The value of the unchecked values is determined from the opts.checkboxUncheckedValue
163
+ // and/or the data-unchecked-value attribute of the inputs.
164
+ readCheckboxUncheckedValues: function (formAsArray, opts, $form) {
165
+ var selector, $uncheckedCheckboxes, $el, uncheckedValue, f, name;
166
+ if (opts == null) { opts = {}; }
167
+ f = $.serializeJSON;
168
+
169
+ selector = 'input[type=checkbox][name]:not(:checked):not([disabled])';
170
+ $uncheckedCheckboxes = $form.find(selector).add($form.filter(selector));
171
+ $uncheckedCheckboxes.each(function (i, el) {
172
+ // Check data attr first, then the option
173
+ $el = $(el);
174
+ uncheckedValue = $el.attr('data-unchecked-value');
175
+ if (uncheckedValue == null) {
176
+ uncheckedValue = opts.checkboxUncheckedValue;
177
+ }
178
+
179
+ // If there's an uncheckedValue, push it into the serialized formAsArray
180
+ if (uncheckedValue != null) {
181
+ if (el.name && el.name.indexOf("[][") !== -1) { // identify a non-supported
182
+ throw new Error("serializeJSON ERROR: checkbox unchecked values are not supported on nested arrays of objects like '"+el.name+"'. See https://github.com/marioizquierdo/jquery.serializeJSON/issues/67");
183
+ }
184
+ formAsArray.push({name: el.name, value: uncheckedValue});
185
+ }
186
+ });
187
+ },
188
+
189
+ // Returns and object with properties {name_without_type, type} from a given name.
190
+ // The type is null if none specified. Example:
191
+ // "foo" => {nameWithNoType: "foo", type: null}
192
+ // "foo:boolean" => {nameWithNoType: "foo", type: "boolean"}
193
+ // "foo[bar]:null" => {nameWithNoType: "foo[bar]", type: "null"}
194
+ extractTypeAndNameWithNoType: function(name) {
195
+ var match;
196
+ if (match = name.match(/(.*):([^:]+)$/)) {
197
+ return {nameWithNoType: match[1], type: match[2]};
198
+ } else {
199
+ return {nameWithNoType: name, type: null};
200
+ }
201
+ },
202
+
203
+
204
+ // Check if this input should be skipped when it has a falsy value,
205
+ // depending on the options to skip values by name or type, and the data-skip-falsy attribute.
206
+ shouldSkipFalsy: function($form, name, nameWithNoType, type, opts) {
207
+ var f = $.serializeJSON;
208
+
209
+ var skipFromDataAttr = f.attrFromInputWithName($form, name, 'data-skip-falsy');
210
+ if (skipFromDataAttr != null) {
211
+ return skipFromDataAttr !== 'false'; // any value is true, except if explicitly using 'false'
212
+ }
213
+
214
+ var optForFields = opts.skipFalsyValuesForFields;
215
+ if (optForFields && (optForFields.indexOf(nameWithNoType) !== -1 || optForFields.indexOf(name) !== -1)) {
216
+ return true;
217
+ }
218
+
219
+ var optForTypes = opts.skipFalsyValuesForTypes;
220
+ if (type == null) type = 'string'; // assume fields with no type are targeted as string
221
+ if (optForTypes && optForTypes.indexOf(type) !== -1) {
222
+ return true
223
+ }
224
+
225
+ return false;
226
+ },
227
+
228
+ // Finds the first input in $form with this name, and get the given attr from it.
229
+ // Returns undefined if no input or no attribute was found.
230
+ attrFromInputWithName: function($form, name, attrName) {
231
+ var escapedName, selector, $input, attrValue;
232
+ escapedName = name.replace(/(:|\.|\[|\]|\s)/g,'\\$1'); // every non-standard character need to be escaped by \\
233
+ selector = '[name="' + escapedName + '"]';
234
+ $input = $form.find(selector).add($form.filter(selector)); // NOTE: this returns only the first $input element if multiple are matched with the same name (i.e. an "array[]"). So, arrays with different element types specified through the data-value-type attr is not supported.
235
+ return $input.attr(attrName);
236
+ },
237
+
238
+ // Raise an error if the type is not recognized.
239
+ validateType: function(name, type, opts) {
240
+ var validTypes, f;
241
+ f = $.serializeJSON;
242
+ validTypes = f.optionKeys(opts ? opts.typeFunctions : f.defaultOptions.defaultTypes);
243
+ if (!type || validTypes.indexOf(type) !== -1) {
244
+ return true;
245
+ } else {
246
+ throw new Error("serializeJSON ERROR: Invalid type " + type + " found in input name '" + name + "', please use one of " + validTypes.join(', '));
247
+ }
248
+ },
249
+
250
+
251
+ // Split the input name in programatically readable keys.
252
+ // Examples:
253
+ // "foo" => ['foo']
254
+ // "[foo]" => ['foo']
255
+ // "foo[inn][bar]" => ['foo', 'inn', 'bar']
256
+ // "foo[inn[bar]]" => ['foo', 'inn', 'bar']
257
+ // "foo[inn][arr][0]" => ['foo', 'inn', 'arr', '0']
258
+ // "arr[][val]" => ['arr', '', 'val']
259
+ splitInputNameIntoKeysArray: function(nameWithNoType) {
260
+ var keys, f;
261
+ f = $.serializeJSON;
262
+ keys = nameWithNoType.split('['); // split string into array
263
+ keys = $.map(keys, function (key) { return key.replace(/\]/g, ''); }); // remove closing brackets
264
+ if (keys[0] === '') { keys.shift(); } // ensure no opening bracket ("[foo][inn]" should be same as "foo[inn]")
265
+ return keys;
266
+ },
267
+
268
+ // Set a value in an object or array, using multiple keys to set in a nested object or array:
269
+ //
270
+ // deepSet(obj, ['foo'], v) // obj['foo'] = v
271
+ // deepSet(obj, ['foo', 'inn'], v) // obj['foo']['inn'] = v // Create the inner obj['foo'] object, if needed
272
+ // deepSet(obj, ['foo', 'inn', '123'], v) // obj['foo']['arr']['123'] = v //
273
+ //
274
+ // deepSet(obj, ['0'], v) // obj['0'] = v
275
+ // deepSet(arr, ['0'], v, {useIntKeysAsArrayIndex: true}) // arr[0] = v
276
+ // deepSet(arr, [''], v) // arr.push(v)
277
+ // deepSet(obj, ['arr', ''], v) // obj['arr'].push(v)
278
+ //
279
+ // arr = [];
280
+ // deepSet(arr, ['', v] // arr => [v]
281
+ // deepSet(arr, ['', 'foo'], v) // arr => [v, {foo: v}]
282
+ // deepSet(arr, ['', 'bar'], v) // arr => [v, {foo: v, bar: v}]
283
+ // deepSet(arr, ['', 'bar'], v) // arr => [v, {foo: v, bar: v}, {bar: v}]
284
+ //
285
+ deepSet: function (o, keys, value, opts) {
286
+ var key, nextKey, tail, lastIdx, lastVal, f;
287
+ if (opts == null) { opts = {}; }
288
+ f = $.serializeJSON;
289
+ if (f.isUndefined(o)) { throw new Error("ArgumentError: param 'o' expected to be an object or array, found undefined"); }
290
+ if (!keys || keys.length === 0) { throw new Error("ArgumentError: param 'keys' expected to be an array with least one element"); }
291
+
292
+ key = keys[0];
293
+
294
+ // Only one key, then it's not a deepSet, just assign the value.
295
+ if (keys.length === 1) {
296
+ if (key === '') {
297
+ o.push(value); // '' is used to push values into the array (assume o is an array)
298
+ } else {
299
+ o[key] = value; // other keys can be used as object keys or array indexes
300
+ }
301
+
302
+ // With more keys is a deepSet. Apply recursively.
303
+ } else {
304
+ nextKey = keys[1];
305
+
306
+ // '' is used to push values into the array,
307
+ // with nextKey, set the value into the same object, in object[nextKey].
308
+ // Covers the case of ['', 'foo'] and ['', 'var'] to push the object {foo, var}, and the case of nested arrays.
309
+ if (key === '') {
310
+ lastIdx = o.length - 1; // asume o is array
311
+ lastVal = o[lastIdx];
312
+ if (f.isObject(lastVal) && (f.isUndefined(lastVal[nextKey]) || keys.length > 2)) { // if nextKey is not present in the last object element, or there are more keys to deep set
313
+ key = lastIdx; // then set the new value in the same object element
314
+ } else {
315
+ key = lastIdx + 1; // otherwise, point to set the next index in the array
316
+ }
317
+ }
318
+
319
+ // '' is used to push values into the array "array[]"
320
+ if (nextKey === '') {
321
+ if (f.isUndefined(o[key]) || !$.isArray(o[key])) {
322
+ o[key] = []; // define (or override) as array to push values
323
+ }
324
+ } else {
325
+ if (opts.useIntKeysAsArrayIndex && f.isValidArrayIndex(nextKey)) { // if 1, 2, 3 ... then use an array, where nextKey is the index
326
+ if (f.isUndefined(o[key]) || !$.isArray(o[key])) {
327
+ o[key] = []; // define (or override) as array, to insert values using int keys as array indexes
328
+ }
329
+ } else { // for anything else, use an object, where nextKey is going to be the attribute name
330
+ if (f.isUndefined(o[key]) || !f.isObject(o[key])) {
331
+ o[key] = {}; // define (or override) as object, to set nested properties
332
+ }
333
+ }
334
+ }
335
+
336
+ // Recursively set the inner object
337
+ tail = keys.slice(1);
338
+ f.deepSet(o[key], tail, value, opts);
339
+ }
340
+ }
341
+
342
+ };
343
+
344
+ }));
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: decidim-admin
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.20.1
4
+ version: 0.23.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Josep Jaume Rey Peroy
@@ -10,7 +10,7 @@ authors:
10
10
  autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2020-03-27 00:00:00.000000000 Z
13
+ date: 2020-11-12 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: active_link_to
@@ -32,14 +32,14 @@ dependencies:
32
32
  requirements:
33
33
  - - '='
34
34
  - !ruby/object:Gem::Version
35
- version: 0.20.1
35
+ version: 0.23.1
36
36
  type: :runtime
37
37
  prerelease: false
38
38
  version_requirements: !ruby/object:Gem::Requirement
39
39
  requirements:
40
40
  - - '='
41
41
  - !ruby/object:Gem::Version
42
- version: 0.20.1
42
+ version: 0.23.1
43
43
  - !ruby/object:Gem::Dependency
44
44
  name: devise
45
45
  requirement: !ruby/object:Gem::Requirement
@@ -102,62 +102,56 @@ dependencies:
102
102
  requirements:
103
103
  - - "~>"
104
104
  - !ruby/object:Gem::Version
105
- version: '1.12'
106
- - - ">="
107
- - !ruby/object:Gem::Version
108
- version: 1.12.1
105
+ version: 2.3.0
109
106
  type: :runtime
110
107
  prerelease: false
111
108
  version_requirements: !ruby/object:Gem::Requirement
112
109
  requirements:
113
110
  - - "~>"
114
111
  - !ruby/object:Gem::Version
115
- version: '1.12'
116
- - - ">="
117
- - !ruby/object:Gem::Version
118
- version: 1.12.1
112
+ version: 2.3.0
119
113
  - !ruby/object:Gem::Dependency
120
114
  name: sassc-rails
121
115
  requirement: !ruby/object:Gem::Requirement
122
116
  requirements:
123
117
  - - "~>"
124
118
  - !ruby/object:Gem::Version
125
- version: '1.3'
119
+ version: 2.1.2
126
120
  type: :runtime
127
121
  prerelease: false
128
122
  version_requirements: !ruby/object:Gem::Requirement
129
123
  requirements:
130
124
  - - "~>"
131
125
  - !ruby/object:Gem::Version
132
- version: '1.3'
126
+ version: 2.1.2
133
127
  - !ruby/object:Gem::Dependency
134
128
  name: decidim-dev
135
129
  requirement: !ruby/object:Gem::Requirement
136
130
  requirements:
137
131
  - - '='
138
132
  - !ruby/object:Gem::Version
139
- version: 0.20.1
133
+ version: 0.23.1
140
134
  type: :development
141
135
  prerelease: false
142
136
  version_requirements: !ruby/object:Gem::Requirement
143
137
  requirements:
144
138
  - - '='
145
139
  - !ruby/object:Gem::Version
146
- version: 0.20.1
140
+ version: 0.23.1
147
141
  - !ruby/object:Gem::Dependency
148
142
  name: decidim-participatory_processes
149
143
  requirement: !ruby/object:Gem::Requirement
150
144
  requirements:
151
145
  - - '='
152
146
  - !ruby/object:Gem::Version
153
- version: 0.20.1
147
+ version: 0.23.1
154
148
  type: :development
155
149
  prerelease: false
156
150
  version_requirements: !ruby/object:Gem::Requirement
157
151
  requirements:
158
152
  - - '='
159
153
  - !ruby/object:Gem::Version
160
- version: 0.20.1
154
+ version: 0.23.1
161
155
  description: Organization administration to manage a single organization.
162
156
  email:
163
157
  - josepjaume@gmail.com
@@ -173,15 +167,20 @@ files:
173
167
  - app/assets/javascripts/decidim/admin/application.js.es6
174
168
  - app/assets/javascripts/decidim/admin/auto_buttons_by_position.component.js.es6
175
169
  - app/assets/javascripts/decidim/admin/auto_label_by_position.component.js.es6
170
+ - app/assets/javascripts/decidim/admin/budget_rule_toggler.component.js.es6
176
171
  - app/assets/javascripts/decidim/admin/bundle.js
177
172
  - app/assets/javascripts/decidim/admin/bundle.js.map
173
+ - app/assets/javascripts/decidim/admin/choose_language.js
178
174
  - app/assets/javascripts/decidim/admin/draggable-list.js.es6
179
175
  - app/assets/javascripts/decidim/admin/dynamic_fields.component.js.es6
180
176
  - app/assets/javascripts/decidim/admin/field_dependent_inputs.component.js.es6
181
177
  - app/assets/javascripts/decidim/admin/form.js.es6
178
+ - app/assets/javascripts/decidim/admin/gallery.js.es6
182
179
  - app/assets/javascripts/decidim/admin/managed_users.js.es6
183
180
  - app/assets/javascripts/decidim/admin/newsletters.js.es6
181
+ - app/assets/javascripts/decidim/admin/officializations.js.es6
184
182
  - app/assets/javascripts/decidim/admin/resources_permissions.js.es6
183
+ - app/assets/javascripts/decidim/admin/scope_picker_enabler.component.js.es6
185
184
  - app/assets/javascripts/decidim/admin/sort_list.component.js.es6
186
185
  - app/assets/javascripts/decidim/admin/sortable.js.es6
187
186
  - app/assets/javascripts/decidim/admin/subform_multi_toggler.component.js.es6
@@ -205,8 +204,11 @@ files:
205
204
  - app/assets/stylesheets/decidim/admin/extra/_label-required.scss
206
205
  - app/assets/stylesheets/decidim/admin/extra/_login.scss
207
206
  - app/assets/stylesheets/decidim/admin/extra/_logs.scss
207
+ - app/assets/stylesheets/decidim/admin/extra/_newsletter-templates-gallery.scss
208
+ - app/assets/stylesheets/decidim/admin/extra/_organization-appearance.scss
208
209
  - app/assets/stylesheets/decidim/admin/extra/_quill.scss
209
210
  - app/assets/stylesheets/decidim/admin/extra/_select_multiple.scss
211
+ - app/assets/stylesheets/decidim/admin/extra/_show_email.scss
210
212
  - app/assets/stylesheets/decidim/admin/extra/_sort.scss
211
213
  - app/assets/stylesheets/decidim/admin/extra/_title_bar.scss
212
214
  - app/assets/stylesheets/decidim/admin/modules/_action-icon.scss
@@ -222,7 +224,9 @@ files:
222
224
  - app/assets/stylesheets/decidim/admin/modules/_filters.scss
223
225
  - app/assets/stylesheets/decidim/admin/modules/_forms.scss
224
226
  - app/assets/stylesheets/decidim/admin/modules/_icons.scss
227
+ - app/assets/stylesheets/decidim/admin/modules/_import_result.scss
225
228
  - app/assets/stylesheets/decidim/admin/modules/_layout.scss
229
+ - app/assets/stylesheets/decidim/admin/modules/_loading-spinner.scss
226
230
  - app/assets/stylesheets/decidim/admin/modules/_main-nav.scss
227
231
  - app/assets/stylesheets/decidim/admin/modules/_modules.scss
228
232
  - app/assets/stylesheets/decidim/admin/modules/_pics.scss
@@ -233,6 +237,7 @@ files:
233
237
  - app/assets/stylesheets/decidim/admin/modules/_title-bar.scss
234
238
  - app/assets/stylesheets/decidim/admin/modules/_typography.scss
235
239
  - app/assets/stylesheets/decidim/admin/modules/_user-login.scss
240
+ - app/assets/stylesheets/decidim/admin/modules/_users_statistics.scss
236
241
  - app/assets/stylesheets/decidim/admin/plugins/_foundation-datepicker.scss
237
242
  - app/assets/stylesheets/decidim/admin/utils/_flex.scss
238
243
  - app/assets/stylesheets/decidim/admin/utils/_fontface.scss
@@ -266,6 +271,8 @@ files:
266
271
  - app/assets/stylesheets/decidim/admin/vendor/mathsass/helpers/_unitless-rad.scss
267
272
  - app/cells/decidim/admin/content_block/show.erb
268
273
  - app/cells/decidim/admin/content_block_cell.rb
274
+ - app/cells/decidim/admin/results_per_page/show.erb
275
+ - app/cells/decidim/admin/results_per_page_cell.rb
269
276
  - app/commands/decidim/admin/close_session_managed_user.rb
270
277
  - app/commands/decidim/admin/create_area.rb
271
278
  - app/commands/decidim/admin/create_area_type.rb
@@ -274,7 +281,6 @@ files:
274
281
  - app/commands/decidim/admin/create_category.rb
275
282
  - app/commands/decidim/admin/create_component.rb
276
283
  - app/commands/decidim/admin/create_newsletter.rb
277
- - app/commands/decidim/admin/create_oauth_application.rb
278
284
  - app/commands/decidim/admin/create_participatory_space_private_user.rb
279
285
  - app/commands/decidim/admin/create_scope.rb
280
286
  - app/commands/decidim/admin/create_scope_type.rb
@@ -285,9 +291,9 @@ files:
285
291
  - app/commands/decidim/admin/destroy_category.rb
286
292
  - app/commands/decidim/admin/destroy_component.rb
287
293
  - app/commands/decidim/admin/destroy_newsletter.rb
288
- - app/commands/decidim/admin/destroy_oauth_application.rb
289
294
  - app/commands/decidim/admin/destroy_participatory_space_private_user.rb
290
295
  - app/commands/decidim/admin/destroy_scope.rb
296
+ - app/commands/decidim/admin/destroy_share_token.rb
291
297
  - app/commands/decidim/admin/destroy_static_page.rb
292
298
  - app/commands/decidim/admin/destroy_static_page_topic.rb
293
299
  - app/commands/decidim/admin/hide_resource.rb
@@ -315,7 +321,6 @@ files:
315
321
  - app/commands/decidim/admin/update_content_block.rb
316
322
  - app/commands/decidim/admin/update_help_sections.rb
317
323
  - app/commands/decidim/admin/update_newsletter.rb
318
- - app/commands/decidim/admin/update_oauth_application.rb
319
324
  - app/commands/decidim/admin/update_organization.rb
320
325
  - app/commands/decidim/admin/update_organization_appearance.rb
321
326
  - app/commands/decidim/admin/update_organization_tos_version.rb
@@ -327,9 +332,13 @@ files:
327
332
  - app/commands/decidim/admin/update_user_groups.rb
328
333
  - app/commands/decidim/admin/verify_user_group.rb
329
334
  - app/constraints/decidim/admin/organization_dashboard_constraint.rb
335
+ - app/controllers/concerns/decidim/admin/filterable.rb
336
+ - app/controllers/concerns/decidim/admin/officializations/filterable.rb
337
+ - app/controllers/concerns/decidim/admin/paginable.rb
330
338
  - app/controllers/concerns/decidim/admin/participatory_space_admin_context.rb
331
339
  - app/controllers/concerns/decidim/admin/participatory_space_export.rb
332
340
  - app/controllers/concerns/decidim/admin/user_groups.rb
341
+ - app/controllers/decidim/admin/admin_terms_controller.rb
333
342
  - app/controllers/decidim/admin/application_controller.rb
334
343
  - app/controllers/decidim/admin/area_types_controller.rb
335
344
  - app/controllers/decidim/admin/areas_controller.rb
@@ -350,9 +359,10 @@ files:
350
359
  - app/controllers/decidim/admin/logs_controller.rb
351
360
  - app/controllers/decidim/admin/managed_users/impersonation_logs_controller.rb
352
361
  - app/controllers/decidim/admin/managed_users/promotions_controller.rb
362
+ - app/controllers/decidim/admin/metrics_controller.rb
353
363
  - app/controllers/decidim/admin/moderations_controller.rb
364
+ - app/controllers/decidim/admin/newsletter_templates_controller.rb
354
365
  - app/controllers/decidim/admin/newsletters_controller.rb
355
- - app/controllers/decidim/admin/oauth_applications_controller.rb
356
366
  - app/controllers/decidim/admin/officializations_controller.rb
357
367
  - app/controllers/decidim/admin/organization_appearance_controller.rb
358
368
  - app/controllers/decidim/admin/organization_controller.rb
@@ -361,6 +371,7 @@ files:
361
371
  - app/controllers/decidim/admin/resource_permissions_controller.rb
362
372
  - app/controllers/decidim/admin/scope_types_controller.rb
363
373
  - app/controllers/decidim/admin/scopes_controller.rb
374
+ - app/controllers/decidim/admin/share_tokens_controller.rb
364
375
  - app/controllers/decidim/admin/static_page_topics_controller.rb
365
376
  - app/controllers/decidim/admin/static_pages_controller.rb
366
377
  - app/controllers/decidim/admin/user_groups_controller.rb
@@ -380,7 +391,6 @@ files:
380
391
  - app/forms/decidim/admin/impersonate_user_form.rb
381
392
  - app/forms/decidim/admin/managed_user_promotion_form.rb
382
393
  - app/forms/decidim/admin/newsletter_form.rb
383
- - app/forms/decidim/admin/oauth_application_form.rb
384
394
  - app/forms/decidim/admin/officialization_form.rb
385
395
  - app/forms/decidim/admin/organization_appearance_form.rb
386
396
  - app/forms/decidim/admin/organization_form.rb
@@ -399,18 +409,25 @@ files:
399
409
  - app/frontend/components/autocomplete.component.tsx
400
410
  - app/frontend/entry.ts
401
411
  - app/frontend/entry_test.ts
412
+ - app/helpers/decidim/admin/admin_terms_helper.rb
402
413
  - app/helpers/decidim/admin/application_helper.rb
403
414
  - app/helpers/decidim/admin/areas_helper.rb
404
415
  - app/helpers/decidim/admin/attributes_display_helper.rb
405
416
  - app/helpers/decidim/admin/bulk_actions_helper.rb
417
+ - app/helpers/decidim/admin/dashboard_helper.rb
406
418
  - app/helpers/decidim/admin/exports_helper.rb
419
+ - app/helpers/decidim/admin/filterable_helper.rb
407
420
  - app/helpers/decidim/admin/icon_link_helper.rb
408
421
  - app/helpers/decidim/admin/log_render_helper.rb
409
422
  - app/helpers/decidim/admin/menu_helper.rb
410
423
  - app/helpers/decidim/admin/newsletters_helper.rb
424
+ - app/helpers/decidim/admin/paginable/per_page_helper.rb
411
425
  - app/helpers/decidim/admin/resource_permissions_helper.rb
426
+ - app/helpers/decidim/admin/resource_scope_helper.rb
412
427
  - app/helpers/decidim/admin/scopes_helper.rb
413
428
  - app/helpers/decidim/admin/settings_helper.rb
429
+ - app/helpers/decidim/admin/uploader_image_dimensions_helper.rb
430
+ - app/helpers/decidim/admin/user_roles_helper.rb
414
431
  - app/jobs/decidim/admin/application_job.rb
415
432
  - app/jobs/decidim/admin/expire_impersonation_job.rb
416
433
  - app/jobs/decidim/admin/import_participatory_space_private_user_csv_job.rb
@@ -418,11 +435,15 @@ files:
418
435
  - app/jobs/decidim/admin/newsletter_job.rb
419
436
  - app/jobs/decidim/admin/verify_user_group_from_csv_job.rb
420
437
  - app/mailers/decidim/admin/application_mailer.rb
438
+ - app/models/decidim/admin/fake_newsletter.rb
421
439
  - app/permissions/decidim/admin/permissions.rb
422
440
  - app/permissions/decidim/admin/user_manager_permissions.rb
441
+ - app/presenters/decidim/admin/dashboard_metric_charts_presenter.rb
442
+ - app/queries/decidim/admin/active_users_counter.rb
423
443
  - app/queries/decidim/admin/newsletter_recipients.rb
424
444
  - app/queries/decidim/admin/user_filter.rb
425
445
  - app/queries/decidim/admin/user_groups_evaluation.rb
446
+ - app/views/decidim/admin/admin_terms/show.html.erb
426
447
  - app/views/decidim/admin/area_types/_form.html.erb
427
448
  - app/views/decidim/admin/area_types/edit.html.erb
428
449
  - app/views/decidim/admin/area_types/index.html.erb
@@ -469,25 +490,29 @@ files:
469
490
  - app/views/decidim/admin/managed_users/impersonation_logs/index.html.erb
470
491
  - app/views/decidim/admin/managed_users/promotions/_form.html.erb
471
492
  - app/views/decidim/admin/managed_users/promotions/new.html.erb
493
+ - app/views/decidim/admin/metrics/_metrics.html.erb
494
+ - app/views/decidim/admin/metrics/index.html.erb
472
495
  - app/views/decidim/admin/moderations/_report.html.erb
473
496
  - app/views/decidim/admin/moderations/index.html.erb
497
+ - app/views/decidim/admin/newsletter_templates/index.html.erb
498
+ - app/views/decidim/admin/newsletter_templates/show.html.erb
474
499
  - app/views/decidim/admin/newsletters/_form.html.erb
475
500
  - app/views/decidim/admin/newsletters/edit.html.erb
476
501
  - app/views/decidim/admin/newsletters/index.html.erb
477
502
  - app/views/decidim/admin/newsletters/new.html.erb
478
503
  - app/views/decidim/admin/newsletters/select_recipients_to_deliver.html.erb
479
504
  - app/views/decidim/admin/newsletters/show.html.erb
480
- - app/views/decidim/admin/oauth_applications/_form.html.erb
481
- - app/views/decidim/admin/oauth_applications/edit.html.erb
482
- - app/views/decidim/admin/oauth_applications/index.html.erb
483
- - app/views/decidim/admin/oauth_applications/new.html.erb
484
- - app/views/decidim/admin/oauth_applications/show.html.erb
505
+ - app/views/decidim/admin/officializations/_show_email_modal.html.erb
485
506
  - app/views/decidim/admin/officializations/index.html.erb
486
507
  - app/views/decidim/admin/officializations/new.html.erb
508
+ - app/views/decidim/admin/officializations/show_email.html.erb
487
509
  - app/views/decidim/admin/organization/_form.html.erb
488
510
  - app/views/decidim/admin/organization/edit.html.erb
489
511
  - app/views/decidim/admin/organization_appearance/_form.html.erb
490
512
  - app/views/decidim/admin/organization_appearance/edit.html.erb
513
+ - app/views/decidim/admin/organization_appearance/form/_colors.html.erb
514
+ - app/views/decidim/admin/organization_appearance/form/_images.html.erb
515
+ - app/views/decidim/admin/organization_appearance/form/_minimap.html.erb
491
516
  - app/views/decidim/admin/organization_homepage/edit.html.erb
492
517
  - app/views/decidim/admin/organization_homepage_content_blocks/edit.html.erb
493
518
  - app/views/decidim/admin/participatory_space_private_users/_form.html.erb
@@ -504,6 +529,9 @@ files:
504
529
  - app/views/decidim/admin/scopes/edit.html.erb
505
530
  - app/views/decidim/admin/scopes/index.html.erb
506
531
  - app/views/decidim/admin/scopes/new.html.erb
532
+ - app/views/decidim/admin/share_tokens/_share_tokens.html.erb
533
+ - app/views/decidim/admin/shared/_filters.html.erb
534
+ - app/views/decidim/admin/shared/_gallery.html.erb
507
535
  - app/views/decidim/admin/static_page_topics/_form.html.erb
508
536
  - app/views/decidim/admin/static_page_topics/edit.html.erb
509
537
  - app/views/decidim/admin/static_page_topics/new.html.erb
@@ -519,6 +547,7 @@ files:
519
547
  - app/views/decidim/admin/users/_form.html.erb
520
548
  - app/views/decidim/admin/users/index.html.erb
521
549
  - app/views/decidim/admin/users/new.html.erb
550
+ - app/views/decidim/admin/users_statistics/_users_count.html.erb
522
551
  - app/views/layouts/decidim/admin/_application.html.erb
523
552
  - app/views/layouts/decidim/admin/_callouts_full.html.erb
524
553
  - app/views/layouts/decidim/admin/_header.html.erb
@@ -531,42 +560,78 @@ files:
531
560
  - app/views/layouts/decidim/admin/pages.html.erb
532
561
  - app/views/layouts/decidim/admin/settings.html.erb
533
562
  - app/views/layouts/decidim/admin/users.html.erb
563
+ - config/locales/am-ET.yml
534
564
  - config/locales/ar-SA.yml
535
565
  - config/locales/ar.yml
566
+ - config/locales/bg-BG.yml
567
+ - config/locales/bg.yml
536
568
  - config/locales/ca.yml
537
569
  - config/locales/cs-CZ.yml
538
570
  - config/locales/cs.yml
571
+ - config/locales/da-DK.yml
572
+ - config/locales/da.yml
539
573
  - config/locales/de.yml
540
574
  - config/locales/el-GR.yml
575
+ - config/locales/el.yml
541
576
  - config/locales/en.yml
542
577
  - config/locales/eo-UY.yml
578
+ - config/locales/eo.yml
543
579
  - config/locales/es-MX.yml
544
580
  - config/locales/es-PY.yml
545
581
  - config/locales/es.yml
582
+ - config/locales/et-EE.yml
583
+ - config/locales/et.yml
546
584
  - config/locales/eu.yml
547
585
  - config/locales/fi-pl.yml
548
586
  - config/locales/fi-plain.yml
549
587
  - config/locales/fi.yml
588
+ - config/locales/fr-CA.yml
550
589
  - config/locales/fr.yml
590
+ - config/locales/ga-IE.yml
551
591
  - config/locales/gl.yml
592
+ - config/locales/hr-HR.yml
593
+ - config/locales/hr.yml
552
594
  - config/locales/hu.yml
553
595
  - config/locales/id-ID.yml
554
596
  - config/locales/is-IS.yml
597
+ - config/locales/is.yml
555
598
  - config/locales/it.yml
599
+ - config/locales/ja-JP.yml
600
+ - config/locales/ja.yml
601
+ - config/locales/ko-KR.yml
602
+ - config/locales/ko.yml
603
+ - config/locales/lt-LT.yml
604
+ - config/locales/lt.yml
605
+ - config/locales/lv.yml
606
+ - config/locales/mt-MT.yml
607
+ - config/locales/mt.yml
556
608
  - config/locales/nl.yml
557
609
  - config/locales/no.yml
610
+ - config/locales/om-ET.yml
558
611
  - config/locales/pl.yml
559
612
  - config/locales/pt-BR.yml
560
613
  - config/locales/pt.yml
614
+ - config/locales/ro-RO.yml
561
615
  - config/locales/ru.yml
616
+ - config/locales/sk-SK.yml
617
+ - config/locales/sk.yml
618
+ - config/locales/sl.yml
619
+ - config/locales/so-SO.yml
620
+ - config/locales/sr-CS.yml
562
621
  - config/locales/sv.yml
622
+ - config/locales/ti-ER.yml
563
623
  - config/locales/tr-TR.yml
564
624
  - config/locales/uk.yml
625
+ - config/locales/vi-VN.yml
626
+ - config/locales/vi.yml
627
+ - config/locales/zh-CN.yml
628
+ - config/locales/zh-TW.yml
565
629
  - config/routes.rb
566
630
  - db/migrate/20161102144648_add_admin_participatory_process_user_roles.rb
567
631
  - db/migrate/20170714083651_rename_participatory_process_user_roles_table.rb
568
632
  - db/migrate/20171219154507_add_officialization_to_users.rb
569
633
  - db/migrate/20180413233318_add_reason_to_decidim_impersonation_logs.rb
634
+ - db/migrate/20191118112040_add_accepted_admin_terms_at_field_to_users.rb
570
635
  - lib/decidim/admin.rb
571
636
  - lib/decidim/admin/components.rb
572
637
  - lib/decidim/admin/engine.rb
@@ -577,6 +642,7 @@ files:
577
642
  - lib/decidim/admin/test/commands/destroy_category_examples.rb
578
643
  - lib/decidim/admin/test/commands/update_attachment_collection_examples.rb
579
644
  - lib/decidim/admin/test/commands/update_category_examples.rb
645
+ - lib/decidim/admin/test/filterable_examples.rb
580
646
  - lib/decidim/admin/test/forms/attachment_collection_form_examples.rb
581
647
  - lib/decidim/admin/test/forms/attachment_form_examples.rb
582
648
  - lib/decidim/admin/test/forms/category_form_examples.rb
@@ -585,9 +651,11 @@ files:
585
651
  - lib/decidim/admin/test/manage_categories_examples.rb
586
652
  - lib/decidim/admin/test/manage_component_permissions_examples.rb
587
653
  - lib/decidim/admin/test/manage_moderations_examples.rb
654
+ - lib/decidim/admin/test/manage_paginated_collection_examples.rb
588
655
  - lib/decidim/admin/version.rb
589
656
  - vendor/assets/javascripts/html.sortable.js
590
657
  - vendor/assets/javascripts/jquery.auto-complete.js
658
+ - vendor/assets/javascripts/jquery.serializejson.js
591
659
  - vendor/assets/javascripts/moment.min.js
592
660
  - vendor/assets/stylesheets/plugins/jquery.auto-complete.css
593
661
  homepage: https://github.com/decidim/decidim
@@ -602,14 +670,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
602
670
  requirements:
603
671
  - - ">="
604
672
  - !ruby/object:Gem::Version
605
- version: '2.5'
673
+ version: '2.6'
606
674
  required_rubygems_version: !ruby/object:Gem::Requirement
607
675
  requirements:
608
676
  - - ">="
609
677
  - !ruby/object:Gem::Version
610
678
  version: '0'
611
679
  requirements: []
612
- rubygems_version: 3.1.2
680
+ rubygems_version: 3.0.3
613
681
  signing_key:
614
682
  specification_version: 4
615
683
  summary: Decidim organization administration