decidim-admin 0.20.1 → 0.23.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

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