diff --git a/src/TinyBlog-Components/TBAdminComponent.class.st b/src/TinyBlog-Components/TBAdminComponent.class.st new file mode 100644 index 0000000..c35cc95 --- /dev/null +++ b/src/TinyBlog-Components/TBAdminComponent.class.st @@ -0,0 +1,24 @@ +Class { + #name : 'TBAdminComponent', + #superclass : 'TBScreenComponent', + #category : 'TinyBlog-Components', + #package : 'TinyBlog-Components' +} + +{ #category : 'initialization' } +TBAdminComponent >> createHeaderComponent [ + ^ TBAdminHeaderComponent from: self +] + +{ #category : 'rendering' } +TBAdminComponent >> goToPostListView [ + self answer +] + +{ #category : 'acccessing' } +TBAdminComponent >> renderContentOn: html [ + super renderContentOn: html. + html container: [ + html heading: 'Blog Admin'. + html horizontalRule ] +] diff --git a/src/TinyBlog-Components/TBAdminHeaderComponent.class.st b/src/TinyBlog-Components/TBAdminHeaderComponent.class.st new file mode 100644 index 0000000..6f90c70 --- /dev/null +++ b/src/TinyBlog-Components/TBAdminHeaderComponent.class.st @@ -0,0 +1,20 @@ +Class { + #name : 'TBAdminHeaderComponent', + #superclass : 'TBHeaderComponent', + #category : 'TinyBlog-Components', + #package : 'TinyBlog-Components' +} + +{ #category : 'rendering' } +TBAdminHeaderComponent >> renderButtonsOn: html [ + html form: [ self renderDisconnectButtonOn: html ] +] + +{ #category : 'rendering' } +TBAdminHeaderComponent >> renderDisconnectButtonOn: html [ + html formButton beSecondary; + callback: [ component goToPostListView ]; + with: [ + html text: 'Disconnect'. + html span class: 'glyphicon glyphicon-logout' ] +] diff --git a/src/TinyBlog-Components/TBHeaderComponent.class.st b/src/TinyBlog-Components/TBHeaderComponent.class.st index 302bef3..768e483 100644 --- a/src/TinyBlog-Components/TBHeaderComponent.class.st +++ b/src/TinyBlog-Components/TBHeaderComponent.class.st @@ -1,10 +1,32 @@ 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 @@ -12,6 +34,11 @@ TBHeaderComponent >> renderBrandOn: html [ with: 'TinyBlog' ] +{ #category : 'rendering' } +TBHeaderComponent >> renderButtonsOn: html [ + self renderSimpleAdminButtonOn: html +] + { #category : 'rendering' } TBHeaderComponent >> renderContentOn: html [ | bar | @@ -20,7 +47,18 @@ TBHeaderComponent >> renderContentOn: html [ bar background beLight. bar with: [ html container: [ - self renderBrandOn: html + self renderBrandOn: html. + self renderButtonsOn: html ] ] ] + +{ #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' ] ] +] diff --git a/src/TinyBlog-Components/TBPostsListComponent.class.st b/src/TinyBlog-Components/TBPostsListComponent.class.st index 05dc2d5..db84814 100644 --- a/src/TinyBlog-Components/TBPostsListComponent.class.st +++ b/src/TinyBlog-Components/TBPostsListComponent.class.st @@ -43,6 +43,11 @@ TBPostsListComponent >> currentCategory: anObject [ currentCategory := anObject ] +{ #category : 'as yet unclassified' } +TBPostsListComponent >> goToAdministrationView [ + self call: TBAdminComponent new +] + { #category : 'initialization' } TBPostsListComponent >> initialize [ super initialize. diff --git a/src/TinyBlog-Components/TBScreenComponent.class.st b/src/TinyBlog-Components/TBScreenComponent.class.st index eee94ce..ef15b8f 100644 --- a/src/TinyBlog-Components/TBScreenComponent.class.st +++ b/src/TinyBlog-Components/TBScreenComponent.class.st @@ -22,7 +22,7 @@ TBScreenComponent >> children [ { #category : 'initialization' } TBScreenComponent >> createHeaderComponent [ - ^ TBHeaderComponent new + ^ TBHeaderComponent from: self ] { #category : 'initialization' }