File tree Expand file tree Collapse file tree 15 files changed +286
-113
lines changed Expand file tree Collapse file tree 15 files changed +286
-113
lines changed Original file line number Diff line number Diff line change @@ -268,7 +268,7 @@ impl Collection {
268
268
Some ( cluster. context . user . clone ( ) )
269
269
} ;
270
270
271
- let mut layout = crate :: templates:: Layout :: new ( & title, Some ( cluster. clone ( ) ) ) ;
271
+ let mut layout = crate :: templates:: Layout :: new ( & title, Some ( cluster) ) ;
272
272
if let Some ( image) = image {
273
273
// translate relative url into absolute for head social sharing
274
274
let parts = image. split ( ".gitbook/assets/" ) . collect :: < Vec < & str > > ( ) ;
Load Diff This file was deleted.
Load Diff This file was deleted.
Original file line number Diff line number Diff line change 3
3
margin-right : calc (var (--bs-gutter-x ) * -0.5 );
4
4
}
5
5
6
- div [data-controller = " notifications-banner" ] {
6
+ div [data-controller = " notifications-marketing-alert- banner" ] {
7
7
.btn-tertiary {
8
8
border : 0px ;
9
9
}
10
- .news {
11
- background-color : #{$gray-100 } ;
12
- color : #{$gray-900 } ;
13
- .btn-tertiary :hover {
14
- filter : brightness (0.9 );
15
- }
16
- }
17
- .blog {
18
- background-color : #{$neon-shade-100 } ;
19
- .btn-tertiary {
20
- filter : brightness (1.5 );
21
- }
22
- }
23
- .launch {
24
- background-color : #{$magenta-shade-200 } ;
25
- .btn-tertiary {
26
- filter : brightness (1.5 );
27
- }
28
- }
29
- .tip {
30
- background-color : #{$gray-900 } ;
31
- }
32
10
.level1 {
33
11
background-color : #FFFF00 ;
34
12
color : #{$gray-900 } ;
@@ -42,7 +20,7 @@ div[data-controller="notifications-banner"] {
42
20
}
43
21
44
22
.close-dark {
45
- color : #{$gray-900 } ;
23
+ color : #{$gray-300 } ;
46
24
}
47
25
.close-light {
48
26
color : #{$gray-100 } ;
Original file line number Diff line number Diff line change
1
+ use crate :: Notification ;
2
+ use pgml_components:: component;
3
+ use sailfish:: TemplateOnce ;
4
+
5
+ #[ derive( TemplateOnce , Default , Clone ) ]
6
+ #[ template( path = "notifications/marketing/alert_banner/template.html" ) ]
7
+ pub struct AlertBanner {
8
+ pub notification : Option < Notification > ,
9
+ }
10
+
11
+ impl AlertBanner {
12
+ pub fn new ( ) -> AlertBanner {
13
+ AlertBanner { notification : None }
14
+ }
15
+
16
+ pub fn from_notification ( notification : Option < & Notification > ) -> AlertBanner {
17
+ match notification {
18
+ Some ( notification) => {
19
+ return AlertBanner {
20
+ notification : Some ( notification. clone ( ) ) ,
21
+ }
22
+ }
23
+ None => return AlertBanner { notification : None } ,
24
+ }
25
+ }
26
+ }
27
+
28
+ component ! ( AlertBanner ) ;
Original file line number Diff line number Diff line change 1
1
< % use crate::NotificationLevel; %>
2
2
< turbo-frame id ="notifications-banner " class ="position-relative d-block ">
3
- < % if !remove_banner {%>
4
- < div data-controller ="notifications-banner ">
3
+ < % if notification.is_some() {%>
4
+ < % let notification = notification.unwrap(); %>
5
+ < div data-controller ="notifications-marketing-alert-banner ">
5
6
< div class ="<%- notification.level.to_string() %> W-100 ">
6
7
< div class ="banner d-flex container p-1 ">
7
8
< div class ="flex-grow-1 d-flex flex-column flex-md-row justify-content-center align-items-center row-gap-0 column-gap-3 fw-semibold overflow-hidden ">
8
9
< div class ="mx-3 overflow-hidden " style ="max-width: 80%; ">
9
10
< p class ="m-0 text-center "> < %- notification.message %> </ p >
10
11
</ div >
11
- < % if notification.link.is_some() {%>
12
- < a class ="btn btn-tertiary fw-semibold p-0 " href ="<%- notification.link.unwrap() %> " data-turbo ="false ">
13
- Learn More
14
- < span class ="material-symbols-outlined "> arrow_forward</ span >
15
- </ a >
16
- < % } %>
17
12
</ div >
18
- < % if notification.dismissible {%>
19
- < a class ="w-0 overflow-visible d-flex align-items-center " style ="right: 4vw " href ="/dashboard/notifications/remove_banner?id=<%- notification.id%> ">
20
- < span class ="material-symbols-outlined <% if notification.level == NotificationLevel::Tip {%>close-light<% } else {%>close-dark<% } %> ">
13
+
14
+ < % if notification.dismissible && notification.level != NotificationLevel::Level3 {%>
15
+ < a class ="w-0 overflow-visible d-flex align-items-center " style ="right: 4vw " href ="/dashboard/notifications/remove_banner?id=<%- notification.id%>&alert=true ">
16
+ < span class ="material-symbols-outlined <% if notification.level == NotificationLevel::Level2 {%>close-light<% } else {%>close-dark<% } %> ">
21
17
close
22
18
</ span > </ a >
23
19
< % } %>
Original file line number Diff line number Diff line change
1
+ div [data-controller = " notifications-marketing-feature-banner" ] {
2
+ .btn-tertiary {
3
+ border : 0px ;
4
+ & :hover {
5
+ .more-info {
6
+ left : 0.5rem ;
7
+ }
8
+ }
9
+ .more-info {
10
+ transition-duration : 0.5s ;
11
+ transition-property : left ;
12
+ left : 0rem ;
13
+ }
14
+ }
15
+ .feature1 {
16
+ background-color : #{$slate-shade-100 } ;
17
+ margin : 2px 0px ;
18
+ .btn-tertiary {
19
+ color : #{$gray-900 } ;
20
+ --bs-btn-color : #{$gray-900 } ;
21
+ }
22
+ .close {
23
+ color : #{$slate-shade-600 } ;
24
+ }
25
+ .more-info {
26
+ color : #{$gray-100 }
27
+ }
28
+ }
29
+ .feature2 {
30
+ background-color : #{$violet-shade-100 } ;
31
+ margin : 2px 0px ;
32
+ .btn-tertiary {
33
+ color : #{$gray-100 } ;
34
+ }
35
+ .close {
36
+ color : #{$gray-200 } ;
37
+ }
38
+ .more-info {
39
+ color : #{$gray-100 }
40
+ }
41
+ }
42
+ .feature3 {
43
+ background-color : #{$gray-900 } ;
44
+ .btn-tertiary {
45
+ color : #{$gray-100 } ;
46
+ }
47
+ .close {
48
+ color : #{$gray-300 } ;
49
+ }
50
+ .more-info {
51
+ color : #{$slate-shade-100 }
52
+ }
53
+ }
54
+
55
+ .feature1 , .feature2 , .feature3 {
56
+ border-radius : $border-radius-xl ;
57
+ }
58
+
59
+ .message-area {
60
+ max-width : 75vw ;
61
+ }
62
+ .banner {
63
+ min-height : 2rem ;
64
+ }
65
+ }
Original file line number Diff line number Diff line change
1
+ use crate :: Notification ;
2
+ use pgml_components:: component;
3
+ use sailfish:: TemplateOnce ;
4
+
5
+ #[ derive( TemplateOnce , Default , Clone ) ]
6
+ #[ template( path = "notifications/marketing/feature_banner/template.html" ) ]
7
+ pub struct FeatureBanner {
8
+ pub notification : Option < Notification > ,
9
+ }
10
+
11
+ impl FeatureBanner {
12
+ pub fn new ( ) -> FeatureBanner {
13
+ FeatureBanner { notification : None }
14
+ }
15
+
16
+ pub fn from_notification ( notification : Option < & Notification > ) -> FeatureBanner {
17
+ match notification {
18
+ Some ( notification) => {
19
+ return FeatureBanner {
20
+ notification : Some ( notification. clone ( ) ) ,
21
+ }
22
+ }
23
+ None => return FeatureBanner { notification : None } ,
24
+ }
25
+ }
26
+ }
27
+
28
+ component ! ( FeatureBanner ) ;
Original file line number Diff line number Diff line change
1
+ < % use crate::NotificationLevel; %>
2
+ < turbo-frame id ="marketing-notifications-banner-feature " class ="position-relative z-1 ">
3
+ < % if notification.is_some() {%>
4
+ < % let notification = notification.unwrap(); %>
5
+ < div data-controller ="notifications-marketing-feature-banner ">
6
+
7
+ < div class ="<%- notification.level.to_string() %> <% if notification.level == NotificationLevel::Feature3 {%>main-gradient-border-card<% } %> rounded-3 W-100 ">
8
+ < div class ="banner d-flex container ">
9
+
10
+ < % let content = format!(
11
+ r#"
12
+ < {} class="{} flex-grow-1 d-flex flex-column flex-md-row justify-content-center align-items-center row-gap-0 column-gap-3 fw-semibold overflow-hidden">
13
+ < div class ="px-3 py-3 py-sm-0 overflow-hidden ">
14
+ < p class ="m-0 text-center "> {} {}</ p >
15
+ </ div >
16
+ </ {}>
17
+ "#,
18
+ if notification.link.is_some() { "a" } else { "div" },
19
+ if notification.link.is_some() { "btn btn-tertiary p-0" } else { "" },
20
+ notification.message,
21
+ if notification.link.is_some() { r#"< span class ="material-symbols-outlined more-info position-relative " style ="top: 2px; "> arrow_forward</ span > "# } else { "" },
22
+ if notification.link.is_some() { "a" } else { "div" },
23
+ ); %>
24
+
25
+ < %- content %>
26
+
27
+ < % if notification.dismissible {%>
28
+ < a class ="w-0 btn btn-tertiary overflow-visible d-flex align-items-start p-2 " style ="height: fit-content " href ="/dashboard/notifications/remove_banner?id=<%- notification.id%>&alert=false ">
29
+ < span class ="material-symbols-outlined close ">
30
+ close
31
+ </ span > </ a >
32
+ < % } %>
33
+ </ div >
34
+ </ div >
35
+ </ div >
36
+ < % } %>
37
+ </ turbo-frame >
Original file line number Diff line number Diff line change
1
+ // This file is automatically generated.
2
+ // You shouldn't modify it manually.
3
+
4
+ // src/components/notifications/marketing/alert_banner
5
+ pub mod alert_banner;
6
+ pub use alert_banner:: AlertBanner ;
7
+
8
+ // src/components/notifications/marketing/feature_banner
9
+ pub mod feature_banner;
10
+ pub use feature_banner:: FeatureBanner ;
Original file line number Diff line number Diff line change 1
1
// This file is automatically generated.
2
2
// You shouldn't modify it manually.
3
3
4
- // src/components/notifications/banner
5
- pub mod banner;
6
- pub use banner:: Banner ;
4
+ // src/components/notifications/marketing
5
+ pub mod marketing;
You can’t perform that action at this time.
0 commit comments