summaryrefslogtreecommitdiff
path: root/pharo-mooc/tiny-blog/src/TinyBlog-Components/TBHeaderComponent.class.st
diff options
context:
space:
mode:
authorEugen Wissner <belka@caraus.de>2025-11-21 22:20:10 +0100
committerEugen Wissner <belka@caraus.de>2025-11-21 22:20:10 +0100
commitc03c9f8b886c0e8eca5a701c0ca941e05e0b6285 (patch)
tree5f27293563caa042b182de97fe59b22e2cbd533a /pharo-mooc/tiny-blog/src/TinyBlog-Components/TBHeaderComponent.class.st
parentc0336dac8effb57c04221f23b72bff70170933c5 (diff)
downloadbook-exercises-c03c9f8b886c0e8eca5a701c0ca941e05e0b6285.tar.gz
Add pharo tiny blog
Diffstat (limited to 'pharo-mooc/tiny-blog/src/TinyBlog-Components/TBHeaderComponent.class.st')
-rw-r--r--pharo-mooc/tiny-blog/src/TinyBlog-Components/TBHeaderComponent.class.st78
1 files changed, 78 insertions, 0 deletions
diff --git a/pharo-mooc/tiny-blog/src/TinyBlog-Components/TBHeaderComponent.class.st b/pharo-mooc/tiny-blog/src/TinyBlog-Components/TBHeaderComponent.class.st
new file mode 100644
index 0000000..4a95f2a
--- /dev/null
+++ b/pharo-mooc/tiny-blog/src/TinyBlog-Components/TBHeaderComponent.class.st
@@ -0,0 +1,78 @@
+Class {
+ #name : 'TBHeaderComponent',
+ #superclass : 'SBSComponent',
+ #instVars : [
+ 'component'
+ ],
+ #category : 'TinyBlog-Components',
+ #package : 'TinyBlog-Components'
+}
+
+{ #category : 'instance creation' }
+TBHeaderComponent class >> from: aComponent [
+ ^ self new
+ component: aComponent;
+ yourself
+]
+
+{ #category : 'accessing' }
+TBHeaderComponent >> component [
+
+ ^ component
+]
+
+{ #category : 'accessing' }
+TBHeaderComponent >> component: anObject [
+
+ component := anObject
+]
+
+{ #category : 'rendering' }
+TBHeaderComponent >> renderBrandOn: html [
+ html navigationBarBrand
+ url: self application url;
+ with: 'TinyBlog'
+]
+
+{ #category : 'rendering' }
+TBHeaderComponent >> renderButtonsOn: html [
+ self session isLogged
+ ifTrue: [ self renderSimpleAdminButtonOn: html ]
+ ifFalse: [ self renderModalLoginButtonOn: html ]
+]
+
+{ #category : 'rendering' }
+TBHeaderComponent >> renderContentOn: html [
+ | bar |
+ bar := html navigationBar.
+
+ bar background beLight.
+ bar with: [
+ html container: [
+ self renderBrandOn: html.
+ self renderButtonsOn: html
+ ]
+ ]
+]
+
+{ #category : 'rendering' }
+TBHeaderComponent >> renderModalLoginButtonOn: html [
+ html render: (TBAuthenticationComponent from: component).
+ html formButton beSecondary;
+ dataTarget: '#myAuthDialog';
+ dataToggle: 'modal';
+ with: [
+ html span class: 'glyphicon glyphicon-lock'.
+ html text: 'Login' ]
+]
+
+{ #category : 'rendering' }
+TBHeaderComponent >> renderSimpleAdminButtonOn: html [
+ html form: [
+ html formButton
+ beSecondary;
+ callback: [ component goToAdministrationView ];
+ with: [
+ html span class: 'glyphicon glyphicon-list-alt'.
+ html text: ' Admin View' ]]
+]