--- a/Helpviewer/data/html/speeddialPage.html Fri Sep 19 19:34:15 2014 +0200 +++ b/Helpviewer/data/html/speeddialPage.html Sat Sep 20 16:22:13 2014 +0200 @@ -127,12 +127,9 @@ margin-left: auto; margin-right: auto; } -#overlay-edit input[type="submit"] { - margin-left: auto; - margin-right: auto; - margin-top: 10px; - display: block; - width: 200px; +#overlay-edit .buttonbox input { + margin-right: 3px; + margin-left: 3px; } @@ -211,6 +208,12 @@ display: inline-block; width: 25px; } + +.buttonbox { + margin-top: 5px; + margin-bottom: -5px; + text-align: right; +} </style> <script type="text/javascript" src="@JQUERY@"></script> @@ -230,6 +233,24 @@ var editingId = -1; + function escapeTitle(title) { + title = title.replace(/"/g, '"'); + title = title.replace(/'/g, '''); + return title; + } + + function unescapeTitle(title) { + title = title.replace(/"/g, '"'); + title = title.replace(/'/g, '\''); + return title; + } + + function escapeUrl(url) { + url = url.replace(/"/g, ''); + url = url.replace(/'/g, ''); + return url; + } + function onRemoveClick(box) { removeBox($(box).index()); } @@ -252,10 +273,14 @@ $('#titleLine').css({'visibility' : displayStyle }); } + function hideEditBox() { + $('#fadeOverlay').fadeOut("slow", function() {$("#fadeOverlay").remove();}); + } + function onEditClick(box) { editingId = $(box).index(); var boxUrl = $(box).children('a').first().attr('href'); - var boxTitle = $(box).children('span').first().text(); + var boxTitle = escapeTitle($(box).children('span').first().text()); if (boxUrl === '') boxUrl = 'http://'; @@ -269,11 +294,13 @@ '<input type="text" id="formTitle" value="' + boxTitle + '"></td></tr>' + '<tr><td></td><td><input type="checkbox" id="fetchTitle" onclick="onFetchTitleClick(this)">' + '<label for="fetchTitle"> ' + TITLE_FETCHTITLE + ' </label></td></tr>' + - '</table><input type="submit" value="' + EDIT + '" onClick="boxEdited()">' + + '</table><p class="buttonbox">' + + '<input type="button" value=" @CLOSE@ " onClick="hideEditBox();">' + + '<input type="button" value=" ' + EDIT + ' " onClick="boxEdited()"></p>' + '</div></div>'); $('#fadeOverlay').css({'filter' : 'alpha(opacity=90)'}).fadeIn(); - $('#fadeOverlay').click(function() { $(this).fadeOut("slow", function() {$("#fadeOverlay").remove();}); }); + $('#fadeOverlay').click(function() {hideEditBox()}); $('#overlay-edit').click(function(event) { event.stopPropagation(); }); $('#formUrl').focus(); } @@ -311,7 +338,7 @@ speeddial.removeImageForUrl(a.getAttribute('href')); }); } else { - $('#fadeOverlay').fadeOut("slow", function() {$("#fadeOverlay").remove();}); + hideEditBox(); } speeddial.changed(allPages()); } @@ -321,10 +348,10 @@ var titles = $('span[class="boxTitle"]'); var value = ""; $('div.entry').each(function(i) { - var url = $(this).children('a').first().attr('href').replace('"', '').replace(';',''); - var title = $(this).children('span[class="boxTitle"]').first().text().replace('"', '').replace(';',''); - var img = $(this).children('img').first().attr('src').replace('"', '').replace(';',''); - value += 'url:"' + url + '"|title:"' + title + '"|img:"' + img + '";'; + var url = $(this).children('a').first().attr('href'); + var title = $(this).children('span[class="boxTitle"]').first().text(); + var img = $(this).children('img').first().attr('src'); + value += 'url:"' + escapeUrl(url) + '"|title:"' + escapeTitle(title) + '"|img:"' + escapeUrl(img) + '";'; }); return value; @@ -340,7 +367,7 @@ a.setAttribute('class', 'boxUrl'); var span1 = document.createElement('span'); span1.setAttribute('class', 'boxTitle'); - span1.appendChild( document.createTextNode(title) ); + span1.innerText = unescapeTitle(speeddial.unescapeTitle(title)); var span2 = document.createElement('span'); span2.setAttribute('class', 'edit'); span2.setAttribute('onClick', 'onEditClick(parentNode)'); @@ -390,7 +417,7 @@ continue; var span = box.getElementsByTagName('span')[0]; - span.innerText = title; + span.innerText = speeddial.unescapeTitle(title); } speeddial.changed(allPages()); @@ -423,10 +450,11 @@ return; var span = box.getElementsByTagName('span')[0]; - span.innerText = title; + span.innerText = speeddial.unescapeTitle(title); } function removeBox(id) { + if (confirm("@TITLE-WARN@")) var box = document.getElementById('quickdial').getElementsByTagName('div')[id]; if (box === undefined) return; @@ -535,8 +563,9 @@ <input id="SdSize" type="range" min="145" max="360" value="@SD-SIZE@" step="1" onchange="$('#sliderValueSd').html(this.value);" /> </div> <div class="content"> - <p> - <input class="button" type="button" value="@APPLY@" onClick="saveSettings();$('#fadeOverlay2').fadeOut('slow');" /> + <p class="buttonbox"> + <input type="button" value=" @CLOSE@ " onClick="$('#fadeOverlay2').fadeOut('slow');" /> + <input type="button" value=" @APPLY@ " onClick="saveSettings();$('#fadeOverlay2').fadeOut('slow');"/> </p> </div> </div>