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.
- checksums.yaml +4 -4
- data/README.md +13 -0
- data/app/assets/javascripts/decidim/admin/application.js.es6 +8 -0
- data/app/assets/javascripts/decidim/admin/budget_rule_toggler.component.js.es6 +52 -0
- data/app/assets/javascripts/decidim/admin/bundle.js +26 -32
- data/app/assets/javascripts/decidim/admin/bundle.js.map +1 -1
- data/app/assets/javascripts/decidim/admin/choose_language.js +12 -0
- data/app/assets/javascripts/decidim/admin/dynamic_fields.component.js.es6 +24 -5
- data/app/assets/javascripts/decidim/admin/form.js.es6 +24 -10
- data/app/assets/javascripts/decidim/admin/gallery.js.es6 +5 -0
- data/app/assets/javascripts/decidim/admin/newsletters.js.es6 +12 -0
- data/app/assets/javascripts/decidim/admin/officializations.js.es6 +20 -0
- data/app/assets/javascripts/decidim/admin/scope_picker_enabler.component.js.es6 +14 -0
- data/app/assets/stylesheets/decidim/admin/_decidim.scss +2 -0
- data/app/assets/stylesheets/decidim/admin/_variables.scss +2 -2
- data/app/assets/stylesheets/decidim/admin/extra/_action-icon.scss +6 -0
- data/app/assets/stylesheets/decidim/admin/extra/_cards.scss +11 -0
- data/app/assets/stylesheets/decidim/admin/extra/_newsletter-templates-gallery.scss +3 -0
- data/app/assets/stylesheets/decidim/admin/extra/_organization-appearance.scss +141 -0
- data/app/assets/stylesheets/decidim/admin/extra/_show_email.scss +31 -0
- data/app/assets/stylesheets/decidim/admin/extra/_title_bar.scss +4 -0
- data/app/assets/stylesheets/decidim/admin/modules/_buttons.scss +15 -1
- data/app/assets/stylesheets/decidim/admin/modules/_callouts.scss +11 -0
- data/app/assets/stylesheets/decidim/admin/modules/_cards.scss +13 -2
- data/app/assets/stylesheets/decidim/admin/modules/_filters.scss +78 -1
- data/app/assets/stylesheets/decidim/admin/modules/_forms.scss +16 -2
- data/app/assets/stylesheets/decidim/admin/modules/_import_result.scss +10 -0
- data/app/assets/stylesheets/decidim/admin/modules/_layout.scss +1 -1
- data/app/assets/stylesheets/decidim/admin/modules/_loading-spinner.scss +19 -0
- data/app/assets/stylesheets/decidim/admin/modules/_main-nav.scss +0 -1
- data/app/assets/stylesheets/decidim/admin/modules/_modules.scss +5 -1
- data/app/assets/stylesheets/decidim/admin/modules/_process-header.scss +0 -1
- data/app/assets/stylesheets/decidim/admin/modules/_secondary-nav.scss +5 -2
- data/app/assets/stylesheets/decidim/admin/modules/_table-list.scss +23 -7
- data/app/assets/stylesheets/decidim/admin/modules/_tabs.scss +7 -0
- data/app/assets/stylesheets/decidim/admin/modules/_users_statistics.scss +18 -0
- data/app/assets/stylesheets/decidim/admin/utils/_mixins.scss +42 -0
- data/app/assets/stylesheets/decidim/admin/utils/_settings.scss +4 -1
- data/app/cells/decidim/admin/content_block/show.erb +2 -2
- data/app/cells/decidim/admin/results_per_page/show.erb +16 -0
- data/app/cells/decidim/admin/results_per_page_cell.rb +14 -0
- data/app/commands/decidim/admin/create_attachment.rb +2 -2
- data/app/commands/decidim/admin/create_newsletter.rb +34 -9
- data/app/commands/decidim/admin/deliver_newsletter.rb +1 -1
- data/app/commands/decidim/admin/destroy_share_token.rb +46 -0
- data/app/commands/decidim/admin/reorder_content_blocks.rb +1 -1
- data/app/commands/decidim/admin/update_component.rb +27 -3
- data/app/commands/decidim/admin/update_content_block.rb +25 -1
- data/app/commands/decidim/admin/update_newsletter.rb +31 -9
- data/app/commands/decidim/admin/update_organization.rb +15 -1
- data/app/commands/decidim/admin/update_organization_appearance.rb +3 -1
- data/app/controllers/concerns/decidim/admin/filterable.rb +152 -0
- data/app/controllers/concerns/decidim/admin/officializations/filterable.rb +31 -0
- data/app/controllers/concerns/decidim/admin/paginable.rb +20 -0
- data/app/controllers/concerns/decidim/admin/participatory_space_export.rb +8 -2
- data/app/controllers/decidim/admin/admin_terms_controller.rb +20 -0
- data/app/controllers/decidim/admin/application_controller.rb +3 -0
- data/app/controllers/decidim/admin/authorization_workflows_controller.rb +6 -0
- data/app/controllers/decidim/admin/components/base_controller.rb +5 -1
- data/app/controllers/decidim/admin/components_controller.rb +30 -23
- data/app/controllers/decidim/admin/concerns/has_private_users.rb +4 -0
- data/app/controllers/decidim/admin/dashboard_controller.rb +33 -1
- data/app/controllers/decidim/admin/metrics_controller.rb +22 -0
- data/app/controllers/decidim/admin/newsletter_templates_controller.rb +41 -0
- data/app/controllers/decidim/admin/newsletters_controller.rb +43 -4
- data/app/controllers/decidim/admin/officializations_controller.rb +15 -6
- data/app/controllers/decidim/admin/organization_appearance_controller.rb +1 -0
- data/app/controllers/decidim/admin/organization_controller.rb +4 -3
- data/app/controllers/decidim/admin/organization_homepage_content_blocks_controller.rb +2 -1
- data/app/controllers/decidim/admin/share_tokens_controller.rb +30 -0
- data/app/forms/decidim/admin/attachment_form.rb +3 -0
- data/app/forms/decidim/admin/component_form.rb +5 -22
- data/app/forms/decidim/admin/newsletter_form.rb +15 -3
- data/app/forms/decidim/admin/organization_appearance_form.rb +7 -4
- data/app/forms/decidim/admin/organization_form.rb +27 -0
- data/app/forms/decidim/admin/participatory_space_private_user_csv_import_form.rb +14 -0
- data/app/forms/decidim/admin/participatory_space_private_user_form.rb +8 -2
- data/app/frontend/components/autocomplete.component.test.tsx +2 -1
- data/app/frontend/components/autocomplete.component.tsx +29 -0
- data/app/helpers/decidim/admin/admin_terms_helper.rb +47 -0
- data/app/helpers/decidim/admin/application_helper.rb +2 -0
- data/app/helpers/decidim/admin/dashboard_helper.rb +25 -0
- data/app/helpers/decidim/admin/filterable_helper.rb +129 -0
- data/app/helpers/decidim/admin/icon_link_helper.rb +1 -1
- data/app/helpers/decidim/admin/newsletters_helper.rb +20 -0
- data/app/helpers/decidim/admin/paginable/per_page_helper.rb +22 -0
- data/app/helpers/decidim/admin/resource_scope_helper.rb +43 -0
- data/app/helpers/decidim/admin/scopes_helper.rb +6 -0
- data/app/helpers/decidim/admin/settings_helper.rb +56 -47
- data/app/helpers/decidim/admin/uploader_image_dimensions_helper.rb +30 -0
- data/app/helpers/decidim/admin/user_roles_helper.rb +19 -0
- data/app/models/decidim/admin/fake_newsletter.rb +49 -0
- data/app/permissions/decidim/admin/permissions.rb +30 -7
- data/app/presenters/decidim/admin/dashboard_metric_charts_presenter.rb +57 -0
- data/app/queries/decidim/admin/active_users_counter.rb +35 -0
- data/app/queries/decidim/admin/newsletter_recipients.rb +20 -9
- data/app/views/decidim/admin/admin_terms/show.html.erb +26 -0
- data/app/views/decidim/admin/attachment_collections/index.html.erb +1 -1
- data/app/views/decidim/admin/authorization_workflows/index.html.erb +1 -0
- data/app/views/decidim/admin/categories/index.html.erb +1 -1
- data/app/views/decidim/admin/components/_component.html.erb +40 -33
- data/app/views/decidim/admin/components/_form.html.erb +4 -0
- data/app/views/decidim/admin/components/_settings_fields.html.erb +2 -2
- data/app/views/decidim/admin/components/index.html.erb +11 -8
- data/app/views/decidim/admin/dashboard/show.html.erb +49 -9
- data/app/views/decidim/admin/exports/_dropdown.html.erb +6 -2
- data/app/views/decidim/admin/impersonatable_users/index.html.erb +2 -2
- data/app/views/decidim/admin/metrics/_metrics.html.erb +21 -0
- data/app/views/decidim/admin/metrics/index.html.erb +7 -0
- data/app/views/decidim/admin/newsletter_templates/index.html.erb +28 -0
- data/app/views/decidim/admin/newsletter_templates/show.html.erb +12 -0
- data/app/views/decidim/admin/newsletters/_form.html.erb +1 -7
- data/app/views/decidim/admin/newsletters/edit.html.erb +1 -1
- data/app/views/decidim/admin/newsletters/index.html.erb +9 -3
- data/app/views/decidim/admin/newsletters/new.html.erb +1 -1
- data/app/views/decidim/admin/newsletters/select_recipients_to_deliver.html.erb +4 -4
- data/app/views/decidim/admin/officializations/_show_email_modal.html.erb +31 -0
- data/app/views/decidim/admin/officializations/index.html.erb +9 -41
- data/app/views/decidim/admin/officializations/show_email.html.erb +2 -0
- data/app/views/decidim/admin/organization/_form.html.erb +37 -0
- data/app/views/decidim/admin/organization_appearance/_form.html.erb +2 -72
- data/app/views/decidim/admin/organization_appearance/form/_colors.html.erb +23 -0
- data/app/views/decidim/admin/organization_appearance/form/_images.html.erb +38 -0
- data/app/views/decidim/admin/organization_appearance/form/_minimap.html.erb +46 -0
- data/app/views/decidim/admin/resource_permissions/_options_form.html.erb +1 -1
- data/app/views/decidim/admin/share_tokens/_share_tokens.html.erb +57 -0
- data/app/views/decidim/admin/shared/_filters.html.erb +40 -0
- data/app/views/decidim/admin/shared/_gallery.html.erb +21 -0
- data/app/views/decidim/admin/static_pages/_form.html.erb +1 -1
- data/app/views/decidim/admin/user_groups/index.html.erb +4 -4
- data/app/views/decidim/admin/users_statistics/_users_count.html.erb +39 -0
- data/app/views/layouts/decidim/admin/_application.html.erb +2 -1
- data/app/views/layouts/decidim/admin/_header.html.erb +3 -0
- data/app/views/layouts/decidim/admin/_title_bar.html.erb +20 -10
- data/app/views/layouts/decidim/admin/newsletters.erb +1 -1
- data/config/locales/am-ET.yml +1 -0
- data/config/locales/ar.yml +57 -49
- data/config/locales/bg-BG.yml +16 -0
- data/config/locales/bg.yml +135 -0
- data/config/locales/ca.yml +130 -50
- data/config/locales/cs.yml +184 -104
- data/config/locales/da-DK.yml +1 -0
- data/config/locales/da.yml +1 -0
- data/config/locales/de.yml +145 -47
- data/config/locales/el-GR.yml +1 -0
- data/config/locales/el.yml +819 -0
- data/config/locales/en.yml +127 -48
- data/config/locales/eo-UY.yml +0 -1
- data/config/locales/eo.yml +51 -0
- data/config/locales/es-MX.yml +128 -48
- data/config/locales/es-PY.yml +128 -48
- data/config/locales/es.yml +128 -48
- data/config/locales/et-EE.yml +1 -0
- data/config/locales/et.yml +1 -0
- data/config/locales/eu.yml +21 -47
- data/config/locales/fi-plain.yml +128 -48
- data/config/locales/fi.yml +141 -61
- data/config/locales/fr-CA.yml +849 -0
- data/config/locales/fr.yml +128 -48
- data/config/locales/ga-IE.yml +1 -0
- data/config/locales/gl.yml +21 -47
- data/config/locales/hr-HR.yml +1 -0
- data/config/locales/hr.yml +1 -0
- data/config/locales/hu.yml +112 -59
- data/config/locales/id-ID.yml +21 -47
- data/config/locales/is-IS.yml +534 -0
- data/config/locales/is.yml +568 -0
- data/config/locales/it.yml +133 -83
- data/config/locales/ja-JP.yml +855 -0
- data/config/locales/ja.yml +849 -0
- data/config/locales/ko-KR.yml +1 -0
- data/config/locales/ko.yml +1 -0
- data/config/locales/lt-LT.yml +1 -0
- data/config/locales/lt.yml +1 -0
- data/config/locales/lv.yml +799 -0
- data/config/locales/mt-MT.yml +1 -0
- data/config/locales/mt.yml +1 -0
- data/config/locales/nl.yml +103 -48
- data/config/locales/no.yml +603 -32
- data/config/locales/om-ET.yml +1 -0
- data/config/locales/pl.yml +364 -238
- data/config/locales/pt-BR.yml +22 -48
- data/config/locales/pt.yml +334 -237
- data/config/locales/ro-RO.yml +814 -0
- data/config/locales/ru.yml +20 -46
- data/config/locales/sk-SK.yml +823 -0
- data/config/locales/sk.yml +806 -0
- data/config/locales/sl.yml +166 -0
- data/config/locales/so-SO.yml +1 -0
- data/config/locales/sr-CS.yml +590 -0
- data/config/locales/sv.yml +134 -55
- data/config/locales/ti-ER.yml +1 -0
- data/config/locales/tr-TR.yml +21 -47
- data/config/locales/uk.yml +19 -48
- data/config/locales/vi-VN.yml +1 -0
- data/config/locales/vi.yml +1 -0
- data/config/locales/zh-CN.yml +849 -0
- data/config/locales/zh-TW.yml +1 -0
- data/config/routes.rb +20 -3
- data/db/migrate/20191118112040_add_accepted_admin_terms_at_field_to_users.rb +7 -0
- data/lib/decidim/admin.rb +17 -0
- data/lib/decidim/admin/engine.rb +12 -9
- data/lib/decidim/admin/form_builder.rb +7 -2
- data/lib/decidim/admin/test.rb +2 -0
- data/lib/decidim/admin/test/filterable_examples.rb +129 -0
- data/lib/decidim/admin/test/manage_attachment_collections_examples.rb +1 -1
- data/lib/decidim/admin/test/manage_component_permissions_examples.rb +15 -15
- data/lib/decidim/admin/test/manage_paginated_collection_examples.rb +22 -0
- data/lib/decidim/admin/version.rb +1 -1
- data/vendor/assets/javascripts/jquery.serializejson.js +344 -0
- metadata +101 -31
- data/app/commands/decidim/admin/create_oauth_application.rb +0 -36
- data/app/commands/decidim/admin/destroy_oauth_application.rb +0 -39
- data/app/commands/decidim/admin/update_oauth_application.rb +0 -39
- data/app/controllers/decidim/admin/oauth_applications_controller.rb +0 -90
- data/app/forms/decidim/admin/oauth_application_form.rb +0 -32
- data/app/views/decidim/admin/oauth_applications/_form.html.erb +0 -19
- data/app/views/decidim/admin/oauth_applications/edit.html.erb +0 -13
- data/app/views/decidim/admin/oauth_applications/index.html.erb +0 -40
- data/app/views/decidim/admin/oauth_applications/new.html.erb +0 -13
- data/app/views/decidim/admin/oauth_applications/show.html.erb +0 -27
@@ -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.
|
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-
|
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.
|
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.
|
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:
|
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:
|
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:
|
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:
|
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.
|
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.
|
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.
|
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.
|
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/
|
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.
|
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:
|
678
|
+
version: 1.3.1
|
609
679
|
requirements: []
|
610
680
|
rubygems_version: 3.0.3
|
611
681
|
signing_key:
|