From 8886c579c32dd84b34f9263697eb856742ab335c Mon Sep 17 00:00:00 2001
From: Jochen Klar Text?
-Lorem ipsum dolor sit amet
+ Lorem ipsum dolor sit amet
Textarea?
-Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est. Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est. Lorem ipsum dolor sit amet.
+ Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est. Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est. Lorem ipsum dolor sit amet.
Yes or no?
-Yes
+ Yes
Radio buttons?
-Text: Lorem ipsum
+ Text: Lorem ipsum
Select drop-down?
-One
+ One
Select drop-down (free)? Range slider?
-37
+ 37
File? Date picker?
-Jan. 1, 2018
+ Jan. 1, 2018
Text? Textarea? Yes or no? Radio buttons? Select drop-down? Range slider? Date picker? Checkbox? Text?
-Lorem ipsum dolor sit amet
+ Lorem ipsum dolor sit amet
Textarea?
-Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est. Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est. Lorem ipsum dolor sit amet.
+ Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est. Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est. Lorem ipsum dolor sit amet.
Yes or no?
-Yes
+ Yes
Radio buttons?
-Text: Lorem ipsum
+ Text: Lorem ipsum
Select drop-down?
-One
+ One
Select drop-down (free)? Range slider?
-37
+ 37
Date picker?
-Jan. 1, 2018
+ Jan. 1, 2018
File?
@@ -194,80 +194,80 @@ Text? Textarea? Yes or no? Radio buttons? Select drop-down? Select drop-down (free)? Range slider? Date picker? File? Checkbox? Text?
Set "First":
-Lorem ipsum dolor sit amet, consetetur sadipscing elitr
+ Lorem ipsum dolor sit amet, consetetur sadipscing elitr
Set "Second":
-Lorem ipsum dolor sit amet, consetetur sadipscing elitr
+ Lorem ipsum dolor sit amet, consetetur sadipscing elitr
Textarea?
Set "First":
-Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est. Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est. Lorem ipsum dolor sit amet.
+ Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est. Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est. Lorem ipsum dolor sit amet.
Set "Second":
-Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est. Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est. Lorem ipsum dolor sit amet.
+ Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est. Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est. Lorem ipsum dolor sit amet.
Yes or no?
Set "First":
-Yes
+ Yes
Set "Second":
-No
+ No
Radio buttons?
Set "First":
-One
+ One
Set "Second":
-Two
+ Two
Select drop-down?
Set "First":
-One
+ One
Set "Second":
-Two
+ Two
Select drop-down (free)? Range slider?
Set "First":
-1
+ 1
Set "Second":
-2
+ 2
Date picker?
Set "First":
-Jan. 7, 2018
+ Jan. 7, 2018
Set "Second":
-Feb. 7, 2018
+ Feb. 7, 2018
File? Text?
Set "First":
-Lorem ipsum dolor sit amet, consetetur sadipscing elitr
+ Lorem ipsum dolor sit amet, consetetur sadipscing elitr
Set "Second":
-Lorem ipsum dolor sit amet, consetetur sadipscing elitr
+ Lorem ipsum dolor sit amet, consetetur sadipscing elitr
Textarea?
Set "First":
-Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est. Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est. Lorem ipsum dolor sit amet.
+ Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est. Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est. Lorem ipsum dolor sit amet.
Set "Second":
-Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est. Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est. Lorem ipsum dolor sit amet.
+ Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est. Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est. Lorem ipsum dolor sit amet.
Yes or no?
@@ -379,13 +379,13 @@ Single questions
Text
Textarea
Yes or no
Radio buttons
Select drop-down
Select drop-down (free)
Range slider
File
File
Datetime
Collections
Text
Textarea
Yes or no
Radio buttons
Select drop-down
Select drop-down (free)
@@ -113,26 +113,26 @@ Range slider
Date picker
File
@@ -149,42 +149,42 @@ Checkbox
Sets
Individual sets I
Individual sets II
Individual sets II
Set collections I
Set collections II
Set collections II
@@ -393,13 +393,13 @@
Radio buttons?
@@ -408,13 +408,13 @@@@ -422,13 +422,13 @@
Select drop-down?
@@ -437,15 +437,15 @@Set "Second": -Three + Three
Select drop-down (free)?
Range slider?
@@ -454,15 +454,15 @@Set "Second": -86 + 86
Date picker?
@@ -470,10 +470,10 @@
@@ -481,10 +481,10 @@
File?
@@ -494,37 +494,37 @@Set "Second": -One + One
Text
-test + test
Option
-One + One
text_contains?
-test + test
text empty?
text_equal?
-test + test
text_greater_than?
@@ -537,7 +537,7 @@text_not_empty?
-test + test
text_not_equal?
@@ -546,12 +546,12 @@option_equal?
-One + One
option_not_empty?
-One + One
option_not_equal?
@@ -594,20 +594,20 @@A?
Set "First", Block #1: -a0 + a0
Set "First", Block #2: -a1 + a1
B?
Set "First", Block #1: -b1 + b1
Set "First", Block #2: -b1 + b1
C?
@@ -615,10 +615,10 @@
@@ -626,40 +626,40 @@
Y?
Set "First", Block #1, Set #1: -Three + Three
Set "First", Block #2, Set #1: -Three + Three
Set "Second", Block #1, Set #1: -Three + Three
Set "Second", Block #2, Set #1: -Three + Three
Set "Second", Block #3, Set #1: -One + One
Set "Second", Block #3, Set #2: -Two + Two
Set "Second", Block #3, Set #3: -Three + Three
Question
| {% full_name membership.user %} - {% include 'projects/project_detail_memberships_socialaccounts.html' %} + {% include 'projects/old/project_detail_memberships_socialaccounts.html' %} |
{{ membership.user.email }}
diff --git a/rdmo/projects/templates/projects/project_detail_memberships_help.html b/rdmo/projects/templates/projects/old/project_detail_memberships_help.html
similarity index 100%
rename from rdmo/projects/templates/projects/project_detail_memberships_help.html
rename to rdmo/projects/templates/projects/old/project_detail_memberships_help.html
diff --git a/rdmo/projects/templates/projects/project_detail_memberships_socialaccounts.html b/rdmo/projects/templates/projects/old/project_detail_memberships_socialaccounts.html
similarity index 100%
rename from rdmo/projects/templates/projects/project_detail_memberships_socialaccounts.html
rename to rdmo/projects/templates/projects/old/project_detail_memberships_socialaccounts.html
diff --git a/rdmo/projects/templates/projects/project_detail_sidebar.html b/rdmo/projects/templates/projects/old/project_detail_sidebar.html
similarity index 100%
rename from rdmo/projects/templates/projects/project_detail_sidebar.html
rename to rdmo/projects/templates/projects/old/project_detail_sidebar.html
diff --git a/rdmo/projects/templates/projects/project_detail_sidebar_parent_import.html b/rdmo/projects/templates/projects/old/project_detail_sidebar_parent_import.html
similarity index 100%
rename from rdmo/projects/templates/projects/project_detail_sidebar_parent_import.html
rename to rdmo/projects/templates/projects/old/project_detail_sidebar_parent_import.html
diff --git a/rdmo/projects/templates/projects/project_detail_snapshots.html b/rdmo/projects/templates/projects/old/project_detail_snapshots.html
similarity index 98%
rename from rdmo/projects/templates/projects/project_detail_snapshots.html
rename to rdmo/projects/templates/projects/old/project_detail_snapshots.html
index c825276b97..c1353c4c3c 100644
--- a/rdmo/projects/templates/projects/project_detail_snapshots.html
+++ b/rdmo/projects/templates/projects/old/project_detail_snapshots.html
@@ -11,7 +11,7 @@
{% trans 'Snapshots' %}- {% include 'projects/project_detail_snapshots_help.html' %} + {% include 'projects/old/project_detail_snapshots_help.html' %} {% if snapshots %} diff --git a/rdmo/projects/templates/projects/project_detail_snapshots_help.html b/rdmo/projects/templates/projects/old/project_detail_snapshots_help.html similarity index 100% rename from rdmo/projects/templates/projects/project_detail_snapshots_help.html rename to rdmo/projects/templates/projects/old/project_detail_snapshots_help.html diff --git a/rdmo/projects/templates/projects/project_detail_views.html b/rdmo/projects/templates/projects/old/project_detail_views.html similarity index 97% rename from rdmo/projects/templates/projects/project_detail_views.html rename to rdmo/projects/templates/projects/old/project_detail_views.html index 88563582a4..71e15fc71d 100644 --- a/rdmo/projects/templates/projects/project_detail_views.html +++ b/rdmo/projects/templates/projects/old/project_detail_views.html @@ -10,7 +10,7 @@{% trans 'Views' %}- {% include 'projects/project_detail_views_help.html' %} + {% include 'projects/old/project_detail_views_help.html' %} {% if views %} diff --git a/rdmo/projects/templates/projects/project_detail_views_help.html b/rdmo/projects/templates/projects/old/project_detail_views_help.html similarity index 100% rename from rdmo/projects/templates/projects/project_detail_views_help.html rename to rdmo/projects/templates/projects/old/project_detail_views_help.html diff --git a/rdmo/projects/templates/projects/project_detail.html b/rdmo/projects/templates/projects/project_detail.html index 3d21b98044..72f13071cc 100644 --- a/rdmo/projects/templates/projects/project_detail.html +++ b/rdmo/projects/templates/projects/project_detail.html @@ -1,51 +1,27 @@ {% extends 'core/page.html' %} -{% load i18n %} {% load static %} -{% load compress %} -{% load core_tags %} -{% block head %} - {% compress css %} - - - {% endcompress %} - {% compress js %} - - {% endcompress %} - +{% block vendor %} {% endblock %} -{% block sidebar %} +{% block head %} + +{% endblock %} - {% include 'projects/project_detail_sidebar.html' %} +{% block css %} + + + {{ block.super }} +{% endblock %} +{% block js %} + + + {% endblock %} {% block page %} - {% include 'projects/project_detail_header.html' %} - {% include 'projects/project_detail_issues.html' %} - {% include 'projects/project_detail_views.html' %} - {% include 'projects/project_detail_memberships.html' %} - {% include 'projects/project_detail_invites.html' %} - {% include 'projects/project_detail_snapshots.html' %} - {% include 'projects/project_detail_integrations.html' %} - - - - {% render_lang_template 'projects/overlays/project_project_questions' %} - {% render_lang_template 'projects/overlays/project_project_catalog' %} - {% render_lang_template 'projects/overlays/project_project_issues' %} - {% render_lang_template 'projects/overlays/project_project_views' %} - {% render_lang_template 'projects/overlays/project_project_memberships' %} - {% render_lang_template 'projects/overlays/project_project_snapshots' %} - {% render_lang_template 'projects/overlays/project_export_project' %} - {% render_lang_template 'projects/overlays/project_import_project' %} - {% render_lang_template 'projects/overlays/project_support_info' %} + {% endblock %} diff --git a/rdmo/projects/urls/__init__.py b/rdmo/projects/urls/__init__.py index 4c11792617..cb9a43b9fb 100644 --- a/rdmo/projects/urls/__init__.py +++ b/rdmo/projects/urls/__init__.py @@ -12,6 +12,7 @@ MembershipCreateView, MembershipDeleteView, MembershipUpdateView, + OldProjectDetailView, ProjectAnswersExportView, ProjectAnswersView, ProjectCancelView, @@ -58,6 +59,8 @@ re_path(r'^(?P
+ {% block content %}{% endblock %}
+
+
+
+{% if not debug %}
+
+ {% include 'core/base_analytics.html' %}
+
+{% endif %}
+
+
diff --git a/rdmo/projects/assets/js/project/containers/Main.js b/rdmo/projects/assets/js/project/containers/Main.js
index 1e6d319305..ac85a16694 100644
--- a/rdmo/projects/assets/js/project/containers/Main.js
+++ b/rdmo/projects/assets/js/project/containers/Main.js
@@ -11,7 +11,9 @@ const Main = ({ config, settings, templates, user, project, configActions, proje
console.log(configActions, projectActions)
return project && (
- 👍
+
+ 👍
+
)
}
diff --git a/rdmo/projects/templates/projects/project_detail.html b/rdmo/projects/templates/projects/project_detail.html
index 72f13071cc..ea5a513f6c 100644
--- a/rdmo/projects/templates/projects/project_detail.html
+++ b/rdmo/projects/templates/projects/project_detail.html
@@ -1,4 +1,4 @@
-{% extends 'core/page.html' %}
+{% extends 'core/bs53/base.html' %}
{% load static %}
{% block vendor %}
@@ -9,18 +9,18 @@
{% endblock %}
{% block css %}
-
+
{{ block.super }}
{% endblock %}
{% block js %}
-
+
{% endblock %}
-{% block page %}
+{% block content %}
diff --git a/webpack.config.js b/webpack.config.js
index 93d59d9591..db3673f726 100644
--- a/webpack.config.js
+++ b/webpack.config.js
@@ -13,6 +13,10 @@ const configList = [
base: [
'./rdmo/core/assets/js/base.js',
'./rdmo/core/assets/scss/base.scss'
+ ],
+ 'base-bs53': [
+ './rdmo/core/assets/js/_bs53/base.js',
+ './rdmo/core/assets/scss/_bs53/base.scss'
]
},
output: {
From 80e3139bdceef210b9a3ef4785a928116b4aaf5a Mon Sep 17 00:00:00 2001
From: Jochen Klar
- 👍
+
)
}
diff --git a/rdmo/projects/templates/projects/project_detail.html b/rdmo/projects/templates/projects/project_detail.html
index ea5a513f6c..440c84784a 100644
--- a/rdmo/projects/templates/projects/project_detail.html
+++ b/rdmo/projects/templates/projects/project_detail.html
@@ -10,6 +10,7 @@
{% block css %}
+
{{ block.super }}
{% endblock %}
From 2fc13444074eb26aa42c0c154a538c408ca2ef24 Mon Sep 17 00:00:00 2001
From: Jochen Klar + 👍 + + ++ +
+
+
+ onChange(event.target.value)}
+ />
+ {
+ errors && (
+
+ )
+}
+
+Input.propTypes = {
+ type: PropTypes.string,
+ className: PropTypes.string,
+ label: PropTypes.string,
+ placeholder: PropTypes.string,
+ help: PropTypes.string,
+ disabled: PropTypes.bool,
+ errors: PropTypes.array,
+ value: PropTypes.string.isRequired,
+ onChange: PropTypes.func.isRequired
+}
+
+export default Input
diff --git a/rdmo/core/assets/js/components/InputDebounced.js b/rdmo/core/assets/js/components/InputDebounced.js
new file mode 100644
index 0000000000..94e1b01c4d
--- /dev/null
+++ b/rdmo/core/assets/js/components/InputDebounced.js
@@ -0,0 +1,32 @@
+import React, { useEffect, useState } from 'react'
+import PropTypes from 'prop-types'
+
+import { useDebouncedCallback } from 'use-debounce'
+
+import Input from './Input'
+
+const InputDebounced = ({ value, onChange, ...props }) => {
+
+ const [inputValue, setInputValue] = useState('')
+
+ useEffect(() => setInputValue(value), [value])
+
+ const debouncedOnChange = useDebouncedCallback((value) => onChange(value), 500)
+
+ return (
+ {
+ setInputValue(value)
+ debouncedOnChange(value)
+ }}
+ />
+ )
+}
+
+InputDebounced.propTypes = {
+ value: PropTypes.string.isRequired,
+ onChange: PropTypes.func.isRequired
+}
+
+export default InputDebounced
diff --git a/rdmo/core/assets/js/components/Textarea.js b/rdmo/core/assets/js/components/Textarea.js
new file mode 100644
index 0000000000..737d7ffb35
--- /dev/null
+++ b/rdmo/core/assets/js/components/Textarea.js
@@ -0,0 +1,50 @@
+import React from 'react'
+import PropTypes from 'prop-types'
+import classNames from 'classnames'
+import { isEmpty, uniqueId } from 'lodash'
+
+const Textarea = ({ rows, className, label, placeholder, help, disabled, errors, value, onChange }) => {
+ const id = uniqueId('input-')
+
+ return (
+
+ {errors.map((error, index) =>
+ )
+ }
+ {
+ help && {error} )}
+ {help}
+ }
+
+
+
+
+ )
+}
+
+Textarea.propTypes = {
+ rows: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),
+ className: PropTypes.string,
+ label: PropTypes.string,
+ placeholder: PropTypes.string,
+ help: PropTypes.string,
+ disabled: PropTypes.bool,
+ errors: PropTypes.array,
+ value: PropTypes.string.isRequired,
+ onChange: PropTypes.func.isRequired
+}
+
+export default Textarea
diff --git a/rdmo/core/assets/js/components/TextareaDebounced.js b/rdmo/core/assets/js/components/TextareaDebounced.js
new file mode 100644
index 0000000000..11a1b2e76d
--- /dev/null
+++ b/rdmo/core/assets/js/components/TextareaDebounced.js
@@ -0,0 +1,32 @@
+import React, { useEffect, useState } from 'react'
+import PropTypes from 'prop-types'
+
+import { useDebouncedCallback } from 'use-debounce'
+
+import Textarea from './Textarea'
+
+const TextareaDebounced = ({ value, onChange, ...props }) => {
+
+ const [inputValue, setInputValue] = useState('')
+
+ useEffect(() => setInputValue(value), [value])
+
+ const debouncedOnChange = useDebouncedCallback((value) => onChange(value), 500)
+
+ return (
+ |