Save config, update index on save of Github, Notion config in web app

Reduce user confusion by joining config update with index updation for
each content type.

So only a single click required to configure any content type instead
of two clicks on two separate pages
This commit is contained in:
Debanjum Singh Solanky
2023-11-11 00:33:49 -08:00
parent c4364b9100
commit b34d4fa741
3 changed files with 54 additions and 23 deletions

View File

@@ -124,6 +124,7 @@
return;
}
// Save Github config on server
const csrfToken = document.cookie.split('; ').find(row => row.startsWith('csrftoken'))?.split('=')[1];
fetch('/api/config/data/content-source/github', {
method: 'POST',
@@ -137,15 +138,26 @@
})
})
.then(response => response.json())
.then(data => { data["status"] === "ok" ? data : Promise.reject(data) })
.catch(error => {
document.getElementById("success").innerHTML = "⚠️ Failed to update settings";
document.getElementById("success").style.display = "block";
return;
});
// Index Github content on server
fetch('/api/update?t=github')
.then(response => response.json())
.then(data => { data["status"] == "ok" ? data : Promise.reject(data) })
.then(data => {
if (data["status"] == "ok") {
document.getElementById("success").innerHTML = "✅ Successfully updated. Go to your <a href='/config'>settings page</a> to complete setup.";
document.getElementById("success").style.display = "block";
} else {
document.getElementById("success").innerHTML = "⚠️ Failed to update settings.";
document.getElementById("success").style.display = "block";
}
document.getElementById("success").innerHTML = "✅ Successfully updated";
document.getElementById("success").style.display = "block";
})
.catch(error => {
document.getElementById("success").innerHTML = "⚠️ Failed to update settings";
document.getElementById("success").style.display = "block";
});
});
</script>
{% endblock %}

View File

@@ -41,6 +41,7 @@
return;
}
// Save Notion config on server
const csrfToken = document.cookie.split('; ').find(row => row.startsWith('csrftoken'))?.split('=')[1];
fetch('/api/config/data/content-source/notion', {
method: 'POST',
@@ -53,15 +54,25 @@
})
})
.then(response => response.json())
.then(data => { data["status"] === "ok" ? data : Promise.reject(data) })
.catch(error => {
document.getElementById("success").innerHTML = "⚠️ Failed to update settings";
document.getElementById("success").style.display = "block";
return;
});
// Index Notion content on server
fetch('/api/update?t=notion')
.then(response => response.json())
.then(data => { data["status"] == "ok" ? data : Promise.reject(data) })
.then(data => {
if (data["status"] == "ok") {
document.getElementById("success").innerHTML = "✅ Successfully updated. Go to your <a href='/config'>settings page</a> to complete setup.";
document.getElementById("success").style.display = "block";
} else {
document.getElementById("success").innerHTML = "⚠️ Failed to update settings.";
document.getElementById("success").style.display = "block";
}
document.getElementById("success").innerHTML = "✅ Successfully updated";
document.getElementById("success").style.display = "block";
})
.catch(error => {
document.getElementById("success").innerHTML = "⚠️ Failed to update settings";
document.getElementById("success").style.display = "block";
});
});
</script>
{% endblock %}

View File

@@ -177,11 +177,15 @@ async def set_content_config_github_data(
user = request.user.object
await adapters.set_user_github_config(
user=user,
pat_token=updated_config.pat_token,
repos=updated_config.repos,
)
try:
await adapters.set_user_github_config(
user=user,
pat_token=updated_config.pat_token,
repos=updated_config.repos,
)
except Exception as e:
logger.error(e, exc_info=True)
raise HTTPException(status_code=500, detail="Failed to set Github config")
update_telemetry_state(
request=request,
@@ -205,10 +209,14 @@ async def set_content_config_notion_data(
user = request.user.object
await adapters.set_notion_config(
user=user,
token=updated_config.token,
)
try:
await adapters.set_notion_config(
user=user,
token=updated_config.token,
)
except Exception as e:
logger.error(e, exc_info=True)
raise HTTPException(status_code=500, detail="Failed to set Github config")
update_telemetry_state(
request=request,