decidim-decidim_awesome 0.6.3 → 0.7.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (88) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +22 -7
  3. data/app/assets/config/decidim_admin_decidim_awesome_manifest.js +1 -0
  4. data/app/assets/config/decidim_decidim_awesome_manifest.js +1 -1
  5. data/app/assets/javascripts/decidim/decidim_awesome/admin.js +1 -0
  6. data/app/assets/javascripts/decidim/decidim_awesome/admin/codemirror.js.es6 +15 -0
  7. data/app/assets/javascripts/decidim/decidim_awesome/awesome_map/hashtags.js.es6 +48 -0
  8. data/app/assets/javascripts/decidim/decidim_awesome/awesome_map/layers.js.es6 +106 -0
  9. data/app/assets/javascripts/decidim/decidim_awesome/awesome_map/map.js.es6 +166 -170
  10. data/app/assets/javascripts/decidim/decidim_awesome/awesome_map/markers.js.es6 +56 -0
  11. data/app/assets/javascripts/decidim/decidim_awesome/awesome_map/meetings.js.es6 +6 -5
  12. data/app/assets/javascripts/decidim/decidim_awesome/awesome_map/proposals.js.es6 +17 -4
  13. data/app/assets/javascripts/decidim/decidim_awesome/awesome_map/utilities.js.es6 +48 -0
  14. data/app/assets/javascripts/decidim/decidim_awesome/editors/legacy_quill_editor.js.es6 +160 -0
  15. data/app/assets/javascripts/decidim/decidim_awesome/editors/quill_editor.js.es6 +16 -5
  16. data/app/assets/javascripts/decidim/decidim_awesome/legacy_admin.js +3 -0
  17. data/app/assets/javascripts/decidim/decidim_awesome/legacy_application.js +4 -0
  18. data/app/assets/stylesheets/decidim/decidim_awesome/admin.scss +10 -3
  19. data/app/assets/stylesheets/decidim/decidim_awesome/admin/codemirror.scss +16 -0
  20. data/app/assets/stylesheets/decidim/decidim_awesome/awesome_map/leaflet.scss.erb +9 -0
  21. data/app/assets/stylesheets/decidim/decidim_awesome/awesome_map/map.scss +95 -0
  22. data/app/assets/stylesheets/decidim/decidim_awesome/editors/markdown_editor.scss +1 -1
  23. data/app/awesome_overrides/presenters/decidim/menu_presenter_override.rb +39 -0
  24. data/app/awesome_overrides/presenters/decidim/proposals/proposal_presenter_override.rb +3 -9
  25. data/app/commands/decidim/decidim_awesome/admin/create_menu_hack.rb +51 -0
  26. data/app/commands/decidim/decidim_awesome/admin/destroy_menu_hack.rb +47 -0
  27. data/app/commands/decidim/decidim_awesome/admin/update_config.rb +5 -2
  28. data/app/commands/decidim/decidim_awesome/admin/update_menu_hack.rb +47 -0
  29. data/app/controllers/decidim/decidim_awesome/admin/application_controller.rb +4 -3
  30. data/app/controllers/decidim/decidim_awesome/admin/checks_controller.rb +1 -1
  31. data/app/controllers/decidim/decidim_awesome/admin/config_controller.rb +12 -3
  32. data/app/controllers/decidim/decidim_awesome/admin/constraints_controller.rb +13 -0
  33. data/app/controllers/decidim/decidim_awesome/admin/menu_hacks_controller.rb +116 -0
  34. data/app/controllers/decidim/decidim_awesome/map_component/map_controller.rb +1 -4
  35. data/app/forms/decidim/decidim_awesome/admin/config_form.rb +21 -2
  36. data/app/forms/decidim/decidim_awesome/admin/constraint_form.rb +0 -2
  37. data/app/forms/decidim/decidim_awesome/admin/intergram_form.rb +0 -2
  38. data/app/forms/decidim/decidim_awesome/admin/menu_form.rb +39 -0
  39. data/app/helpers/decidim/decidim_awesome/admin/config_constraints_helpers.rb +5 -1
  40. data/app/helpers/decidim/decidim_awesome/map_helper.rb +12 -50
  41. data/app/permissions/decidim/decidim_awesome/admin/permissions.rb +19 -0
  42. data/app/permissions/decidim/decidim_awesome/permissions.rb +2 -0
  43. data/app/uploaders/decidim/decidim_awesome/image_uploader.rb +0 -5
  44. data/app/views/decidim/decidim_awesome/admin/checks/index.html.erb +1 -1
  45. data/app/views/decidim/decidim_awesome/admin/config/_form_styles.html.erb +1 -1
  46. data/app/views/decidim/decidim_awesome/admin/config/show.html.erb +1 -2
  47. data/app/views/decidim/decidim_awesome/admin/menu_hacks/_form.html.erb +7 -0
  48. data/app/views/decidim/decidim_awesome/admin/menu_hacks/edit.html.erb +13 -0
  49. data/app/views/decidim/decidim_awesome/admin/menu_hacks/index.html.erb +44 -0
  50. data/app/views/decidim/decidim_awesome/admin/menu_hacks/new.html.erb +13 -0
  51. data/app/views/decidim/decidim_awesome/map_component/map/show.html.erb +4 -31
  52. data/app/views/layouts/decidim/admin/decidim_awesome.html.erb +5 -0
  53. data/app/views/layouts/decidim/decidim_awesome/_awesome_config.html.erb +4 -1
  54. data/app/views/v0.23/layouts/decidim/_head.html.erb +1 -1
  55. data/app/views/v0.23/layouts/decidim/admin/_header.html.erb +1 -1
  56. data/app/views/{v0.22 → v0.24}/layouts/decidim/_head.html.erb +2 -0
  57. data/app/views/{v0.22 → v0.24}/layouts/decidim/admin/_header.html.erb +1 -0
  58. data/config/locales/ca.yml +70 -2
  59. data/config/locales/cs.yml +71 -3
  60. data/config/locales/en.yml +61 -4
  61. data/config/locales/es.yml +70 -2
  62. data/config/locales/eu.yml +225 -0
  63. data/config/locales/fr.yml +172 -104
  64. data/config/locales/nl.yml +225 -0
  65. data/config/locales/sv.yml +93 -25
  66. data/lib/decidim/decidim_awesome.rb +15 -0
  67. data/lib/decidim/decidim_awesome/admin_engine.rb +1 -0
  68. data/lib/decidim/decidim_awesome/awesome_helpers.rb +1 -1
  69. data/lib/decidim/decidim_awesome/checksums.yml +7 -4
  70. data/lib/decidim/decidim_awesome/config.rb +1 -3
  71. data/lib/decidim/decidim_awesome/engine.rb +3 -3
  72. data/lib/decidim/decidim_awesome/iframe_component/component.rb +1 -1
  73. data/lib/decidim/decidim_awesome/map_component/component.rb +8 -2
  74. data/lib/decidim/decidim_awesome/menu_hacker.rb +90 -0
  75. data/lib/decidim/decidim_awesome/system_checker.rb +1 -1
  76. data/lib/decidim/decidim_awesome/test/shared_examples/config_examples.rb +4 -2
  77. data/lib/decidim/decidim_awesome/test/shared_examples/menu_hack_contexts.rb +71 -0
  78. data/lib/decidim/decidim_awesome/version.rb +2 -2
  79. data/vendor/assets/javascripts/codemirror.js +9801 -0
  80. data/vendor/assets/javascripts/jquery.truncate.js +105 -0
  81. data/vendor/assets/javascripts/keymap/sublime.js +720 -0
  82. data/vendor/assets/javascripts/mode/css/css.js +864 -0
  83. data/vendor/assets/stylesheets/codemirror.css +350 -0
  84. data/vendor/assets/stylesheets/inscrybmde.min.scss +180 -0
  85. metadata +61 -20
  86. data/app/assets/javascripts/decidim/decidim_awesome/awesome_map/legacy_map.js.es6 +0 -225
  87. data/app/assets/javascripts/decidim/decidim_awesome/awesome_map/legacy_proposals.js.es6 +0 -82
  88. data/vendor/assets/stylesheets/inscrybmde.min.css +0 -8
