XSS fix, books only shows title with out color atm...
This commit is contained in:
parent
1d9e4fa598
commit
135e877fa8
@ -6,12 +6,11 @@ var list = function(user) {
|
|||||||
.withConverter(bookConverter)
|
.withConverter(bookConverter)
|
||||||
.get()
|
.get()
|
||||||
.then(function(query) {
|
.then(function(query) {
|
||||||
html = '<br/>'
|
$('#books').html('<br/>')
|
||||||
query.forEach(function(doc) {
|
query.forEach(function(doc) {
|
||||||
book = doc.data()
|
book = doc.data()
|
||||||
html += book.toHtml(user)
|
book.toHtml($('#books'))
|
||||||
})
|
})
|
||||||
$('#books').html(html)
|
|
||||||
}).catch(function(error) {
|
}).catch(function(error) {
|
||||||
$('#books').html('<h3>Kunne ikke hente bøker!</h3><br/><p>'+error+'</p>')
|
$('#books').html('<h3>Kunne ikke hente bøker!</h3><br/><p>'+error+'</p>')
|
||||||
$('#books').css('color', 'red')
|
$('#books').css('color', 'red')
|
||||||
@ -30,7 +29,7 @@ var add = function() {
|
|||||||
)).then(function() {
|
)).then(function() {
|
||||||
$('#status').html('<p>La til bok '+$('#title')[0].value+'!</p>')
|
$('#status').html('<p>La til bok '+$('#title')[0].value+'!</p>')
|
||||||
$('#status').css('color', 'green')
|
$('#status').css('color', 'green')
|
||||||
list(firebase.auth().currentUser)
|
list()
|
||||||
}).catch(function() {
|
}).catch(function() {
|
||||||
$('#status').html('<p>Problem med å legge til bok '+$('#title')[0].value+'!</p>')
|
$('#status').html('<p>Problem med å legge til bok '+$('#title')[0].value+'!</p>')
|
||||||
$('#status').css('color', 'red')
|
$('#status').css('color', 'red')
|
||||||
@ -40,7 +39,7 @@ var add = function() {
|
|||||||
var remove = function(id) {
|
var remove = function(id) {
|
||||||
db.collection("bibliotek").doc(id)
|
db.collection("bibliotek").doc(id)
|
||||||
.delete().then(function() {
|
.delete().then(function() {
|
||||||
list(firebase.auth().currentUser)
|
list()
|
||||||
}).catch(function(error) {
|
}).catch(function(error) {
|
||||||
alert("Error removing document: ", error)
|
alert("Error removing document: ", error)
|
||||||
})
|
})
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
|
|
||||||
#kommentar {
|
.kommentar {
|
||||||
font-size: 1.1rem;
|
font-size: 1.1rem;
|
||||||
word-wrap: break-word;
|
word-wrap: break-word;
|
||||||
}
|
}
|
||||||
|
@ -6,15 +6,14 @@ var list = function() {
|
|||||||
.withConverter(commentConverter)
|
.withConverter(commentConverter)
|
||||||
.get()
|
.get()
|
||||||
.then(function(query) {
|
.then(function(query) {
|
||||||
html = '<br/>'
|
$('#kommentarer').html('<br/>')
|
||||||
query.forEach(function(doc) {
|
query.forEach(function(doc) {
|
||||||
book = doc.data()
|
book = doc.data()
|
||||||
html += book.toHtml(firebase.auth().currentUser)
|
book.toHtml($('#kommentarer'))
|
||||||
})
|
})
|
||||||
$('#kommentarer').html(html)
|
|
||||||
}).catch(function(error) {
|
}).catch(function(error) {
|
||||||
$('#kommentarer').html('<h3>Kunne ikke hente bøker!</h3><br/><p>'+error+'</p>')
|
$('#status').html('<h3>Kunne ikke hente kommentarer!</h3><br/><p>'+error.message+'</p>')
|
||||||
$('#kommentarer').css('color', 'red')
|
$('#status').css('color', 'red')
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -27,6 +26,7 @@ var add = function() {
|
|||||||
)).then(function() {
|
)).then(function() {
|
||||||
$('#status').html('<p>La til melding med navn '+$('#navn')[0].value+'!</p>')
|
$('#status').html('<p>La til melding med navn '+$('#navn')[0].value+'!</p>')
|
||||||
$('#status').css('color', 'green')
|
$('#status').css('color', 'green')
|
||||||
|
$('#kommentarer').html('')
|
||||||
list()
|
list()
|
||||||
}).catch(function() {
|
}).catch(function() {
|
||||||
$('#status').html('<p>Problem med å legge til melding med navn '+$('#navn')[0].value+'!</p>')
|
$('#status').html('<p>Problem med å legge til melding med navn '+$('#navn')[0].value+'!</p>')
|
||||||
@ -37,6 +37,7 @@ var add = function() {
|
|||||||
var remove = function(id) {
|
var remove = function(id) {
|
||||||
db.collection("gjestebok").doc(id)
|
db.collection("gjestebok").doc(id)
|
||||||
.delete().then(function() {
|
.delete().then(function() {
|
||||||
|
$('#kommentarer').html('')
|
||||||
list()
|
list()
|
||||||
}).catch(function(error) {
|
}).catch(function(error) {
|
||||||
alert("Error removing document: ", error)
|
alert("Error removing document: ", error)
|
||||||
|
@ -32,6 +32,7 @@
|
|||||||
<!-- <a type="submit" class="btn btn-primary" href="javascript: list()">Hent kommentarer</a> -->
|
<!-- <a type="submit" class="btn btn-primary" href="javascript: list()">Hent kommentarer</a> -->
|
||||||
<div id="kommentarer">
|
<div id="kommentarer">
|
||||||
</div>
|
</div>
|
||||||
|
<p id="status"></p>
|
||||||
</div>
|
</div>
|
||||||
<script type="text/javascript" src="/it1/gjestebok/gjestebok.js"></script>
|
<script type="text/javascript" src="/it1/gjestebok/gjestebok.js"></script>
|
||||||
</body>
|
</body>
|
||||||
|
@ -11,14 +11,26 @@ class Book {
|
|||||||
toString() {
|
toString() {
|
||||||
return this.title+' av '+this.author+', terningkast '+this.rating+', utgitt '+this.published.toString().slice(0,15)+', forlag; '+this.publisher
|
return this.title+' av '+this.author+', terningkast '+this.rating+', utgitt '+this.published.toString().slice(0,15)+', forlag; '+this.publisher
|
||||||
}
|
}
|
||||||
toHtml(user=false) {
|
toHtml(elm) {
|
||||||
|
let span = function(selector, string, color='red') {
|
||||||
|
$($(selector)[$(selector).length-1]).append('<span style="color: '+color+'"></span>')
|
||||||
|
//$($(selector+' > span')[$(selector+' > span').length-1])
|
||||||
|
}
|
||||||
|
let user = firebase.auth().currentUser
|
||||||
|
elm.append('<p class="book"></p>', this.title)
|
||||||
|
span('.book')
|
||||||
|
//.text(this.toString())
|
||||||
|
if (user) {
|
||||||
|
$($('.kommentar')[$('.kommentar').length-1]).append(' <a class="btn btn-primary" href="javascript: remove(\''+this.cfid+'\')">Slett</a>')
|
||||||
|
}
|
||||||
|
} /*
|
||||||
let span = function(string, color='red') {
|
let span = function(string, color='red') {
|
||||||
return '<span style="color: '+color+'">'+string+'</span>'
|
return '<span style="color: '+color+'">'+string+'</span>'
|
||||||
}
|
}
|
||||||
return '<p>'+span(this.title)+' av '+span(this.author)+', terningkast '+span(this.rating)+', utgitt '
|
return '<p>'+span(this.title)+' av '+span(this.author)+', terningkast '+span(this.rating)+', utgitt '
|
||||||
+span(this.published.toString().slice(0,15), 'green')+', forlag; '+span(this.publisher, 'yellow')
|
+span(this.published.toString().slice(0,15), 'green')+', forlag; '+span(this.publisher, 'yellow')
|
||||||
+(user?' <a class="btn btn-primary" href="javascript: remove(\''+this.cfid+'\')">Slett</a>':'')+'</p>'
|
+(user?' <a class="btn btn-primary" href="javascript: remove(\''+this.cfid+'\')">Slett</a>':'')+'</p>'
|
||||||
}
|
}*/
|
||||||
}
|
}
|
||||||
|
|
||||||
bookConverter = {
|
bookConverter = {
|
||||||
|
@ -8,9 +8,13 @@ class Comment {
|
|||||||
toString() {
|
toString() {
|
||||||
return this.name+': '+this.message
|
return this.name+': '+this.message
|
||||||
}
|
}
|
||||||
toHtml(user) {
|
toHtml(elm) {
|
||||||
return '<p id="kommentar">'+this.name+': '+this.message
|
let user = firebase.auth().currentUser
|
||||||
+(user?' <a class="btn btn-primary" href="javascript: remove(\''+this.cfid+'\')">Slett</a>':'')+'</p>'
|
elm.append('<p class="kommentar"></p>')
|
||||||
|
$($('.kommentar')[$('.kommentar').length-1]).text(this.toString())
|
||||||
|
if (user) {
|
||||||
|
$($('.kommentar')[$('.kommentar').length-1]).append(' <a class="btn btn-primary" href="javascript: remove(\''+this.cfid+'\')">Slett</a>')
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user