mirror of
https://github.com/UnickSoft/graphonline.git
synced 2026-04-20 15:10:26 +00:00
first commit
This commit is contained in:
62
lib/ckeditor4/plugins/imagebrowser/browser/browser.css
Executable file
62
lib/ckeditor4/plugins/imagebrowser/browser/browser.css
Executable file
@@ -0,0 +1,62 @@
|
||||
body {
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
.folder-switcher {
|
||||
font-size: 16px;
|
||||
font-weight: bold;
|
||||
margin: 0;
|
||||
padding: 5px 10px;
|
||||
list-style: none;
|
||||
background-color: #e3e3e3;
|
||||
border-bottom: 1px solid #b7b7b7;
|
||||
}
|
||||
|
||||
.folder-switcher li {
|
||||
display: inline-block;
|
||||
margin: 5px;
|
||||
padding: 5px 10px;
|
||||
border: 1px solid #b7b7b7;
|
||||
border-radius: 4px;
|
||||
box-shadow: 0 1px 0 rgba(0, 0, 0, 0.1);
|
||||
background-color: #fff;
|
||||
color: #333;
|
||||
white-space: nowrap;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
.folder-switcher li:hover {
|
||||
color: #0576b7;
|
||||
border-color: #0576b7;
|
||||
}
|
||||
|
||||
.folder-switcher li.active {
|
||||
color: #fff;
|
||||
background-color: #0576b7;
|
||||
border-color: #0576b7;
|
||||
box-shadow: none;
|
||||
}
|
||||
|
||||
.images-container {
|
||||
padding: 5px 10px;
|
||||
}
|
||||
|
||||
.thumbnail {
|
||||
display: inline-block;
|
||||
margin: 5px 5px;
|
||||
border: 1px solid #ccc;
|
||||
border-radius: 4px;
|
||||
overflow: hidden;
|
||||
font-size: 0;
|
||||
}
|
||||
|
||||
.thumbnail:hover {
|
||||
border-color: #0a94e3;
|
||||
}
|
||||
|
||||
.thumbnail img {
|
||||
width: auto;
|
||||
height: auto;
|
||||
max-width: 200px;
|
||||
max-height: 200px;
|
||||
}
|
||||
25
lib/ckeditor4/plugins/imagebrowser/browser/browser.html
Executable file
25
lib/ckeditor4/plugins/imagebrowser/browser/browser.html
Executable file
@@ -0,0 +1,25 @@
|
||||
<!doctype html>
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
||||
<base>
|
||||
<link rel="stylesheet" href="browser.css">
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<script type="text/x-template-html" id="js-template-image">
|
||||
<a href="javascript://" class="thumbnail js-image-link" data-url="%imageUrl%"><img src="%thumbUrl%"></a>
|
||||
</script>
|
||||
|
||||
<ul class="folder-switcher" id="js-folder-switcher"></ul>
|
||||
|
||||
<div class="images-container" id="js-images-container">Loading..</div>
|
||||
|
||||
<script type="text/javascript" src="jquery-1.9.1.min.js"></script>
|
||||
<script type="text/javascript" src="browser.js"></script>
|
||||
|
||||
<script type="text/javascript">
|
||||
CkEditorImageBrowser.init();
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
126
lib/ckeditor4/plugins/imagebrowser/browser/browser.js
Executable file
126
lib/ckeditor4/plugins/imagebrowser/browser/browser.js
Executable file
@@ -0,0 +1,126 @@
|
||||
var CkEditorImageBrowser = {};
|
||||
|
||||
CkEditorImageBrowser.folders = [];
|
||||
CkEditorImageBrowser.images = {}; //folder => list of images
|
||||
CkEditorImageBrowser.ckFunctionNum = null;
|
||||
|
||||
CkEditorImageBrowser.$folderSwitcher = null;
|
||||
CkEditorImageBrowser.$imagesContainer = null;
|
||||
|
||||
CkEditorImageBrowser.init = function () {
|
||||
CkEditorImageBrowser.$folderSwitcher = $('#js-folder-switcher');
|
||||
CkEditorImageBrowser.$imagesContainer = $('#js-images-container');
|
||||
|
||||
var baseHref = CkEditorImageBrowser.getQueryStringParam("baseHref");
|
||||
if (baseHref) {
|
||||
var h = (document.head || document.getElementsByTagName("head")[0]),
|
||||
el = h.getElementsByTagName("link")[0];
|
||||
el.href = location.href.replace(/\/[^\/]*$/,"/browser.css");
|
||||
(h.getElementsByTagName("base")[0]).href = baseHref;
|
||||
}
|
||||
|
||||
CkEditorImageBrowser.ckFunctionNum = CkEditorImageBrowser.getQueryStringParam('CKEditorFuncNum');
|
||||
|
||||
CkEditorImageBrowser.initEventHandlers();
|
||||
|
||||
CkEditorImageBrowser.loadData(CkEditorImageBrowser.getQueryStringParam('listUrl'), function () {
|
||||
CkEditorImageBrowser.initFolderSwitcher();
|
||||
});
|
||||
};
|
||||
|
||||
CkEditorImageBrowser.loadData = function (url, onLoaded) {
|
||||
CkEditorImageBrowser.folders = [];
|
||||
CkEditorImageBrowser.images = {};
|
||||
|
||||
$.getJSON(url, function (list) {
|
||||
$.each(list, function (_idx, item) {
|
||||
if (typeof(item.folder) === 'undefined') {
|
||||
item.folder = 'Images';
|
||||
}
|
||||
|
||||
if (typeof(item.thumb) === 'undefined') {
|
||||
item.thumb = item.image;
|
||||
}
|
||||
|
||||
CkEditorImageBrowser.addImage(item.folder, item.image, item.thumb);
|
||||
});
|
||||
|
||||
onLoaded();
|
||||
});
|
||||
};
|
||||
|
||||
CkEditorImageBrowser.addImage = function (folderName, imageUrl, thumbUrl) {
|
||||
if (typeof(CkEditorImageBrowser.images[folderName]) === 'undefined') {
|
||||
CkEditorImageBrowser.folders.push(folderName);
|
||||
CkEditorImageBrowser.images[folderName] = [];
|
||||
}
|
||||
|
||||
CkEditorImageBrowser.images[folderName].push({
|
||||
"imageUrl": imageUrl,
|
||||
"thumbUrl": thumbUrl
|
||||
});
|
||||
};
|
||||
|
||||
CkEditorImageBrowser.initFolderSwitcher = function () {
|
||||
var $switcher = CkEditorImageBrowser.$folderSwitcher;
|
||||
|
||||
$switcher.find('li').remove();
|
||||
|
||||
$.each(CkEditorImageBrowser.folders, function (idx, folderName) {
|
||||
var $option = $('<li></li>').data('idx', idx).text(folderName);
|
||||
$option.appendTo($switcher);
|
||||
});
|
||||
|
||||
|
||||
if (CkEditorImageBrowser.folders.length === 0) {
|
||||
$switcher.remove();
|
||||
CkEditorImageBrowser.$imagesContainer.text('No images.');
|
||||
} else {
|
||||
if (CkEditorImageBrowser.folders.length === 1) {
|
||||
$switcher.hide();
|
||||
}
|
||||
|
||||
$switcher.find('li:first').click();
|
||||
}
|
||||
};
|
||||
|
||||
CkEditorImageBrowser.renderImagesForFolder = function (folderName) {
|
||||
var images = CkEditorImageBrowser.images[folderName],
|
||||
templateHtml = $('#js-template-image').html();
|
||||
|
||||
CkEditorImageBrowser.$imagesContainer.html('');
|
||||
|
||||
$.each(images, function (_idx, imageData) {
|
||||
var html = templateHtml;
|
||||
html = html.replace('%imageUrl%', imageData.imageUrl);
|
||||
html = html.replace('%thumbUrl%', imageData.thumbUrl);
|
||||
|
||||
var $item = $($.parseHTML(html));
|
||||
|
||||
CkEditorImageBrowser.$imagesContainer.append($item);
|
||||
});
|
||||
};
|
||||
|
||||
CkEditorImageBrowser.initEventHandlers = function () {
|
||||
$(document).on('click', '#js-folder-switcher li', function () {
|
||||
var idx = parseInt($(this).data('idx'), 10),
|
||||
folderName = CkEditorImageBrowser.folders[idx];
|
||||
|
||||
$(this).siblings('li').removeClass('active');
|
||||
$(this).addClass('active');
|
||||
|
||||
CkEditorImageBrowser.renderImagesForFolder(folderName);
|
||||
});
|
||||
|
||||
$(document).on('click', '.js-image-link', function () {
|
||||
window.opener.CKEDITOR.tools.callFunction(CkEditorImageBrowser.ckFunctionNum, $(this).data('url'));
|
||||
window.close();
|
||||
});
|
||||
};
|
||||
|
||||
CkEditorImageBrowser.getQueryStringParam = function (name) {
|
||||
var regex = new RegExp('[?&]' + name + '=([^&]*)'),
|
||||
result = window.location.search.match(regex);
|
||||
|
||||
return (result && result.length > 1 ? decodeURIComponent(result[1]) : null);
|
||||
};
|
||||
5
lib/ckeditor4/plugins/imagebrowser/browser/jquery-1.9.1.min.js
vendored
Executable file
5
lib/ckeditor4/plugins/imagebrowser/browser/jquery-1.9.1.min.js
vendored
Executable file
File diff suppressed because one or more lines are too long
Reference in New Issue
Block a user