@@ -1,82 +0,0 @@
1
- // = require decidim/decidim_awesome/awesome_map/api_fetcher
2
- // = require decidim/decidim_awesome/awesome_map/categories
3
-
4
- ((exports) => {
5
- const { getCategory } = exports.AwesomeMap;
6
- const query = `query ($id: ID!, $after: String!) {
7
- component(id: $id) {
8
- id
9
- __typename
10
- ... on Proposals {
11
- proposals(first: 50, after: $after){
12
- pageInfo {
13
- hasNextPage
14
- endCursor
15
- }
16
- edges {
17
- node {
18
- id
19
- state
20
- title
21
- body
22
- address
23
- coordinates {
24
- latitude
25
- longitude
26
- }
27
- amendments {
28
- emendation {
29
- id
30
- }
31
- }
32
- category {
33
- id
34
- }
35
- }
36
- }
37
- }
38
- }
39
- }
40
- }`;
41
-
42
- const ProposalIcon = L.DivIcon.SVGIcon.DecidimIcon;
43
-
44
- const createMarker = (element, callback) => {
45
- const marker = L.marker([element.coordinates.latitude, element.coordinates.longitude], {
46
- icon: new ProposalIcon({
47
- fillColor: getCategory(element.category).color
48
- })
49
- });
50
-
51
- element.body = element.body.replace(/\n/g, "<br>");
52
- callback(element, marker);
53
- };
54
-
55
- const fetchProposals = (component, after, callback, finalCall = () => {}) => {
56
- const variables = {
57
- "id": component.id,
58
- "after": after
59
- };
60
- const api = new ApiFetcher(query, variables);
61
- api.fetchAll((result) => {
62
- if(result) {
63
- result.component.proposals.edges.forEach((element) => {
64
- if(!element.node) return;
65
-
66
- if(element.node.coordinates) {
67
- element.node.link = component.url + '/proposals/' + element.node.id;
68
- createMarker(element.node, callback);
69
- }
70
- });
71
- if (result.component.proposals.pageInfo.hasNextPage) {
72
- fetchProposals(component, result.component.proposals.pageInfo.endCursor, callback, finalCall);
73
- } else {
74
- finalCall();
75
- }
76
- }
77
- });
78
- };
79
-
80
- exports.AwesomeMap = exports.AwesomeMap || {};
81
- exports.AwesomeMap.fetchProposals = fetchProposals;
82
- })(window);
@@ -1,8 +0,0 @@
1
- /**
2
- * Tunned to add !important to colors
3
- * inscrybmde v1.11.6
4
- * Copyright Christopher Wharton
5
- * @link https://github.com/inscryb/inscryb-markdown-editor
6
- * @license MIT
7
- */
8
- .CodeMirror{font-family:monospace;height:300px;color:#000 !important;direction:ltr}.CodeMirror-lines{padding:4px 0}.CodeMirror pre{padding:0 4px}.CodeMirror-gutter-filler,.CodeMirror-scrollbar-filler{background-color:#fff}.CodeMirror-gutters{border-right:1px solid #ddd;background-color:#f7f7f7;white-space:nowrap}.CodeMirror-linenumber{padding:0 3px 0 5px;min-width:20px;text-align:right;color:#999;white-space:nowrap}.CodeMirror-guttermarker{color:#000}.CodeMirror-guttermarker-subtle{color:#999}.CodeMirror-cursor{border-left:1px solid #000;border-right:none;width:0}.CodeMirror div.CodeMirror-secondarycursor{border-left:1px solid silver}.cm-fat-cursor .CodeMirror-cursor{width:auto;border:0!important;background:#7e7}.cm-fat-cursor div.CodeMirror-cursors{z-index:1}.cm-fat-cursor-mark{background-color:rgba(20,255,20,.5);-webkit-animation:blink 1.06s steps(1) infinite;-moz-animation:blink 1.06s steps(1) infinite;animation:blink 1.06s steps(1) infinite}.cm-animate-fat-cursor{width:auto;border:0;-webkit-animation:blink 1.06s steps(1) infinite;-moz-animation:blink 1.06s steps(1) infinite;animation:blink 1.06s steps(1) infinite;background-color:#7e7}@-moz-keyframes blink{50%{background-color:transparent}}@-webkit-keyframes blink{50%{background-color:transparent}}@keyframes blink{50%{background-color:transparent}}.cm-tab{display:inline-block;text-decoration:inherit}.CodeMirror-rulers{position:absolute;left:0;right:0;top:-50px;bottom:-20px;overflow:hidden}.CodeMirror-ruler{border-left:1px solid #ccc;top:0;bottom:0;position:absolute}.cm-s-default .cm-header{color:#00f}.cm-s-default .cm-quote{color:#090}.cm-negative{color:#d44}.cm-positive{color:#292}.cm-header,.cm-strong{font-weight:700}.cm-em{font-style:italic}.cm-link{text-decoration:underline}.cm-strikethrough{text-decoration:line-through}.cm-s-default .cm-keyword{color:#708}.cm-s-default .cm-atom{color:#219}.cm-s-default .cm-number{color:#164}.cm-s-default .cm-def{color:#00f}.cm-s-default .cm-variable-2{color:#05a}.cm-s-default .cm-type,.cm-s-default .cm-variable-3{color:#085}.cm-s-default .cm-comment{color:#a50}.cm-s-default .cm-string{color:#a11}.cm-s-default .cm-string-2{color:#f50}.cm-s-default .cm-meta{color:#555}.cm-s-default .cm-qualifier{color:#555}.cm-s-default .cm-builtin{color:#30a}.cm-s-default .cm-bracket{color:#997}.cm-s-default .cm-tag{color:#170}.cm-s-default .cm-attribute{color:#00c}.cm-s-default .cm-hr{color:#999}.cm-s-default .cm-link{color:#00c}.cm-s-default .cm-error{color:red}.cm-invalidchar{color:red}.CodeMirror-composing{border-bottom:2px solid}div.CodeMirror span.CodeMirror-matchingbracket{color:#0b0}div.CodeMirror span.CodeMirror-nonmatchingbracket{color:#a22}.CodeMirror-matchingtag{background:rgba(255,150,0,.3)}.CodeMirror-activeline-background{background:#e8f2ff}.CodeMirror{position:relative;overflow:hidden;background:#fff}.CodeMirror-scroll{overflow:scroll!important;margin-bottom:-30px;margin-right:-30px;padding-bottom:30px;height:100%;outline:0;position:relative}.CodeMirror-sizer{position:relative;border-right:30px solid transparent}.CodeMirror-gutter-filler,.CodeMirror-hscrollbar,.CodeMirror-scrollbar-filler,.CodeMirror-vscrollbar{position:absolute;z-index:6;display:none}.CodeMirror-vscrollbar{right:0;top:0;overflow-x:hidden;overflow-y:scroll}.CodeMirror-hscrollbar{bottom:0;left:0;overflow-y:hidden;overflow-x:scroll}.CodeMirror-scrollbar-filler{right:0;bottom:0}.CodeMirror-gutter-filler{left:0;bottom:0}.CodeMirror-gutters{position:absolute;left:0;top:0;min-height:100%;z-index:3}.CodeMirror-gutter{white-space:normal;height:100%;display:inline-block;vertical-align:top;margin-bottom:-30px}.CodeMirror-gutter-wrapper{position:absolute;z-index:4;background:0 0!important;border:none!important}.CodeMirror-gutter-background{position:absolute;top:0;bottom:0;z-index:4}.CodeMirror-gutter-elt{position:absolute;cursor:default;z-index:4}.CodeMirror-gutter-wrapper ::selection{background-color:transparent}.CodeMirror-gutter-wrapper ::-moz-selection{background-color:transparent}.CodeMirror-lines{cursor:text;min-height:1px}.CodeMirror pre{-moz-border-radius:0;-webkit-border-radius:0;border-radius:0;border-width:0;background:0 0;font-family:inherit;font-size:inherit;margin:0;white-space:pre;word-wrap:normal;line-height:inherit;color:inherit;z-index:2;position:relative;overflow:visible;-webkit-tap-highlight-color:transparent;-webkit-font-variant-ligatures:contextual;font-variant-ligatures:contextual}.CodeMirror-wrap pre{word-wrap:break-word;white-space:pre-wrap;word-break:normal}.CodeMirror-linebackground{position:absolute;left:0;right:0;top:0;bottom:0;z-index:0}.CodeMirror-linewidget{position:relative;z-index:2;padding:.1px}.CodeMirror-rtl pre{direction:rtl}.CodeMirror-code{outline:0}.CodeMirror-gutter,.CodeMirror-gutters,.CodeMirror-linenumber,.CodeMirror-scroll,.CodeMirror-sizer{-moz-box-sizing:content-box;box-sizing:content-box}.CodeMirror-measure{position:absolute;width:100%;height:0;overflow:hidden;visibility:hidden}.CodeMirror-cursor{position:absolute;pointer-events:none}.CodeMirror-measure pre{position:static}div.CodeMirror-cursors{visibility:hidden;position:relative;z-index:3}div.CodeMirror-dragcursors{visibility:visible}.CodeMirror-focused div.CodeMirror-cursors{visibility:visible}.CodeMirror-selected{background:#d9d9d9}.CodeMirror-focused .CodeMirror-selected{background:#d7d4f0}.CodeMirror-crosshair{cursor:crosshair}.CodeMirror-line::selection,.CodeMirror-line>span::selection,.CodeMirror-line>span>span::selection{background:#d7d4f0}.CodeMirror-line::-moz-selection,.CodeMirror-line>span::-moz-selection,.CodeMirror-line>span>span::-moz-selection{background:#d7d4f0}.cm-searching{background-color:#ffa;background-color:rgba(255,255,0,.4)}.cm-force-border{padding-right:.1px}@media print{.CodeMirror div.CodeMirror-cursors{visibility:hidden}}.cm-tab-wrap-hack:after{content:''}span.CodeMirror-selectedtext{background:0 0}.CodeMirror{box-sizing:border-box;height:auto;border:1px solid #ddd;border-bottom-left-radius:4px;border-bottom-right-radius:4px;padding:10px;font:inherit;z-index:1;word-wrap:break-word}.CodeMirror-scroll{cursor:text}.CodeMirror-fullscreen{background:#fff;position:fixed!important;top:50px;left:0;right:0;bottom:0;height:auto;z-index:9;border-right:none!important;border-bottom-right-radius:0!important}.CodeMirror-sided{width:50%!important}.editor-toolbar{position:relative;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;-o-user-select:none;user-select:none;padding:0 10px;border-top:1px solid #bbb;border-left:1px solid #bbb;border-right:1px solid #bbb;border-top-left-radius:4px;border-top-right-radius:4px}.editor-toolbar:after,.editor-toolbar:before{display:block;content:' ';height:1px}.editor-toolbar:before{margin-bottom:8px}.editor-toolbar:after{margin-top:8px}.editor-toolbar.fullscreen{width:100%;height:50px;overflow-x:auto;overflow-y:hidden;white-space:nowrap;padding-top:10px;padding-bottom:10px;box-sizing:border-box;background:#fff;border:0;position:fixed;top:0;left:0;opacity:1;z-index:9}.editor-toolbar.fullscreen::before{width:20px;height:50px;background:-moz-linear-gradient(left,rgba(255,255,255,1) 0,rgba(255,255,255,0) 100%);background:-webkit-gradient(linear,left top,right top,color-stop(0,rgba(255,255,255,1)),color-stop(100%,rgba(255,255,255,0)));background:-webkit-linear-gradient(left,rgba(255,255,255,1) 0,rgba(255,255,255,0) 100%);background:-o-linear-gradient(left,rgba(255,255,255,1) 0,rgba(255,255,255,0) 100%);background:-ms-linear-gradient(left,rgba(255,255,255,1) 0,rgba(255,255,255,0) 100%);background:linear-gradient(to right,rgba(255,255,255,1) 0,rgba(255,255,255,0) 100%);position:fixed;top:0;left:0;margin:0;padding:0}.editor-toolbar.fullscreen::after{width:20px;height:50px;background:-moz-linear-gradient(left,rgba(255,255,255,0) 0,rgba(255,255,255,1) 100%);background:-webkit-gradient(linear,left top,right top,color-stop(0,rgba(255,255,255,0)),color-stop(100%,rgba(255,255,255,1)));background:-webkit-linear-gradient(left,rgba(255,255,255,0) 0,rgba(255,255,255,1) 100%);background:-o-linear-gradient(left,rgba(255,255,255,0) 0,rgba(255,255,255,1) 100%);background:-ms-linear-gradient(left,rgba(255,255,255,0) 0,rgba(255,255,255,1) 100%);background:linear-gradient(to right,rgba(255,255,255,0) 0,rgba(255,255,255,1) 100%);position:fixed;top:0;right:0;margin:0;padding:0}.editor-toolbar a,.editor-toolbar button{background:0 0;display:inline-block;text-align:center;text-decoration:none!important;width:30px;height:30px;margin:0;padding:0;border:1px solid transparent;border-radius:3px;cursor:pointer}.editor-toolbar a.active,.editor-toolbar a:hover,.editor-toolbar button.active,.editor-toolbar button:hover{background:#fcfcfc;border-color:#95a5a6}.editor-toolbar a:before,.editor-toolbar button:before{line-height:30px}.editor-toolbar i.separator{display:inline-block;width:0;border-left:1px solid #d9d9d9;border-right:1px solid #fff;color:transparent;text-indent:-10px;margin:0 6px}.editor-toolbar a.fa-header-x:after{font-family:Arial,"Helvetica Neue",Helvetica,sans-serif;font-size:65%;vertical-align:text-bottom;position:relative;top:2px}.editor-toolbar a.fa-header-1:after{content:"1"}.editor-toolbar a.fa-header-2:after{content:"2"}.editor-toolbar a.fa-header-3:after{content:"3"}.editor-toolbar a.fa-header-bigger:after{content:"▲"}.editor-toolbar a.fa-header-smaller:after{content:"▼"}.editor-toolbar.disabled-for-preview button:not(.no-disable){opacity:.6;pointer-events:none}@media only screen and (max-width:700px){.editor-toolbar a.no-mobile{display:none}}.editor-statusbar{padding:8px 10px;font-size:12px;color:#959694;text-align:right}.editor-statusbar span{display:inline-block;min-width:4em;margin-left:1em}.editor-statusbar .lines:before{content:'lines: '}.editor-statusbar .words:before{content:'words: '}.editor-statusbar .characters:before{content:'characters: '}.editor-preview{padding:10px;position:absolute;width:100%;height:100%;top:0;left:0;background:#fafafa;z-index:7;overflow:auto;display:none;box-sizing:border-box}.editor-preview-side{padding:10px;position:fixed;bottom:0;width:50%;top:50px;right:0;background:#fafafa;z-index:9;overflow:auto;display:none;box-sizing:border-box;border:1px solid #ddd;word-wrap:break-word}.editor-preview-active-side{display:block}.editor-preview-active{display:block}.editor-preview-side>p,.editor-preview>p{margin-top:0}.editor-preview pre,.editor-preview-side pre{background:#eee;margin-bottom:10px}.editor-preview table td,.editor-preview table th,.editor-preview-side table td,.editor-preview-side table th{border:1px solid #ddd;padding:5px}.CodeMirror .CodeMirror-code .cm-tag{color:#63a35c}.CodeMirror .CodeMirror-code .cm-attribute{color:#795da3}.CodeMirror .CodeMirror-code .cm-string{color:#183691}.CodeMirror .CodeMirror-selected{background:#d9d9d9}.CodeMirror .CodeMirror-code .cm-header-1{font-size:200%;line-height:200%}.CodeMirror .CodeMirror-code .cm-header-2{font-size:160%;line-height:160%}.CodeMirror .CodeMirror-code .cm-header-3{font-size:125%;line-height:125%}.CodeMirror .CodeMirror-code .cm-header-4{font-size:110%;line-height:110%}.CodeMirror .CodeMirror-code .cm-comment{background:rgba(0,0,0,.05);border-radius:2px}.CodeMirror .CodeMirror-code .cm-link{color:#7f8c8d}.CodeMirror .CodeMirror-code .cm-url{color:#aab2b3}.CodeMirror .CodeMirror-code .cm-strikethrough{text-decoration:line-through}.CodeMirror .CodeMirror-placeholder{opacity:.5}.CodeMirror .cm-spell-error:not(.cm-url):not(.cm-comment):not(.cm-tag):not(.cm-word){background:rgba(255,0,0,.15)}