decidim-admin 0.20.0 → 0.23.1.rc1

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 (221) 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 +57 -49
  138. data/config/locales/bg-BG.yml +16 -0
  139. data/config/locales/bg.yml +135 -0
  140. data/config/locales/ca.yml +130 -50
  141. data/config/locales/cs.yml +184 -104
  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-GR.yml +1 -0
  146. data/config/locales/el.yml +819 -0
  147. data/config/locales/en.yml +127 -48
  148. data/config/locales/eo-UY.yml +0 -1
  149. data/config/locales/eo.yml +51 -0
  150. data/config/locales/es-MX.yml +128 -48
  151. data/config/locales/es-PY.yml +128 -48
  152. data/config/locales/es.yml +128 -48
  153. data/config/locales/et-EE.yml +1 -0
  154. data/config/locales/et.yml +1 -0
  155. data/config/locales/eu.yml +21 -47
  156. data/config/locales/fi-plain.yml +128 -48
  157. data/config/locales/fi.yml +141 -61
  158. data/config/locales/fr-CA.yml +849 -0
  159. data/config/locales/fr.yml +128 -48
  160. data/config/locales/ga-IE.yml +1 -0
  161. data/config/locales/gl.yml +21 -47
  162. data/config/locales/hr-HR.yml +1 -0
  163. data/config/locales/hr.yml +1 -0
  164. data/config/locales/hu.yml +112 -59
  165. data/config/locales/id-ID.yml +21 -47
  166. data/config/locales/is-IS.yml +534 -0
  167. data/config/locales/is.yml +568 -0
  168. data/config/locales/it.yml +133 -83
  169. data/config/locales/ja-JP.yml +855 -0
  170. data/config/locales/ja.yml +849 -0
  171. data/config/locales/ko-KR.yml +1 -0
  172. data/config/locales/ko.yml +1 -0
  173. data/config/locales/lt-LT.yml +1 -0
  174. data/config/locales/lt.yml +1 -0
  175. data/config/locales/lv.yml +799 -0
  176. data/config/locales/mt-MT.yml +1 -0
  177. data/config/locales/mt.yml +1 -0
  178. data/config/locales/nl.yml +103 -48
  179. data/config/locales/no.yml +603 -32
  180. data/config/locales/om-ET.yml +1 -0
  181. data/config/locales/pl.yml +364 -238
  182. data/config/locales/pt-BR.yml +22 -48
  183. data/config/locales/pt.yml +334 -237
  184. data/config/locales/ro-RO.yml +814 -0
  185. data/config/locales/ru.yml +20 -46
  186. data/config/locales/sk-SK.yml +823 -0
  187. data/config/locales/sk.yml +806 -0
  188. data/config/locales/sl.yml +166 -0
  189. data/config/locales/so-SO.yml +1 -0
  190. data/config/locales/sr-CS.yml +590 -0
  191. data/config/locales/sv.yml +134 -55
  192. data/config/locales/ti-ER.yml +1 -0
  193. data/config/locales/tr-TR.yml +21 -47
  194. data/config/locales/uk.yml +19 -48
  195. data/config/locales/vi-VN.yml +1 -0
  196. data/config/locales/vi.yml +1 -0
  197. data/config/locales/zh-CN.yml +849 -0
  198. data/config/locales/zh-TW.yml +1 -0
  199. data/config/routes.rb +20 -3
  200. data/db/migrate/20191118112040_add_accepted_admin_terms_at_field_to_users.rb +7 -0
  201. data/lib/decidim/admin.rb +17 -0
  202. data/lib/decidim/admin/engine.rb +12 -9
  203. data/lib/decidim/admin/form_builder.rb +7 -2
  204. data/lib/decidim/admin/test.rb +2 -0
  205. data/lib/decidim/admin/test/filterable_examples.rb +129 -0
  206. data/lib/decidim/admin/test/manage_attachment_collections_examples.rb +1 -1
  207. data/lib/decidim/admin/test/manage_component_permissions_examples.rb +15 -15
  208. data/lib/decidim/admin/test/manage_paginated_collection_examples.rb +22 -0
  209. data/lib/decidim/admin/version.rb +1 -1
  210. data/vendor/assets/javascripts/jquery.serializejson.js +344 -0
  211. metadata +101 -31
  212. data/app/commands/decidim/admin/create_oauth_application.rb +0 -36
  213. data/app/commands/decidim/admin/destroy_oauth_application.rb +0 -39
  214. data/app/commands/decidim/admin/update_oauth_application.rb +0 -39
  215. data/app/controllers/decidim/admin/oauth_applications_controller.rb +0 -90
  216. data/app/forms/decidim/admin/oauth_application_form.rb +0 -32
  217. data/app/views/decidim/admin/oauth_applications/_form.html.erb +0 -19
  218. data/app/views/decidim/admin/oauth_applications/edit.html.erb +0 -13
  219. data/app/views/decidim/admin/oauth_applications/index.html.erb +0 -40
  220. data/app/views/decidim/admin/oauth_applications/new.html.erb +0 -13
  221. 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.0"
