Explorar o código

Add remove button in feed edit page

Frédéric Guillot %!s(int64=7) %!d(string=hai) anos
pai
achega
551b73acfb

+ 3 - 2
locale/translations.go

@@ -500,7 +500,8 @@ var translations = map[string]string{
     "There is no result for this search.": "Il n'y a aucun résultat pour cette recherche.",
     "Search...": "Recherche...",
     "Set focus on search form": "Mettre le focus sur le champ de recherche",
-    "Search": "Recherche"
+    "Search": "Recherche",
+    "Remove this feed": "Supprimer cet abonnement"
 }
 `,
 	"nl_NL": `{
@@ -1175,7 +1176,7 @@ var translations = map[string]string{
 var translationsChecksums = map[string]string{
 	"de_DE": "c87a08365c81ec478d705d8e1110cd1b864476d35b5b281f1e76e7a21afc1ae7",
 	"en_US": "6fe95384260941e8a5a3c695a655a932e0a8a6a572c1e45cb2b1ae8baa01b897",
-	"fr_FR": "343a148eed375a593023c30597ef7280d18222756c5062e6a85e1006c7b12d14",
+	"fr_FR": "c61316e5862fc9d7118bb555679714200b3a5c560241e755ade8f85fcdcb3fdb",
 	"nl_NL": "05cca4936bd3b0fa44057c4dab64acdef3aed32fbb682393f254cfe2f686ef1f",
 	"pl_PL": "2295f35a98c8f60cfc6bab241d26b224c06979cc9ca3740bb89c63c7596a0431",
 	"zh_CN": "f5fb0a9b7336c51e74d727a2fb294bab3514e3002376da7fd904e0d7caed1a1c",

+ 2 - 1
locale/translations/fr_FR.json

@@ -240,5 +240,6 @@
     "There is no result for this search.": "Il n'y a aucun résultat pour cette recherche.",
     "Search...": "Recherche...",
     "Set focus on search form": "Mettre le focus sur le champ de recherche",
-    "Search": "Recherche"
+    "Search": "Recherche",
+    "Remove this feed": "Supprimer cet abonnement"
 }

+ 11 - 0
template/html/edit_feed.html

@@ -85,6 +85,17 @@
             <li><strong>{{ t "LastModified header:" }} </strong>{{ if .feed.LastModifiedHeader }}{{ .feed.LastModifiedHeader }}{{ else }}{{ t "None" }}{{ end }}</li>
         </ul>
     </div>
+
+    <div class="alert alert-error">
+        <a href="#"
+            data-confirm="true"
+            data-label-question="{{ t "Are you sure?" }}"
+            data-label-yes="{{ t "yes" }}"
+            data-label-no="{{ t "no" }}"
+            data-label-loading="{{ t "Work in progress..." }}"
+            data-url="{{ route "removeFeed" "feedID" .feed.ID }}"
+            data-redirect-url="{{ route "feeds" }}">{{ t "Remove this feed" }}</a>
+    </div>
 {{ end }}
 
 {{ end }}

+ 12 - 1
template/views.go

@@ -471,6 +471,17 @@ var templateViewsMap = map[string]string{
             <li><strong>{{ t "LastModified header:" }} </strong>{{ if .feed.LastModifiedHeader }}{{ .feed.LastModifiedHeader }}{{ else }}{{ t "None" }}{{ end }}</li>
         </ul>
     </div>
+
+    <div class="alert alert-error">
+        <a href="#"
+            data-confirm="true"
+            data-label-question="{{ t "Are you sure?" }}"
+            data-label-yes="{{ t "yes" }}"
+            data-label-no="{{ t "no" }}"
+            data-label-loading="{{ t "Work in progress..." }}"
+            data-url="{{ route "removeFeed" "feedID" .feed.ID }}"
+            data-redirect-url="{{ route "feeds" }}">{{ t "Remove this feed" }}</a>
+    </div>
 {{ end }}
 
 {{ end }}`,
@@ -1320,7 +1331,7 @@ var templateViewsMapChecksums = map[string]string{
 	"create_category":     "2b82af5d2dcd67898dc5daa57a6461e6ff8121a6089b2a2a1be909f35e4a2275",
 	"create_user":         "1ef0a1f9bf119d44929c81f13073a257d69650cf5064960cf06a63fe51923e86",
 	"edit_category":       "cee720faadcec58289b707ad30af623d2ee66c1ce23a732965463250d7ff41c5",
-	"edit_feed":           "992e315c244da588d5e9e6912d12d933534c2a86e8e771e7dbd5908564abf616",
+	"edit_feed":           "1a8e342e4fac80e8b9c73537c7fe8aaf7f9e3e7af22f411927010897dd37e9c3",
 	"edit_user":           "7373e09f805e6c017167001519b9feb04226be6c81c2875cbacd5ce94f2c24bf",
 	"entry":               "c838ae7f19d775d473ee92c4999eb28a5063869411c834d26a3f4b686ce88dbf",
 	"feed_entries":        "76e7e32cdd6552304e38931459fe12cefdb5354f65a7ac3bbed52a2979896d3e",

+ 3 - 3
ui/static/js.go

@@ -56,8 +56,8 @@ static saveEntry(element){if(element.dataset.completed){return;}
 element.innerHTML=element.dataset.labelLoading;let request=new RequestBuilder(element.dataset.saveUrl);request.withCallback(()=>{element.innerHTML=element.dataset.labelDone;element.dataset.completed=true;});request.execute();}
 static fetchOriginalContent(element){if(element.dataset.completed){return;}
 element.innerHTML=element.dataset.labelLoading;let request=new RequestBuilder(element.dataset.fetchContentUrl);request.withCallback((response)=>{element.innerHTML=element.dataset.labelDone;element.dataset.completed=true;response.json().then((data)=>{if(data.hasOwnProperty("content")){document.querySelector(".entry-content").innerHTML=data.content;}});});request.execute();}}
-class ConfirmHandler{remove(url){let request=new RequestBuilder(url);request.withCallback(()=>window.location.reload());request.execute();}
-handle(event){let questionElement=document.createElement("span");let linkElement=event.target;let containerElement=linkElement.parentNode;linkElement.style.display="none";let yesElement=document.createElement("a");yesElement.href="#";yesElement.appendChild(document.createTextNode(linkElement.dataset.labelYes));yesElement.onclick=(event)=>{event.preventDefault();let loadingElement=document.createElement("span");loadingElement.className="loading";loadingElement.appendChild(document.createTextNode(linkElement.dataset.labelLoading));questionElement.remove();containerElement.appendChild(loadingElement);this.remove(linkElement.dataset.url);};let noElement=document.createElement("a");noElement.href="#";noElement.appendChild(document.createTextNode(linkElement.dataset.labelNo));noElement.onclick=(event)=>{event.preventDefault();linkElement.style.display="inline";questionElement.remove();};questionElement.className="confirm";questionElement.appendChild(document.createTextNode(linkElement.dataset.labelQuestion+" "));questionElement.appendChild(yesElement);questionElement.appendChild(document.createTextNode(", "));questionElement.appendChild(noElement);containerElement.appendChild(questionElement);}}
+class ConfirmHandler{executeRequest(url,redirectURL){let request=new RequestBuilder(url);request.withCallback(()=>{if(redirectURL){window.location.href=redirectURL;}else{window.location.reload();}});request.execute();}
+handle(event){let questionElement=document.createElement("span");let linkElement=event.target;let containerElement=linkElement.parentNode;linkElement.style.display="none";let yesElement=document.createElement("a");yesElement.href="#";yesElement.appendChild(document.createTextNode(linkElement.dataset.labelYes));yesElement.onclick=(event)=>{event.preventDefault();let loadingElement=document.createElement("span");loadingElement.className="loading";loadingElement.appendChild(document.createTextNode(linkElement.dataset.labelLoading));questionElement.remove();containerElement.appendChild(loadingElement);this.executeRequest(linkElement.dataset.url,linkElement.dataset.redirectUrl);};let noElement=document.createElement("a");noElement.href="#";noElement.appendChild(document.createTextNode(linkElement.dataset.labelNo));noElement.onclick=(event)=>{event.preventDefault();linkElement.style.display="inline";questionElement.remove();};questionElement.className="confirm";questionElement.appendChild(document.createTextNode(linkElement.dataset.labelQuestion+" "));questionElement.appendChild(yesElement);questionElement.appendChild(document.createTextNode(", "));questionElement.appendChild(noElement);containerElement.appendChild(questionElement);}}
 class MenuHandler{clickMenuListItem(event){let element=event.target;if(element.tagName==="A"){window.location.href=element.getAttribute("href");}else{window.location.href=element.querySelector("a").getAttribute("href");}}
 toggleMainMenu(){let menu=document.querySelector(".header nav ul");if(DomHelper.isVisible(menu)){menu.style.display="none";}else{menu.style.display="block";}
 let searchElement=document.querySelector(".header .search");if(DomHelper.isVisible(searchElement)){searchElement.style.display="none";}else{searchElement.style.display="block";}}}
@@ -97,6 +97,6 @@ if("serviceWorker"in navigator){let scriptElement=document.getElementById("servi
 }
 
 var JavascriptsChecksums = map[string]string{
-	"app": "438cad66af283a59cee674615c851ca105d22be5c92224351574b82716cf5cee",
+	"app": "4c73b3157f06d6b6689daaa8d0ecb7ea4e12945fff16d28bdf6da02ec4aca72c",
 	"sw":  "55fffa223919cc18572788fb9c62fccf92166c0eb5d3a1d6f91c31f24d020be9",
 }

+ 1 - 0
ui/static/js/bootstrap.js

@@ -58,6 +58,7 @@ document.addEventListener("DOMContentLoaded", function() {
     });
 
     mouseHandler.onClick("a[data-on-click=markPageAsRead]", () => navHandler.markPageAsRead());
+
     mouseHandler.onClick("a[data-confirm]", (event) => {
         (new ConfirmHandler()).handle(event);
     });

+ 11 - 3
ui/static/js/confirm_handler.js

@@ -1,7 +1,15 @@
 class ConfirmHandler {
-    remove(url) {
+    executeRequest(url, redirectURL) {
         let request = new RequestBuilder(url);
-        request.withCallback(() => window.location.reload());
+
+        request.withCallback(() => {
+            if (redirectURL) {
+                window.location.href = redirectURL;
+            } else {
+                window.location.reload();
+            }
+        });
+
         request.execute();
     }
 
@@ -24,7 +32,7 @@ class ConfirmHandler {
             questionElement.remove();
             containerElement.appendChild(loadingElement);
 
-            this.remove(linkElement.dataset.url);
+            this.executeRequest(linkElement.dataset.url, linkElement.dataset.redirectUrl);
         };
 
         let noElement = document.createElement("a");