diff --git a/Bremen_ESG.csproj b/Bremen_ESG.csproj
index 32ab90d..f37e981 100644
--- a/Bremen_ESG.csproj
+++ b/Bremen_ESG.csproj
@@ -19,6 +19,7 @@
+
diff --git a/Controllers/ApiController.cs b/Controllers/ApiController.cs
index ad1175a..522539b 100644
--- a/Controllers/ApiController.cs
+++ b/Controllers/ApiController.cs
@@ -49,12 +49,34 @@ namespace Bremen_ESG.Controllers
private readonly IHttpContextAccessor _httpContextAccessor;
private readonly IWebHostEnvironment _hostingEnvironment;
+ DbConn dbConn = new DbConn();
+ SqlConnection conn = new SqlConnection(GlobalClass.appsettings("ConnectionStrings:SQLConnectionString"));
+
public ApiController(IHttpContextAccessor httpContextAccessor, IWebHostEnvironment webHostEnvironment)
{
this._httpContextAccessor = httpContextAccessor;
this._hostingEnvironment = webHostEnvironment;
}
+
+ [Route("news_list")]
+ public async Task News_List(IFormCollection obj) {
+ newResult ret = new newResult();
+
+ List newsList = conn.Query("select * from news order by news_sn desc").ToList();
+
+ ret.news_num = newsList.Count;
+
+ foreach (news objNew in newsList)
+ {
+ newsDetial objDetial = new newsDetial(objNew);
+ ret.news_list.Add(objDetial);
+ }
+
+ ret.ret = "yes";
+ return Content(JsonConvert.SerializeObject(ret), "application/json;charset=utf-8");
+ }
+
[HttpPost]
[Route("esg_message")]
public async Task Esg_Message(IFormCollection obj) {
@@ -116,6 +138,15 @@ namespace Bremen_ESG.Controllers
return Content(JsonConvert.SerializeObject(ret), "application/json;charset=utf-8");
}
+ public class newResult
+ {
+ public string ret = "no";
+ public string err_code = "0000";
+ public string message = "";
+ public int news_num = 0;
+ public List news_list = new List();
+ }
+
public class result
{
public string ret = "no";
diff --git a/Controllers/BackEndApiController.cs b/Controllers/BackEndApiController.cs
index ba227a4..2447120 100644
--- a/Controllers/BackEndApiController.cs
+++ b/Controllers/BackEndApiController.cs
@@ -21,6 +21,252 @@ namespace Bremen_ESG.Controllers
this._httpContextAccessor = httpContextAccessor;
}
+ [Route("newsAddEditDelGet")]
+ public ActionResult NewsAddEditDelGet(IFormCollection obj) {
+ newDetialResult ret = new newDetialResult();
+
+ authToken token = new authToken(this._httpContextAccessor);
+
+ if (token.user_isLogin == false)
+ {
+ HttpContext.Response.Cookies.Delete("token_key");
+ ret.ret = "no";
+ ret.err_code = "9999";
+ ret.message = "非登入狀態!";
+ return Content(JsonConvert.SerializeObject(ret), "application/json;charset=utf-8");
+ }
+
+ DbConn dbConn = new DbConn();
+ SqlConnection conn = dbConn.sqlConnection();
+
+ string news_uid = obj["news_uid"].ToString();
+ string news_title = obj["news_title"].ToString();
+ string news_subtitle = obj["news_subtitle"].ToString();
+ string news_date = obj["news_date"].ToString();
+ string news_mainPhoto = obj["news_mainPhoto"].ToString();
+ string news_content = obj["news_content"].ToString();
+ string TagsStr = obj["news_tags"].ToString().TrimEnd(',');
+ string photoArrayJson = obj["photoArrayJson"].ToString().TrimEnd(',');
+
+ string method = obj["method"].ToString();
+
+
+
+ if (method == "get")
+ {
+ news newObj = conn.QueryFirstOrDefault("select * from news where news_uid = @news_uid", new { news_uid = news_uid });
+
+ if (newObj == null) {
+ ret.ret = "no";
+ ret.err_code = "1009";
+ ret.message = "無此news_uid資料!";
+ return Content(JsonConvert.SerializeObject(ret), "application/json;charset=utf-8");
+ }
+
+ ret.data = new newsDetial(newObj);
+ ret.ret = "yes";
+ return Content(JsonConvert.SerializeObject(ret), "application/json;charset=utf-8");
+ }
+
+ if (method == "")
+ {
+ ret.ret = "no";
+ ret.err_code = "0001";
+ ret.message = "無method參數!";
+ return Content(JsonConvert.SerializeObject(ret), "application/json;charset=utf-8");
+ }
+
+ if (method == "del") {
+ conn.Execute("delete photo where news_uid = @news_uid", new { news_uid = news_uid });
+ conn.Execute("delete tag where news_uid = @news_uid", new { news_uid = news_uid });
+ conn.Execute("delete news where news_uid = @news_uid", new { news_uid = news_uid });
+
+ ret.ret = "yes";
+
+ return Content(JsonConvert.SerializeObject(ret), "application/json;charset=utf-8");
+ }
+
+ string err_msg = "";
+
+ if (news_title == "")
+ {
+ err_msg += "無標題!\n";
+ }
+
+ if (news_subtitle == "")
+ {
+ err_msg += "無副標題\n";
+ }
+
+ if (news_content == "")
+ {
+ err_msg += "無內文\n";
+ }
+
+ if (news_date == "")
+ {
+ err_msg += "無發布日期\n";
+ }
+
+ if (err_msg != "")
+ {
+ ret.ret = "no";
+ ret.err_code = "0001";
+ ret.message = err_msg;
+ return Content(JsonConvert.SerializeObject(ret), "application/json;charset=utf-8");
+ }
+
+ if (method == "edit") {
+ if (news_uid == "") {
+ ret.ret = "no";
+ ret.err_code = "0002";
+ ret.message = "無 news_uid";
+ return Content(JsonConvert.SerializeObject(ret), "application/json;charset=utf-8");
+ }
+
+ news objNew = conn.QueryFirstOrDefault("select * from news where news_uid = @news_uid", new { news_uid = news_uid });
+
+ if (objNew == null) {
+ ret.ret = "no";
+ ret.err_code = "0003";
+ ret.message = "無此 news_uid資料";
+ return Content(JsonConvert.SerializeObject(ret), "application/json;charset=utf-8");
+ }
+
+ dynamic photoJsonObj;
+
+ try
+ {
+ photoJsonObj = JsonConvert.DeserializeObject(photoArrayJson);
+ }
+ catch (Exception ex)
+ {
+ ret.ret = "no";
+ ret.err_code = "0003";
+ ret.message = "photo json error" + ex.Message;
+ return Content(JsonConvert.SerializeObject(ret), "application/json;charset=utf-8");
+ }
+
+ conn.Execute("delete tag where news_uid = @news_uid", new { news_uid = news_uid });
+ conn.Execute("delete photo where news_uid = @news_uid", new { news_uid = news_uid });
+
+ string[] newsTagArr = TagsStr.Split(",");
+ List newsTags = new List();
+ foreach (string tag in newsTagArr)
+ {
+ tags tagData = conn.QueryFirstOrDefault("select * from tags where tag_uid = @tag_uid", new { tag_uid = tag });
+
+ if (tagData != null)
+ {
+ tag newTag = new tag();
+ newTag.tag_uid = tagData.tag_uid;
+ newTag.news_uid = news_uid;
+ newTag.tag_text = tagData.tag_text;
+ newsTags.Add(newTag);
+ }
+ }
+
+ List photos = new List();
+
+ foreach (dynamic item in photoJsonObj)
+ {
+ photo photoObj = new photo();
+
+ photoObj.photo_uid = GlobalClass.CreateRandomCode(12);
+ photoObj.news_uid = news_uid;
+ photoObj.photo_title = item.photo_title;
+ photoObj.photo_path = item.photo_path;
+
+
+ photos.Add(photoObj);
+ }
+
+ objNew.news_title = news_title;
+ objNew.news_date = news_date;
+ objNew.news_subtitle = news_subtitle;
+ objNew.news_content = news_content;
+ objNew.news_mainPhoto = news_mainPhoto;
+ objNew.news_modifydate = DateTime.Now;
+
+ conn.Update(objNew);
+ conn.Insert(photos);
+ conn.Insert(newsTags);
+
+ ret.ret = "yes";
+ ret.data = new newsDetial(objNew);
+ return Content(JsonConvert.SerializeObject(ret), "application/json;charset=utf-8");
+ }
+
+ if (method == "add")
+ {
+ news_uid = "news_" + GlobalClass.CreateRandomCode(8);
+
+ string[] newsTagArr = TagsStr.Split(",");
+ List newsTags = new List();
+ foreach (string tag in newsTagArr)
+ {
+ tags tagData = conn.QueryFirstOrDefault("select * from tags where tag_uid = @tag_uid", new { tag_uid = tag });
+
+ if (tagData != null)
+ {
+ tag newTag = new tag();
+ newTag.tag_uid = tagData.tag_uid;
+ newTag.news_uid = news_uid;
+ newTag.tag_text = tagData.tag_text;
+ newsTags.Add(newTag);
+ }
+ }
+
+ dynamic photoJsonObj;
+
+ try
+ {
+ photoJsonObj = JsonConvert.DeserializeObject(photoArrayJson);
+ }
+ catch (Exception ex)
+ {
+ ret.ret = "no";
+ ret.err_code = "0003";
+ ret.message = "photo json error" + ex.Message;
+ return Content(JsonConvert.SerializeObject(ret), "application/json;charset=utf-8");
+ }
+
+ List photos = new List();
+
+ foreach (dynamic item in photoJsonObj)
+ {
+ photo photoObj = new photo();
+
+ photoObj.photo_uid = GlobalClass.CreateRandomCode(12);
+ photoObj.news_uid= news_uid;
+ photoObj.photo_title = item.photo_title;
+ photoObj.photo_path = item.photo_path;
+
+
+ photos.Add(photoObj);
+ }
+
+ news objNew = new news();
+
+ objNew.news_uid = news_uid;
+ objNew.news_title = news_title;
+ objNew.news_date = news_date;
+ objNew.news_subtitle = news_subtitle;
+ objNew.news_content = news_content;
+ objNew.news_mainPhoto = news_mainPhoto;
+
+ conn.Insert(objNew);
+ conn.Insert(photos);
+ conn.Insert(newsTags);
+
+ ret.ret = "yes";
+ ret.data = new newsDetial(objNew);
+ return Content(JsonConvert.SerializeObject(ret), "application/json;charset=utf-8");
+ }
+
+ return Content(JsonConvert.SerializeObject(ret), "application/json;charset=utf-8");
+ }
+
[Route("updateTags")]
public ActionResult UpdateTags(IFormCollection obj)
{
@@ -96,6 +342,84 @@ namespace Bremen_ESG.Controllers
return Content(JsonConvert.SerializeObject(ret), "application/json;charset=utf-8");
}
+ [Route("subPhotoUpload")]
+ [RequestFormLimits(MultipartBodyLengthLimit = int.MaxValue)]
+ [RequestSizeLimit(int.MaxValue)]
+ public ActionResult SubPhotoUpload([FromForm(Name = "subPhoto")] IFormFile file)
+ {
+ authToken token = new authToken(this._httpContextAccessor);
+ if (token.user_isLogin == false)
+ {
+ List files = new List();
+
+ errFile newFile = new errFile();
+ newFile.name = "";
+ newFile.size = 0;
+ newFile.error = "尚未登入";
+
+ files.Add(newFile);
+
+ fileResult obj = new fileResult();
+
+ obj.files = files;
+
+ return Content(JsonConvert.SerializeObject(files), "application/json;charset=utf-8");
+ }
+
+
+ string originFileName = file.FileName;
+ string newFileName = "subPhoto_" + GlobalClass.CreateRandomCode(8) + Path.GetExtension(originFileName);
+ string fullPath = Path.Combine(Directory.GetCurrentDirectory(), "wwwroot/upload/sub/" + newFileName);
+ try
+ {
+ using (var stream = new FileStream(fullPath, FileMode.Create))
+ {
+ file.CopyTo(stream);
+ }
+
+ List files = new List();
+
+ uploadFile newFile = new uploadFile();
+
+ newFile.name = originFileName;
+ newFile.url = "/upload/sub/" + newFileName;
+ newFile.size = file.Length;
+ newFile.thumbnailUrl = "/upload/sub/" + newFileName;
+ newFile.deleteUrl = "/upload/sub/" + newFileName;
+
+
+
+ files.Add(newFile);
+
+ fileResult obj = new fileResult();
+
+ obj.files = files;
+
+
+
+
+
+ return Content(JsonConvert.SerializeObject(obj), "application/json;charset=utf-8");
+ }
+ catch (Exception ex)
+ {
+ List files = new List();
+
+ errFile newFile = new errFile();
+ newFile.name = originFileName;
+ newFile.size = file.Length;
+ newFile.error = ex.Message;
+
+ files.Add(newFile);
+
+ fileResult obj = new fileResult();
+
+ obj.files = files;
+
+ return Content(JsonConvert.SerializeObject(files), "application/json;charset=utf-8");
+ }
+ }
+
[Route("mainPhotoUpload")]
[RequestFormLimits(MultipartBodyLengthLimit = int.MaxValue)]
[RequestSizeLimit(int.MaxValue)]
@@ -250,6 +574,14 @@ namespace Bremen_ESG.Controllers
}
+ public class newDetialResult
+ {
+ public string ret = "no";
+ public string err_code = "0000";
+ public string message = "";
+ public newsDetial data = new newsDetial();
+ }
+
public class fileResult
{
public object files = new object();
diff --git a/Models/newsDetial.cs b/Models/newsDetial.cs
new file mode 100644
index 0000000..7f17503
--- /dev/null
+++ b/Models/newsDetial.cs
@@ -0,0 +1,33 @@
+using Dapper;
+using Dapper.Contrib.Extensions;
+using NPOI.SS.Formula.Functions;
+using System.Data.SqlClient;
+using static DbTableClass;
+
+public class newsDetial: news
+{
+ DbConn dbConn = new DbConn();
+ SqlConnection conn = new SqlConnection(GlobalClass.appsettings("ConnectionStrings:SQLConnectionString"));
+
+ public List tags = new List();
+ public List photos = new List();
+ public newsDetial() {
+
+ }
+
+ public newsDetial(news obj) {
+ Type newsType = obj.GetType();
+
+ foreach (var prop in newsType.GetProperties())
+ {
+ string propName = prop.Name;
+ var valueProperty = newsType.GetProperty(propName);
+ object propValue = valueProperty.GetValue(obj, null);
+
+ this.GetType().GetProperty(propName).SetValue(this, propValue);
+ }
+
+ tags = conn.Query("select * from tag where news_uid = @news_uid", new { news_uid = this.news_uid }).ToList();
+ photos = conn.Query("select * from photo where news_uid = @news_uid", new { news_uid = this.news_uid }).ToList();
+ }
+}
diff --git a/Views/BackEnd/NewsList.cshtml b/Views/BackEnd/NewsList.cshtml
index 7c71574..c8b3750 100644
--- a/Views/BackEnd/NewsList.cshtml
+++ b/Views/BackEnd/NewsList.cshtml
@@ -8,6 +8,7 @@
+
@@ -94,7 +95,7 @@
+
+
+
+
+
+
+
"].join("");this.$dialog=this.ui.dialog({title:this.lang.options.help,fade:this.options.dialogsFade,body:this.createShortcutList(),footer:e,callback:function(t){t.find(".modal-body,.note-modal-body").css({"max-height":300,overflow:"scroll"})}}).render().appendTo(t)}},{key:"destroy",value:function(){this.ui.hideDialog(this.$dialog),this.$dialog.remove()}},{key:"createShortcutList",value:function(){var t=this,e=this.options.keyMap[v.isMac?"mac":"pc"];return Object.keys(e).map((function(n){var o=e[n],r=i()('');return r.append(i()("").css({width:180,"margin-right":10})).append(i()("").html(t.context.memo("help."+o)||o)),r.html()})).join("")}},{key:"showHelpDialog",value:function(){var t=this;return i.a.Deferred((function(e){t.ui.onDialogShown(t.$dialog,(function(){t.context.triggerEvent("dialog.shown"),e.resolve()})),t.ui.showDialog(t.$dialog)})).promise()}},{key:"show",value:function(){var t=this;this.context.invoke("editor.saveRange"),this.showHelpDialog().then((function(){t.context.invoke("editor.restoreRange")}))}}])&&ke(e.prototype,n),o&&ke(e,o),t}();function Ce(t,e){for(var n=0;n0}},{key:"initialize",value:function(){var t=this;this.lastWordRange=null,this.matchingWord=null,this.$popover=this.ui.popover({className:"note-hint-popover",hideArrow:!0,direction:""}).render().appendTo(this.options.container),this.$popover.hide(),this.$content=this.$popover.find(".popover-content,.note-popover-content"),this.$content.on("click",".note-hint-item",(function(e){t.$content.find(".active").removeClass("active"),i()(e.currentTarget).addClass("active"),t.replace()})),this.$popover.on("mousedown",(function(t){t.preventDefault()}))}},{key:"destroy",value:function(){this.$popover.remove()}},{key:"selectItem",value:function(t){this.$content.find(".active").removeClass("active"),t.addClass("active"),this.$content[0].scrollTop=t[0].offsetTop-this.$content.innerHeight()/2}},{key:"moveDown",value:function(){var t=this.$content.find(".note-hint-item.active"),e=t.next();if(e.length)this.selectItem(e);else{var n=t.parent().next();n.length||(n=this.$content.find(".note-hint-group").first()),this.selectItem(n.find(".note-hint-item").first())}}},{key:"moveUp",value:function(){var t=this.$content.find(".note-hint-item.active"),e=t.prev();if(e.length)this.selectItem(e);else{var n=t.parent().prev();n.length||(n=this.$content.find(".note-hint-group").last()),this.selectItem(n.find(".note-hint-item").last())}}},{key:"replace",value:function(){var t=this.$content.find(".note-hint-item.active");if(t.length){var e=this.nodeFromItem(t);if(null!==this.matchingWord&&0===this.matchingWord.length)this.lastWordRange.so=this.lastWordRange.eo;else if(null!==this.matchingWord&&this.matchingWord.length>0&&!this.lastWordRange.isCollapsed()){var n=this.lastWordRange.eo-this.lastWordRange.so-this.matchingWord.length;n>0&&(this.lastWordRange.so+=n)}if(this.lastWordRange.insertNode(e),"next"===this.options.hintSelect){var o=document.createTextNode("");i()(e).after(o),kt.createFromNodeBefore(o).select()}else kt.createFromNodeAfter(e).select();this.lastWordRange=null,this.hide(),this.context.invoke("editor.focus")}}},{key:"nodeFromItem",value:function(t){var e=this.hints[t.data("index")],n=t.data("item"),o=e.content?e.content(n):n;return"string"==typeof o&&(o=ft.createText(o)),o}},{key:"createItemTemplates",value:function(t,e){var n=this.hints[t];return e.map((function(e){var o=i()('');return o.append(n.template?n.template(e):e+""),o.data({index:t,item:e}),o}))}},{key:"handleKeydown",value:function(t){this.$popover.is(":visible")&&(t.keyCode===Ct.code.ENTER?(t.preventDefault(),this.replace()):t.keyCode===Ct.code.UP?(t.preventDefault(),this.moveUp()):t.keyCode===Ct.code.DOWN&&(t.preventDefault(),this.moveDown()))}},{key:"searchKeyword",value:function(t,e,n){var o=this.hints[t];if(o&&o.match.test(e)&&o.search){var i=o.match.exec(e);this.matchingWord=i[0],o.search(i[1],n)}else n()}},{key:"createGroup",value:function(t,e){var n=this,o=i()('');return this.searchKeyword(t,e,(function(e){(e=e||[]).length&&(o.html(n.createItemTemplates(t,e)),n.show())})),o}},{key:"handleKeyup",value:function(t){var e=this;if(!x.contains([Ct.code.ENTER,Ct.code.UP,Ct.code.DOWN],t.keyCode)){var n,o,r=this.context.invoke("editor.getLastRange");if("words"===this.options.hintMode){if(n=r.getWordsRange(r),o=n.toString(),this.hints.forEach((function(t){if(t.match.test(o))return n=r.getWordsMatchRange(t.match),!1})),!n)return void this.hide();o=n.toString()}else n=r.getWordRange(),o=n.toString();if(this.hints.length&&o){this.$content.empty();var a=b.rect2bnd(x.last(n.getClientRects())),s=i()(this.options.container).offset();a&&(a.top-=s.top,a.left-=s.left,this.$popover.hide(),this.lastWordRange=n,this.hints.forEach((function(t,n){t.match.test(o)&&e.createGroup(n,o).appendTo(e.$content)})),this.$content.find(".note-hint-item:first").addClass("active"),"top"===this.direction?this.$popover.css({left:a.left,top:a.top-this.$popover.outerHeight()-5}):this.$popover.css({left:a.left,top:a.top+a.height+5}))}else this.hide()}}},{key:"show",value:function(){this.$popover.show()}},{key:"hide",value:function(){this.$popover.hide()}}])&&Se(e.prototype,n),o&&Se(e,o),t}();i.a.summernote=i.a.extend(i.a.summernote,{version:"0.8.16",plugins:{},dom:ft,range:kt,lists:x,options:{langInfo:i.a.summernote.lang["en-US"],editing:!0,modules:{editor:Dt,clipboard:zt,dropzone:Ot,codeview:jt,statusbar:Kt,fullscreen:Vt,handle:Gt,hintPopover:Te,autoLink:Xt,autoSync:Jt,autoReplace:ee,placeholder:oe,buttons:re,toolbar:se,linkDialog:ce,linkPopover:de,imageDialog:fe,imagePopover:me,tablePopover:ge,videoDialog:ye,helpDialog:we,airPopover:xe},buttons:{},lang:"en-US",followingToolbar:!1,toolbarPosition:"top",otherStaticBar:"",toolbar:[["style",["style"]],["font",["bold","underline","clear"]],["fontname",["fontname"]],["color",["color"]],["para",["ul","ol","paragraph"]],["table",["table"]],["insert",["link","picture","video"]],["view",["fullscreen","codeview","help"]]],popatmouse:!0,popover:{image:[["resize",["resizeFull","resizeHalf","resizeQuarter","resizeNone"]],["float",["floatLeft","floatRight","floatNone"]],["remove",["removeMedia"]]],link:[["link",["linkDialogShow","unlink"]]],table:[["add",["addRowDown","addRowUp","addColLeft","addColRight"]],["delete",["deleteRow","deleteCol","deleteTable"]]],air:[["color",["color"]],["font",["bold","underline","clear"]],["para",["ul","paragraph"]],["table",["table"]],["insert",["link","picture"]],["view",["fullscreen","codeview"]]]},airMode:!1,overrideContextMenu:!1,width:null,height:null,linkTargetBlank:!0,useProtocol:!0,defaultProtocol:"http://",focus:!1,tabDisabled:!1,tabSize:4,styleWithCSS:!1,shortcuts:!0,textareaAutoSync:!0,tooltip:"auto",container:null,maxTextLength:0,blockquoteBreakingLevel:2,spellCheck:!0,disableGrammar:!1,placeholder:null,inheritPlaceholder:!1,recordEveryKeystroke:!1,historyLimit:200,hintMode:"word",hintSelect:"after",hintDirection:"bottom",styleTags:["p","blockquote","pre","h1","h2","h3","h4","h5","h6"],fontNames:["Arial","Arial Black","Comic Sans MS","Courier New","Helvetica Neue","Helvetica","Impact","Lucida Grande","Tahoma","Times New Roman","Verdana"],fontNamesIgnoreCheck:[],addDefaultFonts:!0,fontSizes:["8","9","10","11","12","14","18","24","36"],fontSizeUnits:["px","pt"],colors:[["#000000","#424242","#636363","#9C9C94","#CEC6CE","#EFEFEF","#F7F7F7","#FFFFFF"],["#FF0000","#FF9C00","#FFFF00","#00FF00","#00FFFF","#0000FF","#9C00FF","#FF00FF"],["#F7C6CE","#FFE7CE","#FFEFC6","#D6EFD6","#CEDEE7","#CEE7F7","#D6D6E7","#E7D6DE"],["#E79C9C","#FFC69C","#FFE79C","#B5D6A5","#A5C6CE","#9CC6EF","#B5A5D6","#D6A5BD"],["#E76363","#F7AD6B","#FFD663","#94BD7B","#73A5AD","#6BADDE","#8C7BC6","#C67BA5"],["#CE0000","#E79439","#EFC631","#6BA54A","#4A7B8C","#3984C6","#634AA5","#A54A7B"],["#9C0000","#B56308","#BD9400","#397B21","#104A5A","#085294","#311873","#731842"],["#630000","#7B3900","#846300","#295218","#083139","#003163","#21104A","#4A1031"]],colorsName:[["Black","Tundora","Dove Gray","Star Dust","Pale Slate","Gallery","Alabaster","White"],["Red","Orange Peel","Yellow","Green","Cyan","Blue","Electric Violet","Magenta"],["Azalea","Karry","Egg White","Zanah","Botticelli","Tropical Blue","Mischka","Twilight"],["Tonys Pink","Peach Orange","Cream Brulee","Sprout","Casper","Perano","Cold Purple","Careys Pink"],["Mandy","Rajah","Dandelion","Olivine","Gulf Stream","Viking","Blue Marguerite","Puce"],["Guardsman Red","Fire Bush","Golden Dream","Chelsea Cucumber","Smalt Blue","Boston Blue","Butterfly Bush","Cadillac"],["Sangria","Mai Tai","Buddha Gold","Forest Green","Eden","Venice Blue","Meteorite","Claret"],["Rosewood","Cinnamon","Olive","Parsley","Tiber","Midnight Blue","Valentino","Loulou"]],colorButton:{foreColor:"#000000",backColor:"#FFFF00"},lineHeights:["1.0","1.2","1.4","1.5","1.6","1.8","2.0","3.0"],tableClassName:"table table-bordered",insertTableMaxSize:{col:10,row:10},dialogsInBody:!1,dialogsFade:!1,maximumImageFileSize:null,callbacks:{onBeforeCommand:null,onBlur:null,onBlurCodeview:null,onChange:null,onChangeCodeview:null,onDialogShown:null,onEnter:null,onFocus:null,onImageLinkInsert:null,onImageUpload:null,onImageUploadError:null,onInit:null,onKeydown:null,onKeyup:null,onMousedown:null,onMouseup:null,onPaste:null,onScroll:null},codemirror:{mode:"text/html",htmlMode:!0,lineNumbers:!0},codeviewFilter:!1,codeviewFilterRegex:/<\/*(?:applet|b(?:ase|gsound|link)|embed|frame(?:set)?|ilayer|l(?:ayer|ink)|meta|object|s(?:cript|tyle)|t(?:itle|extarea)|xml)[^>]*?>/gi,codeviewIframeFilter:!0,codeviewIframeWhitelistSrc:[],codeviewIframeWhitelistSrcBase:["www.youtube.com","www.youtube-nocookie.com","www.facebook.com","vine.co","instagram.com","player.vimeo.com","www.dailymotion.com","player.youku.com","v.qq.com"],keyMap:{pc:{ENTER:"insertParagraph","CTRL+Z":"undo","CTRL+Y":"redo",TAB:"tab","SHIFT+TAB":"untab","CTRL+B":"bold","CTRL+I":"italic","CTRL+U":"underline","CTRL+SHIFT+S":"strikethrough","CTRL+BACKSLASH":"removeFormat","CTRL+SHIFT+L":"justifyLeft","CTRL+SHIFT+E":"justifyCenter","CTRL+SHIFT+R":"justifyRight","CTRL+SHIFT+J":"justifyFull","CTRL+SHIFT+NUM7":"insertUnorderedList","CTRL+SHIFT+NUM8":"insertOrderedList","CTRL+LEFTBRACKET":"outdent","CTRL+RIGHTBRACKET":"indent","CTRL+NUM0":"formatPara","CTRL+NUM1":"formatH1","CTRL+NUM2":"formatH2","CTRL+NUM3":"formatH3","CTRL+NUM4":"formatH4","CTRL+NUM5":"formatH5","CTRL+NUM6":"formatH6","CTRL+ENTER":"insertHorizontalRule","CTRL+K":"linkDialog.show"},mac:{ENTER:"insertParagraph","CMD+Z":"undo","CMD+SHIFT+Z":"redo",TAB:"tab","SHIFT+TAB":"untab","CMD+B":"bold","CMD+I":"italic","CMD+U":"underline","CMD+SHIFT+S":"strikethrough","CMD+BACKSLASH":"removeFormat","CMD+SHIFT+L":"justifyLeft","CMD+SHIFT+E":"justifyCenter","CMD+SHIFT+R":"justifyRight","CMD+SHIFT+J":"justifyFull","CMD+SHIFT+NUM7":"insertUnorderedList","CMD+SHIFT+NUM8":"insertOrderedList","CMD+LEFTBRACKET":"outdent","CMD+RIGHTBRACKET":"indent","CMD+NUM0":"formatPara","CMD+NUM1":"formatH1","CMD+NUM2":"formatH2","CMD+NUM3":"formatH3","CMD+NUM4":"formatH4","CMD+NUM5":"formatH5","CMD+NUM6":"formatH6","CMD+ENTER":"insertHorizontalRule","CMD+K":"linkDialog.show"}},icons:{align:"note-icon-align",alignCenter:"note-icon-align-center",alignJustify:"note-icon-align-justify",alignLeft:"note-icon-align-left",alignRight:"note-icon-align-right",rowBelow:"note-icon-row-below",colBefore:"note-icon-col-before",colAfter:"note-icon-col-after",rowAbove:"note-icon-row-above",rowRemove:"note-icon-row-remove",colRemove:"note-icon-col-remove",indent:"note-icon-align-indent",outdent:"note-icon-align-outdent",arrowsAlt:"note-icon-arrows-alt",bold:"note-icon-bold",caret:"note-icon-caret",circle:"note-icon-circle",close:"note-icon-close",code:"note-icon-code",eraser:"note-icon-eraser",floatLeft:"note-icon-float-left",floatRight:"note-icon-float-right",font:"note-icon-font",frame:"note-icon-frame",italic:"note-icon-italic",link:"note-icon-link",unlink:"note-icon-chain-broken",magic:"note-icon-magic",menuCheck:"note-icon-menu-check",minus:"note-icon-minus",orderedlist:"note-icon-orderedlist",pencil:"note-icon-pencil",picture:"note-icon-picture",question:"note-icon-question",redo:"note-icon-redo",rollback:"note-icon-rollback",square:"note-icon-square",strikethrough:"note-icon-strikethrough",subscript:"note-icon-subscript",superscript:"note-icon-superscript",table:"note-icon-table",textHeight:"note-icon-text-height",trash:"note-icon-trash",underline:"note-icon-underline",undo:"note-icon-undo",unorderedlist:"note-icon-unorderedlist",video:"note-icon-video"}}})},5:function(t,e,n){},53:function(t,e,n){"use strict";n.r(e);var o=n(0),i=n.n(o),r=n(1);function a(t){return(a="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t})(t)}var s=r.a.create(''),l=r.a.create(''),c=r.a.create(''),u=r.a.create(''),d=r.a.create(''),h=r.a.create(['','"].join("")),f=r.a.create(''),p=r.a.create(['',''].join("")),m=r.a.create(''),v=r.a.create('