Merge branch 'SeperateTitleComponent' into 'master'
Seperate title component See merge request lukas/openmediacenter!4
This commit is contained in:
		@@ -15,4 +15,3 @@
 | 
				
			|||||||
    font-size: 23pt;
 | 
					    font-size: 23pt;
 | 
				
			||||||
    opacity: 0.6;
 | 
					    opacity: 0.6;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					 | 
				
			||||||
							
								
								
									
										26
									
								
								src/elements/PageTitle/PageTitle.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										26
									
								
								src/elements/PageTitle/PageTitle.js
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,26 @@
 | 
				
			|||||||
 | 
					import React from "react";
 | 
				
			||||||
 | 
					import "./PageTitle.css"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					class PageTitle extends React.Component {
 | 
				
			||||||
 | 
					    constructor(props) {
 | 
				
			||||||
 | 
					        super(props);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        this.props = props;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    render() {
 | 
				
			||||||
 | 
					        return (
 | 
				
			||||||
 | 
					            <div className='pageheader'>
 | 
				
			||||||
 | 
					                <span className='pageheadertitle'>{this.props.title}</span>
 | 
				
			||||||
 | 
					                <span className='pageheadersubtitle'>{this.props.subtitle}</span>
 | 
				
			||||||
 | 
					                <>
 | 
				
			||||||
 | 
					                    {this.props.children}
 | 
				
			||||||
 | 
					                </>
 | 
				
			||||||
 | 
					                <hr/>
 | 
				
			||||||
 | 
					            </div>
 | 
				
			||||||
 | 
					        );
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					export default PageTitle;
 | 
				
			||||||
							
								
								
									
										31
									
								
								src/elements/PageTitle/PageTitle.test.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										31
									
								
								src/elements/PageTitle/PageTitle.test.js
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,31 @@
 | 
				
			|||||||
 | 
					import React from 'react';
 | 
				
			||||||
 | 
					import {shallow} from 'enzyme'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import PageTitle from "./PageTitle";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					describe('<Preview/>', function () {
 | 
				
			||||||
 | 
					    it('renders without crashing ', function () {
 | 
				
			||||||
 | 
					        const wrapper = shallow(<PageTitle/>);
 | 
				
			||||||
 | 
					        wrapper.unmount();
 | 
				
			||||||
 | 
					    });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    it('renders childs correctly', function () {
 | 
				
			||||||
 | 
					        const wrapper = shallow(<PageTitle>heyimachild</PageTitle>);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        const children = wrapper.children();
 | 
				
			||||||
 | 
					        expect(children.at(children.length-2).text()).toBe("heyimachild");
 | 
				
			||||||
 | 
					    });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    it('renders pagetitle prop', function () {
 | 
				
			||||||
 | 
					        const wrapper = shallow(<PageTitle title='testtitle'/>);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        expect(wrapper.find(".pageheader").text()).toBe("testtitle");
 | 
				
			||||||
 | 
					    });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    it('renders subtitle prop', function () {
 | 
				
			||||||
 | 
					        const wrapper = shallow(<PageTitle subtitle='testsubtitle'/>);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        expect(wrapper.find(".pageheadersubtitle").text()).toBe("testsubtitle");
 | 
				
			||||||
 | 
					    });
 | 
				
			||||||
 | 
					});
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -4,6 +4,7 @@ import Tag from "../../elements/Tag/Tag";
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
import {TagPreview} from "../../elements/Preview/Preview";
 | 
					import {TagPreview} from "../../elements/Preview/Preview";
 | 
				
			||||||
import NewTagPopup from "../../elements/NewTagPopup/NewTagPopup";
 | 
					import NewTagPopup from "../../elements/NewTagPopup/NewTagPopup";
 | 
				
			||||||
 | 
					import PageTitle from "../../elements/PageTitle/PageTitle";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
class CategoryPage extends React.Component {
 | 
					class CategoryPage extends React.Component {
 | 
				
			||||||
    constructor(props, context) {
 | 
					    constructor(props, context) {
 | 
				
			||||||
@@ -24,12 +25,10 @@ class CategoryPage extends React.Component {
 | 
				
			|||||||
    render() {
 | 
					    render() {
 | 
				
			||||||
        return (
 | 
					        return (
 | 
				
			||||||
            <>
 | 
					            <>
 | 
				
			||||||
                <div className='pageheader'>
 | 
					                <PageTitle
 | 
				
			||||||
                    <span className='pageheadertitle'>Categories</span>
 | 
					                    title='Categories'
 | 
				
			||||||
                    <span
 | 
					                    subtitle={!this.state.selected ? this.state.loadedtags.length + " different Tags" : this.state.selected}/>
 | 
				
			||||||
                        className='pageheadersubtitle'>{!this.state.selected ? this.state.loadedtags.length + " different Tags" : this.state.selected}</span>
 | 
					
 | 
				
			||||||
                    <hr/>
 | 
					 | 
				
			||||||
                </div>
 | 
					 | 
				
			||||||
                <SideBar>
 | 
					                <SideBar>
 | 
				
			||||||
                    <div className='sidebartitle'>Default Tags:</div>
 | 
					                    <div className='sidebartitle'>Default Tags:</div>
 | 
				
			||||||
                    <Tag>All</Tag>
 | 
					                    <Tag>All</Tag>
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -4,7 +4,7 @@ import Tag from "../../elements/Tag/Tag";
 | 
				
			|||||||
import VideoContainer from "../../elements/VideoContainer/VideoContainer";
 | 
					import VideoContainer from "../../elements/VideoContainer/VideoContainer";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import "./HomePage.css"
 | 
					import "./HomePage.css"
 | 
				
			||||||
import "../../css/DefaultPage.css"
 | 
					import PageTitle from "../../elements/PageTitle/PageTitle";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
class HomePage extends React.Component {
 | 
					class HomePage extends React.Component {
 | 
				
			||||||
    constructor(props, context) {
 | 
					    constructor(props, context) {
 | 
				
			||||||
@@ -121,9 +121,9 @@ class HomePage extends React.Component {
 | 
				
			|||||||
    render() {
 | 
					    render() {
 | 
				
			||||||
        return (
 | 
					        return (
 | 
				
			||||||
            <div>
 | 
					            <div>
 | 
				
			||||||
                <div className='pageheader'>
 | 
					                <PageTitle
 | 
				
			||||||
                    <span className='pageheadertitle'>Home Page</span>
 | 
					                    title='Home Page'
 | 
				
			||||||
                    <span className='pageheadersubtitle'>{this.state.tag} Videos - {this.state.selectionnr}</span>
 | 
					                    subtitle={this.state.tag + " Videos - " + this.state.selectionnr}>
 | 
				
			||||||
                    <form className="form-inline searchform" onSubmit={(e) => {
 | 
					                    <form className="form-inline searchform" onSubmit={(e) => {
 | 
				
			||||||
                        e.preventDefault();
 | 
					                        e.preventDefault();
 | 
				
			||||||
                        this.searchVideos(this.keyword);
 | 
					                        this.searchVideos(this.keyword);
 | 
				
			||||||
@@ -135,8 +135,7 @@ class HomePage extends React.Component {
 | 
				
			|||||||
                               }}/>
 | 
					                               }}/>
 | 
				
			||||||
                        <button data-testid='searchbtnsubmit' className="btn btn-success" type="submit">Search</button>
 | 
					                        <button data-testid='searchbtnsubmit' className="btn btn-success" type="submit">Search</button>
 | 
				
			||||||
                    </form>
 | 
					                    </form>
 | 
				
			||||||
                    <hr/>
 | 
					                </PageTitle>
 | 
				
			||||||
                </div>
 | 
					 | 
				
			||||||
                <SideBar>
 | 
					                <SideBar>
 | 
				
			||||||
                    <div className='sidebartitle'>Infos:</div>
 | 
					                    <div className='sidebartitle'>Infos:</div>
 | 
				
			||||||
                    <hr/>
 | 
					                    <hr/>
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -52,14 +52,14 @@ describe('<HomePage/>', function () {
 | 
				
			|||||||
    it('test title and nr insertions', function () {
 | 
					    it('test title and nr insertions', function () {
 | 
				
			||||||
        const wrapper = shallow(<HomePage/>);
 | 
					        const wrapper = shallow(<HomePage/>);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        expect(wrapper.find(".pageheadersubtitle").text()).toBe("All Videos - 0");
 | 
					        expect(wrapper.find("PageTitle").props().subtitle).toBe("All Videos - 0");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        wrapper.setState({
 | 
					        wrapper.setState({
 | 
				
			||||||
            tag: "testtag",
 | 
					            tag: "testtag",
 | 
				
			||||||
            selectionnr: 42
 | 
					            selectionnr: 42
 | 
				
			||||||
        });
 | 
					        });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        expect(wrapper.find(".pageheadersubtitle").text()).toBe("testtag Videos - 42");
 | 
					        expect(wrapper.find("PageTitle").props().subtitle).toBe("testtag Videos - 42");
 | 
				
			||||||
    });
 | 
					    });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    it('test search field', done => {
 | 
					    it('test search field', done => {
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -4,6 +4,7 @@ import {PlyrComponent} from 'plyr-react';
 | 
				
			|||||||
import SideBar from "../../elements/SideBar/SideBar";
 | 
					import SideBar from "../../elements/SideBar/SideBar";
 | 
				
			||||||
import Tag from "../../elements/Tag/Tag";
 | 
					import Tag from "../../elements/Tag/Tag";
 | 
				
			||||||
import AddTagPopup from "../../elements/AddTagPopup/AddTagPopup";
 | 
					import AddTagPopup from "../../elements/AddTagPopup/AddTagPopup";
 | 
				
			||||||
 | 
					import PageTitle from "../../elements/PageTitle/PageTitle";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
class Player extends React.Component {
 | 
					class Player extends React.Component {
 | 
				
			||||||
@@ -48,11 +49,10 @@ class Player extends React.Component {
 | 
				
			|||||||
    render() {
 | 
					    render() {
 | 
				
			||||||
        return (
 | 
					        return (
 | 
				
			||||||
            <div id='videocontainer'>
 | 
					            <div id='videocontainer'>
 | 
				
			||||||
                <div className='pageheader'>
 | 
					                <PageTitle
 | 
				
			||||||
                    <span className='pageheadertitle'>Watch</span>
 | 
					                    title='Watch'
 | 
				
			||||||
                    <span className='pageheadersubtitle'>{this.state.movie_name}</span>
 | 
					                    subtitle={this.state.movie_name}/>
 | 
				
			||||||
                    <hr/>
 | 
					
 | 
				
			||||||
                </div>
 | 
					 | 
				
			||||||
                <SideBar>
 | 
					                <SideBar>
 | 
				
			||||||
                    <div className='sidebartitle'>Infos:</div>
 | 
					                    <div className='sidebartitle'>Infos:</div>
 | 
				
			||||||
                    <hr/>
 | 
					                    <hr/>
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -3,6 +3,7 @@ import Preview from "../../elements/Preview/Preview";
 | 
				
			|||||||
import "./RandomPage.css"
 | 
					import "./RandomPage.css"
 | 
				
			||||||
import SideBar from "../../elements/SideBar/SideBar";
 | 
					import SideBar from "../../elements/SideBar/SideBar";
 | 
				
			||||||
import Tag from "../../elements/Tag/Tag";
 | 
					import Tag from "../../elements/Tag/Tag";
 | 
				
			||||||
 | 
					import PageTitle from "../../elements/PageTitle/PageTitle";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
class RandomPage extends React.Component {
 | 
					class RandomPage extends React.Component {
 | 
				
			||||||
    constructor(props, context) {
 | 
					    constructor(props, context) {
 | 
				
			||||||
@@ -21,11 +22,10 @@ class RandomPage extends React.Component {
 | 
				
			|||||||
    render() {
 | 
					    render() {
 | 
				
			||||||
        return (
 | 
					        return (
 | 
				
			||||||
            <div>
 | 
					            <div>
 | 
				
			||||||
                <div className='pageheader'>
 | 
					                <PageTitle
 | 
				
			||||||
                    <span className='pageheadertitle'>Random Videos</span>
 | 
					                    title='Random Videos'
 | 
				
			||||||
                    <span className='pageheadersubtitle'>4pc</span>
 | 
					                    subtitle='4pc'/>
 | 
				
			||||||
                    <hr/>
 | 
					
 | 
				
			||||||
                </div>
 | 
					 | 
				
			||||||
                <SideBar>
 | 
					                <SideBar>
 | 
				
			||||||
                    <div className='sidebartitle'>Visible Tags:</div>
 | 
					                    <div className='sidebartitle'>Visible Tags:</div>
 | 
				
			||||||
                    {this.state.tags.map((m) => (
 | 
					                    {this.state.tags.map((m) => (
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,5 +1,5 @@
 | 
				
			|||||||
import React from "react";
 | 
					import React from "react";
 | 
				
			||||||
import "../../css/DefaultPage.css"
 | 
					import PageTitle from "../../elements/PageTitle/PageTitle";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
class SettingsPage extends React.Component {
 | 
					class SettingsPage extends React.Component {
 | 
				
			||||||
@@ -44,11 +44,9 @@ class SettingsPage extends React.Component {
 | 
				
			|||||||
    render() {
 | 
					    render() {
 | 
				
			||||||
        return (
 | 
					        return (
 | 
				
			||||||
            <div>
 | 
					            <div>
 | 
				
			||||||
                <div className='pageheader'>
 | 
					                <PageTitle
 | 
				
			||||||
                    <span className='pageheadertitle'>Settings Page</span>
 | 
					                    title='Settings Page'
 | 
				
			||||||
                    <span className='pageheadersubtitle'>todo</span>
 | 
					                    subtitle='todo'/>
 | 
				
			||||||
                    <hr/>
 | 
					 | 
				
			||||||
                </div>
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
                <button className='reindexbtn btn btn-success' onClick={() => {
 | 
					                <button className='reindexbtn btn btn-success' onClick={() => {
 | 
				
			||||||
                    this.startReindex()
 | 
					                    this.startReindex()
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user