[ 
https://issues.apache.org/jira/browse/AIRAVATA-3306?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17093575#comment-17093575
 ] 

Marcus Christie edited comment on AIRAVATA-3306 at 4/27/20, 6:57 PM:
---------------------------------------------------------------------

h3. Option #1: Containers as inline editor
- Containers have their usual attributes
- the body is a StreamField
- a new type of StreamBlock would be the row-start (or row-end) block

h3. Option #2: Rows as inline editor, with container attributes
- Row has addition attributes
- A new row can start in a new container, or, by default, be added to the
  previous container

h3. Option #3: Rows as inline editor, each row body is a struct
- the struct has additional attributes for starting a new container, much like
  above

h3. Option #4: Rows as inline editor, each row a struct with ChoiceBlock for 
determining whether to start a container or not
- Question, can a ChoiceBlock be used for Blocks and not just strings?
- Is the editor dynamic based on the selected ChoiceBlock
- This would mean each row would have a dropdown ChoiceBlock:
-- Use existing container
-- Start new full-width container
-- Start new fixed-width container

h3. Questions
- can we hide the rest of the container attributes if the default of
  no-container is specified?

Option #4 is the preferred one here, if it works. I'm not sure that the wagtail 
editor is dynamic or that ChoiceBlock can be used for blocks, but i'll try it 
and see.

----

ChoiceBlock didn't work but I think a StreamBlock with max_num=1 will work and 
I'll try that next time.


was (Author: marcuschristie):
h3. Option #1: Containers as inline editor
- Containers have their usual attributes
- the body is a StreamField
- a new type of StreamBlock would be the row-start (or row-end) block

h3. Option #2: Rows as inline editor, with container attributes
- Row has addition attributes
- A new row can start in a new container, or, by default, be added to the
  previous container

h3. Option #3: Rows as inline editor, each row body is a struct
- the struct has additional attributes for starting a new container, much like
  above

h3. Option #4: Rows as inline editor, each row a struct with ChoiceBlock for 
determining whether to start a container or not
- Question, can a ChoiceBlock be used for Blocks and not just strings?
- Is the editor dynamic based on the selected ChoiceBlock
- This would mean each row would have a dropdown ChoiceBlock:
-- Use existing container
-- Start new full-width container
-- Start new fixed-width container

h3. Questions
- can we hide the rest of the container attributes if the default of
  no-container is specified?

Option #4 is the preferred one here, if it works. I'm not sure that the wagtail 
editor is dynamic or that ChoiceBlock can be used for blocks, but i'll try it 
and see.


> Wagtail: allow specifying a container for page rows
> ---------------------------------------------------
>
>                 Key: AIRAVATA-3306
>                 URL: https://issues.apache.org/jira/browse/AIRAVATA-3306
>             Project: Airavata
>          Issue Type: Improvement
>          Components: Django Portal
>            Reporter: Marcus Christie
>            Assignee: Marcus Christie
>            Priority: Major
>
> The BlankPage template assumes a container of class {{container-fluid}} for 
> the entire page. But the max-width of Bootstrap's {{container}} class is nice 
> to have for a lot of layouts, especially ones with text.
> Instead of rows as the top-level collection, it should instead be containers. 
> We'll need a new Page type since this would break existing instances of 
> BlankPage.
> Also, it's useful to be able to define a background for containers that spans 
> the entire page even though the container itself may be fixed width. We could 
> do the following:
> {code:xml}
> [div class="container-fluid" style="background-color: ..."]
>   [div class="container"]
>   [/div]
> [/div]
> {code}
> However, that would result in twice as much padding as usual on the left and 
> right for the doubly nested container (container-fluid and container both 
> define padding-left and padding-right of 15px).  Instead I think just having 
> a wrapping div that can be styled will allow setting background colors and 
> images as needed.
> h5. Design
> - MultiContainerPage (subclass of Page)
> -- has one or more Containers
> - Container
> -- has zero or more Rows
> -- has an outer wrapping div for setting a background
> -- attributes
> --- type: "container" or "container-fluid"
> --- background color: applied to wrapper div
> --- banner image: applied to wrapper div. Sets background-image: ..., 
> background-size: cover, background-repeat: no-repeat;
> --- minimum height: necessary when defining a banner image with no content 
> rows
> --- background image: applied to wrapper div. Sets background-image only
> --- wrapper inline styles: applied via style
> --- inline styles:
> --- wrapper custom classes:
> --- custom classes:
> h5. Use cases
> - background color for a container of rows that spans full width
> -- example: red background portion of https://gateway.futurewater.indiana.edu/
> - background image for a container of rows that spans responsive max-width
> - banner background image that spans the full width and doesn't have any 
> additional content in it
> -- example: banner image in https://gateway.futurewater.indiana.edu/
> See also
> * https://getbootstrap.com/docs/4.4/layout/overview/
> h5. TODO
> - [ ] Make the various container options a StreamBlock with only one allowed 
> option ({{max_num=1}})



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to