7
+ "0.23.1.rc1"
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.0
4
+ version: 0.23.1.rc1
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-01-08 00:00:00.000000000 Z
13
+ date: 2020-11-06 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.0
35
+ version: 0.23.1.rc1
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.0
42
+ version: 0.23.1.rc1
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.0
133
+ version: 0.23.1.rc1
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.0
140
+ version: 0.23.1.rc1
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.0
147
+ version: 0.23.1.rc1
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.0
154
+ version: 0.23.1.rc1
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,40 +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
574
+ - config/locales/el-GR.yml
575
+ - config/locales/el.yml
540
576
  - config/locales/en.yml
541
577
  - config/locales/eo-UY.yml
578
+ - config/locales/eo.yml
542
579
  - config/locales/es-MX.yml
543
580
  - config/locales/es-PY.yml
544
581
  - config/locales/es.yml
582
+ - config/locales/et-EE.yml
583
+ - config/locales/et.yml
545
584
  - config/locales/eu.yml
546
585
  - config/locales/fi-pl.yml
547
586
  - config/locales/fi-plain.yml
548
587
  - config/locales/fi.yml
588
+ - config/locales/fr-CA.yml
549
589
  - config/locales/fr.yml
590
+ - config/locales/ga-IE.yml
550
591
  - config/locales/gl.yml
592
+ - config/locales/hr-HR.yml
593
+ - config/locales/hr.yml
551
594
  - config/locales/hu.yml
552
595
  - config/locales/id-ID.yml
596
+ - config/locales/is-IS.yml
597
+ - config/locales/is.yml
553
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
554
608
  - config/locales/nl.yml
555
609
  - config/locales/no.yml
610
+ - config/locales/om-ET.yml
556
611
  - config/locales/pl.yml
557
612
  - config/locales/pt-BR.yml
558
613
  - config/locales/pt.yml
614
+ - config/locales/ro-RO.yml
559
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
560
621
  - config/locales/sv.yml
622
+ - config/locales/ti-ER.yml
561
623
  - config/locales/tr-TR.yml
562
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
563
629
  - config/routes.rb
564
630
  - db/migrate/20161102144648_add_admin_participatory_process_user_roles.rb
565
631
  - db/migrate/20170714083651_rename_participatory_process_user_roles_table.rb
566
632
  - db/migrate/20171219154507_add_officialization_to_users.rb
567
633
  - db/migrate/20180413233318_add_reason_to_decidim_impersonation_logs.rb
634
+ - db/migrate/20191118112040_add_accepted_admin_terms_at_field_to_users.rb
568
635
  - lib/decidim/admin.rb
569
636
  - lib/decidim/admin/components.rb
570
637
  - lib/decidim/admin/engine.rb
@@ -575,6 +642,7 @@ files:
575
642
  - lib/decidim/admin/test/commands/destroy_category_examples.rb
576
643
  - lib/decidim/admin/test/commands/update_attachment_collection_examples.rb
577
644
  - lib/decidim/admin/test/commands/update_category_examples.rb
645
+ - lib/decidim/admin/test/filterable_examples.rb
578
646
  - lib/decidim/admin/test/forms/attachment_collection_form_examples.rb
579
647
  - lib/decidim/admin/test/forms/attachment_form_examples.rb
580
648
  - lib/decidim/admin/test/forms/category_form_examples.rb
@@ -583,9 +651,11 @@ files:
583
651
  - lib/decidim/admin/test/manage_categories_examples.rb
584
652
  - lib/decidim/admin/test/manage_component_permissions_examples.rb
585
653
  - lib/decidim/admin/test/manage_moderations_examples.rb
654
+ - lib/decidim/admin/test/manage_paginated_collection_examples.rb
586
655
  - lib/decidim/admin/version.rb
587
656
  - vendor/assets/javascripts/html.sortable.js
588
657
  - vendor/assets/javascripts/jquery.auto-complete.js
658
+ - vendor/assets/javascripts/jquery.serializejson.js
589
659
  - vendor/assets/javascripts/moment.min.js
590
660
  - vendor/assets/stylesheets/plugins/jquery.auto-complete.css
591
661
  homepage: https://github.com/decidim/decidim
@@ -600,12 +670,12 @@ required_ruby_version: !ruby/object:Gem::Requirement
600
670
  requirements:
601
671
  - - ">="
602
672
  - !ruby/object:Gem::Version
603
- version: '2.5'
673
+ version: '2.6'
604
674
  required_rubygems_version: !ruby/object:Gem::Requirement
605
675
  requirements:
606
- - - ">="
676
+ - - ">"
607
677
  - !ruby/object:Gem::Version
608
- version: '0'
678
+ version: 1.3.1
609
679
  requirements: []
610
680
  rubygems_version: 3.0.3
611
681
  signing_key: