diff options
| author | Eugen Wissner <belka@caraus.de> | 2025-11-21 22:20:10 +0100 |
|---|---|---|
| committer | Eugen Wissner <belka@caraus.de> | 2025-11-21 22:20:10 +0100 |
| commit | c03c9f8b886c0e8eca5a701c0ca941e05e0b6285 (patch) | |
| tree | 5f27293563caa042b182de97fe59b22e2cbd533a /pharo-mooc/tiny-blog/src/TinyBlog-Components/TBHeaderComponent.class.st | |
| parent | c0336dac8effb57c04221f23b72bff70170933c5 (diff) | |
| download | book-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.st | 78 |
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' ]] +] |
