integral 1.0.1 → 1.5.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +5 -5
- data/README.md +11 -49
- data/Rakefile +1 -1
- data/app/assets/images/integral/defaults/no_image_available.jpg +0 -0
- data/app/assets/images/logo.png +0 -0
- data/app/assets/javascripts/ckeditor/my_config.js.erb +26 -18
- data/app/assets/javascripts/ckeditor/plugins/autoembed/lang/lv.js +8 -0
- data/app/assets/javascripts/ckeditor/plugins/autoembed/plugin.js +1 -1
- data/app/assets/javascripts/ckeditor/plugins/autogrow/plugin.js +14 -14
- data/app/assets/javascripts/ckeditor/plugins/autogrow/samples/autogrow.html +8 -8
- data/app/assets/javascripts/ckeditor/plugins/codemirror/css/codemirror.min.css +1 -1
- data/app/assets/javascripts/ckeditor/plugins/codemirror/icons/autoformat.png +0 -0
- data/app/assets/javascripts/ckeditor/plugins/codemirror/icons/searchcode.png +0 -0
- data/app/assets/javascripts/ckeditor/plugins/codemirror/icons/uncommentselectedrange.png +0 -0
- data/app/assets/javascripts/ckeditor/plugins/codemirror/images/autocomplete.png +0 -0
- data/app/assets/javascripts/ckeditor/plugins/codemirror/images/autoformat.png +0 -0
- data/app/assets/javascripts/ckeditor/plugins/codemirror/images/commentselectedrange.png +0 -0
- data/app/assets/javascripts/ckeditor/plugins/codemirror/images/searchcode.png +0 -0
- data/app/assets/javascripts/ckeditor/plugins/codemirror/images/uncommentselectedrange.png +0 -0
- data/app/assets/javascripts/ckeditor/plugins/codemirror/js/beautify.min.js +2 -2
- data/app/assets/javascripts/ckeditor/plugins/codemirror/js/codemirror.addons.min.js +2 -2
- data/app/assets/javascripts/ckeditor/plugins/codemirror/js/codemirror.addons.search.min.js +1 -1
- data/app/assets/javascripts/ckeditor/plugins/codemirror/js/codemirror.min.js +1 -6
- data/app/assets/javascripts/ckeditor/plugins/codemirror/js/codemirror.mode.bbcodemixed.min.js +1 -1
- data/app/assets/javascripts/ckeditor/plugins/codemirror/js/codemirror.mode.handlebars.min.js +1 -0
- data/app/assets/javascripts/ckeditor/plugins/codemirror/js/codemirror.mode.htmlmixed.min.js +2 -2
- data/app/assets/javascripts/ckeditor/plugins/codemirror/js/codemirror.mode.javascript.min.js +1 -1
- data/app/assets/javascripts/ckeditor/plugins/codemirror/js/codemirror.mode.php.min.js +3 -3
- data/app/assets/javascripts/ckeditor/plugins/codemirror/js/codemirror.mode.twig.min.js +1 -1
- data/app/assets/javascripts/ckeditor/plugins/codemirror/lang/bg.js +7 -7
- data/app/assets/javascripts/ckeditor/plugins/codemirror/plugin.js +231 -217
- data/app/assets/javascripts/ckeditor/plugins/codemirror/theme/darcula.css +46 -0
- data/app/assets/javascripts/ckeditor/plugins/codemirror/theme/gruvbox-dark.css +34 -0
- data/app/assets/javascripts/ckeditor/plugins/codemirror/theme/idea.css +42 -0
- data/app/assets/javascripts/ckeditor/plugins/codemirror/theme/lesser-dark.css +1 -1
- data/app/assets/javascripts/ckeditor/plugins/codemirror/theme/lucario.css +37 -0
- data/app/assets/javascripts/ckeditor/plugins/codemirror/theme/monokai.css +5 -0
- data/app/assets/javascripts/ckeditor/plugins/codemirror/theme/oceanic-next.css +44 -0
- data/app/assets/javascripts/ckeditor/plugins/codemirror/theme/shadowfox.css +52 -0
- data/app/assets/javascripts/ckeditor/plugins/codemirror/theme/ssms.css +16 -0
- data/app/assets/javascripts/ckeditor/plugins/embedbase/lang/ar.js +15 -0
- data/app/assets/javascripts/ckeditor/plugins/embedbase/lang/lv.js +15 -0
- data/app/assets/javascripts/ckeditor/plugins/embedbase/plugin.js +1 -1
- data/app/assets/javascripts/ckeditor/plugins/foundation-callout/icons/copywidget.png +0 -0
- data/app/assets/javascripts/ckeditor/plugins/foundation-callout/icons/editwidget.png +0 -0
- data/app/assets/javascripts/ckeditor/plugins/foundation-callout/icons/hidpi/copywidget.png +0 -0
- data/app/assets/javascripts/ckeditor/plugins/foundation-callout/icons/hidpi/editwidget.png +0 -0
- data/app/assets/javascripts/ckeditor/plugins/foundation-callout/icons/hidpi/removewidget.png +0 -0
- data/app/assets/javascripts/ckeditor/plugins/foundation-callout/icons/hidpi/widget.png +0 -0
- data/app/assets/javascripts/ckeditor/plugins/foundation-callout/icons/removewidget.png +0 -0
- data/app/assets/javascripts/ckeditor/plugins/foundation-callout/icons/widget.png +0 -0
- data/app/assets/javascripts/ckeditor/plugins/foundation-callout/plugin.js +86 -0
- data/app/assets/javascripts/ckeditor/plugins/image2/dev/assets/image1.jpg +0 -0
- data/app/assets/javascripts/ckeditor/plugins/image2/dev/assets/image2.jpg +0 -0
- data/app/assets/javascripts/ckeditor/plugins/image2/dev/contents.css +35 -0
- data/app/assets/javascripts/ckeditor/plugins/image2/dev/image2.html +339 -0
- data/app/assets/javascripts/ckeditor/plugins/image2/dialogs/image2.js +553 -0
- data/app/assets/javascripts/ckeditor/plugins/image2/icons/hidpi/image.png +0 -0
- data/app/assets/javascripts/ckeditor/plugins/image2/icons/image.png +0 -0
- data/app/assets/javascripts/ckeditor/plugins/image2/lang/af.js +21 -0
- data/app/assets/javascripts/ckeditor/plugins/image2/lang/ar.js +21 -0
- data/app/assets/javascripts/ckeditor/plugins/image2/lang/az.js +21 -0
- data/app/assets/javascripts/ckeditor/plugins/image2/lang/bg.js +21 -0
- data/app/assets/javascripts/ckeditor/plugins/image2/lang/bn.js +21 -0
- data/app/assets/javascripts/ckeditor/plugins/image2/lang/bs.js +21 -0
- data/app/assets/javascripts/ckeditor/plugins/image2/lang/ca.js +21 -0
- data/app/assets/javascripts/ckeditor/plugins/image2/lang/cs.js +21 -0
- data/app/assets/javascripts/ckeditor/plugins/image2/lang/cy.js +21 -0
- data/app/assets/javascripts/ckeditor/plugins/image2/lang/da.js +21 -0
- data/app/assets/javascripts/ckeditor/plugins/image2/lang/de-ch.js +21 -0
- data/app/assets/javascripts/ckeditor/plugins/image2/lang/de.js +21 -0
- data/app/assets/javascripts/ckeditor/plugins/image2/lang/el.js +21 -0
- data/app/assets/javascripts/ckeditor/plugins/image2/lang/en-au.js +21 -0
- data/app/assets/javascripts/ckeditor/plugins/image2/lang/en-ca.js +21 -0
- data/app/assets/javascripts/ckeditor/plugins/image2/lang/en-gb.js +21 -0
- data/app/assets/javascripts/ckeditor/plugins/image2/lang/en.js +21 -0
- data/app/assets/javascripts/ckeditor/plugins/image2/lang/eo.js +21 -0
- data/app/assets/javascripts/ckeditor/plugins/image2/lang/es-mx.js +21 -0
- data/app/assets/javascripts/ckeditor/plugins/image2/lang/es.js +21 -0
- data/app/assets/javascripts/ckeditor/plugins/image2/lang/et.js +21 -0
- data/app/assets/javascripts/ckeditor/plugins/image2/lang/eu.js +21 -0
- data/app/assets/javascripts/ckeditor/plugins/image2/lang/fa.js +21 -0
- data/app/assets/javascripts/ckeditor/plugins/image2/lang/fi.js +21 -0
- data/app/assets/javascripts/ckeditor/plugins/image2/lang/fo.js +21 -0
- data/app/assets/javascripts/ckeditor/plugins/image2/lang/fr-ca.js +21 -0
- data/app/assets/javascripts/ckeditor/plugins/image2/lang/fr.js +21 -0
- data/app/assets/javascripts/ckeditor/plugins/image2/lang/gl.js +21 -0
- data/app/assets/javascripts/ckeditor/plugins/image2/lang/gu.js +21 -0
- data/app/assets/javascripts/ckeditor/plugins/image2/lang/he.js +21 -0
- data/app/assets/javascripts/ckeditor/plugins/image2/lang/hi.js +21 -0
- data/app/assets/javascripts/ckeditor/plugins/image2/lang/hr.js +21 -0
- data/app/assets/javascripts/ckeditor/plugins/image2/lang/hu.js +21 -0
- data/app/assets/javascripts/ckeditor/plugins/image2/lang/id.js +21 -0
- data/app/assets/javascripts/ckeditor/plugins/image2/lang/is.js +21 -0
- data/app/assets/javascripts/ckeditor/plugins/image2/lang/it.js +21 -0
- data/app/assets/javascripts/ckeditor/plugins/image2/lang/ja.js +21 -0
- data/app/assets/javascripts/ckeditor/plugins/image2/lang/ka.js +21 -0
- data/app/assets/javascripts/ckeditor/plugins/image2/lang/km.js +21 -0
- data/app/assets/javascripts/ckeditor/plugins/image2/lang/ko.js +21 -0
- data/app/assets/javascripts/ckeditor/plugins/image2/lang/ku.js +21 -0
- data/app/assets/javascripts/ckeditor/plugins/image2/lang/lt.js +21 -0
- data/app/assets/javascripts/ckeditor/plugins/image2/lang/lv.js +21 -0
- data/app/assets/javascripts/ckeditor/plugins/image2/lang/mk.js +21 -0
- data/app/assets/javascripts/ckeditor/plugins/image2/lang/mn.js +21 -0
- data/app/assets/javascripts/ckeditor/plugins/image2/lang/ms.js +21 -0
- data/app/assets/javascripts/ckeditor/plugins/image2/lang/nb.js +21 -0
- data/app/assets/javascripts/ckeditor/plugins/image2/lang/nl.js +21 -0
- data/app/assets/javascripts/ckeditor/plugins/image2/lang/no.js +21 -0
- data/app/assets/javascripts/ckeditor/plugins/image2/lang/oc.js +21 -0
- data/app/assets/javascripts/ckeditor/plugins/image2/lang/pl.js +21 -0
- data/app/assets/javascripts/ckeditor/plugins/image2/lang/pt-br.js +21 -0
- data/app/assets/javascripts/ckeditor/plugins/image2/lang/pt.js +21 -0
- data/app/assets/javascripts/ckeditor/plugins/image2/lang/ro.js +21 -0
- data/app/assets/javascripts/ckeditor/plugins/image2/lang/ru.js +21 -0
- data/app/assets/javascripts/ckeditor/plugins/image2/lang/si.js +21 -0
- data/app/assets/javascripts/ckeditor/plugins/image2/lang/sk.js +21 -0
- data/app/assets/javascripts/ckeditor/plugins/image2/lang/sl.js +21 -0
- data/app/assets/javascripts/ckeditor/plugins/image2/lang/sq.js +21 -0
- data/app/assets/javascripts/ckeditor/plugins/image2/lang/sr-latn.js +21 -0
- data/app/assets/javascripts/ckeditor/plugins/image2/lang/sr.js +21 -0
- data/app/assets/javascripts/ckeditor/plugins/image2/lang/sv.js +21 -0
- data/app/assets/javascripts/ckeditor/plugins/image2/lang/th.js +21 -0
- data/app/assets/javascripts/ckeditor/plugins/image2/lang/tr.js +21 -0
- data/app/assets/javascripts/ckeditor/plugins/image2/lang/tt.js +21 -0
- data/app/assets/javascripts/ckeditor/plugins/image2/lang/ug.js +21 -0
- data/app/assets/javascripts/ckeditor/plugins/image2/lang/uk.js +21 -0
- data/app/assets/javascripts/ckeditor/plugins/image2/lang/vi.js +21 -0
- data/app/assets/javascripts/ckeditor/plugins/image2/lang/zh-cn.js +21 -0
- data/app/assets/javascripts/ckeditor/plugins/image2/lang/zh.js +21 -0
- data/app/assets/javascripts/ckeditor/plugins/image2/plugin.js +1720 -0
- data/app/assets/javascripts/ckeditor/plugins/image2/samples/assets/image1.jpg +0 -0
- data/app/assets/javascripts/ckeditor/plugins/image2/samples/assets/image2.jpg +0 -0
- data/app/assets/javascripts/ckeditor/plugins/image2/samples/image2.html +68 -0
- data/app/assets/javascripts/ckeditor/plugins/lineutils/dev/dnd.html +4 -4
- data/app/assets/javascripts/ckeditor/plugins/lineutils/dev/magicfinger.html +4 -4
- data/app/assets/javascripts/ckeditor/plugins/lineutils/plugin.js +7 -7
- data/app/assets/javascripts/ckeditor/plugins/linkballoon/README.md +5 -0
- data/app/assets/javascripts/ckeditor/plugins/linkballoon/assets/demo.png +0 -0
- data/app/assets/javascripts/ckeditor/plugins/linkballoon/plugin.js +25 -0
- data/app/assets/javascripts/ckeditor/plugins/notification/lang/az.js +7 -0
- data/app/assets/javascripts/ckeditor/plugins/notification/lang/bg.js +7 -0
- data/app/assets/javascripts/ckeditor/plugins/notification/lang/ca.js +7 -0
- data/app/assets/javascripts/ckeditor/plugins/notification/lang/cs.js +2 -2
- data/app/assets/javascripts/ckeditor/plugins/notification/lang/da.js +2 -2
- data/app/assets/javascripts/ckeditor/plugins/notification/lang/de-ch.js +2 -2
- data/app/assets/javascripts/ckeditor/plugins/notification/lang/de.js +2 -2
- data/app/assets/javascripts/ckeditor/plugins/notification/lang/en-au.js +7 -0
- data/app/assets/javascripts/ckeditor/plugins/notification/lang/en.js +2 -2
- data/app/assets/javascripts/ckeditor/plugins/notification/lang/eo.js +2 -2
- data/app/assets/javascripts/ckeditor/plugins/notification/lang/es-mx.js +7 -0
- data/app/assets/javascripts/ckeditor/plugins/notification/lang/es.js +7 -0
- data/app/assets/javascripts/ckeditor/plugins/notification/lang/et.js +7 -0
- data/app/assets/javascripts/ckeditor/plugins/notification/lang/eu.js +2 -2
- data/app/assets/javascripts/ckeditor/plugins/notification/lang/fa.js +7 -0
- data/app/assets/javascripts/ckeditor/plugins/notification/lang/fr.js +3 -3
- data/app/assets/javascripts/ckeditor/plugins/notification/lang/gl.js +2 -2
- data/app/assets/javascripts/ckeditor/plugins/notification/lang/hr.js +7 -0
- data/app/assets/javascripts/ckeditor/plugins/notification/lang/hu.js +7 -0
- data/app/assets/javascripts/ckeditor/plugins/notification/lang/id.js +2 -2
- data/app/assets/javascripts/ckeditor/plugins/notification/lang/it.js +2 -2
- data/app/assets/javascripts/ckeditor/plugins/notification/lang/ja.js +7 -0
- data/app/assets/javascripts/ckeditor/plugins/notification/lang/km.js +2 -2
- data/app/assets/javascripts/ckeditor/plugins/notification/lang/ko.js +2 -2
- data/app/assets/javascripts/ckeditor/plugins/notification/lang/ku.js +2 -2
- data/app/assets/javascripts/ckeditor/plugins/notification/lang/lv.js +7 -0
- data/app/assets/javascripts/ckeditor/plugins/notification/lang/nb.js +2 -2
- data/app/assets/javascripts/ckeditor/plugins/notification/lang/nl.js +2 -2
- data/app/assets/javascripts/ckeditor/plugins/notification/lang/oc.js +7 -0
- data/app/assets/javascripts/ckeditor/plugins/notification/lang/pl.js +2 -2
- data/app/assets/javascripts/ckeditor/plugins/notification/lang/pt-br.js +2 -2
- data/app/assets/javascripts/ckeditor/plugins/notification/lang/pt.js +2 -2
- data/app/assets/javascripts/ckeditor/plugins/notification/lang/ro.js +7 -0
- data/app/assets/javascripts/ckeditor/plugins/notification/lang/ru.js +2 -2
- data/app/assets/javascripts/ckeditor/plugins/notification/lang/sk.js +7 -0
- data/app/assets/javascripts/ckeditor/plugins/notification/lang/sq.js +7 -0
- data/app/assets/javascripts/ckeditor/plugins/notification/lang/sv.js +2 -2
- data/app/assets/javascripts/ckeditor/plugins/notification/lang/tr.js +2 -2
- data/app/assets/javascripts/ckeditor/plugins/notification/lang/ug.js +2 -2
- data/app/assets/javascripts/ckeditor/plugins/notification/lang/uk.js +2 -2
- data/app/assets/javascripts/ckeditor/plugins/notification/lang/zh-cn.js +3 -3
- data/app/assets/javascripts/ckeditor/plugins/notification/lang/zh.js +2 -2
- data/app/assets/javascripts/ckeditor/plugins/notification/plugin.js +794 -784
- data/app/assets/javascripts/ckeditor/plugins/openlink/README.md +50 -0
- data/app/assets/javascripts/ckeditor/plugins/openlink/icons/hidpi/openLink.png +0 -0
- data/app/assets/javascripts/ckeditor/plugins/openlink/icons/openLink.png +0 -0
- data/app/assets/javascripts/ckeditor/plugins/openlink/lang/bg.js +7 -0
- data/app/assets/javascripts/ckeditor/plugins/openlink/lang/de.js +7 -0
- data/app/assets/javascripts/ckeditor/plugins/openlink/lang/en.js +7 -0
- data/app/assets/javascripts/ckeditor/plugins/openlink/lang/pl.js +7 -0
- data/app/assets/javascripts/ckeditor/plugins/openlink/lang/ru.js +7 -0
- data/app/assets/javascripts/ckeditor/plugins/openlink/lang/uk.js +7 -0
- data/app/assets/javascripts/ckeditor/plugins/openlink/plugin.js +178 -0
- data/app/assets/javascripts/ckeditor/plugins/placeholder/dev/placeholder.html +5 -5
- data/app/assets/javascripts/ckeditor/plugins/placeholder/dialogs/placeholder.js +2 -2
- data/app/assets/javascripts/ckeditor/plugins/placeholder/lang/af.js +2 -2
- data/app/assets/javascripts/ckeditor/plugins/placeholder/lang/ar.js +2 -2
- data/app/assets/javascripts/ckeditor/plugins/placeholder/lang/az.js +2 -2
- data/app/assets/javascripts/ckeditor/plugins/placeholder/lang/bg.js +5 -5
- data/app/assets/javascripts/ckeditor/plugins/placeholder/lang/ca.js +2 -2
- data/app/assets/javascripts/ckeditor/plugins/placeholder/lang/cs.js +2 -2
- data/app/assets/javascripts/ckeditor/plugins/placeholder/lang/cy.js +2 -2
- data/app/assets/javascripts/ckeditor/plugins/placeholder/lang/da.js +2 -2
- data/app/assets/javascripts/ckeditor/plugins/placeholder/lang/de-ch.js +2 -2
- data/app/assets/javascripts/ckeditor/plugins/placeholder/lang/de.js +2 -2
- data/app/assets/javascripts/ckeditor/plugins/placeholder/lang/el.js +2 -2
- data/app/assets/javascripts/ckeditor/plugins/placeholder/lang/en-au.js +12 -0
- data/app/assets/javascripts/ckeditor/plugins/placeholder/lang/en-gb.js +2 -2
- data/app/assets/javascripts/ckeditor/plugins/placeholder/lang/en.js +2 -2
- data/app/assets/javascripts/ckeditor/plugins/placeholder/lang/eo.js +2 -2
- data/app/assets/javascripts/ckeditor/plugins/placeholder/lang/es-mx.js +2 -2
- data/app/assets/javascripts/ckeditor/plugins/placeholder/lang/es.js +2 -2
- data/app/assets/javascripts/ckeditor/plugins/placeholder/lang/et.js +2 -2
- data/app/assets/javascripts/ckeditor/plugins/placeholder/lang/eu.js +2 -2
- data/app/assets/javascripts/ckeditor/plugins/placeholder/lang/fa.js +2 -2
- data/app/assets/javascripts/ckeditor/plugins/placeholder/lang/fi.js +2 -2
- data/app/assets/javascripts/ckeditor/plugins/placeholder/lang/fr-ca.js +2 -2
- data/app/assets/javascripts/ckeditor/plugins/placeholder/lang/fr.js +2 -2
- data/app/assets/javascripts/ckeditor/plugins/placeholder/lang/gl.js +2 -2
- data/app/assets/javascripts/ckeditor/plugins/placeholder/lang/he.js +2 -2
- data/app/assets/javascripts/ckeditor/plugins/placeholder/lang/hr.js +2 -2
- data/app/assets/javascripts/ckeditor/plugins/placeholder/lang/hu.js +2 -2
- data/app/assets/javascripts/ckeditor/plugins/placeholder/lang/id.js +2 -2
- data/app/assets/javascripts/ckeditor/plugins/placeholder/lang/it.js +2 -2
- data/app/assets/javascripts/ckeditor/plugins/placeholder/lang/ja.js +2 -2
- data/app/assets/javascripts/ckeditor/plugins/placeholder/lang/km.js +2 -2
- data/app/assets/javascripts/ckeditor/plugins/placeholder/lang/ko.js +2 -2
- data/app/assets/javascripts/ckeditor/plugins/placeholder/lang/ku.js +2 -2
- data/app/assets/javascripts/ckeditor/plugins/placeholder/lang/lv.js +5 -5
- data/app/assets/javascripts/ckeditor/plugins/placeholder/lang/nb.js +2 -2
- data/app/assets/javascripts/ckeditor/plugins/placeholder/lang/nl.js +2 -2
- data/app/assets/javascripts/ckeditor/plugins/placeholder/lang/no.js +2 -2
- data/app/assets/javascripts/ckeditor/plugins/placeholder/lang/oc.js +2 -2
- data/app/assets/javascripts/ckeditor/plugins/placeholder/lang/pl.js +2 -2
- data/app/assets/javascripts/ckeditor/plugins/placeholder/lang/pt-br.js +2 -2
- data/app/assets/javascripts/ckeditor/plugins/placeholder/lang/pt.js +2 -2
- data/app/assets/javascripts/ckeditor/plugins/placeholder/lang/ro.js +12 -0
- data/app/assets/javascripts/ckeditor/plugins/placeholder/lang/ru.js +2 -2
- data/app/assets/javascripts/ckeditor/plugins/placeholder/lang/si.js +2 -2
- data/app/assets/javascripts/ckeditor/plugins/placeholder/lang/sk.js +2 -2
- data/app/assets/javascripts/ckeditor/plugins/placeholder/lang/sl.js +2 -2
- data/app/assets/javascripts/ckeditor/plugins/placeholder/lang/sq.js +2 -2
- data/app/assets/javascripts/ckeditor/plugins/placeholder/lang/sv.js +2 -2
- data/app/assets/javascripts/ckeditor/plugins/placeholder/lang/th.js +2 -2
- data/app/assets/javascripts/ckeditor/plugins/placeholder/lang/tr.js +2 -2
- data/app/assets/javascripts/ckeditor/plugins/placeholder/lang/tt.js +2 -2
- data/app/assets/javascripts/ckeditor/plugins/placeholder/lang/ug.js +2 -2
- data/app/assets/javascripts/ckeditor/plugins/placeholder/lang/uk.js +2 -2
- data/app/assets/javascripts/ckeditor/plugins/placeholder/lang/vi.js +2 -2
- data/app/assets/javascripts/ckeditor/plugins/placeholder/lang/zh-cn.js +2 -2
- data/app/assets/javascripts/ckeditor/plugins/placeholder/lang/zh.js +2 -2
- data/app/assets/javascripts/ckeditor/plugins/placeholder/plugin.js +3 -3
- data/app/assets/javascripts/ckeditor/plugins/placeholder/samples/placeholder.html +6 -6
- data/app/assets/javascripts/ckeditor/plugins/widget/dev/assets/simplebox/dialogs/simplebox.js +4 -4
- data/app/assets/javascripts/ckeditor/plugins/widget/dev/assets/simplebox/plugin.js +3 -3
- data/app/assets/javascripts/ckeditor/plugins/widget/dev/console.js +2 -2
- data/app/assets/javascripts/ckeditor/plugins/widget/dev/nestedwidgets.html +2 -2
- data/app/assets/javascripts/ckeditor/plugins/widget/dev/widgetstyles.html +2 -2
- data/app/assets/javascripts/ckeditor/plugins/widget/lang/af.js +2 -2
- data/app/assets/javascripts/ckeditor/plugins/widget/lang/ar.js +2 -2
- data/app/assets/javascripts/ckeditor/plugins/widget/lang/az.js +2 -2
- data/app/assets/javascripts/ckeditor/plugins/widget/lang/bg.js +3 -3
- data/app/assets/javascripts/ckeditor/plugins/widget/lang/ca.js +2 -2
- data/app/assets/javascripts/ckeditor/plugins/widget/lang/cs.js +2 -2
- data/app/assets/javascripts/ckeditor/plugins/widget/lang/cy.js +2 -2
- data/app/assets/javascripts/ckeditor/plugins/widget/lang/da.js +2 -2
- data/app/assets/javascripts/ckeditor/plugins/widget/lang/de-ch.js +2 -2
- data/app/assets/javascripts/ckeditor/plugins/widget/lang/de.js +2 -2
- data/app/assets/javascripts/ckeditor/plugins/widget/lang/el.js +2 -2
- data/app/assets/javascripts/ckeditor/plugins/widget/lang/en-au.js +8 -0
- data/app/assets/javascripts/ckeditor/plugins/widget/lang/en-gb.js +2 -2
- data/app/assets/javascripts/ckeditor/plugins/widget/lang/en.js +2 -2
- data/app/assets/javascripts/ckeditor/plugins/widget/lang/eo.js +2 -2
- data/app/assets/javascripts/ckeditor/plugins/widget/lang/es-mx.js +2 -2
- data/app/assets/javascripts/ckeditor/plugins/widget/lang/es.js +2 -2
- data/app/assets/javascripts/ckeditor/plugins/widget/lang/et.js +8 -0
- data/app/assets/javascripts/ckeditor/plugins/widget/lang/eu.js +2 -2
- data/app/assets/javascripts/ckeditor/plugins/widget/lang/fa.js +3 -3
- data/app/assets/javascripts/ckeditor/plugins/widget/lang/fi.js +2 -2
- data/app/assets/javascripts/ckeditor/plugins/widget/lang/fr.js +2 -2
- data/app/assets/javascripts/ckeditor/plugins/widget/lang/gl.js +2 -2
- data/app/assets/javascripts/ckeditor/plugins/widget/lang/he.js +2 -2
- data/app/assets/javascripts/ckeditor/plugins/widget/lang/hr.js +2 -2
- data/app/assets/javascripts/ckeditor/plugins/widget/lang/hu.js +2 -2
- data/app/assets/javascripts/ckeditor/plugins/widget/lang/id.js +2 -2
- data/app/assets/javascripts/ckeditor/plugins/widget/lang/it.js +2 -2
- data/app/assets/javascripts/ckeditor/plugins/widget/lang/ja.js +2 -2
- data/app/assets/javascripts/ckeditor/plugins/widget/lang/km.js +2 -2
- data/app/assets/javascripts/ckeditor/plugins/widget/lang/ko.js +2 -2
- data/app/assets/javascripts/ckeditor/plugins/widget/lang/ku.js +2 -2
- data/app/assets/javascripts/ckeditor/plugins/widget/lang/lv.js +3 -3
- data/app/assets/javascripts/ckeditor/plugins/widget/lang/nb.js +2 -2
- data/app/assets/javascripts/ckeditor/plugins/widget/lang/nl.js +2 -2
- data/app/assets/javascripts/ckeditor/plugins/widget/lang/no.js +2 -2
- data/app/assets/javascripts/ckeditor/plugins/widget/lang/oc.js +2 -2
- data/app/assets/javascripts/ckeditor/plugins/widget/lang/pl.js +2 -2
- data/app/assets/javascripts/ckeditor/plugins/widget/lang/pt-br.js +2 -2
- data/app/assets/javascripts/ckeditor/plugins/widget/lang/pt.js +2 -2
- data/app/assets/javascripts/ckeditor/plugins/widget/lang/ro.js +8 -0
- data/app/assets/javascripts/ckeditor/plugins/widget/lang/ru.js +2 -2
- data/app/assets/javascripts/ckeditor/plugins/widget/lang/sk.js +2 -2
- data/app/assets/javascripts/ckeditor/plugins/widget/lang/sl.js +2 -2
- data/app/assets/javascripts/ckeditor/plugins/widget/lang/sq.js +3 -3
- data/app/assets/javascripts/ckeditor/plugins/widget/lang/sv.js +2 -2
- data/app/assets/javascripts/ckeditor/plugins/widget/lang/tr.js +2 -2
- data/app/assets/javascripts/ckeditor/plugins/widget/lang/tt.js +2 -2
- data/app/assets/javascripts/ckeditor/plugins/widget/lang/ug.js +2 -2
- data/app/assets/javascripts/ckeditor/plugins/widget/lang/uk.js +2 -2
- data/app/assets/javascripts/ckeditor/plugins/widget/lang/vi.js +2 -2
- data/app/assets/javascripts/ckeditor/plugins/widget/lang/zh-cn.js +2 -2
- data/app/assets/javascripts/ckeditor/plugins/widget/lang/zh.js +2 -2
- data/app/assets/javascripts/ckeditor/plugins/widget/plugin.js +235 -64
- data/app/assets/javascripts/ckeditor/plugins/widgetselection/plugin.js +6 -11
- data/app/assets/javascripts/ckeditor/plugins/wordcount/lang/ar.js +1 -0
- data/app/assets/javascripts/ckeditor/plugins/wordcount/lang/bg.js +17 -0
- data/app/assets/javascripts/ckeditor/plugins/wordcount/lang/ca.js +1 -0
- data/app/assets/javascripts/ckeditor/plugins/wordcount/lang/cs.js +15 -0
- data/app/assets/javascripts/ckeditor/plugins/wordcount/lang/da.js +1 -0
- data/app/assets/javascripts/ckeditor/plugins/wordcount/lang/de.js +1 -0
- data/app/assets/javascripts/ckeditor/plugins/wordcount/lang/el.js +1 -0
- data/app/assets/javascripts/ckeditor/plugins/wordcount/lang/en.js +5 -1
- data/app/assets/javascripts/ckeditor/plugins/wordcount/lang/es.js +1 -0
- data/app/assets/javascripts/ckeditor/plugins/wordcount/lang/eu.js +17 -0
- data/app/assets/javascripts/ckeditor/plugins/wordcount/lang/fa.js +13 -0
- data/app/assets/javascripts/ckeditor/plugins/wordcount/lang/fi.js +1 -0
- data/app/assets/javascripts/ckeditor/plugins/wordcount/lang/fr.js +1 -0
- data/app/assets/javascripts/ckeditor/plugins/wordcount/lang/he.js +1 -0
- data/app/assets/javascripts/ckeditor/plugins/wordcount/lang/hr.js +1 -0
- data/app/assets/javascripts/ckeditor/plugins/wordcount/lang/hu.js +14 -0
- data/app/assets/javascripts/ckeditor/plugins/wordcount/lang/it.js +4 -3
- data/app/assets/javascripts/ckeditor/plugins/wordcount/lang/ja.js +5 -5
- data/app/assets/javascripts/ckeditor/plugins/wordcount/lang/ko.js +16 -0
- data/app/assets/javascripts/ckeditor/plugins/wordcount/lang/nl.js +3 -2
- data/app/assets/javascripts/ckeditor/plugins/wordcount/lang/no.js +1 -0
- data/app/assets/javascripts/ckeditor/plugins/wordcount/lang/pl.js +4 -3
- data/app/assets/javascripts/ckeditor/plugins/wordcount/lang/pt-br.js +1 -0
- data/app/assets/javascripts/ckeditor/plugins/wordcount/lang/pt.js +1 -0
- data/app/assets/javascripts/ckeditor/plugins/wordcount/lang/ro.js +15 -0
- data/app/assets/javascripts/ckeditor/plugins/wordcount/lang/ru.js +2 -1
- data/app/assets/javascripts/ckeditor/plugins/wordcount/lang/sk.js +15 -0
- data/app/assets/javascripts/ckeditor/plugins/wordcount/lang/sv.js +5 -3
- data/app/assets/javascripts/ckeditor/plugins/wordcount/lang/tr.js +1 -0
- data/app/assets/javascripts/ckeditor/plugins/wordcount/lang/uk.js +17 -0
- data/app/assets/javascripts/ckeditor/plugins/wordcount/lang/zh-cn.js +1 -0
- data/app/assets/javascripts/ckeditor/plugins/wordcount/lang/zh.js +14 -0
- data/app/assets/javascripts/ckeditor/plugins/wordcount/plugin.js +485 -302
- data/app/assets/javascripts/ckeditor/plugins/wordcount/samples/maxParagraphs.html +26 -0
- data/app/assets/javascripts/integral/backend.js +197 -26
- data/app/assets/javascripts/integral/frontend.js +37 -2
- data/app/assets/javascripts/integral/support/character_counter.js +14 -8
- data/app/assets/javascripts/integral/support/confirm_modal.coffee +2 -2
- data/app/assets/javascripts/integral/support/date_picker.coffee +54 -59
- data/app/assets/javascripts/integral/support/gallery.coffee +85 -43
- data/app/assets/javascripts/integral/support/grid.coffee +11 -4
- data/app/assets/javascripts/integral/support/lib/lazysizes.js +755 -0
- data/app/assets/javascripts/integral/support/lib/materialize-tags.js +49 -44
- data/app/assets/javascripts/integral/support/list.coffee +1 -0
- data/app/assets/javascripts/integral/support/ls.instagram.js +57 -0
- data/app/assets/javascripts/integral/support/ls.twitter.js +66 -0
- data/app/assets/javascripts/integral/support/record_selector.coffee +3 -1
- data/app/assets/javascripts/integral/support/remote_form.coffee +18 -11
- data/app/assets/javascripts/integral/support/slug_generator.coffee +1 -0
- data/app/assets/stylesheets/integral/backend.sass +36 -24
- data/app/assets/stylesheets/integral/backend/_foundation_settings.scss +5 -6
- data/app/assets/stylesheets/integral/backend/dashboard-layout.scss +31 -64
- data/app/assets/stylesheets/integral/backend/devise.sass +2 -3
- data/app/assets/stylesheets/integral/backend/materialize-tags.sass +2 -1
- data/app/assets/stylesheets/integral/backend/modules/dropdown_pane_notifications.scss +150 -0
- data/app/assets/stylesheets/integral/backend/modules/dropdown_pane_profile.scss +59 -0
- data/app/assets/stylesheets/integral/backend/modules/timeline.scss +214 -0
- data/app/assets/stylesheets/integral/backend/shared.sass +121 -13
- data/app/assets/stylesheets/integral/frontend.scss +45 -0
- data/app/assets/stylesheets/integral/frontend/_foundation_settings.scss +2 -2
- data/app/assets/stylesheets/integral/frontend/blog.sass +155 -142
- data/app/assets/stylesheets/integral/frontend/layout.sass +13 -3
- data/app/assets/stylesheets/integral/frontend/modules/article-footer.scss +55 -0
- data/app/assets/stylesheets/integral/frontend/modules/article.scss +34 -0
- data/app/assets/stylesheets/integral/frontend/modules/horizontal-post.scss +44 -0
- data/app/assets/stylesheets/integral/frontend/modules/inline-articles.scss +23 -0
- data/app/assets/stylesheets/integral/frontend/modules/latest-post.scss +37 -0
- data/app/assets/stylesheets/integral/frontend/modules/list-widget.scss +50 -0
- data/app/assets/stylesheets/integral/frontend/modules/piped-list.scss +33 -0
- data/app/assets/stylesheets/integral/frontend/modules/post-tags.scss +19 -0
- data/app/assets/stylesheets/integral/frontend/modules/scroll-container.scss +9 -0
- data/app/assets/stylesheets/integral/frontend/modules/sidebar-articles.scss +42 -0
- data/app/assets/stylesheets/integral/frontend/modules/sidebar-tags.scss +6 -0
- data/app/assets/stylesheets/integral/frontend/modules/sidebar-widget.scss +47 -0
- data/app/assets/stylesheets/integral/frontend/modules/vertical-post.scss +31 -0
- data/app/assets/stylesheets/integral/frontend/share_modal.sass +0 -5
- data/app/assets/stylesheets/integral/support/gallery.sass +18 -2
- data/app/assets/stylesheets/integral/support/media-query-indicator.sass +9 -3
- data/app/controllers/integral/application_controller.rb +10 -3
- data/app/controllers/integral/backend/activities_controller.rb +31 -26
- data/app/controllers/integral/backend/base_controller.rb +265 -26
- data/app/controllers/integral/backend/categories_controller.rb +49 -0
- data/app/controllers/integral/backend/images_controller.rb +39 -56
- data/app/controllers/integral/backend/lists_controller.rb +16 -104
- data/app/controllers/integral/backend/notification_subscriptions_controller.rb +23 -0
- data/app/controllers/integral/backend/pages_controller.rb +15 -117
- data/app/controllers/integral/backend/posts_controller.rb +22 -108
- data/app/controllers/integral/backend/settings_controller.rb +7 -8
- data/app/controllers/integral/backend/static_pages_controller.rb +14 -0
- data/app/controllers/integral/backend/users_controller.rb +61 -79
- data/app/controllers/integral/blog_controller.rb +12 -0
- data/app/controllers/integral/categories_controller.rb +45 -0
- data/app/controllers/integral/pages_controller.rb +7 -3
- data/app/controllers/integral/posts_controller.rb +7 -9
- data/app/controllers/integral/tags_controller.rb +5 -2
- data/app/decorators/integral/base_decorator.rb +16 -0
- data/app/decorators/integral/category_decorator.rb +30 -0
- data/app/decorators/integral/image_decorator.rb +3 -3
- data/app/decorators/integral/list_decorator.rb +1 -13
- data/app/decorators/integral/notification/notification_decorator.rb +74 -0
- data/app/decorators/integral/page_decorator.rb +1 -13
- data/app/decorators/integral/paginating_decorator.rb +6 -0
- data/app/decorators/integral/post_decorator.rb +44 -4
- data/app/decorators/integral/user_decorator.rb +1 -13
- data/app/decorators/integral/version_decorator.rb +58 -15
- data/app/helpers/integral/application_helper.rb +7 -0
- data/app/helpers/integral/backend/base_helper.rb +139 -13
- data/app/helpers/integral/blog_helper.rb +46 -0
- data/app/helpers/integral/social_helper.rb +0 -23
- data/app/jobs/integral/application_job.rb +1 -0
- data/app/jobs/integral/newsletter_signup_job.rb +0 -2
- data/app/jobs/integral/webhook/delivery_job.rb +37 -0
- data/app/mailers/integral/contact_mailer.rb +4 -1
- data/app/mailers/integral/devise_mailer.rb +6 -0
- data/app/models/concerns/integral/lazy_contentable.rb +54 -0
- data/app/models/concerns/integral/notification/subscribable.rb +67 -0
- data/app/models/concerns/integral/webhook/delivery.rb +30 -0
- data/app/models/concerns/integral/webhook/observable.rb +23 -0
- data/app/models/integral/application_record.rb +9 -0
- data/app/models/integral/category.rb +29 -0
- data/app/models/integral/category_version.rb +8 -0
- data/app/models/integral/image.rb +40 -3
- data/app/models/integral/list.rb +11 -4
- data/app/models/integral/list_item.rb +15 -16
- data/app/models/integral/list_item_connection.rb +6 -0
- data/app/models/integral/notification/notification.rb +28 -0
- data/app/models/integral/notification/subscription.rb +14 -0
- data/app/models/integral/page.rb +32 -10
- data/app/models/integral/post.rb +39 -14
- data/app/models/integral/user.rb +51 -2
- data/app/models/integral/version.rb +2 -2
- data/app/models/integral/webhook/endpoint.rb +40 -0
- data/app/models/integral/webhook/event.rb +20 -0
- data/app/policies/integral/base_policy.rb +7 -11
- data/app/policies/integral/category_policy.rb +9 -0
- data/app/policies/integral/page_policy.rb +1 -0
- data/app/policies/integral/version_policy.rb +0 -8
- data/app/serializers/integral/post_serializer.rb +24 -0
- data/app/uploaders/integral/avatar_uploader.rb +1 -1
- data/app/views/devise/invitations/edit.haml +1 -4
- data/app/views/devise/mailer/invitation_instructions.inky-haml +20 -0
- data/app/views/devise/sessions/new.haml +2 -2
- data/app/views/integral/backend/activities/_activity.haml +21 -0
- data/app/views/integral/backend/activities/grid/_dropdown_actions.haml +1 -0
- data/app/views/integral/backend/activities/grid/_row_content.haml +13 -0
- data/app/views/integral/backend/activities/index.haml +7 -13
- data/app/views/integral/backend/activities/shared/_grid.haml +35 -19
- data/app/views/integral/backend/activities/shared/index.haml +15 -0
- data/app/views/integral/backend/activities/shared/{_log.haml → show.haml} +7 -7
- data/app/views/integral/backend/activities/show.haml +1 -1
- data/app/views/integral/backend/categories/_modal.haml +24 -0
- data/app/views/integral/backend/images/_form.haml +16 -28
- data/app/views/integral/backend/images/edit.haml +2 -2
- data/app/views/integral/backend/images/grid/_dropdown_actions.haml +5 -0
- data/app/views/integral/backend/images/grid/_row_content.haml +5 -0
- data/app/views/integral/backend/images/index.haml +11 -17
- data/app/views/integral/backend/images/list.haml +11 -0
- data/app/views/integral/backend/images/show.haml +26 -0
- data/app/views/integral/backend/lists/_form.haml +7 -20
- data/app/views/integral/backend/lists/_item_container.haml +1 -1
- data/app/views/integral/backend/lists/_item_modal.haml +3 -3
- data/app/views/integral/backend/lists/_list_item_fields.haml +3 -2
- data/app/views/integral/backend/lists/_manager.haml +11 -13
- data/app/views/integral/backend/lists/edit.haml +22 -1
- data/app/views/integral/backend/lists/grid/_dropdown_actions.haml +9 -0
- data/app/views/integral/backend/lists/grid/_row_content.haml +3 -0
- data/app/views/integral/backend/lists/index.haml +11 -17
- data/app/views/integral/backend/lists/list.haml +11 -0
- data/app/views/integral/backend/lists/show.haml +27 -23
- data/app/views/integral/backend/notifications/_notification.haml +21 -0
- data/app/views/integral/backend/pages/_form.haml +20 -47
- data/app/views/integral/backend/pages/edit.haml +18 -0
- data/app/views/integral/backend/pages/grid/_dropdown_actions.haml +11 -0
- data/app/views/integral/backend/pages/grid/_row_content.haml +5 -0
- data/app/views/integral/backend/pages/index.haml +11 -21
- data/app/views/integral/backend/pages/list.haml +15 -0
- data/app/views/integral/backend/pages/show.haml +32 -0
- data/app/views/integral/backend/posts/_form.haml +19 -51
- data/app/views/integral/backend/posts/edit.haml +5 -10
- data/app/views/integral/backend/posts/grid/_dropdown_actions.haml +10 -0
- data/app/views/integral/backend/posts/grid/_row_content.haml +6 -0
- data/app/views/integral/backend/posts/index.haml +13 -19
- data/app/views/integral/backend/posts/list.haml +13 -0
- data/app/views/integral/backend/posts/new.haml +0 -1
- data/app/views/integral/backend/posts/show.haml +31 -0
- data/app/views/integral/backend/settings/sections/_social.haml +1 -3
- data/app/views/integral/backend/shared/_activity_modal.haml +13 -0
- data/app/views/integral/backend/shared/_breadcrumbs.haml +7 -4
- data/app/views/integral/backend/shared/_image_preview.haml +10 -3
- data/app/views/integral/backend/shared/_image_selector.haml +1 -1
- data/app/views/integral/backend/shared/_notification_subscription_toggle.haml +22 -0
- data/app/views/integral/backend/shared/action_bar/_index.haml +9 -0
- data/app/views/integral/backend/shared/action_bar/_show.haml +3 -0
- data/app/views/integral/backend/shared/cards/_at_a_glance.haml +3 -3
- data/app/views/integral/backend/shared/cards/_categories.haml +33 -0
- data/app/views/integral/backend/{static_pages/_card.haml → shared/cards/_object.haml} +1 -1
- data/app/views/integral/backend/shared/cards/_recent_activity.haml +20 -0
- data/app/views/integral/backend/shared/cards/_recent_resources.haml +17 -0
- data/app/views/integral/backend/shared/cards/_recent_user_activity.haml +1 -0
- data/app/views/integral/backend/shared/cards/_top_post_authors.haml +18 -0
- data/app/views/integral/backend/shared/cards/_welcome.haml +24 -25
- data/app/views/integral/backend/shared/{_empty_grid.haml → grid/_empty.haml} +0 -0
- data/app/views/integral/backend/shared/grid/_form.haml +9 -0
- data/app/views/integral/backend/shared/grid/_grid.haml +21 -0
- data/app/views/integral/backend/shared/{_pagination.haml → grid/_pagination.haml} +0 -0
- data/app/views/integral/backend/shared/grid/_row_layout.haml +8 -0
- data/app/views/integral/backend/shared/record_selector/_collection.haml +1 -0
- data/app/views/integral/backend/shared/record_selector/_modal.haml +9 -10
- data/app/views/integral/backend/shared/record_selector/_record.haml +6 -4
- data/app/views/integral/backend/static_pages/dashboard.haml +17 -15
- data/app/views/integral/backend/users/_form.haml +35 -47
- data/app/views/integral/backend/users/edit.haml +1 -1
- data/app/views/integral/backend/users/grid/_dropdown_actions.haml +17 -0
- data/app/views/integral/backend/users/grid/_row_content.haml +8 -0
- data/app/views/integral/backend/users/index.haml +11 -17
- data/app/views/integral/backend/users/list.haml +12 -0
- data/app/views/integral/backend/users/show.haml +22 -19
- data/app/views/integral/categories/show.haml +5 -0
- data/app/views/integral/pages/_demo.haml +2 -2
- data/app/views/integral/posts/_article_footer.haml +17 -0
- data/app/views/integral/posts/_card.haml +11 -0
- data/app/views/integral/posts/_latest_post.haml +8 -0
- data/app/views/integral/posts/_most_read_section.haml +8 -0
- data/app/views/integral/posts/_post.haml +11 -0
- data/app/views/integral/posts/_similar_posts.haml +5 -0
- data/app/views/integral/posts/index.haml +7 -5
- data/app/views/integral/posts/templates/default.haml +35 -35
- data/app/views/integral/shared/_share_modal.haml +0 -3
- data/app/views/integral/shared/_social_list_items.haml +6 -12
- data/app/views/integral/shared/_subscribe_modal.haml +14 -0
- data/app/views/integral/shared/blog/_categories.haml +15 -0
- data/app/views/integral/shared/blog/_layout.haml +9 -0
- data/app/views/integral/shared/blog/_sidebar.haml +10 -0
- data/app/views/integral/shared/gallery/_placeholder.haml +2 -2
- data/app/views/integral/shared/gallery/_slide.haml +2 -2
- data/app/views/integral/shared/gallery/gallery.haml +5 -2
- data/app/views/integral/shared/sidebar/_item.haml +8 -0
- data/app/views/integral/shared/sidebar/_newsletter_signup.haml +7 -0
- data/app/views/integral/shared/sidebar/_popular_posts.haml +7 -0
- data/app/views/integral/shared/sidebar/_popular_tags.haml +7 -0
- data/app/views/integral/shared/sidebar/_recent_posts.haml +7 -0
- data/app/views/integral/tags/index.haml +2 -2
- data/app/views/integral/tags/show.haml +3 -6
- data/app/views/layouts/integral/backend.html.haml +27 -5
- data/app/views/layouts/integral/backend/_create_dropdown.haml +1 -30
- data/app/views/layouts/integral/backend/_main_menu_items.haml +1 -91
- data/app/views/layouts/integral/frontend.html.haml +3 -3
- data/config/initializers/devise.rb +1 -1
- data/config/locales/en.yml +131 -56
- data/config/routes.rb +2 -0
- data/db/migrate/20190414172018_create_webhook_endpoints.rb +10 -0
- data/db/migrate/20190929191412_add_integral_post_categories.rb +13 -0
- data/db/migrate/20191203090008_add_image_to_integral_categories.rb +6 -0
- data/db/migrate/20200401210442_create_category_versions.rb +20 -0
- data/db/migrate/20200407022636_create_integral_notifications.rb +25 -0
- data/db/migrate/20200421223602_add_status_to_integral_users.rb +5 -0
- data/db/seeds.rb +16 -10
- data/lib/generators/integral/assets_generator.rb +54 -0
- data/lib/generators/integral/install_generator.rb +37 -3
- data/lib/generators/integral/views_generator.rb +66 -0
- data/lib/generators/templates/app.yml +0 -1
- data/lib/generators/templates/integral.rb +5 -0
- data/lib/generators/templates/routes.rb +7 -0
- data/lib/generators/templates/seeds.rb +2 -0
- data/lib/integral.rb +4 -30
- data/lib/integral/acts_as_integral.rb +115 -0
- data/lib/integral/acts_as_listable.rb +3 -3
- data/lib/integral/chart_renderer/base.rb +2 -0
- data/lib/integral/content_renderer.rb +3 -3
- data/lib/integral/engine.rb +12 -2
- data/lib/integral/grids/activities_grid.rb +15 -2
- data/lib/integral/grids/lists_grid.rb +1 -0
- data/lib/integral/grids/posts_grid.rb +5 -1
- data/lib/integral/grids/users_grid.rb +5 -0
- data/lib/integral/list_item_renderer.rb +4 -2
- data/lib/integral/list_renderer.rb +6 -1
- data/lib/integral/middleware/page_router.rb +15 -6
- data/lib/integral/router.rb +41 -7
- data/lib/integral/version.rb +1 -1
- data/lib/integral/widgets/recent_posts.rb +1 -1
- data/lib/integral/widgets/swiper_list.rb +3 -2
- data/public/images/integral/demo/continous-integration.png +0 -0
- data/public/images/integral/demo/foundation-frontend-framework.jpg +0 -0
- data/public/images/integral/demo/heroku.png +0 -0
- data/public/images/integral/demo/integral-cms-without-hassle.jpg +0 -0
- data/public/images/integral/demo/integral-features-activity-tracking.jpg +0 -0
- data/public/images/integral/demo/integral-features-contact-form.png +0 -0
- data/public/images/integral/demo/integral-features-design.jpg +0 -0
- data/public/images/integral/demo/integral-features-dynamic-pages.jpg +0 -0
- data/public/images/integral/demo/integral-features-image-management.jpg +0 -0
- data/public/images/integral/demo/integral-features-integrated-blog.jpg +0 -0
- data/public/images/integral/demo/integral-features-list-management.jpg +0 -0
- data/public/images/integral/demo/integral-features-seo-ready.jpg +0 -0
- data/public/images/integral/demo/integral-features-user-management.jpg +0 -0
- data/public/images/integral/demo/integral-presentation.png +0 -0
- data/public/integral/ckeditor_demo_content.html +0 -13
- data/spec/factories.rb +30 -8
- metadata +322 -127
- data/app/assets/javascripts/ckeditor/plugins/wordcount/lang/jp.js +0 -13
- data/app/assets/javascripts/integral/support/date_picker/picker.date.js +0 -1435
- data/app/assets/javascripts/integral/support/date_picker/picker.js +0 -1132
- data/app/assets/stylesheets/integral/frontend.sass +0 -26
- data/app/assets/stylesheets/integral/support/date-picker.scss +0 -16
- data/app/assets/stylesheets/integral/support/date_picker/_default.date.scss +0 -452
- data/app/assets/stylesheets/integral/support/date_picker/_default.scss +0 -201
- data/app/assets/stylesheets/integral/support/date_picker/materialize_clockpicker.sass +0 -220
- data/app/assets/stylesheets/integral/wysiwyg.sass +0 -13
- data/app/views/devise/mailer/invitation_instructions.html.erb +0 -13
- data/app/views/integral/backend/activities/_grid.haml +0 -23
- data/app/views/integral/backend/activities/shared/_listing.haml +0 -14
- data/app/views/integral/backend/images/_grid.haml +0 -16
- data/app/views/integral/backend/lists/_grid.haml +0 -16
- data/app/views/integral/backend/pages/_grid.haml +0 -21
- data/app/views/integral/backend/pages/activities.haml +0 -2
- data/app/views/integral/backend/pages/activity.haml +0 -1
- data/app/views/integral/backend/pages/edit.html.haml +0 -15
- data/app/views/integral/backend/posts/_grid.haml +0 -25
- data/app/views/integral/backend/posts/activities.haml +0 -3
- data/app/views/integral/backend/posts/activity.haml +0 -1
- data/app/views/integral/backend/shared/_grid.haml +0 -18
- data/app/views/integral/backend/users/_grid.haml +0 -19
- data/app/views/integral/posts/_item.haml +0 -16
- data/app/views/integral/shared/_blog_layout.haml +0 -15
- data/app/views/integral/shared/_blog_sidebar.haml +0 -49
- data/lib/integral/slack_bot.rb +0 -45
@@ -0,0 +1,26 @@
|
|
1
|
+
<!DOCTYPE html>
|
2
|
+
<html>
|
3
|
+
<head>
|
4
|
+
<meta charset="utf-8">
|
5
|
+
<title>CKEditor</title>
|
6
|
+
<script src="../../../ckeditor.js"></script>
|
7
|
+
</head>
|
8
|
+
<body>
|
9
|
+
<textarea name="editor1"></textarea>
|
10
|
+
<script>
|
11
|
+
var config = {
|
12
|
+
extraPlugins: 'wordcount',
|
13
|
+
wordcount: {
|
14
|
+
maxParagraphs: 5,
|
15
|
+
showParagraphs: true,
|
16
|
+
showWordCount: false,
|
17
|
+
showRemaining: true
|
18
|
+
},
|
19
|
+
language: 'en'
|
20
|
+
}
|
21
|
+
</script>
|
22
|
+
<script>
|
23
|
+
CKEDITOR.replace( 'editor1' , config);
|
24
|
+
</script>
|
25
|
+
</body>
|
26
|
+
</html>
|
@@ -42,6 +42,54 @@ function ready() {
|
|
42
42
|
window.initialized = true;
|
43
43
|
}
|
44
44
|
|
45
|
+
function loadMore(entries) {
|
46
|
+
if (entries[0].intersectionRatio <= 0) {
|
47
|
+
return;
|
48
|
+
}
|
49
|
+
lastNotificationObserver.unobserve(notificationsContainer.find('ul li:last-of-type')[0])
|
50
|
+
|
51
|
+
$.ajax({
|
52
|
+
url: notificationsContainer.data('load-more-url'),
|
53
|
+
success: function(response) {
|
54
|
+
notificationsContainer.find('ul').append(response.content)
|
55
|
+
$('[data-notification-read-url]').each(function( index, notification ) {
|
56
|
+
unreadNotificationObserver.unobserve(notification)
|
57
|
+
unreadNotificationObserver.observe(notification)
|
58
|
+
});
|
59
|
+
|
60
|
+
if (response.load_more_url) {
|
61
|
+
notificationsContainer.data('load-more-url', response.load_more_url)
|
62
|
+
lastNotificationObserver.observe(notificationsContainer.find('ul li:last-of-type')[0])
|
63
|
+
} else {
|
64
|
+
notificationsContainer.find('.js-loader--notifications').hide()
|
65
|
+
}
|
66
|
+
}
|
67
|
+
});
|
68
|
+
}
|
69
|
+
|
70
|
+
function readNotification(entries) {
|
71
|
+
var i;
|
72
|
+
for (i = 0; i < entries.length; i++) {
|
73
|
+
entry = entries[i]
|
74
|
+
|
75
|
+
if (entry.intersectionRatio < .90) {
|
76
|
+
continue;
|
77
|
+
}
|
78
|
+
|
79
|
+
readUrl = entry.target.dataset.notificationReadUrl
|
80
|
+
|
81
|
+
unreadNotificationObserver.unobserve(entry.target)
|
82
|
+
entry.target.removeAttribute('data-notification-read-url')
|
83
|
+
|
84
|
+
$.ajax({
|
85
|
+
url: readUrl,
|
86
|
+
type: 'PUT',
|
87
|
+
success: function(response) {
|
88
|
+
}
|
89
|
+
});
|
90
|
+
}
|
91
|
+
}
|
92
|
+
|
45
93
|
$(document).foundation();
|
46
94
|
jQuery('input, textarea').characterCounter();
|
47
95
|
SlugGenerator.check_for_slugs();
|
@@ -50,8 +98,126 @@ function ready() {
|
|
50
98
|
new ChartManager();
|
51
99
|
NotificationManager.flash();
|
52
100
|
ImageUploader.init();
|
101
|
+
new RemoteForm($('.remote-form'));
|
53
102
|
Grid.init();
|
54
103
|
|
104
|
+
$("[data-form-subscribe-notifications], [data-form-unsubscribe-notifications]").submit(function( event ) {
|
105
|
+
$(event.target).find('.button').attr('disabled', true)
|
106
|
+
});
|
107
|
+
|
108
|
+
$('[data-form-subscribe-notifications]').on( "ajax:success", function(event, response) {
|
109
|
+
activeForm = $(event.target)
|
110
|
+
activeForm.find('.button').attr('disabled', false)
|
111
|
+
activeForm.addClass('hide')
|
112
|
+
$('[data-form-unsubscribe-notifications]').removeClass('hide')
|
113
|
+
toastr['success']('You have subscribed to notifications.')
|
114
|
+
});
|
115
|
+
|
116
|
+
$('[data-form-unsubscribe-notifications]').on( "ajax:success", function(event, response) {
|
117
|
+
activeForm = $(event.target)
|
118
|
+
activeForm.find('.button').attr('disabled', false)
|
119
|
+
activeForm.addClass('hide')
|
120
|
+
$('[data-form-subscribe-notifications]').removeClass('hide')
|
121
|
+
toastr['success']('You have unsubscribed to notifications.')
|
122
|
+
});
|
123
|
+
|
124
|
+
notificationsContainer = $('[data-notifications]')
|
125
|
+
if (notificationsContainer.data('load-more-url')) {
|
126
|
+
lastNotificationObserver = new IntersectionObserver(loadMore, { root: notificationsContainer[0] });
|
127
|
+
lastNotificationObserver.observe(notificationsContainer.find('ul li:last-of-type')[0])
|
128
|
+
}
|
129
|
+
|
130
|
+
unreadNotificationObserver = new IntersectionObserver(readNotification, { root: notificationsContainer[0], threshold: 0.90 });
|
131
|
+
$('[data-notification-read-url]').each(function( index, notification ) {
|
132
|
+
unreadNotificationObserver.observe(notification)
|
133
|
+
});
|
134
|
+
|
135
|
+
// Recent activity 'view more' behaviour
|
136
|
+
$("[data-recent-activity]").on("click", function(ev) {
|
137
|
+
$button = $(ev.currentTarget);
|
138
|
+
modalId = $button.data('container-id');
|
139
|
+
|
140
|
+
$modal = $('#' + modalId);
|
141
|
+
if ($modal.length > 0) {
|
142
|
+
$modal.foundation('open');
|
143
|
+
} else {
|
144
|
+
$modal = $('#activity-placeholder').clone().appendTo('body')
|
145
|
+
$form = $modal.find('form')
|
146
|
+
$modal.attr('id', modalId)
|
147
|
+
$modal.foundation()
|
148
|
+
|
149
|
+
// Populate modal with content & filters
|
150
|
+
$modal.find('[data-title]').html($button.data('recent-activity-title'))
|
151
|
+
$modal.find('[data-timeline]').html($button.closest('.card').find('.timeline').html())
|
152
|
+
$form.find("input[name='grid[user]']").val($button.data('recent-activity-user'))
|
153
|
+
$form.find("input[name='grid[object]']").val($button.data('recent-activity-object'))
|
154
|
+
$form.find("input[name='grid[created_at]']").val($button.data('recent-activity-created-at'))
|
155
|
+
$form.find("input[name='grid[item_id]']").val($button.data('recent-activity-item-id'))
|
156
|
+
|
157
|
+
$form.on( "ajax:success", function(event, response) {
|
158
|
+
if (response.last_created_at != null) {
|
159
|
+
$modal.find('[data-timeline]').append(response.content)
|
160
|
+
$form.find("input[name='grid[created_at]']").val(response.last_created_at)
|
161
|
+
} else {
|
162
|
+
$form.find("input[type='submit']").hide()
|
163
|
+
}
|
164
|
+
});
|
165
|
+
|
166
|
+
$modal.foundation('open')
|
167
|
+
$form.submit()
|
168
|
+
}
|
169
|
+
});
|
170
|
+
|
171
|
+
// Initialize foundation components on filter
|
172
|
+
$(".card.listing form").on("ajax:success", function(ev) {
|
173
|
+
$(ev.currentTarget).closest('.card.listing').find('[data-grid] table').foundation();
|
174
|
+
});
|
175
|
+
|
176
|
+
// Hijack context menu click for rows which have a URL
|
177
|
+
$('.card.listing').on('contextmenu', 'tr[data-href]', function(ev) {
|
178
|
+
$('#' + ev.currentTarget.dataset.contextMenu).foundation('open');
|
179
|
+
|
180
|
+
return false;
|
181
|
+
});
|
182
|
+
|
183
|
+
// Capture clicks on rows which have a URL and visit that URL
|
184
|
+
$('.card.listing').on('click', 'tr[data-href]', function(ev) {
|
185
|
+
// Do not follow if the click is within a data-toggle
|
186
|
+
if (($(ev.target).closest('[data-toggle]').length == 0) && ($(ev.target).closest('[data-dropdown]').length == 0)) {
|
187
|
+
document.location = $(ev.currentTarget).data('href');
|
188
|
+
}
|
189
|
+
});
|
190
|
+
|
191
|
+
$("[data-button-delete-category]").on("ajax:success", function(ev) {
|
192
|
+
$(ev.currentTarget).closest('tr').fadeOut();
|
193
|
+
});
|
194
|
+
|
195
|
+
$("[data-button-delete-category]").on("ajax:error", function(ev) {
|
196
|
+
toastr["error"](I18n.t('integral.remote_form.error'));
|
197
|
+
});
|
198
|
+
|
199
|
+
$("#new_category_modal").on("open.zf.reveal", function(ev) {
|
200
|
+
$(ev.currentTarget).find('form').enableClientSideValidations();
|
201
|
+
});
|
202
|
+
|
203
|
+
$("[data-button-edit-category]").on( "click", function(ev) {
|
204
|
+
modalId = '#' + ev.currentTarget.dataset.buttonEditCategory;
|
205
|
+
modalUrl = ev.currentTarget.dataset.modalUrl;
|
206
|
+
|
207
|
+
if ($(modalId).length == 0) {
|
208
|
+
$.ajax({url: modalUrl, success: function(response){
|
209
|
+
$('body').append(response.content);
|
210
|
+
modal = $(modalId);
|
211
|
+
modal.foundation().foundation('open');
|
212
|
+
modal.find('form').enableClientSideValidations();
|
213
|
+
new RemoteForm(modal.find('form'));
|
214
|
+
SlugGenerator.check_for_slugs();
|
215
|
+
}});
|
216
|
+
} else {
|
217
|
+
$(modalId).foundation('open');
|
218
|
+
}
|
219
|
+
});
|
220
|
+
|
55
221
|
if (($('body.lists.new').length > 0) || ($('body.lists.show').length > 0) || ($('body.lists.edit').length > 0)) {
|
56
222
|
new List();
|
57
223
|
}
|
@@ -92,24 +258,20 @@ function ready() {
|
|
92
258
|
var dialogName = ev.data.name;
|
93
259
|
var dialogDefinition = ev.data.definition;
|
94
260
|
|
95
|
-
|
96
|
-
if ( dialogName == 'image' ) {
|
261
|
+
if ( dialogName == 'image2' ) {
|
97
262
|
var infoTab = dialogDefinition.getContents('info');
|
98
|
-
var advancedTab = dialogDefinition.getContents('advanced');
|
99
263
|
|
100
|
-
// Remove
|
101
|
-
infoTab.remove('
|
102
|
-
infoTab.remove('
|
103
|
-
|
104
|
-
|
105
|
-
infoTab.
|
106
|
-
|
107
|
-
|
108
|
-
advancedTab.remove('cmbLangDir');
|
109
|
-
advancedTab.remove('txtLangCode');
|
110
|
-
advancedTab.remove('txtGenLongDescr');
|
264
|
+
// Remove unused inputs
|
265
|
+
infoTab.remove('height');
|
266
|
+
infoTab.remove('lock');
|
267
|
+
|
268
|
+
// Do not validate width input
|
269
|
+
infoTab.get('width').validate = function() {
|
270
|
+
return true;
|
271
|
+
}
|
111
272
|
}
|
112
273
|
|
274
|
+
// Remove unused inputs for link
|
113
275
|
if ( dialogName == 'link' ) {
|
114
276
|
var advancedTab = dialogDefinition.getContents('advanced');
|
115
277
|
var targetTab = dialogDefinition.getContents('target');
|
@@ -185,7 +347,7 @@ function ready() {
|
|
185
347
|
I18n.locale = $('body').data('locale') || 'en';
|
186
348
|
|
187
349
|
// CKEditor Initialization
|
188
|
-
// TODO:
|
350
|
+
// TODO: Fork Ckeditor and remove obtrusive JS causing the below to throw warnings
|
189
351
|
for(name in CKEDITOR.instances) {
|
190
352
|
CKEDITOR.instances[name].destroy(true);
|
191
353
|
}
|
@@ -230,25 +392,34 @@ function ready() {
|
|
230
392
|
};
|
231
393
|
|
232
394
|
// Material Tags
|
233
|
-
$("
|
234
|
-
suggestableInput = $(this)
|
235
|
-
|
236
|
-
|
237
|
-
|
238
|
-
|
239
|
-
|
240
|
-
|
241
|
-
|
242
|
-
|
395
|
+
$("[data-suggest-tags]").each(function( index ) {
|
396
|
+
suggestableInput = $(this);
|
397
|
+
typeaheadSuggestions = suggestableInput.data('suggestTagsTypeahead').split(' ');
|
398
|
+
freeInput = suggestableInput.data('suggestTagsFreeInput');
|
399
|
+
|
400
|
+
if (typeof freeInput === 'undefined') {
|
401
|
+
freeInput = true;
|
402
|
+
}
|
403
|
+
|
404
|
+
// Initialize suggest engine
|
405
|
+
suggestEngine = new Bloodhound({
|
406
|
+
datumTokenizer: Bloodhound.tokenizers.whitespace,
|
407
|
+
queryTokenizer: Bloodhound.tokenizers.whitespace,
|
408
|
+
local: typeaheadSuggestions
|
409
|
+
});
|
243
410
|
|
244
411
|
// Initialize materialtags
|
245
412
|
suggestableInput.materialtags({
|
413
|
+
freeInput: freeInput,
|
246
414
|
typeaheadjs: {
|
247
415
|
source: function(query, cb) {
|
248
416
|
suggestEngine.search(query, function(suggestions) {
|
249
417
|
cb(filterSuggestions(suggestableInput, suggestions));
|
250
418
|
});
|
251
|
-
}
|
419
|
+
},
|
420
|
+
// TODO: These two options don't currently work but would be nice to add in
|
421
|
+
autoselect: true,
|
422
|
+
highlight: true
|
252
423
|
}
|
253
424
|
});
|
254
425
|
});
|
@@ -9,8 +9,10 @@
|
|
9
9
|
//= require toastr
|
10
10
|
//= require rails.validations
|
11
11
|
//= require rails.validations.simple_form
|
12
|
-
//= require integral/support/
|
13
|
-
//= require integral/support/
|
12
|
+
//= require integral/support/lib/lazysizes
|
13
|
+
//= require integral/support/ls.twitter
|
14
|
+
//= require integral/support/ls.instagram
|
15
|
+
//= require integral/support/date_picker
|
14
16
|
//= require integral/support/date_picker
|
15
17
|
//= require integral/support/click_to_copy
|
16
18
|
//= require integral/support/google_analytics
|
@@ -35,6 +37,39 @@ function ready() {
|
|
35
37
|
new RemoteForm($('.remote-form'));
|
36
38
|
new DatePicker('.datepicker');
|
37
39
|
GoogleAnalytics.trackRead();
|
40
|
+
|
41
|
+
// Move most read posts widget to middle of post listing (can't do this serverside due to caching)
|
42
|
+
$mostReadWidget = $('[data-most-read-posts]');
|
43
|
+
if ($mostReadWidget.length == 1) {
|
44
|
+
$('[data-most-read-posts]').insertAfter('[data-post-list] div:nth-child(5)');
|
45
|
+
}
|
46
|
+
|
47
|
+
// Scroll Container
|
48
|
+
// TODO
|
49
|
+
// in future allow to configure each scroll-container how it activiates
|
50
|
+
// also update when changing size
|
51
|
+
$(".scroll-container").each(function( index ) {
|
52
|
+
container = $(this);
|
53
|
+
wrapper = container.find('.scroll-wrapper');
|
54
|
+
visibleChildren = wrapper.children(':visible');
|
55
|
+
//elementWidth = '250';
|
56
|
+
elementWidth = parseInt(container.data('item-width'))
|
57
|
+
|
58
|
+
validSizes = ['small', 'medium']
|
59
|
+
//if (Foundation.MediaQuery.current == 'small') {
|
60
|
+
if (validSizes.includes(Foundation.MediaQuery.current)) {
|
61
|
+
|
62
|
+
visibleChildren.each(function(index) {
|
63
|
+
$(this).css('width', elementWidth);
|
64
|
+
$(this).css('max-width', 'unset');
|
65
|
+
});
|
66
|
+
|
67
|
+
firstChild = visibleChildren.first()
|
68
|
+
wrapperWidth = (elementWidth + (parseInt(firstChild.css('marginLeft')) + parseInt(firstChild.css('marginRight')))) * visibleChildren.size();
|
69
|
+
widthCss = wrapperWidth + 'px';
|
70
|
+
wrapper.css('width', widthCss);
|
71
|
+
}
|
72
|
+
});
|
38
73
|
};
|
39
74
|
|
40
75
|
// Initial Page load event handler
|
@@ -11,8 +11,10 @@ jQuery.fn.characterCounter = function(){
|
|
11
11
|
}
|
12
12
|
|
13
13
|
var itHasLengthAttribute = $input.attr('maxlength') != undefined;
|
14
|
+
var itIsntDisabled = $input.attr('data-character-counter') != 'false';
|
15
|
+
var itIsEnabled = $input.attr('data-character-counter') == 'true';
|
14
16
|
|
15
|
-
if(itHasLengthAttribute){
|
17
|
+
if ((itHasLengthAttribute) && (itIsntDisabled) || itIsEnabled) {
|
16
18
|
$input.on('input', updateCounter);
|
17
19
|
$input.on('focus', updateCounter);
|
18
20
|
$input.on('blur', removeCounterElement);
|
@@ -23,14 +25,18 @@ jQuery.fn.characterCounter = function(){
|
|
23
25
|
};
|
24
26
|
|
25
27
|
function updateCounter(){
|
26
|
-
var maxLength
|
27
|
-
actualLength
|
28
|
-
isValidLength = actualLength <= maxLength;
|
28
|
+
var maxLength = $(this).attr('maxlength');
|
29
|
+
var actualLength = this.value.length;
|
29
30
|
|
30
|
-
|
31
|
-
|
31
|
+
if (maxLength === undefined) {
|
32
|
+
var formattedCount = actualLength;
|
33
|
+
} else {
|
34
|
+
var isValidLength = actualLength <= maxLength;
|
35
|
+
var formattedCount = actualLength + '/' + maxLength;
|
36
|
+
addInputStyle(isValidLength, $(this));
|
37
|
+
}
|
32
38
|
|
33
|
-
|
39
|
+
$(this).parent().find('span[class="character-counter"]').html(formattedCount);
|
34
40
|
}
|
35
41
|
|
36
42
|
function addCounterElement($input) {
|
@@ -44,7 +50,7 @@ function addCounterElement($input) {
|
|
44
50
|
.addClass('character-counter')
|
45
51
|
.css('float','right')
|
46
52
|
.css('font-size','12px')
|
47
|
-
.css('
|
53
|
+
.css('align-self', 'flex-end')
|
48
54
|
.css('height', 1);
|
49
55
|
|
50
56
|
$input.after($counterElement);
|
@@ -16,8 +16,8 @@ $.rails.buildConfirmationDialog = (message, modalId, confirmBtnId, cancelBtnId)
|
|
16
16
|
</div>
|
17
17
|
|
18
18
|
<div class='modal-footer'>
|
19
|
-
<
|
20
|
-
<
|
19
|
+
<button id='#{cancelBtnId}' class='button secondary hollow'>#{I18n.t('integral.actions.cancel')}</button>
|
20
|
+
<button id='#{confirmBtnId}' class='button primary'>#{I18n.t('integral.actions.confirm')}</button>
|
21
21
|
</div>
|
22
22
|
<button class='close-button' data-close aria-label='Close modal' type='button'>
|
23
23
|
<span aria-hidden='true'>×</span>
|
@@ -1,38 +1,44 @@
|
|
1
|
-
# Represents Date Picker
|
1
|
+
# Represents Date Picker - requires jQuery UI Datepicker - https://jqueryui.com/datepicker/
|
2
2
|
class this.DatePicker
|
3
|
+
@getCurrentDate: (element, dateFormat='yy-mm-dd') ->
|
4
|
+
date = null
|
5
|
+
try
|
6
|
+
date = $.datepicker.parseDate( dateFormat, element.value )
|
7
|
+
catch error
|
8
|
+
date
|
9
|
+
|
3
10
|
@initDateRanges: ->
|
4
11
|
$('[data-date-picker-end-element]').each (index, dpStartElement) ->
|
5
12
|
$dpStartElement = $(dpStartElement)
|
6
|
-
|
7
|
-
$dpEndElement = $(
|
8
|
-
dpEnd = $dpEndElement.pickadate('picker')
|
9
|
-
|
10
|
-
# Check if there’s a “from” or “to” date to start with.
|
11
|
-
if dpStart.get('value')
|
12
|
-
minimumDate = new Date(dpStart.get('select').obj.valueOf() + 86400000)
|
13
|
-
dpEnd.set('min', minimumDate)
|
14
|
-
if dpEnd.get('value')
|
15
|
-
maximumDate = new Date(dpEnd.get('select').obj.valueOf() - 86400000)
|
16
|
-
dpStart.set('max', maximumDate)
|
17
|
-
|
18
|
-
# When something is selected, update the “from” and “to” limits.
|
19
|
-
dpStart.on 'set', (event) =>
|
20
|
-
if event.select
|
21
|
-
minimumDate = new Date(dpStart.get('select').obj.valueOf() + 86400000)
|
22
|
-
dpEnd.set('min', minimumDate)
|
13
|
+
endSelector = "[id='" + $dpStartElement.data().datePickerEndElement + "']"
|
14
|
+
$dpEndElement = $(endSelector)
|
23
15
|
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
16
|
+
# Passing these options is doesn't seem to be working?
|
17
|
+
dpStart = $dpStartElement.datepicker(
|
18
|
+
firstDay: 1
|
19
|
+
showAnim: ""
|
20
|
+
)
|
21
|
+
dpEnd = $dpEndElement.datepicker(
|
22
|
+
firstDay: 1
|
23
|
+
showAnim: ""
|
24
|
+
)
|
25
|
+
dpStart.datepicker("option", "firstDay", 1)
|
26
|
+
dpEnd.datepicker("option", "firstDay", 1)
|
27
|
+
dpStart.datepicker("option", "showAnim", '')
|
28
|
+
dpEnd.datepicker("option", "showAnim", '')
|
29
|
+
dpStart.on "change", (ev) =>
|
30
|
+
dateMinimum = DatePicker.getCurrentDate(ev.currentTarget)
|
31
|
+
dateMinimum.setDate(dateMinimum.getDate() + 1)
|
32
|
+
dpEnd.datepicker("option", "minDate", dateMinimum)
|
33
|
+
dpEnd.on "change", (ev) =>
|
34
|
+
dateMaximum = DatePicker.getCurrentDate(ev.currentTarget)
|
35
|
+
dateMaximum.setDate(dateMaximum.getDate() - 1)
|
36
|
+
dpStart.datepicker("option", "maxDate", dateMaximum)
|
30
37
|
|
31
38
|
constructor: (selector, opts={}) ->
|
32
39
|
@selector = selector
|
33
40
|
@opts = opts
|
34
41
|
|
35
|
-
@_setLanguage()
|
36
42
|
@_initializeDatePicker()
|
37
43
|
|
38
44
|
_initializeDatePicker: ->
|
@@ -43,41 +49,30 @@ class this.DatePicker
|
|
43
49
|
maxRaw = dp[0].max
|
44
50
|
minDate = new Date minRaw if minRaw
|
45
51
|
maxDate = new Date maxRaw if maxRaw
|
52
|
+
disabledDates = dp.data('disabled-dates')
|
53
|
+
showButtonPanel = if dp.data('date-picker-button-panel') == true then true else false
|
54
|
+
closeText = if dp.data('date-picker-close-text') then dp.data('date-picker-close-text') else 'Close'
|
46
55
|
|
47
|
-
dp.
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
dates = []
|
65
|
-
for date in data.split(',')
|
66
|
-
dates.push new Date(date)
|
56
|
+
dp.datepicker
|
57
|
+
dateFormat: "yy-mm-dd"
|
58
|
+
minDate: minDate
|
59
|
+
maxDate: maxDate
|
60
|
+
beforeShow: @opts.onOpen
|
61
|
+
onClose: (dateText, inst) =>
|
62
|
+
if dp.data('date-picker-clear') == true && inst.dpDiv.find('button.clicked').length > 0
|
63
|
+
inst.input.val('')
|
64
|
+
inst.input.change()
|
65
|
+
else
|
66
|
+
@opts.onClose() if @opts.close
|
67
|
+
showButtonPanel: showButtonPanel
|
68
|
+
closeText: closeText
|
69
|
+
# Return false to disable a specific date
|
70
|
+
beforeShowDay: (currentDate) =>
|
71
|
+
return [true] if not disabledDates
|
67
72
|
|
68
|
-
|
73
|
+
for dateStr in disabledDates.split(',')
|
74
|
+
parsedDate = new Date(dateStr)
|
69
75
|
|
70
|
-
|
71
|
-
_setLanguage: ->
|
72
|
-
$.extend($.fn.pickadate.defaults, {
|
73
|
-
monthsFull: [ 'January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December' ],
|
74
|
-
monthsShort: [ 'Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec' ],
|
75
|
-
weekdaysFull: [ 'Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday' ],
|
76
|
-
weekdaysShort: [ 'Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat' ],
|
77
|
-
weekdaysLetter: [ 'S', 'M', 'T', 'W', 'T', 'F', 'S' ],
|
78
|
-
today: 'Today',
|
79
|
-
clear: 'Clear',
|
80
|
-
close: 'Close',
|
81
|
-
firstDay: 1,
|
82
|
-
})
|
76
|
+
return [false] if (parsedDate.getFullYear() == currentDate.getFullYear() and parsedDate.getDate() == currentDate.getDate() and parsedDate.getMonth() == currentDate.getMonth())
|
83
77
|
|
78
|
+
[true]
|