diff --git a/Controllers/ApiController.cs b/Controllers/ApiController.cs index e1456fc..591d3b3 100644 --- a/Controllers/ApiController.cs +++ b/Controllers/ApiController.cs @@ -76,6 +76,84 @@ namespace Journeys_WantHome.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 = "cutPhoto_" + GlobalClass.CreateRandomCode(8) + Path.GetExtension(originFileName); + string fullPath = Path.Combine(Directory.GetCurrentDirectory(), "wwwroot/images/cut/" + 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 = "/images/cut/" + newFileName; + newFile.size = file.Length; + newFile.thumbnailUrl = "/images/cut/" + newFileName; + newFile.deleteUrl = "/images/cut/" + 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("updateTags")] public ActionResult UpdateTags(IFormCollection obj) { updatTagResult ret = new updatTagResult(); diff --git a/Journeys_WantHome.csproj b/Journeys_WantHome.csproj index 45e6132..c3d3cf0 100644 --- a/Journeys_WantHome.csproj +++ b/Journeys_WantHome.csproj @@ -41,6 +41,7 @@ + diff --git a/Models/DbTableClass.cs b/Models/DbTableClass.cs index 9617b79..98d55a4 100644 --- a/Models/DbTableClass.cs +++ b/Models/DbTableClass.cs @@ -51,6 +51,8 @@ public class DbTableClass public string kolProjectImage_uid { get; set; } = ""; public string kolProject_uid { get; set; } = ""; public string kolProjectImage_photo { get; set; } = ""; + + public string kolProjectImage_desc { get; set; } = ""; public DateTime kolProjectImage_createdate { get; set; } = DateTime.Now; } diff --git a/Views/Home/KolList.cshtml b/Views/Home/KolList.cshtml index 945d081..91ab98e 100644 --- a/Views/Home/KolList.cshtml +++ b/Views/Home/KolList.cshtml @@ -518,7 +518,8 @@ - 截圖 + 截圖 + 說明文字 @@ -620,4 +621,99 @@ + + +
+ +
+ + +
+
\ No newline at end of file diff --git a/wwwroot/assets/javascript/custom/kollist.js b/wwwroot/assets/javascript/custom/kollist.js index 7ffab98..09f468e 100644 --- a/wwwroot/assets/javascript/custom/kollist.js +++ b/wwwroot/assets/javascript/custom/kollist.js @@ -5,6 +5,8 @@ var mainTable; var mainRowID; var mainPos; var specTr; +var linkTr; +var photoTr; $(document).ready(function () { delMedia = ''; loadTagsInput(); @@ -17,6 +19,7 @@ $(document).ready(function () { loadyearmonth(); loadprojectList(); clearKolProjectTable(); + initSubPhotoUpload(); $('#kolSaveBtn').on('click', function () { var method = $('#method').val(); @@ -252,6 +255,130 @@ $(document).ready(function () { $('#clientNewModal').modal('toggle'); }); + $('#addCutBtn').on('click', function () { + //var src = $('#fileupload-avatar').parent().children('img').prop('src'); + //var origin = location.origin; + //src = src.replace(origin, ''); + //alert(src); + $('#fileupload-subPhoto').parent().children('img').prop('src', '/assets/images/avatars/unknown-profile.jpg'); + + $('#photo_method').val('add'); + $('#photo_title').val('').trigger('change'); + $('#clientCutPhotoModal').modal('toggle'); + }); + + $('#kolProjectLink_url').on('change', function () { + if ($('#kolProjectLink_text').val() == '') { + $('#kolProjectLink_text').val($('#kolProjectLink_url').val()).trigger('change'); + } + }); + + //截圖儲存 + $('#clientCutPhotoSaveBtn').on('click', function () { + var method = $('#photo_method').val(); + + var photo_uid = $('#photo_uid').val(); + var photo_title = $('#photo_title').val(); + var sub_photo = ""; + + var src = $('#fileupload-subPhoto').parent().children('img').prop('src'); + var origin = location.origin; + src = src.replace(origin, ''); + sub_photo = src; + + var err_msg = ""; + + + + if (src == '/assets/images/avatars/unknown-profile.jpg') { + err_msg += "請選擇要顯示的圖片!\n"; + } + + if (err_msg != "") { + alert(err_msg); + return; + } + + if (method == "add") { + var ret = ''; + ret += '
'; + ret += ' '; + ret += '
'; + + var trHtml = ""; + trHtml += ''; + trHtml += ' ' + ret + ' '; + + trHtml += ' ' + photo_title + ' '; + trHtml += ' '; + trHtml += ' '; + trHtml += ' '; + trHtml += ' '; + trHtml += ''; + + $('#cut_table tbody').append(trHtml); + $('#clientCutPhotoModal').modal('toggle'); + + } + + if (method == "edit") { + photoTr.find('td').eq(0).find('a').prop('href', sub_photo); + photoTr.find('td').eq(0).find('img').prop('src', sub_photo); + photoTr.find('td').eq(1).text(photo_title); + + + + $('#clientCutPhotoModal').modal('toggle'); + } + }); + + //上刊連結儲存 + $('#clientKolProjectUrlDialogSaveBtn').on('click', function () { + var method = $('#kolProjectUrl_method').val(); + var url = $('#kolProjectLink_url').val(); + var url_text = $('#kolProjectLink_text').val(); + + var err_msg = ""; + + if (url == "") { + err_msg += "請輸入網址\n"; + } + + if (err_msg != "") { + alert(err_msg); + return; + } + + if (url_text == "") { + url_text = url; + } + + if (method == 'add') { + var trHtml = ""; + trHtml += ''; + trHtml += ' ' + url_text + ''; + trHtml += ' ' + url + ' '; + trHtml += ' ' + url_text + ' '; + + trHtml += ' '; + trHtml += ' '; + trHtml += ' '; + trHtml += ' '; + trHtml += ''; + + $('#link_table tbody').append(trHtml); + $('#clientKolProjectUrlModal').modal('toggle'); + } + + if (method == 'edit') { + linkTr.find('td').eq(0).children('a').eq(0).attr('href', url).text(url_text); + linkTr.find('td').eq(1).text(url); + linkTr.find('td').eq(2).text(url_text); + $('#clientKolProjectUrlModal').modal('toggle'); + } + + }); + //報價規則儲存 $('#kolProjectPriceDialogSaveBtn').on('click', function () { var method = $('#kolProjectPrice_method').val(); @@ -358,6 +485,13 @@ $(document).ready(function () { loadkolMediaSpec(); $('#clientKolProjectMediaPriceEditModal').modal('toggle'); }); + + $('#addLinkBtn').on('click', function () { + $('#kolProjectUrl_method').val('add'); + $('#kolProjectLink_url').val('').trigger('change'); + $('#kolProjectLink_text').val('').trigger('change'); + $('#clientKolProjectUrlModal').modal('toggle'); + }); function loadDataTable() { var dataTables = { init: function init() { @@ -716,6 +850,57 @@ function loadCooperateItem() { }); } +function buttonPhotoClick(obj) { + photoTr = $(obj).closest('tr'); + + var dataMethod = obj.getAttribute('data-method'); + var dataUid = obj.getAttribute('data-uid'); + var photo_uid = obj.getAttribute('media-uid'); + var photo_src = photoTr.find('td').eq(0).find('img').prop('src').trim(); + var photo_title = photoTr.find('td').eq(1).text().trim(); + + var origin = location.origin; + photo_src = photo_src.replace(origin, ''); + + if (dataMethod == 'edit') { + $('#photo_method').val('edit'); + $('#photo_uid').val(photo_uid); + + $('#fileupload-subPhoto').parent().children('img').prop('src', photo_src); + + $('#photo_title').val(photo_title).trigger('change'); + + $('#clientCutPhotoModal').modal('toggle'); + } + + if (dataMethod == "del") { + if (confirm('確定刪除此筆資料?')) { + + + photoTr.remove(); + } + } +} +function linkEditClick(obj) { + linkTr = $(obj).closest('tr'); + var dataMethod = obj.getAttribute('data-method'); + var url = linkTr.find('td').eq(1).text().trim(); + var url_text = linkTr.find('td').eq(2).text().trim(); + + if (dataMethod == 'edit') { + $('#kolProjectUrl_method').val('edit'); + $('#kolProjectLink_url').val(url).trigger('change'); + $('#kolProjectLink_text').val(url_text).trigger('change'); + $('#clientKolProjectUrlModal').modal('toggle'); + } + + if (dataMethod == "del") { + if (confirm('確定刪除此筆資料?')) { + + linkTr.remove(); + } + } +} function specButtonClick(obj) { specTr = $(obj).closest('tr'); @@ -1238,3 +1423,42 @@ function clearKolProjectTable() { $(item).remove(); }); } + +function initSubPhotoUpload() { + var url = "/Api/subPhotoUpload"; + + // ============================================================= + + $('#fileupload-subPhoto').fileupload({ + url: url, + dropZone: null, + dataType: 'json', + autoUpload: true, + acceptFileTypes: /(\.|\/)(jpe?g|png)$/i, + maxFileSize: 5000000 + }).on('fileuploadprocessalways', function (e, data) { + var index = data.index; + var file = data.files[index]; + $('#avatar-warning-container').removeClass('show').text(''); + + if (file.error) { + $('#avatar-warning-container').addClass('show').text(file.error); + } + }).on('fileuploadprogressall', function (e, data) { + var progress = parseInt(data.loaded / data.total * 100, 10); + $('#progress-avatar').addClass('show').children().css('width', progress + '%'); + }).on('fileuploaddone', function (e, data) { + var file = data.result.files[0]; + var $img = $(this).parent().children('img'); + var $old = $img.prop('src'); + + if (file.url) { + $img.prop('src', file.url); + } else if (file.error) { + $('#avatar-warning-container').addClass('show').text(file.error); + } + + $('#progress-avatar').removeClass('show').children().css('width', 0); + }); // File upload using button + // ============================================================= +} \ No newline at end of file diff --git a/wwwroot/images/cut/cutPhoto_08HJ48YR.jpg b/wwwroot/images/cut/cutPhoto_08HJ48YR.jpg new file mode 100644 index 0000000..31cbe8a Binary files /dev/null and b/wwwroot/images/cut/cutPhoto_08HJ48YR.jpg differ diff --git a/wwwroot/images/cut/cutPhoto_0QAEOEN1.jpg b/wwwroot/images/cut/cutPhoto_0QAEOEN1.jpg new file mode 100644 index 0000000..c5d4f8b Binary files /dev/null and b/wwwroot/images/cut/cutPhoto_0QAEOEN1.jpg differ diff --git a/wwwroot/images/cut/cutPhoto_2NXCNA18.jpg b/wwwroot/images/cut/cutPhoto_2NXCNA18.jpg new file mode 100644 index 0000000..c36e0ea Binary files /dev/null and b/wwwroot/images/cut/cutPhoto_2NXCNA18.jpg differ diff --git a/wwwroot/images/cut/cutPhoto_8IX68CHV.jpg b/wwwroot/images/cut/cutPhoto_8IX68CHV.jpg new file mode 100644 index 0000000..c5d4f8b Binary files /dev/null and b/wwwroot/images/cut/cutPhoto_8IX68CHV.jpg differ diff --git a/wwwroot/images/cut/cutPhoto_8QXRLCXI.jpeg b/wwwroot/images/cut/cutPhoto_8QXRLCXI.jpeg new file mode 100644 index 0000000..e4ccdcf Binary files /dev/null and b/wwwroot/images/cut/cutPhoto_8QXRLCXI.jpeg differ diff --git a/wwwroot/images/cut/cutPhoto_9DC7ROAD.jpg b/wwwroot/images/cut/cutPhoto_9DC7ROAD.jpg new file mode 100644 index 0000000..31cbe8a Binary files /dev/null and b/wwwroot/images/cut/cutPhoto_9DC7ROAD.jpg differ diff --git a/wwwroot/images/cut/cutPhoto_CI24XTH2.jpg b/wwwroot/images/cut/cutPhoto_CI24XTH2.jpg new file mode 100644 index 0000000..c36e0ea Binary files /dev/null and b/wwwroot/images/cut/cutPhoto_CI24XTH2.jpg differ diff --git a/wwwroot/images/cut/cutPhoto_FK06U2NO.jpeg b/wwwroot/images/cut/cutPhoto_FK06U2NO.jpeg new file mode 100644 index 0000000..e4ccdcf Binary files /dev/null and b/wwwroot/images/cut/cutPhoto_FK06U2NO.jpeg differ diff --git a/wwwroot/images/cut/cutPhoto_G7DGJJPR.jpeg b/wwwroot/images/cut/cutPhoto_G7DGJJPR.jpeg new file mode 100644 index 0000000..e4ccdcf Binary files /dev/null and b/wwwroot/images/cut/cutPhoto_G7DGJJPR.jpeg differ diff --git a/wwwroot/images/cut/cutPhoto_WE9IT6KR.jpg b/wwwroot/images/cut/cutPhoto_WE9IT6KR.jpg new file mode 100644 index 0000000..c5d4f8b Binary files /dev/null and b/wwwroot/images/cut/cutPhoto_WE9IT6KR.jpg differ diff --git a/wwwroot/images/cut/cutPhoto_X3TVKKAD.jpg b/wwwroot/images/cut/cutPhoto_X3TVKKAD.jpg new file mode 100644 index 0000000..c36e0ea Binary files /dev/null and b/wwwroot/images/cut/cutPhoto_X3TVKKAD.jpg differ