diff --git a/Makefile b/Makefile index cccceea6..fbdcb10a 100644 --- a/Makefile +++ b/Makefile @@ -1,7 +1,7 @@ VERSION=1.1 CONFIG=Debug -LDYDESTDIR=build/web/$(CONFIG) +LDYDESTDIR=dist/web/$(CONFIG) COPYUNCHANGED="false" HOST_rsync_yavsc=lua.pschneider.fr @@ -37,7 +37,7 @@ rsync_% : DESTDIR = $(DESTDIR_$@) rsync_% : deploy echo "!Deploying to $(HOST)!" - $(RSYNCCMD) build/web/$(CONFIG)/ root@$(HOST):$(DESTDIR) + $(RSYNCCMD) dist/web/$(CONFIG)/ root@$(HOST):$(DESTDIR) build: xbuild /p:Configuration=$(CONFIG) /t:Build Yavsc.sln diff --git a/web/Admin/DataManager.cs b/web/Admin/DataManager.cs index fb994200..33b8a71d 100644 --- a/web/Admin/DataManager.cs +++ b/web/Admin/DataManager.cs @@ -40,7 +40,7 @@ namespace Yavsc.Admin */ Exec ("pg_dump", string.Format ( "-f {0} -Ft -h {1} -U {2} -p {3} {4}", - fileName, da.Host, da.Dbuser, da.Port, da.Dbname ),e); + fileName, da.Host, da.DbUser, da.Port, da.DbName ),e); return e; } @@ -74,7 +74,7 @@ namespace Yavsc.Admin var t = new TaskOutput (); Exec ("pg_restore", (dataOnly?"-a ":"")+string.Format ( "-1 -Ft -O -h {0} -U {1} -p {2} -d {3} {4}", - da.Host, da.Dbuser, da.Port, da.Dbname, fileName ),t); + da.Host, da.DbUser, da.Port, da.DbName, fileName ),t); /* Exec ("pg_restore", (dataOnly?"-a ":"")+string.Format ( "-1 -w -Fd -O -h {0} -U {1} -p {2} -d {3} {4}", @@ -149,7 +149,7 @@ namespace Yavsc.Admin var t = new TaskOutput (); Exec ("pg_restore", string.Format ( "-a -w -Fd -O -h {0} -U {1} -p {2} -d {3} {4}", - da.Host, da.Dbuser, da.Port, da.Dbname, fileName ),t); + da.Host, da.DbUser, da.Port, da.DbName, fileName ),t); return t; } } diff --git a/web/Admin/Export.cs b/web/Admin/Export.cs index 6b3256de..e2120f43 100644 --- a/web/Admin/Export.cs +++ b/web/Admin/Export.cs @@ -1,7 +1,7 @@ using System; using System.ComponentModel; -namespace Yavsc.Admin +namespace Yavsc.Model.Admin { /// /// Export. @@ -9,7 +9,7 @@ namespace Yavsc.Admin public class Export: TaskOutput { /// - /// Initializes a new instance of the class. + /// Initializes a new instance of the class. /// public Export () { diff --git a/web/ApiControllers/BlogsController.cs b/web/ApiControllers/BlogsController.cs index d3697a11..6b60ec28 100644 --- a/web/ApiControllers/BlogsController.cs +++ b/web/ApiControllers/BlogsController.cs @@ -146,18 +146,30 @@ namespace Yavsc.ApiControllers try { // Read the form data. - await Request.Content.ReadAsMultipartAsync(provider) ; + IEnumerable data = await Request.Content.ReadAsMultipartAsync(provider) ; var invalidChars = Path.GetInvalidFileNameChars(); - List bodies = new List(); - - foreach (string fkey in provider.BodyPartFileNames.Keys) + List parts = new List(); + List text = new List(); + + // filter files on their mime type + foreach ( var httpAudioContent in data + ) { + string [] mimetype = httpAudioContent.Headers.ContentType.MediaType.Split('/'); + switch (mimetype[0]) { + case "application": break; + case "text": break; + case "image": break; + case "audio": break; + case "video": break; + } + } + + foreach (string fkey in text) { string filename = provider.BodyPartFileNames[fkey]; - + string nicename=fkey; - if (fkey.StartsWith("\"") && fkey.EndsWith("\"") && fkey.Length > 2) - nicename = fkey.Substring(1,fkey.Length-2); var filtered = new string (nicename.Where( x=> !invalidChars.Contains(x)).ToArray()); FileInfo fi = new FileInfo(filtered); @@ -165,6 +177,10 @@ namespace Yavsc.ApiControllers FileInfo fp = new FileInfo (Path.Combine(root,filename)); if (fi.Exists) fi.Delete(); fp.MoveTo(fi.FullName); + // Get the mime type + + + using (Process p = new Process ()) { p.StartInfo.WorkingDirectory = root; p.StartInfo = new ProcessStartInfo (); @@ -187,14 +203,14 @@ namespace Yavsc.ApiControllers ); } } - bodies.Add(fo.OpenText().ReadToEnd()); + parts.Add(fo.OpenText().ReadToEnd()); fi.Delete(); fo.Delete(); } - return Request.CreateResponse(HttpStatusCode.OK,string.Join("---\n",bodies),new SimpleFormatter("text/plain")); + return Request.CreateResponse(HttpStatusCode.OK,string.Join("---\n",parts),new SimpleFormatter("text/plain")); } catch (System.Exception e) diff --git a/web/Controllers/AccountController.cs b/web/Controllers/AccountController.cs index 84135b87..0e82cee9 100644 --- a/web/Controllers/AccountController.cs +++ b/web/Controllers/AccountController.cs @@ -33,21 +33,25 @@ namespace Yavsc.Controllers /// /// Avatar the specified user. /// - /// User. + /// User. [AcceptVerbs (HttpVerbs.Get)] - public ActionResult Avatar (string user) + public ActionResult Avatar (string id) { - ProfileBase pr = ProfileBase.Create (user); - string avpath = (string ) pr.GetPropertyValue("Avatar") ; + if (id == null) + return new EmptyResult (); + + ProfileBase pr = ProfileBase.Create (id); + var avpath = pr.GetPropertyValue("Avatar"); if (avpath == null) { FileInfo fia = new FileInfo (Server.MapPath (defaultAvatar)); return File (fia.OpenRead (), defaultAvatarMimetype); } - if (avpath.StartsWith ("~/")) { - avpath = Server.MapPath (avpath); + string avatarLocation = avpath as string; + if (avatarLocation.StartsWith ("~/")) { + avatarLocation = Server.MapPath (avatarLocation); } - WebRequest wr = WebRequest.Create (avpath); + WebRequest wr = WebRequest.Create (avatarLocation); FileContentResult res; using (WebResponse resp = wr.GetResponse ()) { using (Stream str = resp.GetResponseStream ()) { @@ -303,6 +307,8 @@ namespace Yavsc.Controllers // ASSERT("Membership.GetUser ().UserName is made of simple characters, no slash nor backslash" string logdu = Membership.GetUser ().UserName; + if (string.IsNullOrWhiteSpace (id)) + id = logdu; ViewData ["UserName"] = id; bool editsMyName = (string.Compare(id,logdu)==0); if (!editsMyName) @@ -310,15 +316,17 @@ namespace Yavsc.Controllers if (!Roles.IsUserInRole ("FrontOffice")) throw new UnauthorizedAccessException ("Your are not authorized to modify this profile"); - if (AvatarFile != null) { // if said valid, move as avatar file // else invalidate the model if (AvatarFile.ContentType == "image/png") { string avdir = Server.MapPath (AvatarDir); + var di = new DirectoryInfo (avdir); + if (!di.Exists) + di.Create (); string avpath = Path.Combine (avdir, id + ".png"); AvatarFile.SaveAs (avpath); - model.avatar = Request.Url.Scheme + "://" + Request.Url.Authority + AvatarDir.Substring (1) + "/" + id + ".png"; + model.avatar = Url.Content( AvatarDir + "/" + id + ".png"); } else ModelState.AddModelError ("Avatar", string.Format ("Image type {0} is not supported (suported formats : {1})", @@ -336,7 +344,9 @@ namespace Yavsc.Controllers if (AvatarFile != null) { prf.SetPropertyValue ("Avatar", model.avatar); } else { - model.avatar = (string) prf.GetPropertyValue ("Avatar"); + var av = prf.GetPropertyValue ("Avatar"); + if (av != null) + model.avatar = av as string; } prf.SetPropertyValue ("Address", model.Address); prf.SetPropertyValue ("CityAndState", model.CityAndState); diff --git a/web/Controllers/AdminController.cs b/web/Controllers/AdminController.cs index e6a21af0..31c2d120 100644 --- a/web/Controllers/AdminController.cs +++ b/web/Controllers/AdminController.cs @@ -42,6 +42,10 @@ namespace Yavsc.Controllers datac.BackupPrefix = Server.MapPath (datac.BackupPrefix); DataManager mgr = new DataManager (datac); TaskOutput tcdb = mgr.CreateDb (); + ViewData ["DbName"] = datac.DbName; + ViewData ["DbUser"] = datac.DbUser; + ViewData ["Host"] = datac.Host; + ViewData ["Port"] = datac.Port; return View ("Created", tcdb); } } diff --git a/web/Helpers/YavscHelpers.cs b/web/Helpers/YavscHelpers.cs index 236e46b3..aa5d4053 100644 --- a/web/Helpers/YavscHelpers.cs +++ b/web/Helpers/YavscHelpers.cs @@ -150,7 +150,7 @@ namespace Yavsc.Helpers /// The URL. /// Helper. /// Username. - public static string AvatarUrl (this System.Web.WebPages.Html.HtmlHelper helper, string username) { + public static string AvatarUrl (this System.Web.Mvc.UrlHelper helper, string username) { ProfileBase pr = ProfileBase.Create (username); var a = pr.GetPropertyValue("Avatar") ; if (a == null || a is DBNull) return "/avatars/" + helper.Encode(username)+".png"; diff --git a/web/Views/Blogs/ChooseMedia.aspx b/web/Views/Blogs/ChooseMedia.aspx new file mode 100644 index 00000000..39dcfca3 --- /dev/null +++ b/web/Views/Blogs/ChooseMedia.aspx @@ -0,0 +1,14 @@ +<%@ Page Language="C#" MasterPageFile="~/Models/App.master" Inherits="System.Web.Mvc.ViewPage" %> + + + + + + + + + +kjgftkgt + + + diff --git a/web/fonts/fontawesome-webfont.woff2 b/web/fonts/fontawesome-webfont.woff2 new file mode 100644 index 00000000..5560193c Binary files /dev/null and b/web/fonts/fontawesome-webfont.woff2 differ