canto-1.0.x-dev/canto_assets/main.js
canto_assets/main.js
/**
* This file is downloaded from canto and modifies slightly for drupal use.
* @see https://support.canto.com/helpdesk/attachments/9125659569.
*/
var cantoViewDom = {};
var _accessToken = "";
var _refreshToken = "";
var _tokenType = "";
var _tenants = "randy.flightbycanto.com";
var cantoAPI = {};
var _APIHeaders = {};
var self = {};
var searchedBy = ""; //bySearch bytree ''
var currentImageList = [];
var singleCountLoad = 50;
var apiNextStart = 0;
var isLoadingComplete = false;
var _formatDistrict = '';
/* -----------------canto API start-------------------------------------------------------------*/
function setToken(tokenInfo) {
_accessToken = tokenInfo.accessToken;
_tenants = tokenInfo.refreshToken;
_tokenType = tokenInfo.tokenType;
_APIHeaders = {
"Authorization": _tokenType + " " + _accessToken,
"Content-Type": "application/x-www-form-urlencoded"
};
_formatDistrict = tokenInfo.formatDistrict;
}
cantoAPI.loadTree = function (callback) {
var url = "https://" + _tenants + "/api/v1/tree?sortBy=name&sortDirection=ascending&layer=1";
$.ajax({
headers: _APIHeaders,
type: "GET",
url: url,
async: true,
error: function (request) {
alert("load tree error");
},
success: function (data) {
callback(data.results);
}
});
};
cantoAPI.loadSubTree = function (treeID, callback) {
// var defer = $.Deferred();
var url = "https://" + _tenants + "/api/v1/tree/" + treeID;
$.ajax({
headers: _APIHeaders,
type: "GET",
url: url,
async: true,
error: function (request) {
alert("load tree error");
},
success: function (data) {
callback(data.results);
// defer.resolve(data);
}
});
};
cantoAPI.getListByAlbum = function (albumID, callback) {
if (isLoadingComplete) {
return;
}
var filterString = loadMoreHandler();
var url = "https://" + _tenants + "/api/v1/album/" + albumID + "?" + filterString;
$.ajax({
type: "GET",
headers: _APIHeaders,
url: url,
// data: data,
async: true,
error: function (request) {
alert("load list error");
},
success: function (data) {
currentImageList.push.apply(currentImageList, data.results);
if (!data.start) {
data.start = 0;
}
if (data.found - data.limit <= data.start) {
isLoadingComplete = true;
} else {
isLoadingComplete = false;
}
apiNextStart = data.start + data.limit + 1;
$("#loadingMore").delay(1500).fadeOut("slow");
callback(data.results);
}
});
};
cantoAPI.getRedirectURL = function (previewURL, ID) {
if (!(previewURL && ID)) return;
var url = previewURL + 'URI';
$.ajax({
type: "GET",
headers: _APIHeaders,
url: url,
error: function (request) {
},
success: function (data) {
$("img#" + ID).attr('src', data);
}
});
};
cantoAPI.getListByScheme = function (scheme, callback) {
if (isLoadingComplete) {
return;
}
var filterString = loadMoreHandler();
var url = "https://" + _tenants + "/api/v1/" + scheme + "?" + filterString;
$.ajax({
type: "GET",
headers: _APIHeaders,
url: url,
// data: data,
async: false,
error: function (request) {
alert("load list error");
},
success: function (data) {
currentImageList.push.apply(currentImageList, data.results);
if (!data.start) {
data.start = 0;
}
if (data.found - data.limit <= data.start) {
isLoadingComplete = true;
} else {
isLoadingComplete = false;
}
apiNextStart = data.start + data.limit + 1;
$("#loadingMore").delay(1500).fadeOut("slow");
callback(data.results);
}
});
};
cantoAPI.getImageDetail = async (contentID, scheme) => {
var url = "https://" + _tenants + "/api/v1/" + scheme + "/" + contentID;
const settings = {
method: 'GET',
headers: _APIHeaders
};
try {
const fetchResponse = await fetch(url, settings);
const data = await fetchResponse.json();
return data;
} catch (e) {
console.log(e);
}
}
cantoAPI.getDetail = function (contentID, scheme, callback) {
var url = "https://" + _tenants + "/api/v1/" + scheme + "/" + contentID;
$.ajax({
type: "GET",
headers: _APIHeaders,
url: url,
// data: data,
async: true,
error: function (request) {
alert("load detail error");
},
success: function (data) {
callback(data);
}
});
};
cantoAPI.getFilterList = function (data, callback) {
if (isLoadingComplete) {
return;
}
var filterString = loadMoreHandler();
var url = "https://" + _tenants + "/api/v1/search" + "?" + filterString;
url = url + "&keyword=" + data.keywords;
if (data.scheme != "allfile") {
url = url + "&scheme=" + data.scheme;
}
$.ajax({
type: "GET",
headers: _APIHeaders,
url: url,
// data: data,
async: false,
error: function (request) {
alert("load detail error");
},
success: function (data) {
currentImageList.push.apply(currentImageList, data.results);
if (!data.start) {
data.start = 0;
}
if (data.found - data.limit <= data.start) {
isLoadingComplete = true;
} else {
isLoadingComplete = false;
}
apiNextStart = data.start + data.limit + 1;
$("#loadingMore").delay(1500).fadeOut("slow");
callback(data.results);
}
});
};
cantoAPI.logout = function () {
//clear cookie and trun to login page.
var targetWindow = parent;
var data = {};
data.type = "cantoLogout";
targetWindow.postMessage(data, '*');
};
cantoAPI.insertImage = function (imageArray) {
//clear cookie and trun to login page.
if (!(imageArray && imageArray.length)) {
return;
}
// Canto Connector: Get the assets detail.
let details = [];
imageArray.forEach((data, i) => {
details[i] = data.detailData
});
var data = {};
data.type = "cantoInsertImage";
data.assetList = [];
var url = "https://" + _tenants + "/api_binary/v1/batch/directuri";
$.ajax({
type: "POST",
headers: {"Authorization": _tokenType + " " + _accessToken},
dataType: "json",
contentType: "application/json; charset=utf-8",
url: url,
data: JSON.stringify(imageArray),
async: true,
error: function (request) {
alert("get original Url error");
},
success: function (resp) {
for (var i = 0; i < resp.length; i++) {
for (var j = 0; j < imageArray.length; j++) {
if (resp[i].id == imageArray[j].id)
resp[i].size = imageArray[j].size;
// Canto Connector: save the detail.
resp[i].detailData = details[i];
}
}
data.assetList = resp;
var targetWindow = parent;
targetWindow.postMessage(data, '*');
}
});
};
/* -----------------canto API end--------------------------------------------------------*/
$(document).ready(function () {
self = $("#cantoViewBody");
getFrameDom();
addEventListener();
getTokenInfo();
window.onmessage = function (event) {
var data = event.data;
tokenInfo = data;
if (tokenInfo && tokenInfo.accessToken && tokenInfo.accessToken.length > 0) {
setToken(tokenInfo);
treeviewDataHandler();
//init -- get image list
var initSchme = self.find(".type-font.current").data("type");
self.find("#globalSearch input").val("");
getImageInit(initSchme);
}
};
});
function getTokenInfo() {
var targetWindow = parent;
var data = {};
data.type = "getTokenInfo";
targetWindow.postMessage(data, '*');
}
function getFrameDom() {
var parentDocument = document;
var contentIframe = document.getElementsByClassName('canto-uc-subiframe')[0];
if (contentIframe) {
parentDocument = contentIframe.contentDocument;
}
cantoViewDom = parentDocument;
}
function addEventListener() {
document.addEventListener('sendTokenInfo', function (e) {
var tokenInfo = e.data;
_accessToken = tokenInfo.accessToken;
_refreshToken = tokenInfo.refreshToken;
_tokenType = tokenInfo.tokenType;
});
$(document).off('click').on("click", "#treeviewSwitch", function (e) {
if ($('#treeviewSection').hasClass("expanded")) {
$('#treeviewSection').stop().animate({
left: '-20%'
});
$('#cantoImageBody').stop().animate({
width: '100%',
left: '0'
}, imageResize);
$('#treeviewSection').removeClass("expanded");
$("#loadingMore").addClass("no-treeview");
$("#noItem").addClass("no-treeview");
$(".max-select-tips").addClass("no-treeview");
} else {
$('#treeviewSection').stop().animate({
left: '0px'
});
$('#cantoImageBody').stop().animate({
width: '80%',
left: '20%'
}, imageResize);
$('#treeviewSection').addClass("expanded");
$("#loadingMore").removeClass("no-treeview");
$("#noItem").removeClass("no-treeview");
$(".max-select-tips").removeClass("no-treeview");
}
})
.on("click", ".type-font", function (e) {
$(".type-font").removeClass("current");
$(this).addClass("current");
var type = $(this).data("type");
if (searchedBy == "bytree") {
imageListDisplay(currentImageList);
} else {
var data = {};
data.scheme = self.find(".type-font.current").data("type");
data.keywords = self.find("#globalSearch input").val();
self.find("#imagesContent").html("");
self.find("#imagesContent").scrollTop(0);
currentImageList = [];
cantoAPI.getFilterList(data, imageListDisplay);
}
})
.on("click", "#selectAllBtn", function (e) {
// var isAllSelectedMode = $(this).hasClass("all-selected");
// if(isAllSelectedMode){
self.find('.single-image .select-box').removeClass("icon-s-Ok2_32");
self.find(".single-image").removeClass("selected");
// } else {
// self.find('.single-image .select-box').addClass("icon-s-Ok2_32");
// self.find(".single-image").addClass("selected");
// }
handleSelectedMode();
})
.on("click", "#insertAssetsBtn", async function (e) {
self.find(".loading-icon").removeClass("hidden");
var assetArray = [];
var selectedArray = self.find(".single-image .icon-s-Ok2_32").closest(".single-image");
for (var i = 0; i < selectedArray.length; i++) {
var obj = {};
// obj.url = $(selectedArray[i]).data("xurl");
// obj.fileName = $(selectedArray[i]).data("name");
obj.id = $(selectedArray[i]).data("id");
obj.scheme = $(selectedArray[i]).data("scheme");
obj.size = $(selectedArray[i]).data("size");
obj.detailData = await cantoAPI.getImageDetail(obj.id,obj.scheme);
assetArray.push(obj)
}
cantoAPI.insertImage(assetArray);
})
.on("click", ".icon-s-Fullscreen", function (e) {
e.cancelBubble = true;
e.stopPropagation();
e.preventDefault();
self.find(".loading-icon").removeClass("hidden");
var targetURL = $(e.currentTarget).closest(".single-image").data("xurl");
// cantoAPI.getOriginalResourceUrl(targetURL, displayFullyImage);
var previewURL = targetURL + "?Authorization=" + _accessToken;
displayFullyImage(previewURL);
})
.on("click", ".single-image", function (e) {
self.find(".loading-icon").removeClass("hidden");
//display image
var targetURL = $(e.currentTarget).closest(".single-image").data("xurl");
var previewURL = targetURL + "?Authorization=" + _accessToken;
var $viewImageModal = self.find("#imageBox");
$viewImageModal.find("img").attr("src", previewURL);
//display detail
var id = $(this).data("id");
var scheme = $(this).data("scheme");
cantoAPI.getDetail(id, scheme, imageNewDetail);
})
.on("click", "#logoutBtn", function (e) {
$(".loading-icon").removeClass("hidden");
cantoAPI.logout();
})
//treeview event
.on("click", "#treeviewSection ul li", function (e) {
e.cancelBubble = true;
e.stopPropagation();
e.preventDefault();
var childList = $(e.currentTarget).children("ul");
// childList.toggleClass("hidden");
if ("treeviewContent" == $(e.currentTarget)[0].id) {
//load init image list.
self.find("#treeviewSection ul li").removeClass("selected");
var initSchme = self.find(".type-font.current").data("type");
self.find("#globalSearch input").val("");
self.find("#imagesContent").html("");
self.find("#imagesContent").scrollTop(0);
currentImageList = [];
searchedBy = "";
isLoadingComplete = false;
getImageInit(initSchme);
} else if (childList && childList.length) {
childList.animate({
height: 'toggle'
});
} else if ($(e.currentTarget).hasClass("no-child")) {
// alert("it's a empty folder.");
} else if ($(e.currentTarget).hasClass("has-sub-folder")) {
subTreeId = $(e.currentTarget).data("id");
$(e.currentTarget).addClass("current-tree-node");
$(e.currentTarget).find(".folder-loading").removeClass("hidden");
$(e.currentTarget).find(".icon-s-Folder_open-20px").addClass("hidden");
cantoAPI.loadSubTree(subTreeId, subTreeRender);
} else {
$("#treeviewSection ul li").removeClass("selected");
$(e.currentTarget).addClass("selected");
self.find("#globalSearch input").val("");
self.find("#imagesContent").html("");
self.find("#imagesContent").scrollTop(0);
currentImageList = [];
isLoadingComplete = false;
searchedBy = "bytree";
var albumId = $(e.currentTarget).data("id");
cantoAPI.getListByAlbum(albumId, imageListDisplay);
}
})
.on("click", "#globalSearchBtn", function (e) {
var value = self.find("#globalSearch input").val();
if (!value) {
//load init image list.
self.find("#treeviewSection ul li").removeClass("selected");
var initSchme = self.find(".type-font.current").data("type");
self.find("#globalSearch input").val("");
self.find("#imagesContent").html("");
self.find("#imagesContent").scrollTop(0);
currentImageList = [];
searchedBy = "";
isLoadingComplete = false;
getImageInit(initSchme);
}
searchedBy = "bySearch";
isLoadingComplete = false;
self.find("#treeviewSection ul li").removeClass("selected");
var initSchme = self.find(".type-font.current").data("type");
var data = {};
data.scheme = initSchme;
data.keywords = value;
self.find("#imagesContent").html("");
self.find("#imagesContent").scrollTop(0);
currentImageList = [];
cantoAPI.getFilterList(data, imageListDisplay);
});
self.find("#cantoImageBody").on("scroll", function () {
if (isScrollToPageBottom() && !isLoadingComplete) {
loadMoreAction();
}
});
var inputObj = self.find("#globalSearch input");
$(inputObj).bind('keyup', function (event) {
if (event.keyCode == "13") {
self.find('#globalSearchBtn').click();
}
});
var imageListSection = self.find("#cantoImageBody");
$(imageListSection).resize(function () {
imageResize();
});
}
function getImageInit(scheme) {
cantoAPI.getListByScheme(scheme, imageListDisplay);
}
function imageListDisplay(imageList) {
var scheme = self.find("#filterSection").find(".current").data("type");
if (!(imageList && imageList.length > 0)) {
return;
}
// var max = imageList.length > 32 ? 32 : imageList.length;
var formatArr = [];
if (_formatDistrict && _formatDistrict.length > 1) {
formatArr = _formatDistrict.split(";");
}
for (var i = 0; i < imageList.length; i++) {
var d = imageList[i];
if (d.scheme == scheme || scheme == "allfile") {
var extension = d.name.substring(d.name.lastIndexOf('.') + 1);
if (formatArr.length && !formatArr.includes(extension)) {
continue;
}
var html = "";
// var url = d.url.preview + "/240?Authorization=" + _accessToken;
var disname = d.name;
if (d.name.length > 150) {
disname = d.name.substr(0, 142) + '...' + d.name.substr(-5);
}
html += '<div class="single-image" data-id="' + d.id + '" data-scheme="' + d.scheme + '" data-xurl="' + d.url.download + '" data-name="' + d.name + '" data-size="' + d.size + '" >';
html += '<img id="' + d.id + '" src="https://s3-us-west-2.amazonaws.com/static.dmc/universal/icon/back.png" alt="' + d.scheme + '">';
html += '<div class="mask-layer"></div>';
html += '<div class="single-image-name">' + disname + '</div>';
//icon-s-Ok2_32
html += '<span class="select-box icon-s-UnselectedCheck_32 "></span><span class="select-icon-background"></span>';
html += '</div>';
self.find("#imagesContent").append(html);
cantoAPI.getRedirectURL(d.url.preview, d.id);
}
}
var currentCount = self.find('.single-image').length;
if (currentCount == 0) {
self.find("#noItem").removeClass("hidden");
} else {
self.find("#noItem").addClass("hidden");
}
var rem = new Array();
self.find('.single-image').hover(function () {
var nameTop = $(this).height() - $(this).find(".single-image-name").height() - 20;
$(this).find('.single-image-name').stop().animate({top: nameTop});
}, function () {
$(this).find('.single-image-name').stop().animate({top: '100%'});
});
self.find('.single-image .select-box').off('click').on('click', function (e) {
e.cancelBubble = true;
e.stopPropagation();
e.preventDefault();
rem.push($(".single-image").index($(this).closest(".single-image")));
if (e.shiftKey) {
var iMin = Math.min(rem[rem.length - 2], rem[rem.length - 1]);
var iMax = Math.max(rem[rem.length - 2], rem[rem.length - 1]);
for (i = iMin; i <= iMax; i++) {
var selectedCount = self.find(".single-image .icon-s-Ok2_32").length;
if (selectedCount >= 5) {
$(".max-select-tips").fadeIn("normal").delay(2000).fadeOut(1000);
return;
}
$(".single-image:eq(" + i + ") .select-box").addClass("icon-s-Ok2_32");
$(".single-image:eq(" + i + ")").addClass("selected");
}
} else {
var selectedCount = self.find(".single-image .icon-s-Ok2_32").length;
if (selectedCount >= 5) {
if (!$(this).hasClass("icon-s-Ok2_32")) {
$(".max-select-tips").fadeIn("normal").delay(2000).fadeOut(1000);
}
$(this).removeClass("icon-s-Ok2_32");
$(this).closest(".single-image").removeClass("selected");
return;
} else {
$(this).toggleClass("icon-s-Ok2_32");
$(this).closest(".single-image").toggleClass("selected");
}
}
handleSelectedMode();
});
imageResize();
handleSelectedMode();
var bodyHeight = $("#cantoImageBody").height();
var documentHeight = $("#imagesContent").height();
if (documentHeight < bodyHeight && !isLoadingComplete) {
loadMoreAction();
}
}
var handleSelectedMode = function () {
var selectedCount = self.find(".single-image .icon-s-Ok2_32").length;
self.find("#selected-count").html(selectedCount);
if (selectedCount) {
self.find("#globalSearch").addClass("hidden");
self.find("#filterSection").addClass("hidden");
self.find("#selectedCountSection").removeClass("hidden");
self.find("#selectedActionSection").removeClass("hidden");
} else {
self.find("#globalSearch").removeClass("hidden");
self.find("#filterSection").removeClass("hidden");
self.find("#selectedCountSection").addClass("hidden");
self.find("#selectedActionSection").addClass("hidden");
}
//toggle isAllSelectedMode
var currentAssetsCount = self.find(".single-image").length;
// if(currentAssetsCount == selectedCount){
self.find("#selectAllBtn").addClass("all-selected");
self.find("#selectAllBtn").attr("title", "Deselect All");
// } else {
// self.find("#selectAllBtn").removeClass("all-selected");
// self.find("#selectAllBtn").attr("title", "Select All");
// }
};
var resetImageURL = function (id, url) {
var imgDom = self.find("#" + id);
var data = "data:image" + url;
imgDom.attr("src", data);
};
function displayFullyImage(src) {
var $viewImageModal = self.find("#viewImageModal");
var $pageMask = self.find("#pageMask");
$viewImageModal.find("img").attr("src", src);
self.find(".loading-icon").addClass("hidden");
$viewImageModal.removeClass("hidden");
$pageMask.removeClass("hidden");
self.find('.view-image-modal .close-btn').off('click').on('click', function () {
$viewImageModal.addClass("hidden");
$pageMask.addClass("hidden");
});
}
function imageDetail(detailData) {
if (detailData) {
self.find("#imageDetailModal_name").html(detailData.name);
self.find("#imageDetailModal_size").html(detailData.size + "KB");
self.find("#imageDetailModal_created").html(dateHandler(detailData.created));
self.find("#imageDetailModal_uploaded").html(dateHandler(detailData.lastUploaded));
self.find("#imageDetailModal_status").html(detailData.approvalStatus);
self.find("#imageDetailModal_ID").html(detailData.id);
self.find("#insertIntoPostBtn").data("downloadurl", detailData.url.download);
var $imageDetailModal = self.find("#imageDetailModal");
self.find(".loading-icon").addClass("hidden");
$imageDetailModal.removeClass("hidden");
self.find('#imageDetailModal .close-btn').off('click').on('click', function () {
$imageDetailModal.addClass("hidden");
});
}
}
function imageNewDetail(detailData) {
var sliceString = function (string, dom, length) {
if (!string) {
$(dom).closest(".detail-item").addClass("hidden");
return "Null";
} else {
$(dom).closest(".detail-item").removeClass("hidden");
}
if (!length) {
length = 150;
}
if (string.length > length) {
$(dom).removeClass("hidden");
return string.slice(0, length) + "...";
} else {
$(dom).addClass("hidden");
return string;
}
};
if (detailData) {
self.find("#imagebox_id").html(detailData.id);
self.find("#imagebox_name").html(detailData.name);
self.find("#imagebox_size").html(Math.round(detailData.size / 1024) + "KB");
self.find("#imagebox_created").html(dateHandler(detailData.created));
self.find("#imagebox_uploaded").html(dateHandler(detailData.lastUploaded));
self.find("#imagebox_status").html(detailData.approvalStatus);
var copyrightMoreDom = $("#imagebox_copyright").closest(".detail-item").find(".more");
self.find("#imagebox_copyright").html(sliceString(detailData.copyright, copyrightMoreDom, 177));
self.find("#imagebox_copyright").data("field", detailData.copyright);
var tactMoreDom = $("#imagebox_tac").closest(".detail-item").find(".more");
self.find("#imagebox_tac").html(sliceString(detailData.termsAndConditions, tactMoreDom, 160));
self.find("#imagebox_tac").data("field", detailData.termsAndConditions);
self.find("#insertBtn").data("id", detailData.id);
self.find("#insertBtn").data("scheme", detailData.scheme);
}
var $imageDetailModal = self.find("#imagePreviewModal");
self.find(".loading-icon").addClass("hidden");
$imageDetailModal.removeClass("hidden");
self.find('#imagePreviewModal .close-btn').off('click').on('click', function () {
$imageDetailModal.addClass("hidden");
});
self.find('#imagePreviewModal #cancelBtn').off('click').on('click', function () {
$imageDetailModal.addClass("hidden");
});
self.find('#imagePreviewModal .detail-item .more').off('click').on('click', function () {
var text = $(this).closest(".detail-item").find(".content").data("field");
$(this).closest(".detail-item").find(".content").html(text);
$(this).addClass("hidden");
});
self.find('#imagePreviewModal #insertBtn').off('click').on('click', function () {
// var downloaderURL = self.find('#imagePreviewModal #insertBtn').data("downloadurl");
self.find(".loading-icon").removeClass("hidden");
var assetArray = [];
var obj = {};
obj.detailData = detailData;
obj.id = detailData.id;
obj.scheme = detailData.scheme;
assetArray.push(obj);
//Canto Connector: Push the detail data for the assets.
assetArray.detailData = detailData
var temp = (detailData)
cantoAPI.insertImage(assetArray);
});
}
function dateHandler(str) {
return str.substr(0, 4) + '-' + str.substr(4, 2) + '-'
+ str.substr(6, 2) + ' ' + str.substr(8, 2) + ':' + str.substr(10, 2);
}
function treeviewDataHandler() {
cantoAPI.loadTree(treeviewController);
}
var treeviewController = function (dummyData) {
var self = $(cantoViewDom);
console.log(dummyData);
var html = "";
html = treeviewFirstRender(dummyData);
self.find("#treeviewContent").append(html);
self.find("#treeviewContent > ul").animate({
height: 'toggle'
});
};
var treeviewFirstRender = function (data) {
var html = "<ul style='display: none;'>";
$.each(data, function (i, d) {
var listclass = " ";
if (d.size == 0) {
// listclass = "no-child";
} else if (d.scheme == "folder") {
listclass = "has-sub-folder";
}
html += '<li data-id="' + d.id + '" class="' + listclass + '">';
var iconStyle = "icon-s-Folder_open-20px";
if (d.scheme == "album") {
iconStyle = "icon-s-Album-20px";
}
html += '<i class="' + iconStyle + '"></i>';
html += '<img src="https://s3-us-west-2.amazonaws.com/static.dmc/universal/icon/cantoloading.gif" class="folder-loading hidden" alt="Loading">';
html += '<span>' + d.name + '</span>';
html += '</li>';
});
html += "</ul>";
return html;
};
var subTreeRender = function (data) {
var html = treeviewRender(data);
self.find(".current-tree-node").append(html);
self.find(".current-tree-node > ul").animate({
height: 'toggle'
});
self.find(".current-tree-node").find(".folder-loading").addClass("hidden");
self.find(".current-tree-node").find(".icon-s-Folder_open-20px").removeClass("hidden");
self.find(".current-tree-node").removeClass("current-tree-node");
};
var treeviewRender = function (data) {
var html = "<ul style='display: none;'>";
$.each(data, function (i, d) {
var listclass = " ";
if (d.size == 0) {
// listclass = "no-child";
}
html += '<li data-id="' + d.id + '" class="' + listclass + '">';
var iconStyle = "icon-s-Folder_open-20px";
if (d.scheme == "album") {
iconStyle = "icon-s-Album-20px";
}
html += '<i class="' + iconStyle + '"></i>';
html += '<span>' + d.name + '</span>';
if (d.children && d.children.length) {
html += treeviewRender(d.children);
}
html += '</li>';
});
html += "</ul>";
return html;
};
function imageResize() {
var initCount = 8;
var returnImageWidth = 0;
var getCountInALine = function (n) {
var totalWidth = self.find("#imagesContent")[0].offsetWidth;
var singleImageWidth = (totalWidth - 8) / n - 2;
if ((singleImageWidth >= 170) && (singleImageWidth <= 210)) {
returnImageWidth = singleImageWidth;
} else if (singleImageWidth < 170) {
n--;
getCountInALine(n);
} else if (singleImageWidth > 210) {
n++;
getCountInALine(n);
}
return returnImageWidth;
};
var singleWidth = getCountInALine(initCount);
self.find('.single-image').css("width", singleWidth);
};
//scroll to load more
function isScrollToPageBottom() {
var bodyHeight = $("#cantoImageBody").height();
var documentHeight = $("#imagesContent").height();
var scrollHeight = $("#cantoImageBody").scrollTop();
var isToBottom = documentHeight - bodyHeight - scrollHeight < 0;
var nowCount = $(".single-image").length == 0;
return isToBottom && !nowCount;
}
function loadMoreHandler() {
var start = currentImageList.length == 0 ? 0 : apiNextStart;
var filterString = "sortBy=time&sortDirection=descending&limit=" + singleCountLoad + "&start=" + start;
var imageCount = $(".single-image").length;
if (imageCount !== 0) {
$("#loadingMore").fadeIn("slow");
} else {
self.find("#imagesContent").html("");
}
return filterString;
}
function loadMoreAction() {
if (searchedBy == "bySearch") {
var value = self.find("#globalSearch input").val();
if (!value) {
return;
}
var initSchme = self.find(".type-font.current").data("type");
var data = {};
data.scheme = initSchme;
data.keywords = value;
cantoAPI.getFilterList(data, imageListDisplay);
} else if (searchedBy == "bytree") {
var albumId = self.find("#treeviewSection ul li").find(".selected").data("id");
cantoAPI.getListByAlbum(albumId, imageListDisplay);
} else {
var initSchme = self.find(".type-font.current").data("type");
getImageInit(initSchme);
}
}
