Helpviewer/data/html/speeddialPage.html

changeset 3794
b460b30fab8f
parent 1670
6fd889391d2c
child 4954
36e92a908f3f
diff -r bdaf1b220a36 -r b460b30fab8f Helpviewer/data/html/speeddialPage.html
--- 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, '&quot;');
+        title = title.replace(/'/g, '&apos;');
+        return title;
+    }
+
+    function unescapeTitle(title) {
+        title = title.replace(/&quot;/g, '"');
+        title = title.replace(/&apos;/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>

eric ide

mercurial