);
}
toggleMenyHvisIkkeVid(e) {
if (window.innerWidth < 1801 || window.innerHeight < 1200) {
this.setState({
menuopen: !this.state.menuopen
});
}
}
toggleMeny(e) {
this.setState({
menuopen: !this.state.menuopen
});
}
lukkMeny(e) {
this.setState({
menuopen: false
});
}
}
class Forside extends React.Component {
constructor(props) {
super(props);
let bilder = this.props.bilder;
let slides = [];
for (let i = 1; i < bilder.length; i++) {
if (bilder[i][3]) {
slides.push(bilder[i][1]);
}
}
//hent ut nyhetsdataene
let desc = this.props.descriptions;
let nyheter = [];
for (let i = 1; i < desc.length; i++) {
if (desc[i][0] == "news") {
if (desc[i][1] == "avsnitt" && nyheter["avsnitt2"]) {
nyheter["avsnitt3"] =
} else if (desc[i][1] == "avsnitt" && nyheter["avsnitt"]) {
nyheter["avsnitt2"] =
} else if (desc[i][1] == "avsnitt") {
nyheter[desc[i][1]] =
} else {
nyheter[desc[i][1]] = desc[i][3];
}
}
}
if (Object.keys(nyheter).length) {
this.state = {
nyhetsynlig: true,
}
} else {
this.state = {
nyhetsynlig: false,
}
}
this.slides = slides;
this.nyheter = nyheter;
}
componentDidMount() {
document.title = "Hølmebakk Øymo";
}
render() {
let nyheter = this.nyheter;
return (
{this.state.nyhetsynlig &&
NEWS
{nyheter["overskrift"]}
{nyheter["avsnitt"]}
{nyheter["avsnitt2"] &&
{nyheter["avsnitt2"]}
}
{nyheter["avsnitt3"] &&
{nyheter["avsnitt3"]}
}
{nyheter["dato"]}
NEWS
{nyheter["overskrift"]}
{nyheter["avsnitt"]}
{nyheter["avsnitt2"] &&
{nyheter["avsnitt2"]}
}
{nyheter["avsnitt3"] &&
{nyheter["avsnitt3"]}
}
{nyheter["dato"]}
}
);
}
}
class Prosjekterside extends React.Component {
constructor(props) {
super(props);
}
componentDidMount() {
document.title = this.props.filter + " - Hølmebakk Øymo";
}
componentWillUnmount() {
document.body.onkeydown = null;
}
componentDidUpdate() {
document.title = this.props.filter + " - Hølmebakk Øymo";
}
render() {
let ps = this.props.prosjektliste;
let filter = this.props.filter;
let bilder = this.props.bilder;
let bildeindex = [];
for (let i=1; i
{ps[i][1]}{ps[i][3]} {ps[i][4]}
);
}
return (
{kort}
);
}
}
class Prosjektside extends React.Component {
constructor(props) {
super(props);
let dette = this.props.prosjekt;
let p = this.props.prosjektliste.find(pro => dette === pro[0]);
let bilder = this.props.bilder;
let descriptions = this.props.descriptions;
let fakta = [];
let tekst = [];
tekst.push(
{p[1]} {p[3]} {p[4]}
);
for (let i=1; i{descriptions[i][3]}
);
}
if (descriptions[i][1] == "avsnitt") {
tekst.push(
{descriptions[i][3]}
);
}
}
}
let bildeindex = [];
bildeindex['photos'] = [];
bildeindex['drawings'] = [];
bildeindex['map'] = [];
for (let i=1; i {
if (this.state.nummer > 0) {
this.setState({
nummer: this.state.nummer-1
});
} else {
if (this.state.utvalg == "drawings" && this.bildeindex["photos"].length) {
this.setState({
utvalg: "photos",
nummer: this.bildeindex["photos"].length-1
});
} else if (this.state.utvalg == "text") {
this.setState({
utvalg: "drawings",
nummer: this.bildeindex["drawings"].length-1
});
}
}
/*this.setState({ forrige: true });//lager markering/animasjon ved endring
setTimeout(() => {
this.setState({ forrige: false });
}, 100);*/
}
nesteBilde = () => {
if (this.state.nummer != this.bildeindex[this.state.utvalg].length-1) {
this.setState({
nummer: this.state.nummer+1
});
} else {
if (this.state.utvalg == "photos") {
this.setState({
utvalg: "drawings",
nummer: 0
});
} else if (this.state.utvalg == "drawings") {
this.setState({
utvalg: "text",
nummer: 0
});
}
}
/*this.setState({ neste: true });//lager markering/animasjon ved endring
setTimeout(() => {
this.setState({ neste: false });
}, 100);*/
}
apenUtvalg(u) {
this.setState({
utvalg: u,
nummer: 0
});
}
render() {
let p = this.p;
let nr = this.state.nummer;
let utvalg = this.state.utvalg;
let bildeindex = this.bildeindex;
let visProsjektmeny = true;
if ((window.innerWidth < 1801 || window.innerHeight < 1200) && window.innerWidth > 1000 && this.props.menuopen) {
visProsjektmeny = false;
}
let fhake = "";
let nhake = "";
if (this.state.forrige) {
fhake =
} else {
fhake =
}
if (this.state.neste) {
nhake =
} else {
nhake =
}
return (
);
}
}
/* Skriver ut inndata som en enkel tabell */
class AwardsTable extends React.Component {
constructor(props) {
super(props);
}
render() {
let data = this.props.data.slice();
let type = this.props.type;
let utvalg = [];
for (let i=0; i{data[0][j]};
rad.push(celle);
}
rader.push(
{rad}
);
//innhold
for (let i=0; i{utvalg[i][j]};
rad.push(celle);
}
rader.push(
{rad}
);
}
return (
{rader}
);
}
}
function kommaLinjeskift(s) {
s = s.split(",");
s = s.map(e =>
{e}
);
return
{s}
;
}
/* Gjør rå csv-tekst om til en todimensjonal array. */
function dataTilArray(data) {
let d = data;
d = d.split("\n");
d = d.map(e => e.split("\t"));
return d;
}
/* lånt funksjon for å "stokke" array */
function shuffleArray(array) {
for (let i = array.length - 1; i > 0; i--) {
const j = Math.floor(Math.random() * (i + 1));
[array[i], array[j]] = [array[j], array[i]];
}
}
/* setter inn et svg-ikon */
function lagIkon(ikon, stroke="#666", fill="#666", strokeWidth="10") {
let ikonStyle = {stroke:stroke, fill:fill, strokeWidth:strokeWidth};
let s2 = {stroke:stroke, fill:"none", strokeWidth:"2"};
let s3 = {stroke:stroke, fill:"none", strokeWidth:"3"};
let s4 = {stroke:stroke, fill:"none", strokeWidth:"4"};
let s5 = {stroke:stroke, fill:"none", strokeWidth:"5"};
let s7 = {stroke:stroke, fill:"none", strokeWidth:"7"};
let s10 = {stroke:stroke, fill:"none", strokeWidth:"10"};
let s15 = {stroke:stroke, fill:"none", strokeWidth:"15"};
let s20 = {stroke:stroke, fill:"none", strokeWidth:"20"};
if (ikon == "firkant") {
return ;
}
if (ikon == "blyant") {
return ;
}
if (ikon == "folk") {
return ;
}
if (ikon == "hake") {
let pStyle = {stroke:stroke, fill:"none", strokeWidth:"20"};
return ;
}
if (ikon == "hoyde") {
return ;
}
if (ikon == "lastned") {
return ;
}
if (ikon == "lukk") {
return ;
}
if (ikon == "minus") {
return ;
}
if (ikon == "nedhake") {
return ;
}
if (ikon == "opphake") {
return ;
}
if (ikon == "venstrehake") {
return ;
}
if (ikon == "hoyrehake") {
return ;
}
if (ikon == "pluss") {
return ;
}
if (ikon == "severdighet") {
return ;
}
if (ikon == "sok") {
return ;
}
/* linjer - data/hamburgermeny */
if (ikon == "linjer") {
return
}
if (ikon == "tekst") {
return ;
}
if (ikon == "turbin") {
return ;
}
if (ikon == "venstreblyant") {
return ;
}
}
/* ulike sorteringsfunksjoner */
function sorterTallFallende(liste,par) {
liste.sort(function(a,b) {
let valA = parseFloat(a);
let valB = parseFloat(b);
if(!a[par] || isNaN(parseFloat(a[par]))) return 1;
if(!b[par] || isNaN(parseFloat(b[par]))) return -1;
return b[par] - a[par];
});
}
function sorterTallStigende(liste,par) {
liste.sort(function(a,b) {
let valA = parseFloat(a);
let valB = parseFloat(b);
if(!a[par] || isNaN(parseFloat(a[par]))) return 1;
if(!b[par] || isNaN(parseFloat(b[par]))) return -1;
return a[par] - b[par];
});
}
function sorterTekstAlfabetisk(liste,par) {
liste.sort(function(a,b) {
if(!a[par]) return 1;
if(!b[par]) return -1;
return a[par] > b[par] ? 1 : -1;
});
}
function sorterTekstMotsattAlfabetisk(liste,par) {
liste.sort(function(a,b) {
if(!a[par]) return 1;
if(!b[par]) return -1;
return a[par] < b[par] ? 1 : -1;
});
}
function sorterHøyMiddelsLav(liste,par) {
liste.sort(function(a,b) {
let valA = 0;
let valB = 0;
if(a[par] == "Lav") {
valA = 1;
} else if (a[par] == "Middels") {
valA = 2;
} else if (a[par] == "Høy") {
valA = 3;
}
if(b[par] == "Lav") {
valB = 1;
} else if (b[par] == "Middels") {
valB = 2;
} else if (b[par] == "Høy") {
valB = 3;
}
return valB - valA;
});
}
function sorterGodMiddelsDårlig(liste,par) {
liste.sort(function(a,b) {
let valA = 0;
let valB = 0;
if(a[par] == "Dårlig") {
valA = 1;
} else if (a[par] == "Middels") {
valA = 2;
} else if (a[par] == "God") {
valA = 3;
}
if(b[par] == "Dårlig") {
valB = 1;
} else if (b[par] == "Middels") {
valB = 2;
} else if (b[par] == "God") {
valB = 3;
}
return valB - valA;
});
}
function sorterArraystørrelse(liste,par) {
liste.sort(function(a,b) {
return a[par].length < b[par].length ? 1 : -1;
});
}
ReactDOM.render(, document.getElementById('root'));