1570 lines
55 KiB
JavaScript
1570 lines
55 KiB
JavaScript
var projectTable;
|
|
var projectDataTable;
|
|
var projectPos;
|
|
var projectRow;
|
|
|
|
var urlTable;
|
|
var urlDataTable;
|
|
var urlPos;
|
|
var urlRow;
|
|
|
|
var user_perm;
|
|
var user_uid;
|
|
var user_name;
|
|
var deledUsers;
|
|
|
|
(function ($, document) {
|
|
|
|
|
|
if ($.cookie) {
|
|
$.cookieKey = function (CookieName, KeyName, Value, Options) {
|
|
var reg = new RegExp("(?:([^=]+)=([^&]*)&?)", "ig"),
|
|
match = null,
|
|
matches = [];
|
|
var cookieVal = $.cookie(CookieName);
|
|
while (match = reg.exec(cookieVal)) {
|
|
if (KeyName.toLowerCase() === match[1].toLowerCase()) {
|
|
if (Value) { //we are updating, collect all values
|
|
matches.push([match[1], Value]);
|
|
}
|
|
else {
|
|
return match[2]; //we are getting, sub key found just return it
|
|
}
|
|
}
|
|
else if (Value) { //we are updating, collect all values
|
|
matches.push([match[1], match[2]]);
|
|
}
|
|
}
|
|
|
|
if (Value) { //we are updating, update values
|
|
updatedValue = "",
|
|
sep = "";
|
|
for (i = 0; i < matches; i++) {
|
|
updatedValue += sep + matches[i][0] + "=" + matches[i][1];
|
|
sep = "&";
|
|
}
|
|
$.cookie(CookieName, updatedValue, Options);
|
|
}
|
|
else return null;//we are getting, value not found
|
|
}
|
|
}
|
|
})(jQuery, document);
|
|
|
|
Date.prototype.yyyymmdd = function () {
|
|
var mm = this.getMonth() + 1; // getMonth() is zero-based
|
|
var dd = this.getDate();
|
|
|
|
return [this.getFullYear(),
|
|
(mm > 9 ? '' : '0') + mm,
|
|
(dd > 9 ? '' : '0') + dd
|
|
].join('/');
|
|
};
|
|
|
|
$(document).ready(function () {
|
|
$(".input-daterange").datepicker({
|
|
format: "yyyy/mm/dd",
|
|
orientation: "bottom auto",
|
|
language: "zh-TW",
|
|
autoclose: true
|
|
});
|
|
|
|
$('#url_fbImage_image').slim({
|
|
ratio: '720:405',
|
|
forceSize: {
|
|
width: 720,
|
|
height: 405
|
|
},
|
|
minSize: {
|
|
width: 300,
|
|
height: 300
|
|
},
|
|
download: true,
|
|
label: 'Click or Drop your photo here',
|
|
maxFileSize: 4,
|
|
forceType: 'png',
|
|
meta: {
|
|
picType: 'url_fbImage',
|
|
picChange: 'N'
|
|
},
|
|
didReceiveServerError: function (error) {
|
|
console.log(error);
|
|
},
|
|
didThrowError: function (error) {
|
|
console.log(error);
|
|
}
|
|
});
|
|
|
|
$('#urlDiv').hide();
|
|
|
|
$('#url_header').text(location.protocol + "//" + location.host + "/");
|
|
|
|
$('textarea[data-limit-rows=true]')
|
|
.on('keypress', function (event) {
|
|
var textarea = $(this),
|
|
text = textarea.val(),
|
|
numberOfLines = (text.match(/\n/g) || []).length + 1,
|
|
maxRows = parseInt(textarea.attr('rows'));
|
|
|
|
if (event.which === 13 && numberOfLines === maxRows) {
|
|
return false;
|
|
}
|
|
});
|
|
|
|
user_uid = $.cookieKey("token", "uid");
|
|
user_name = $.cookieKey("token", "name");
|
|
|
|
function setLimitedStatus() {
|
|
var d = new Date();
|
|
|
|
if ($('#project_limited').prop('checked')) {
|
|
$('#project_limited_div').addClass('form-group');
|
|
$('#project_end_div').show();
|
|
$('#end_desc_div').show();
|
|
$('#project_endToRedirect_div').show();
|
|
|
|
if (($('#method').val() === 'add') && ($('#project_enddate').val() === '')){
|
|
$('#project_enddate').val(d.yyyymmdd());
|
|
$('#project_endToRedirect').val('');
|
|
}
|
|
} else {
|
|
$('#project_enddate').val(d.yyyymmdd());
|
|
$('#project_limited_div').removeClass('form-group');
|
|
$('#project_end_div').hide();
|
|
$('#end_desc_div').hide();
|
|
$('#project_endToRedirect_div').hide();
|
|
}
|
|
}
|
|
|
|
//期限限制開關初始值設定
|
|
setLimitedStatus();
|
|
|
|
//專案是否有期限限制開關切換
|
|
$('#project_limited').change(function () {
|
|
setLimitedStatus();
|
|
});
|
|
|
|
|
|
|
|
//切換gif連結div
|
|
function setGifTagStatus() {
|
|
if ($('#url_gifTag').prop('checked')) {
|
|
$('#url_fbTag').prop("checked", false);
|
|
setFbTagStatus();
|
|
$('#gifData_div').addClass('form-group');
|
|
$('#gifData_div').show();
|
|
} else {
|
|
$('#gifData_div').removeClass('form-group');
|
|
$('#gifData_div').hide();
|
|
}
|
|
}
|
|
|
|
//切換fb縮圖div
|
|
function setFbTagStatus() {
|
|
if ($('#url_fbTag').prop('checked')) {
|
|
$('#url_gifTag').prop("checked", false);
|
|
setGifTagStatus();
|
|
if ($('#url_directToUrl').val() !== '' && $('#url_fbTitle').val() === '') {
|
|
loadMeta($('#url_directToUrl').val());
|
|
}
|
|
|
|
$('#fbTag_div').addClass('form-group');
|
|
$('#fbTagData_div').show();
|
|
} else {
|
|
$('#fbTag_div').removeClass('form-group');
|
|
$('#fbTagData_div').hide();
|
|
}
|
|
}
|
|
|
|
//切換fb Pixel div
|
|
function setFbPixelStatus() {
|
|
|
|
if ($('#url_fbPixel').prop('checked')) {
|
|
$('#fbPixel_div').addClass('form-group');
|
|
$('#fbPixelData_div').show();
|
|
} else {
|
|
$('#fbPixel_div').removeClass('form-group');
|
|
$('#fbPixelData_div').hide();
|
|
}
|
|
}
|
|
|
|
//切換 Google AW div
|
|
function setGoogleAdStatus() {
|
|
if ($('#url_googleAds').prop('checked')) {
|
|
$('#googleAds_div').addClass('form-group');
|
|
$('#googleAdsData_div').show();
|
|
} else {
|
|
$('#googleAds_div').removeClass('form-group');
|
|
$('#googleAdsData_div').hide();
|
|
}
|
|
}
|
|
|
|
function setUploadStatus() {
|
|
var tmpUploadUrl = $("#uploadFileUrl").val().trim();
|
|
var targetUrl = $("#url_directToUrl").val().trim();
|
|
|
|
if ($('#url_upload').prop('checked')) {
|
|
$('#uploadBtn_div').addClass('form-group');
|
|
$('#uploadBtnData_div').show();
|
|
|
|
if (tmpUploadUrl != '') {
|
|
$("#uploadList").show();
|
|
$("#url_directToUrl").val(tmpUploadUrl);
|
|
}
|
|
} else {
|
|
$('#uploadBtn_div').removeClass('form-group');
|
|
$('#uploadBtnData_div').hide();
|
|
$("#uploadList").hide();
|
|
|
|
|
|
if (tmpUploadUrl == targetUrl) {
|
|
$("#url_directToUrl").val('');
|
|
}
|
|
|
|
}
|
|
}
|
|
function loadMeta(url) {
|
|
waitingDialog.show('載入中...', {
|
|
dialogSize: 'lg',
|
|
progressType: 'info'
|
|
});
|
|
|
|
setTimeout(function () {
|
|
waitingDialog.hide();
|
|
}, 2500);
|
|
var formData = {
|
|
url: url
|
|
}
|
|
|
|
$.ajax({
|
|
url: "api/getMeta.ashx",
|
|
type: "POST",
|
|
data: formData,
|
|
success: function (data, textStatus, jqXHR) {
|
|
if (data.ret === "yes") {
|
|
$('#url_fbTitle').val(data.ogTitle);
|
|
$('#url_fbDescript').val(data.ogDescript);
|
|
|
|
if (data.ogImage !== '') {
|
|
$('#url_fbImage_image').slim('load', data.ogImage);
|
|
}
|
|
}
|
|
waitingDialog.hide();
|
|
},
|
|
error: function (jqXHR, textStatus, errorThrown) {
|
|
alert('网絡或伺服器发生错误,请稍后重试!');
|
|
waitingDialog.hide();
|
|
}
|
|
});
|
|
}
|
|
|
|
setGifTagStatus();
|
|
|
|
//切換fb開關初始值設定
|
|
setFbTagStatus();
|
|
|
|
setFbPixelStatus();
|
|
|
|
setGoogleAdStatus();
|
|
|
|
setUploadStatus();
|
|
|
|
//專案是否有期限限制開關切換
|
|
$('#url_gifTag').change(function () {
|
|
setGifTagStatus();
|
|
});
|
|
|
|
$('#url_fbTag').change(function () {
|
|
setFbTagStatus();
|
|
});
|
|
|
|
$('#url_fbPixel').change(function () {
|
|
setFbPixelStatus();
|
|
});
|
|
|
|
$('#url_googleAds').change(function () {
|
|
setGoogleAdStatus();
|
|
});
|
|
|
|
$('#url_upload').change(function () {
|
|
setUploadStatus();
|
|
});
|
|
|
|
$('#url_code').change(function () {
|
|
var url_header = $('#url_header').text();
|
|
var url_code = $(this).val().trim();
|
|
|
|
const qrCode = new QRCodeStyling({
|
|
width: 150,
|
|
height: 150,
|
|
type: "png",
|
|
data: url_header + url_code,
|
|
qrOptions: {
|
|
typeNumber: "0",
|
|
mode: "Byte",
|
|
errorCorrectionLevel: "Q"
|
|
},
|
|
image: "../pics/logo_bremen_red.png",
|
|
imageOptions: {
|
|
hideBackgroundDots: true,
|
|
imageSize: 0.4,
|
|
margin: 0
|
|
},
|
|
cornersDotOptions: {
|
|
type: "Square",
|
|
color: "#6a1a4c"
|
|
},
|
|
cornersSquareOptions: {
|
|
type: "extra-rounded",
|
|
color: "#6a1a4c"
|
|
},
|
|
dotsOptions: {
|
|
color: "#6a1a4c",
|
|
type: "dots"
|
|
},
|
|
backgroundOptions: {
|
|
color: "#ffffff",
|
|
}
|
|
});
|
|
$("#qr_canvas").empty();
|
|
qrCode.append(document.getElementById("qr_canvas"));
|
|
});
|
|
|
|
$('#qr_download').click(function () {
|
|
var url_header = $('#url_header').text();
|
|
var url_code = $('#url_code').val().trim();
|
|
|
|
const qrCode = new QRCodeStyling({
|
|
width: 1024,
|
|
height: 1024,
|
|
type: "png",
|
|
data: url_header + url_code,
|
|
qrOptions: {
|
|
typeNumber: "0",
|
|
mode: "Byte",
|
|
errorCorrectionLevel: "Q"
|
|
},
|
|
image: "../pics/logo_bremen_red.png",
|
|
imageOptions: {
|
|
hideBackgroundDots: true,
|
|
imageSize: 0.4,
|
|
margin: 0
|
|
},
|
|
cornersDotOptions: {
|
|
type: "Square",
|
|
color: "#6a1a4c"
|
|
},
|
|
cornersSquareOptions: {
|
|
type: "extra-rounded",
|
|
color: "#6a1a4c"
|
|
},
|
|
dotsOptions: {
|
|
color: "#6a1a4c",
|
|
type: "dots"
|
|
},
|
|
backgroundOptions: {
|
|
color: "#ffffff",
|
|
}
|
|
});
|
|
|
|
qrCode.download({ name: "qr-" + url_code, extension: "png" });
|
|
});
|
|
|
|
var dataTables = {
|
|
init: function init() {
|
|
this.bindUIActions();
|
|
},
|
|
bindUIActions: function bindUIActions() {
|
|
this.table = this.handleDataTables();
|
|
|
|
// add buttons
|
|
this.table.buttons().container().appendTo('#dt-buttons').unwrap();
|
|
|
|
|
|
},
|
|
handleDataTables: function handleDataTables() {
|
|
$('#myTable').append("<tfoot><tr><td></td><td></td><td></tr></tfoot>");
|
|
return $('#myTable').DataTable({
|
|
dom: '<\'text-muted\'Bi>\n <\'table-responsive\'trl>\n <\'mt-4\'p>',
|
|
lengthChange: true,
|
|
lengthMenu: [[10, 25, 50, -1], [10, 25, 50, "All"]],
|
|
pageLength: 25,
|
|
info: false,
|
|
"scrollX": true,
|
|
buttons: [
|
|
{
|
|
text: '新增專案',
|
|
action: function (e, dt, node, config) {
|
|
projectAdd();
|
|
}
|
|
}],
|
|
language: {
|
|
paginate: {
|
|
previous: '<i class="fa fa-lg fa-angle-left"></i>',
|
|
next: '<i class="fa fa-lg fa-angle-right"></i>'
|
|
}
|
|
},
|
|
autoWidth: false,
|
|
ajax: {
|
|
url: 'api/projectsList.ashx',
|
|
dataSrc: function (result) {
|
|
if (result.ret === "no") {
|
|
alert(result.message);
|
|
location.href = "login.html";
|
|
} else {
|
|
user_perm = result.user_perm;
|
|
return result.projectlist;
|
|
}
|
|
}
|
|
},
|
|
rowId: 'project_uid',
|
|
deferRender: true,
|
|
initComplete: function () {
|
|
$('#alert-info').show();
|
|
$('#urlDiv').hide();
|
|
|
|
if (user_perm === 'N') {
|
|
var table = $('#myTable').DataTable();
|
|
table.buttons(0).remove();
|
|
}
|
|
|
|
|
|
|
|
$('#myTable').on('click', 'a', function (e) {
|
|
var type = this.getAttribute('data-method');
|
|
|
|
if (type !== 'open') {
|
|
e.preventDefault();
|
|
e.stopPropagation();
|
|
buttonClick(this);
|
|
}
|
|
|
|
}).on('click', 'tr', function (e) {
|
|
var table = $('#myTable').DataTable();
|
|
var d = table.row(this).data();
|
|
|
|
$('#urlTitle').text('[' + d.project_name + ']的短網址列表');
|
|
var id = this.id;
|
|
$('#selected_project_uid').val(id);
|
|
$('#myUrlTable').DataTable().ajax.reload();
|
|
Looper.toggleSidebar();
|
|
//alert(id);
|
|
if ($(this).hasClass('selected')) {
|
|
//$(this).removeClass('selected');
|
|
//$('#alert-info').show();
|
|
//$('#urlDiv').hide();
|
|
}
|
|
else {
|
|
projectDataTable.$('tr.selected').removeClass('selected');
|
|
$(this).addClass('selected');
|
|
$('#alert-info').hide();
|
|
$('#urlDiv').show();
|
|
}
|
|
});
|
|
|
|
$('#myTable').on('change', 'input[name="selectedRow[]"]', function () {
|
|
checkboxClick(this);
|
|
});
|
|
|
|
|
|
},
|
|
columns: [{ data: 'project_uid', className: 'align-middle' }, { data: 'project_name', className: 'align-middle' }, { data: 'project_createdateString', className: 'align-middle' }],
|
|
columnDefs: [{
|
|
targets: 0,
|
|
width: '40px',
|
|
render: function render(data, type, row, meta) {
|
|
var edithtml = "";
|
|
|
|
edithtml += '<a id="table-btn" class="btn btn-sm btn-secondary" href="javascript:" data-method="edit" data-uid="' + row.project_uid + '"><i class="fa fa-pencil-alt"></i></a>\n ';
|
|
|
|
if (user_perm !== 'N') {
|
|
edithtml += '<a id="table-btn" class="btn btn-sm btn-secondary" href="javascript:" data-method="del" data-uid="' + row.project_uid + '"><i class="far fa-trash-alt"></i></a>';
|
|
}
|
|
|
|
return edithtml;
|
|
}
|
|
}, {
|
|
targets: 1,
|
|
width: '250px',
|
|
render: function render(data, type, row, meta) {
|
|
return ' <a href="javascript:" data-method="open" data-uid="' + row.project_uid + '">' + row.project_name + '</a>';
|
|
}
|
|
}]
|
|
});
|
|
}
|
|
};
|
|
|
|
dataTables.init();
|
|
|
|
projectDataTable = $('#myTable').DataTable();
|
|
|
|
|
|
var urlTables = {
|
|
init: function init() {
|
|
this.bindUIActions();
|
|
this.handleSearchRecords();
|
|
},
|
|
bindUIActions: function bindUIActions() {
|
|
this.table = this.handleDataTables();
|
|
|
|
// add buttons
|
|
this.table.buttons().container().appendTo('#url-buttons').unwrap();
|
|
|
|
|
|
},
|
|
handleDataTables: function handleDataTables() {
|
|
$('#myUrlTable').append("<tfoot><tr><td></td><td></td><td></tr></tfoot>");
|
|
return $('#myUrlTable').DataTable({
|
|
dom: '<\'text-muted\'Bi>\n <\'table-responsive\'trl>\n <\'mt-4\'p>',
|
|
lengthChange: true,
|
|
lengthMenu: [[10, 25, 50, -1], [10, 25, 50, "All"]],
|
|
pageLength: 25,
|
|
info: false,
|
|
buttons: [
|
|
{
|
|
text: '新增短網址',
|
|
className: 'btn btn-secondary btn-xs',
|
|
action: function (e, dt, node, config) {
|
|
urlAdd();
|
|
}
|
|
}],
|
|
language: {
|
|
paginate: {
|
|
previous: '<i class="fa fa-lg fa-angle-left"></i>',
|
|
next: '<i class="fa fa-lg fa-angle-right"></i>'
|
|
}
|
|
},
|
|
autoWidth: false,
|
|
ajax: {
|
|
url: 'api/urlsList.ashx',
|
|
type: 'POST',
|
|
data: function (d) {
|
|
Object.assign(d, {
|
|
project_uid: $("#selected_project_uid").val()
|
|
});
|
|
return d;
|
|
},
|
|
dataSrc: function (result) {
|
|
if (result.ret === "no") {
|
|
alert(result.message);
|
|
location.href = "login.html";
|
|
} else {
|
|
user_perm = result.user_perm;
|
|
return result.urllist;
|
|
}
|
|
}
|
|
},
|
|
rowId: 'url_uid',
|
|
deferRender: true,
|
|
initComplete: function () {
|
|
$('#myUrlTable').on('click', 'a', function (e) {
|
|
urlTableButtonClick(this);
|
|
});
|
|
},
|
|
columns: [{ data: 'url_uid', className: 'align-middle' }, { data: 'url_descript', className: 'align-middle' }, { data: 'url_shortUrl', className: 'align-middle' }, { data: 'url_directToUrl', className: 'align-middle' }],
|
|
columnDefs: [{
|
|
targets: 0,
|
|
render: function render(data, type, row, meta) {
|
|
var edithtml = "";
|
|
|
|
edithtml += '<a id="table-btn" class="btn btn-sm btn-secondary" href="javascript:" data-method="edit" data-uid="' + row.url_uid + '"><i class="fa fa-pencil-alt"></i></a>\n ';
|
|
edithtml += '<a id="table-btn" class="btn btn-sm btn-secondary" href="javascript:" data-method="data" data-uid="' + row.url_uid + '"><i class="fas fa-chart-line"></i></a>\n ';
|
|
edithtml += '<a id="table-btn" class="btn btn-sm btn-secondary" href="javascript:" data-method="del" data-uid="' + row.url_uid + '"><i class="far fa-trash-alt"></i></a>';
|
|
|
|
return edithtml;
|
|
}
|
|
}, {
|
|
targets: 2,
|
|
render: function render(data, type, row, meta) {
|
|
var url_shortUrl = row.url_shortUrl;
|
|
return '<a class="far fa-copy" href="javascript:" data-clipboard-target="#url_' + row.url_uid + '"></a> <a href="javascript:" id="url_' + row.url_uid + '">' + url_shortUrl + '</a>';
|
|
}
|
|
}, {
|
|
targets: 3,
|
|
render: function render(data, type, row, meta) {
|
|
var url_directToUrl = row.url_directToUrl;
|
|
|
|
if (url_directToUrl.length > 30) {
|
|
url_directToUrl = url_directToUrl.substr(0, 17) + '.....' + url_directToUrl.substr((url_directToUrl.length - 6), 6);
|
|
}
|
|
|
|
|
|
return ' <a href="' + row.url_directToUrl + '" alt="' + row.url_directToUrl + '" target="_blank">' + url_directToUrl + '</a>';
|
|
}
|
|
}]
|
|
});
|
|
},
|
|
handleSearchRecords: function handleSearchRecords() {
|
|
var self = this;
|
|
|
|
$('#table-search, #filterBy').on('keyup change focus', function (e) {
|
|
var filterBy = $('#filterBy').val();
|
|
var hasFilter = filterBy !== '';
|
|
var value = $('#table-search').val();
|
|
|
|
// clear selected rows
|
|
//if (value.length && (e.type === 'keyup' || e.type === 'change')) {
|
|
// self.clearSelectedRows();
|
|
//}
|
|
|
|
// reset search term
|
|
self.table.search('').columns().search('').draw();
|
|
|
|
if (hasFilter) {
|
|
self.table.columns(filterBy).search(value).draw();
|
|
} else {
|
|
self.table.search(value).draw();
|
|
}
|
|
});
|
|
}
|
|
};
|
|
|
|
urlTables.init();
|
|
|
|
urlDataTable = $('#myUrlTable').DataTable();
|
|
|
|
/* 複製內容功能設定 */
|
|
var clipboard = new ClipboardJS('.fa-copy');
|
|
|
|
//複製成功執行
|
|
clipboard.on('success', function (e) {
|
|
e.clearSelection();
|
|
alert("複製成功,您複製的內容為\n\n「" + e.text + "」");
|
|
});
|
|
|
|
//複製失敗執行
|
|
clipboard.on('error', function (e) {
|
|
alert("複製失敗");
|
|
});
|
|
|
|
function urlAdd() {
|
|
$('#url_code').prop('readonly', false);
|
|
urlTable = $('#myUrlTable').dataTable();
|
|
$.ajax({
|
|
url: "api/getShortCode.ashx",
|
|
type: "POST",
|
|
data: null,
|
|
success: function (data, textStatus, jqXHR) {
|
|
if (data.ret === "yes") {
|
|
$('#uploadList').hide();
|
|
$('#url_header').text(data.urlHeader);
|
|
$('#url_code').val(data.shorCode).trigger('change');
|
|
$('#url_method').val('add');
|
|
$('#url_fbTag').prop("checked", false);
|
|
$('#url_fbImage_image').slim('remove');
|
|
setGifTagStatus();
|
|
setFbTagStatus();
|
|
setFbPixelStatus();
|
|
setGoogleAdStatus();
|
|
$('#url_fbPixelCode').change();
|
|
$('#url_googleAwConversionId').change();
|
|
$('#project_name').change();
|
|
$('#project_enddate').change();
|
|
$('#url_gifLink').change();
|
|
$('#myUrlModal').modal('toggle');
|
|
} else {
|
|
alert(data.message);
|
|
location.href = "login.html";
|
|
}
|
|
},
|
|
error: function (jqXHR, textStatus, errorThrown) {
|
|
alert('网絡或伺服器发生错误,请稍后重试!');
|
|
}
|
|
});
|
|
|
|
|
|
}
|
|
|
|
function projectAdd() {
|
|
$('#myModal').modal('toggle');
|
|
deledUsers = [];
|
|
projectTable = $('#myTable').dataTable();
|
|
|
|
|
|
|
|
$('#method').val('add');
|
|
|
|
$('#project_name').change();
|
|
$('#project_enddate').change();
|
|
$('#project_apiId').val(getRandom(100000000000, 999999999999)).change();
|
|
$('#project_apiKey').val(getRandomString(32)).change();
|
|
|
|
$('#nestable02 [data-name=user_uid] option').remove();
|
|
$("#nestable02 [data-mark=111]").remove();
|
|
|
|
$.ajax({
|
|
url: "api/usersList.ashx",
|
|
type: "POST",
|
|
data: null,
|
|
success: function (data, textStatus, jqXHR) {
|
|
if (data.ret === "yes") {
|
|
|
|
var nowDate = new Date();
|
|
|
|
|
|
$("[data-name=user_uid]").append($("<option></option>").attr("value", user_uid).attr("data-row", user_uid).text(user_name));
|
|
|
|
$("[data-name=user_uid]").append($("<option></option>").attr("value", "").attr("data-row", "").text("請選擇成員"));
|
|
|
|
if (data.userlist.length > 0) {
|
|
$.each(data.userlist, function (i, item) {
|
|
if (item.user_uid !== user_uid) {
|
|
$("[data-name=user_uid]").append($("<option></option>").attr("value", item.user_uid).attr("data-row", item.user_uid).text(item.user_name));
|
|
}
|
|
});
|
|
}
|
|
|
|
$("[data-name=user_uid]").attr("disabled", true);
|
|
$("[data-name=user-del]").css("display", "none");
|
|
|
|
if (user_perm === 'N') {
|
|
$('#saveBtn').prop('disabled', true);
|
|
} else {
|
|
$('#saveBtn').prop('disabled', false);
|
|
}
|
|
} else {
|
|
|
|
alert(data.message);
|
|
location.href = "login.html";
|
|
}
|
|
},
|
|
error: function (jqXHR, textStatus, errorThrown) {
|
|
alert('网絡或伺服器发生错误,请稍后重试!');
|
|
}
|
|
});
|
|
|
|
|
|
}
|
|
|
|
function buttonClick(obj) {
|
|
var type = obj.getAttribute('data-method');
|
|
var uid = obj.getAttribute('data-uid');
|
|
tr = $(this).parents("tr");
|
|
projectTable = $('#myTable').dataTable();
|
|
var rowID = $('#' + uid);
|
|
projectPos = projectTable.fnGetPosition($('#' + uid)[0]);
|
|
|
|
projectRow = projectTable.api().row(rowID);
|
|
|
|
$("#project_uid").val(uid);
|
|
|
|
if (type === 'del') {
|
|
if (confirm('確定刪除此專案? 刪除後,此專案的短網址將全部失效!')) {
|
|
var formData = {
|
|
project_uid: uid,
|
|
method: 'delete'
|
|
};
|
|
|
|
$.ajax({
|
|
url: "api/projectData.ashx",
|
|
type: "POST",
|
|
data: formData,
|
|
success: function (data, textStatus, jqXHR) {
|
|
if (data.ret === "yes") {
|
|
var row = projectTable.api().row(rowID).remove().draw(false);
|
|
alert('刪除成功');
|
|
} else {
|
|
alert(data.message);
|
|
}
|
|
},
|
|
error: function (jqXHR, textStatus, errorThrown) {
|
|
alert('网絡或伺服器发生错误,请稍后重试!');
|
|
$('#myModal').modal('toggle');
|
|
}
|
|
});
|
|
}
|
|
}
|
|
|
|
if (type === 'edit') {
|
|
deledUsers = [];
|
|
|
|
$('#method').val('edit');
|
|
$("#project_uid").val(uid);
|
|
|
|
$("#nestable02 [data-mark=111]").remove();
|
|
|
|
$.ajax({
|
|
url: "api/usersList.ashx",
|
|
type: "POST",
|
|
success: function (data, textStatus, jqXHR) {
|
|
if (data.ret === "yes") {
|
|
$("[data-name=user_uid]").append($("<option></option>").attr("value", user_uid).attr("data-row", user_uid).text(user_name));
|
|
|
|
$("[data-name=user_uid]").append($("<option></option>").attr("value", "").attr("data-row", "").text("請選擇成員"));
|
|
|
|
if (data.userlist.length > 0) {
|
|
$.each(data.userlist, function (i, item) {
|
|
if (item.user_uid !== user_uid) {
|
|
$("[data-name=user_uid]").append($("<option></option>").attr("value", item.user_uid).attr("data-row", item.user_uid).text(item.user_name));
|
|
}
|
|
});
|
|
}
|
|
|
|
$("[data-name=user_uid]").attr("disabled", true);
|
|
$("[data-name=user-del]").css("display", "none");
|
|
|
|
var formData = {
|
|
project_uid: uid,
|
|
method: 'get'
|
|
};
|
|
|
|
$.ajax({
|
|
url: "api/projectData.ashx",
|
|
type: "POST",
|
|
data: formData,
|
|
success: function (data, textStatus, jqXHR) {
|
|
if (data.ret === "yes") {
|
|
|
|
var projData = data.data;
|
|
|
|
$('#project_name').val(projData.project_name).trigger("change");
|
|
$('#project_descript').val(projData.project_descript);
|
|
|
|
if (projData.project_dateLimit === 'Y') {
|
|
$('#project_limited').prop('checked', true);
|
|
setLimitedStatus();
|
|
|
|
$('#project_enddate').val(moment.utc(projData.project_endDate).format('YYYY/MM/DD')).change();
|
|
$('#project_endToRedirect').val(projData.project_endToRedirect).trigger("change");
|
|
} else {
|
|
$('#project_limited').prop('checked', false);
|
|
setLimitedStatus();
|
|
}
|
|
|
|
$.each(projData.project_users, function (i, item) {
|
|
var clonedEle;
|
|
if (i === 0) {
|
|
clonedEle = $("#nestable02 .dd-list .dd-item:first");
|
|
clonedEle.attr("data-id", item.user_uid);
|
|
|
|
|
|
clonedEle.find("[data-name=user_uid]").prop("disabled", true);
|
|
|
|
clonedEle.find("[data-name=user_uid]").val(item.user_uid);
|
|
clonedEle.find("[data-name=user-del]").css("display", "none");
|
|
|
|
} else {
|
|
clonedEle = $("#nestable02 .dd-list .dd-item:first").clone();
|
|
clonedEle.attr("data-mark", "111");
|
|
clonedEle.attr("data-id", item.user_uid);
|
|
|
|
clonedEle.find("[data-name=user_uid]").prop("disabled", true);
|
|
clonedEle.find("[data-name=user-del]").css("display", "");
|
|
|
|
clonedEle.find("[data-name=user_uid]").val(item.user_uid);
|
|
|
|
$("#nestable02 .dd-list").append(clonedEle);
|
|
}
|
|
});
|
|
|
|
$('#project_apiId').val(projData.project_apiId).trigger("change");
|
|
$('#project_apiKey').val(projData.project_apiKey).trigger("change");
|
|
|
|
$.each(projData.projectApi_domains, function (i, item) {
|
|
$("#projectApiDomain_name").val($("#projectApiDomain_name").val() + item.projectApiDomain_address + "\n");
|
|
});
|
|
|
|
$.each(projData.projectApi_ips, function (i, item) {
|
|
$("#projectApiDomain_ip").val($("#projectApiDomain_ip").val() + item.projectApiDomain_address + "\n");
|
|
});
|
|
|
|
if (user_perm === 'N') {
|
|
$('#saveBtn').prop('disabled', true);
|
|
} else {
|
|
$('#saveBtn').prop('disabled', false);
|
|
}
|
|
|
|
$('#myModal').modal('toggle');
|
|
} else {
|
|
alert(data.message);
|
|
}
|
|
},
|
|
error: function (jqXHR, textStatus, errorThrown) {
|
|
alert('网絡或伺服器发生错误,请稍后重试!');
|
|
$('#myModal').modal('toggle');
|
|
}
|
|
});
|
|
} else {
|
|
alert(data.message);
|
|
}
|
|
},
|
|
error: function (jqXHR, textStatus, errorThrown) {
|
|
alert('网絡或伺服器发生错误,请稍后重试!');
|
|
}
|
|
});
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
function urlTableButtonClick(obj) {
|
|
var type = obj.getAttribute('data-method');
|
|
var uid = obj.getAttribute('data-uid');
|
|
tr = $(this).parents("tr");
|
|
urlTable = $('#myUrlTable').dataTable();
|
|
var rowID = $('#' + uid);
|
|
urlPos = urlTable.fnGetPosition($('#' + uid)[0]);
|
|
|
|
urlRow = urlTable.api().row(rowID);
|
|
|
|
$("#url_uid").val(uid);
|
|
|
|
if (type === 'del') {
|
|
if (confirm('確定刪除此短網址? 刪除後,此短網址將失效!')) {
|
|
var formData = {
|
|
project_uid: $('#selected_project_uid').val(),
|
|
url_uid: uid,
|
|
method: 'delete'
|
|
};
|
|
|
|
$.ajax({
|
|
url: "api/urlData.ashx",
|
|
type: "POST",
|
|
data: formData,
|
|
success: function (data, textStatus, jqXHR) {
|
|
if (data.ret === "yes") {
|
|
var row = urlTable.api().row(rowID).remove().draw(false);
|
|
alert('刪除成功');
|
|
} else {
|
|
alert(data.message);
|
|
}
|
|
},
|
|
error: function (jqXHR, textStatus, errorThrown) {
|
|
alert('网絡或伺服器发生错误,请稍后重试!');
|
|
}
|
|
});
|
|
}
|
|
}
|
|
|
|
if (type === 'edit') {
|
|
$('#url_method').val('edit');
|
|
$("#url_uid").val(uid);
|
|
|
|
var formData = {
|
|
url_uid: uid,
|
|
method: 'get'
|
|
};
|
|
|
|
$.ajax({
|
|
url: "api/urlData.ashx",
|
|
type: "POST",
|
|
data: formData,
|
|
success: function (data, textStatus, jqXHR) {
|
|
if (data.ret === "yes") {
|
|
$('#uploadList').hide();
|
|
|
|
var urlData = data.data;
|
|
|
|
$('#url_code').prop('readonly', true);
|
|
|
|
$('#url_descript').val(urlData.url_descript).trigger("change");
|
|
$('#url_code').val(urlData.url_Code).trigger('change');
|
|
$('#url_directToUrl').val(urlData.url_directToUrl).trigger("change");
|
|
|
|
if (urlData.url_gifTag === 'Y') {
|
|
$('#url_gifTag').prop("checked", true);
|
|
$('#url_gifLink').val(urlData.url_gifLink);
|
|
} else {
|
|
$('#url_gifTag').prop("checked", false);
|
|
$('#url_gifLink').val('');
|
|
}
|
|
|
|
if (urlData.url_fbTag === 'Y') {
|
|
$('#url_fbTag').prop("checked", true);
|
|
$('#url_fbTitle').val(urlData.url_fbTitle);
|
|
$('#url_fbDescript').val(urlData.url_fbDescript);
|
|
$('#url_fbImage_image').slim('load', urlData.url_fbImageUrl);
|
|
$('#url_fbImage_oldimage').val(urlData.url_fbImageUrl);
|
|
|
|
if (urlData.url_playBtn === 'Y') {
|
|
$('#url_playBtn').prop("checked", true);
|
|
} else {
|
|
$('#url_playBtn').prop("checked", false);
|
|
}
|
|
} else {
|
|
$('#url_fbTag').prop("checked", false);
|
|
$('#url_fbTitle').val('');
|
|
$('#url_fbDescript').val('');
|
|
$('#url_fbImage_image').slim('remove');
|
|
$('#url_fbImage_oldimage').val('');
|
|
$('#url_playBtn').prop("checked", false);
|
|
}
|
|
|
|
if (urlData.url_fbPixel === 'Y') {
|
|
$('#url_fbPixel').prop("checked", true);
|
|
$('#url_fbPixelCode').val(urlData.url_fbPixelCode);
|
|
} else {
|
|
$('#url_fbPixel').prop("checked", false);
|
|
$('#url_fbPixelCode').val('');
|
|
}
|
|
|
|
if (urlData.url_googleAds === 'Y') {
|
|
$('#url_googleAds').prop("checked", true);
|
|
$('#url_googleAwConversionId').val(urlData.url_googleAwConversionId);
|
|
} else {
|
|
$('#url_googleAds').prop("checked", false);
|
|
$('#url_googleAwConversionId').val('');
|
|
}
|
|
|
|
if (urlData.url_uploadFile === 'Y') {
|
|
$('#url_upload').prop("checked", true).trigger('change');
|
|
$('#uploadFileLinkName').val(urlData.url_uploadFileLinkName);
|
|
$('#uploadFileClientName').val(urlData.url_uploadFileClientName);
|
|
$('#uploadFileType').val(urlData.url_uploadFileType);
|
|
$('#uploadFileUrl').val(urlData.fileUrl);
|
|
|
|
if (urlData.url_uploadFileType == "application/pdf") {
|
|
$('#filespan').attr("class", "fa fa-file-pdf");
|
|
} else {
|
|
$('#filespan').attr("class", "fa fa-file-image");
|
|
}
|
|
|
|
$('#filebody').html("<a href='" + urlData.fileUrl + "' target='_blank'>" + urlData.url_uploadFileClientName + "</a>");
|
|
}
|
|
|
|
$('#url_gifLink').change();
|
|
$('#url_fbPixelCode').change();
|
|
$('#url_googleAwConversionId').change();
|
|
|
|
setGifTagStatus();
|
|
setFbTagStatus();
|
|
setFbPixelStatus();
|
|
setGoogleAdStatus();
|
|
setUploadStatus();
|
|
$('#myUrlModal').modal('toggle');
|
|
} else {
|
|
alert(data.message);
|
|
}
|
|
|
|
|
|
},
|
|
error: function (jqXHR, textStatus, errorThrown) {
|
|
alert('网絡或伺服器发生错误,请稍后重试!');
|
|
$('#myUrlModal').modal('toggle');
|
|
}
|
|
});
|
|
}
|
|
|
|
if (type === 'data') {
|
|
$('#range_date').change();
|
|
|
|
var s = moment().subtract(7, 'days').format("YYYY/MM/DD");
|
|
var d = moment().format("YYYY/MM/DD");
|
|
|
|
$("#startDate").val(s);
|
|
$("#endDate").val(d);
|
|
|
|
$("#count_uid").val(uid);
|
|
|
|
load_count();
|
|
|
|
$('#myDataModal').modal('toggle');
|
|
}
|
|
}
|
|
|
|
$("#addMember").click(function () {
|
|
|
|
|
|
var clonedEle = $("#nestable02 .dd-list .dd-item:first").clone();
|
|
|
|
clonedEle.attr("data-id", "111");
|
|
clonedEle.attr("data-mark", "111");
|
|
clonedEle.find("[data-name=user_uid] option[value='" + user_uid + "']").remove();
|
|
clonedEle.find("[data-name=user_uid]").prop("disabled", false);
|
|
clonedEle.find("[data-name=user-del]").css("display", "");
|
|
|
|
$("#nestable02 .dd-list").append(clonedEle);
|
|
});
|
|
|
|
$("#saveBtn").click(function () {
|
|
var errmsg = "";
|
|
|
|
var method = $('#method').val();
|
|
var project_name = $('#project_name').val();
|
|
var project_uid = $('#project_uid').val();
|
|
var project_descript = $('#project_descript').val();
|
|
var project_dateLimit = 'N';
|
|
var project_enddate = '';
|
|
var project_endToRedirect = '';
|
|
var project_apiId = $('#project_apiId').val();
|
|
var project_apiKey = $('#project_apiKey').val();
|
|
|
|
var domainArray = $("#projectApiDomain_name").val().split("\n");
|
|
var domainList = JSON.stringify(domainArray);
|
|
|
|
var ipArray = $("#projectApiDomain_ip").val().split("\n");
|
|
var ipList = JSON.stringify(ipArray);
|
|
var userList = [];
|
|
|
|
$("#nestable02 .dd-list .dd-item").each(function () {
|
|
item = {};
|
|
|
|
var user_uid = $(this).find("[data-name='user_uid']").val();
|
|
|
|
if (user_uid === "") {
|
|
errmsg += "沒有選擇成員! \n";
|
|
}
|
|
|
|
item["user_uid"] = user_uid;
|
|
|
|
userList.push(item);
|
|
});
|
|
|
|
var set = new Set();
|
|
|
|
var result = userList.filter(item => !set.has(item["user_uid"]) ? set.add(item["user_uid"]) : false);
|
|
|
|
if (result.length !== userList.length) {
|
|
errmsg += "成員有重複! 請確認! \n";
|
|
}
|
|
|
|
var userJson = JSON.stringify(userList);
|
|
|
|
if ($('#project_limited').prop('checked')) {
|
|
project_dateLimit = 'Y';
|
|
project_enddate = $('#project_enddate').val();
|
|
project_endToRedirect = $('#project_endToRedirect').val();
|
|
|
|
if (project_endToRedirect === '') {
|
|
errmsg += '請輸入專案結束導向網址!\n';
|
|
}
|
|
}
|
|
|
|
if (project_name === '') {
|
|
errmsg += '請輸入專案名稱!\n';
|
|
}
|
|
|
|
var delUserJson = "";
|
|
|
|
if (method === "edit") {
|
|
delUserJson = JSON.stringify(deledUsers);
|
|
}
|
|
|
|
if (errmsg.length > 0) {
|
|
alert(errmsg);
|
|
return;
|
|
}
|
|
|
|
var formData = {
|
|
method: method,
|
|
project_name: project_name,
|
|
project_uid: project_uid,
|
|
project_descript: project_descript,
|
|
project_dateLimit: project_dateLimit,
|
|
project_enddate: project_enddate,
|
|
project_endToRedirect: project_endToRedirect,
|
|
project_apiId: project_apiId,
|
|
project_apiKey: project_apiKey,
|
|
domainList: domainList,
|
|
ipList: ipList,
|
|
userList: userJson,
|
|
delUserJson: delUserJson
|
|
};
|
|
|
|
$.ajax({
|
|
url: "api/projectData.ashx",
|
|
type: "POST",
|
|
data: formData,
|
|
success: function (data, textStatus, jqXHR) {
|
|
if (data.ret === "yes") {
|
|
|
|
if (method === "add") {
|
|
alert('新增成功');
|
|
$('#myModal').modal('toggle');
|
|
|
|
var obj = data.data;
|
|
projectTable.fnAddData(obj);
|
|
}
|
|
|
|
if (method === "edit") {
|
|
waitingDialog.hide();
|
|
alert('儲存完成');
|
|
|
|
$('#myModal').modal('toggle');
|
|
|
|
var obj = data.data;
|
|
|
|
projectTable.fnUpdate(obj, projectPos);
|
|
waitingDialog.hide();
|
|
}
|
|
} else {
|
|
alert(data.message);
|
|
}
|
|
},
|
|
error: function (jqXHR, textStatus, errorThrown) {
|
|
alert('网絡或伺服器发生错误,请稍后重试!');
|
|
waitingDialog.hide();
|
|
}
|
|
});
|
|
});
|
|
|
|
$("#saveUrlBtn").click(function () {
|
|
var errmsg = "";
|
|
|
|
var method = $('#url_method').val();
|
|
var url_uid = $('#url_uid').val();
|
|
var project_uid = $('#selected_project_uid').val();
|
|
var url_descript = $('#url_descript').val();
|
|
var url_directToUrl = $('#url_directToUrl').val();
|
|
var url_Code = $('#url_code').val();
|
|
var url_gifTag = "N";
|
|
var url_gifLink = "";
|
|
var url_fbTag = "N";
|
|
var url_fbTitle = "";
|
|
var url_fbDescript = "";
|
|
var url_playBtn = "N";
|
|
var url_fbPixel = "N";
|
|
var url_fbPixelCode = "";
|
|
var url_googleAds = "N";
|
|
var url_googleAwConversionId = "";
|
|
var url_uploadFile = "N";
|
|
var url_uploadFileClientName = "";
|
|
var url_uploadFileLinkName = "";
|
|
var url_uploadFileType = "";
|
|
var uploadFileUrl = $('#uploadFileUrl').val();
|
|
var fbImage_JsonData;
|
|
var fbImage_Data;
|
|
|
|
if (/^([0-9a-zA-Z]+[0-9a-zA-Z\_\-]+[0-9a-zA-Z]+)$/.test(url_Code) === false) {
|
|
errmsg += '短網址參數限定大小寫英文與 _(底線) 符號組成,且符號不得於字首與字尾!\n';
|
|
}
|
|
|
|
if ($('#url_gifTag').prop('checked')) {
|
|
url_gifTag = "Y";
|
|
url_gifLink = $('#url_gifLink').val();
|
|
}
|
|
|
|
if ($('#url_fbPixel').prop('checked')) {
|
|
url_fbPixel = "Y";
|
|
url_fbPixelCode = $('#url_fbPixelCode').val();
|
|
}
|
|
|
|
if ($('#url_googleAds').prop('checked')) {
|
|
url_googleAds = "Y";
|
|
url_googleAwConversionId = $('#url_googleAwConversionId').val();
|
|
}
|
|
|
|
if ($('#url_upload').prop('checked')) {
|
|
url_uploadFile = "Y";
|
|
url_uploadFileClientName = $('#uploadFileClientName').val();
|
|
url_uploadFileLinkName = $('#uploadFileLinkName').val();
|
|
url_uploadFileType = $('#uploadFileType').val();
|
|
}
|
|
|
|
if ($('#url_fbTag').prop('checked')) {
|
|
url_fbTag = "Y";
|
|
url_fbTitle = $('#url_fbTitle').val();
|
|
url_fbDescript = $('#url_fbDescript').val();
|
|
|
|
fbImage_JsonData = $('#url_fbImage_image').slim('data');
|
|
fbImage_Data = $('#url_fbImage_image').slim('dataBase64');
|
|
|
|
var picSplit = $('[data-name=url_fbImage_oldimage]').attr("img_src").split("/");
|
|
var oldname = picSplit[picSplit.length - 1];
|
|
|
|
if (fbImage_JsonData[0].input.name !== oldname) {
|
|
$('#url_fbImage_image').slim('data')[0].meta.picChange = "Y";
|
|
fbImage_Data = $('#url_fbImage_image').slim('dataBase64');
|
|
}
|
|
|
|
if ($('#url_playBtn').prop('checked')) {
|
|
url_playBtn = "Y";
|
|
}
|
|
}
|
|
|
|
if (url_fbTag === 'Y') {
|
|
if (url_fbTitle === '') {
|
|
errmsg += '無FB預覽標題!\n';
|
|
}
|
|
|
|
if (url_fbDescript === '') {
|
|
errmsg += '無FB預覽描述內容!\n';
|
|
}
|
|
|
|
if (fbImage_JsonData[0].input.name === null) {
|
|
errmsg += "請挑選一張FB預覽圖片!\n";
|
|
}
|
|
|
|
console.log(fbImage_JsonData[0].input.name);
|
|
|
|
}
|
|
|
|
if (url_fbPixel === 'Y' && url_fbPixelCode === '') {
|
|
errmsg += '無FB 像素編號!\n';
|
|
}
|
|
|
|
if (url_googleAds === 'Y' && url_googleAwConversionId === '') {
|
|
errmsg += '無Google Adwords代碼!\n';
|
|
}
|
|
|
|
if (method === '') {
|
|
errmsg += '無方法值!\n';
|
|
}
|
|
|
|
if (project_uid === '') {
|
|
errmsg += '無project_uid!\n';
|
|
}
|
|
|
|
if (url_descript === '') {
|
|
errmsg += '無短網址說明!\n';
|
|
}
|
|
|
|
if (url_directToUrl === '') {
|
|
errmsg += '無目的地網址!\n';
|
|
}
|
|
|
|
if (url_Code === '') {
|
|
errmsg += '無短網址碼!\n';
|
|
}
|
|
|
|
if (errmsg.length > 0) {
|
|
alert(errmsg);
|
|
return;
|
|
}
|
|
|
|
if (url_uploadFile == 'Y' && (url_directToUrl != uploadFileUrl)) {
|
|
alert("要縮短的網址與所上傳的pdf或照片網址不同!");
|
|
return;
|
|
}
|
|
|
|
waitingDialog.show('載入中...', {
|
|
dialogSize: 'lg',
|
|
progressType: 'info'
|
|
});
|
|
|
|
setTimeout(function () {
|
|
waitingDialog.hide();
|
|
}, 5000);
|
|
|
|
var formData = {
|
|
method: method,
|
|
url_uid: url_uid,
|
|
project_uid: project_uid,
|
|
url_descript: url_descript,
|
|
url_directToUrl: url_directToUrl,
|
|
url_Code: url_Code,
|
|
url_gifTag: url_gifTag,
|
|
url_gifLink: url_gifLink,
|
|
url_fbTag: url_fbTag,
|
|
url_fbTitle: url_fbTitle,
|
|
url_fbDescript: url_fbDescript,
|
|
url_playBtn: url_playBtn,
|
|
url_fbPixel: url_fbPixel,
|
|
url_fbPixelCode: url_fbPixelCode,
|
|
url_googleAds: url_googleAds,
|
|
url_googleAwConversionId: url_googleAwConversionId,
|
|
url_uploadFile: url_uploadFile,
|
|
url_uploadFileClientName: url_uploadFileClientName,
|
|
url_uploadFileLinkName: url_uploadFileLinkName,
|
|
url_uploadFileType: url_uploadFileType,
|
|
pic_data: JSON.stringify(fbImage_Data)
|
|
};
|
|
|
|
$.ajax({
|
|
url: "api/urlData.ashx",
|
|
type: "POST",
|
|
data: formData,
|
|
success: function (data, textStatus, jqXHR) {
|
|
if (data.ret === "yes") {
|
|
urlTable = $('#myUrlTable').dataTable();
|
|
|
|
if (method === "add") {
|
|
alert('新增成功');
|
|
$('#myUrlModal').modal('toggle');
|
|
|
|
var obj = data.data;
|
|
urlTable.fnAddData(obj);
|
|
}
|
|
|
|
if (method === "edit") {
|
|
alert('儲存完成');
|
|
|
|
$('#myUrlModal').modal('toggle');
|
|
|
|
var obj = data.data;
|
|
|
|
urlTable.fnUpdate(obj, urlPos);
|
|
|
|
}
|
|
} else {
|
|
alert(data.message);
|
|
waitingDialog.hide();
|
|
}
|
|
|
|
waitingDialog.hide();
|
|
},
|
|
error: function (jqXHR, textStatus, errorThrown) {
|
|
alert('网絡或伺服器发生错误,请稍后重试!');
|
|
waitingDialog.hide();
|
|
}
|
|
});
|
|
});
|
|
|
|
$('#countBtn').click(function () {
|
|
load_count();
|
|
});
|
|
|
|
$('#countExcelBtn').click(function () {
|
|
var startDate = $('#startDate').val();
|
|
var endDate = $('#endDate').val();
|
|
var type = $('#range_type').val();
|
|
var url_uid = $("#count_uid").val();
|
|
|
|
var url = "api/exportCountReport.ashx?type=" + type + "&startDate=" + startDate + "&endDate=" + endDate + "&url_uid=" + url_uid;
|
|
window.open(url);
|
|
|
|
|
|
});
|
|
});
|
|
|
|
function load_count() {
|
|
waitingDialog.show('載入中...', {
|
|
dialogSize: 'lg',
|
|
progressType: 'info'
|
|
});
|
|
|
|
setTimeout(function () {
|
|
waitingDialog.hide();
|
|
}, 500);
|
|
|
|
var startDate = $('#startDate').val();
|
|
var endDate = $('#endDate').val();
|
|
var type = $('#range_type').val();
|
|
var url_uid = $("#count_uid").val();
|
|
|
|
var formData = {
|
|
type: type,
|
|
url_uid: url_uid,
|
|
startDate: startDate,
|
|
endDate: endDate
|
|
};
|
|
|
|
$.ajax({
|
|
url: "api/getCountData.ashx",
|
|
type: "POST",
|
|
data: formData,
|
|
success: function (data, textStatus, jqXHR) {
|
|
if (data.ret === "yes") {
|
|
$("#total_list [data-mark=111]").remove();
|
|
|
|
urlTable = $('#myUrlTable').dataTable();
|
|
|
|
$.each(data.data, function (i, item) {
|
|
var clonedEle = $("#total_list .list-group-item:first").clone();
|
|
clonedEle.attr("data-mark", "111");
|
|
clonedEle.css("display", "");
|
|
clonedEle.find("[class=list-group-item-text]").text(item.title);
|
|
clonedEle.find("[data-name='total_num']").text(item.num);
|
|
|
|
$("#total_list").append(clonedEle);
|
|
});
|
|
} else {
|
|
alert(data.message);
|
|
}
|
|
|
|
waitingDialog.hide();
|
|
},
|
|
error: function (jqXHR, textStatus, errorThrown) {
|
|
alert('网絡或伺服器发生错误,请稍后重试!');
|
|
waitingDialog.hide();
|
|
}
|
|
});
|
|
}
|
|
|
|
function item_del(obj) {
|
|
|
|
if (confirm('確定刪除此項目資料?')) {
|
|
var eleID = $(obj).closest('[class=dd]').attr('id');
|
|
|
|
if (eleID === "nestable02") {
|
|
var delID = $(obj).closest('[class=dd-item]').find("[data-name=user_uid]").val();
|
|
item = {};
|
|
|
|
item["user_uid"] = delID;
|
|
|
|
deledUsers.push(item);
|
|
}
|
|
|
|
$(obj).closest('[class=dd-item]').find("");
|
|
$(obj).closest('[class=dd-item]').remove();
|
|
}
|
|
}
|
|
|
|
function readURL(input) {
|
|
var errmsg = '';
|
|
|
|
|
|
$.each(input.files, function (index) {
|
|
var reader = new FileReader();
|
|
|
|
reader.onload = function (e) {
|
|
|
|
|
|
|
|
var picFile = e.target.result;
|
|
var filename = e.target.fileName;
|
|
var filetype = e.target.result.split(',')[0].split(';')[0].split(':')[1];
|
|
|
|
var formData = {
|
|
picFile: picFile,
|
|
filename: filename,
|
|
filetype: filetype
|
|
}
|
|
|
|
|
|
$.ajax({
|
|
url: "api/uploadPDFImage.ashx",
|
|
type: "POST",
|
|
data: formData,
|
|
success: function (data, textStatus, jqXHR) {
|
|
if (data.ret === "yes") {
|
|
|
|
|
|
$('#uploadList').show();
|
|
|
|
|
|
|
|
$('#filebody').html("<a href='" + data.fileUrl + "' target='_blank'>" + data.fileName + "</a>");
|
|
|
|
|
|
if (data.fileType == "application/pdf") {
|
|
$('#filespan').attr("class", "fa fa-file-pdf");
|
|
} else {
|
|
$('#filespan').attr("class", "fa fa-file-image");
|
|
}
|
|
|
|
$("#uploadFileBase64").val(e.target.result);
|
|
$("#uploadFileLinkName").val(data.fileLinkName);
|
|
$("#uploadFileType").val(data.fileType);
|
|
$("#uploadFileClientName").val(data.fileName);
|
|
$("#uploadFileUrl").val(data.fileUrl);
|
|
$("#url_directToUrl").val(data.fileUrl).trigger('change');
|
|
|
|
} else {
|
|
alert(data.message);
|
|
}
|
|
},
|
|
error: function (jqXHR, textStatus, errorThrown) {
|
|
alert('网絡或伺服器发生错误,请稍后重试!');
|
|
waitingDialog.hide();
|
|
}
|
|
});
|
|
|
|
|
|
|
|
|
|
|
|
//clonedEle.find("[class=media-body]").html('<a href="javascript: void(0);" onclick="_base64View(this);">' + filename + '</a>');
|
|
//clonedEle.find("[data-name=file_pdfpng_base64]").val(e.target.result);
|
|
//clonedEle.find("[data-name=file_pdfpng_filetype]").val(filetype);
|
|
//clonedEle.find("[data-name=file_pdfpng_filename]").val(filename);
|
|
|
|
//$("#files_list .dd-list").append(clonedEle);
|
|
};
|
|
|
|
reader.fileName = input.files[index].name;
|
|
reader.readAsDataURL(input.files[index]);
|
|
});
|
|
} |