mirror of
https://git.joinplu.me/Plume/Plume.git
synced 2024-11-22 11:31:01 +00:00
Allow updating of custom_domain
This commit is contained in:
parent
d242e6df11
commit
3c4abcff81
5 changed files with 22 additions and 6 deletions
|
@ -25,7 +25,6 @@ tantivy = "0.10.1"
|
||||||
url = "2.1"
|
url = "2.1"
|
||||||
webfinger = "0.4.1"
|
webfinger = "0.4.1"
|
||||||
whatlang = "0.7.1"
|
whatlang = "0.7.1"
|
||||||
shrinkwraprs = "0.2.1"
|
|
||||||
diesel-derive-newtype = "0.1.2"
|
diesel-derive-newtype = "0.1.2"
|
||||||
|
|
||||||
[dependencies.chrono]
|
[dependencies.chrono]
|
||||||
|
|
|
@ -26,14 +26,16 @@ use posts::Post;
|
||||||
use safe_string::SafeString;
|
use safe_string::SafeString;
|
||||||
use schema::blogs;
|
use schema::blogs;
|
||||||
use search::Searcher;
|
use search::Searcher;
|
||||||
|
use std::default::Default;
|
||||||
use std::fmt::{self, Display};
|
use std::fmt::{self, Display};
|
||||||
|
use std::ops::Deref;
|
||||||
use std::sync::RwLock;
|
use std::sync::RwLock;
|
||||||
use users::User;
|
use users::User;
|
||||||
use {Connection, Error, PlumeRocket, Result};
|
use {Connection, Error, PlumeRocket, Result};
|
||||||
|
|
||||||
pub type CustomGroup = CustomObject<ApSignature, Group>;
|
pub type CustomGroup = CustomObject<ApSignature, Group>;
|
||||||
|
|
||||||
#[derive(Clone, Debug, PartialEq, DieselNewType, Shrinkwrap)]
|
#[derive(Clone, Debug, PartialEq, DieselNewType)]
|
||||||
pub struct Host(String);
|
pub struct Host(String);
|
||||||
|
|
||||||
impl Host {
|
impl Host {
|
||||||
|
@ -42,6 +44,13 @@ impl Host {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
impl Deref for Host {
|
||||||
|
type Target = str;
|
||||||
|
fn deref(&self) -> &str {
|
||||||
|
&self.0
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
impl Display for Host {
|
impl Display for Host {
|
||||||
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
|
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
|
||||||
write!(f, "{}", self.0)
|
write!(f, "{}", self.0)
|
||||||
|
|
|
@ -33,8 +33,6 @@ extern crate serde_derive;
|
||||||
#[macro_use]
|
#[macro_use]
|
||||||
extern crate serde_json;
|
extern crate serde_json;
|
||||||
#[macro_use]
|
#[macro_use]
|
||||||
extern crate shrinkwraprs;
|
|
||||||
#[macro_use]
|
|
||||||
extern crate tantivy;
|
extern crate tantivy;
|
||||||
extern crate url;
|
extern crate url;
|
||||||
extern crate webfinger;
|
extern crate webfinger;
|
||||||
|
|
|
@ -333,7 +333,7 @@ pub struct EditForm {
|
||||||
pub summary: String,
|
pub summary: String,
|
||||||
pub icon: Option<i32>,
|
pub icon: Option<i32>,
|
||||||
pub banner: Option<i32>,
|
pub banner: Option<i32>,
|
||||||
pub custom_domain: Option<Host>,
|
pub custom_domain: String,
|
||||||
}
|
}
|
||||||
|
|
||||||
#[get("/~/<name>/edit")]
|
#[get("/~/<name>/edit")]
|
||||||
|
@ -351,6 +351,10 @@ pub fn edit(name: String, rockets: PlumeRocket) -> Result<Ructe, ErrorPage> {
|
||||||
.clone()
|
.clone()
|
||||||
.expect("blogs::edit: User was None while it shouldn't");
|
.expect("blogs::edit: User was None while it shouldn't");
|
||||||
let medias = Media::for_user(conn, user.id).expect("Couldn't list media");
|
let medias = Media::for_user(conn, user.id).expect("Couldn't list media");
|
||||||
|
let custom_domain = match blog.custom_domain {
|
||||||
|
Some(ref c) => c.to_string(),
|
||||||
|
_ => String::from(""),
|
||||||
|
};
|
||||||
Ok(render!(blogs::edit(
|
Ok(render!(blogs::edit(
|
||||||
&rockets.to_context(),
|
&rockets.to_context(),
|
||||||
&blog,
|
&blog,
|
||||||
|
@ -360,7 +364,7 @@ pub fn edit(name: String, rockets: PlumeRocket) -> Result<Ructe, ErrorPage> {
|
||||||
summary: blog.summary.clone(),
|
summary: blog.summary.clone(),
|
||||||
icon: blog.icon_id,
|
icon: blog.icon_id,
|
||||||
banner: blog.banner_id,
|
banner: blog.banner_id,
|
||||||
custom_domain: blog.custom_domain.clone(),
|
custom_domain: custom_domain,
|
||||||
},
|
},
|
||||||
ValidationErrors::default()
|
ValidationErrors::default()
|
||||||
)))
|
)))
|
||||||
|
@ -472,6 +476,10 @@ pub fn update(
|
||||||
);
|
);
|
||||||
blog.icon_id = form.icon;
|
blog.icon_id = form.icon;
|
||||||
blog.banner_id = form.banner;
|
blog.banner_id = form.banner;
|
||||||
|
if !form.custom_domain.is_empty() {
|
||||||
|
blog.custom_domain = Some(Host::new(form.custom_domain.clone()))
|
||||||
|
}
|
||||||
|
|
||||||
blog.save_changes::<Blog>(&*conn)
|
blog.save_changes::<Blog>(&*conn)
|
||||||
.expect("Couldn't save blog changes");
|
.expect("Couldn't save blog changes");
|
||||||
Ok(Flash::success(
|
Ok(Flash::success(
|
||||||
|
|
|
@ -23,6 +23,8 @@
|
||||||
<label for="summary">@i18n!(ctx.1, "Description")<small>@i18n!(ctx.1, "Markdown syntax is supported")</small></label>
|
<label for="summary">@i18n!(ctx.1, "Description")<small>@i18n!(ctx.1, "Markdown syntax is supported")</small></label>
|
||||||
<textarea id="summary" name="summary" rows="20">@form.summary</textarea>
|
<textarea id="summary" name="summary" rows="20">@form.summary</textarea>
|
||||||
|
|
||||||
|
@input!(ctx.1, custom_domain (optional text), "Custom Domain", form, errors, "")
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
@i18n!(ctx.1, "You can upload images to your gallery, to use them as blog icons, or banners.")
|
@i18n!(ctx.1, "You can upload images to your gallery, to use them as blog icons, or banners.")
|
||||||
<a href="@uri!(medias::new)">@i18n!(ctx.1, "Upload images")</a>
|
<a href="@uri!(medias::new)">@i18n!(ctx.1, "Upload images")</a>
|
||||||
|
|
Loading…
Reference in a new issue