| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233 |
- $.QueryString = (function(a) {
- if (a == "") return {};
- var b = {};
- for (var i = 0; i < a.length; ++i)
- {
- var p=a[i].split('=');
- if (p.length != 2) continue;
- b[p[0]] = decodeURIComponent(p[1].replace(/\+/g, " "));
- }
- return b;
- })(window.location.search.substr(1).split('&'))
- $(document).ready(function(){
- var selector = "div.gal-item div.gal-inner-holder";
- $(document)
- .on('mouseover', selector, function(e){
- $(this).addClass('hover');
- })
- .on('mouseout', selector, function(e){
- $(this).removeClass('hover');
- })
- .on('click', selector, function(e){
- var url = $(this).parents('div.gal-item').data('url');
- CKEDITOR.tools.callFunction(CKEditorFuncNum, url);
- window.close();
- });
- $(document).on('ajax:complete', "div.gal-item a.gal-del", function(xhr, status){
- $(this).parents('div.gal-item').remove();
- });
- var endlessScroll = $.endlessScroll({
- container: ".fileupload-list",
- entity: ".gal-item",
- scrollPadding: 100
- });
- // Don't listen events first second
- endlessScroll.scrollModule.unbind();
- window.setTimeout(function() { endlessScroll.scrollModule.bind();}, 1000);
- });
- // Collection of all instances on page
- qq.FileUploader.instances = new Object();
- /**
- * Class that creates upload widget with drag-and-drop and file list
- * @inherits qq.FileUploaderBasic
- */
- qq.FileUploaderInput = function(o){
- // call parent constructor
- qq.FileUploaderBasic.apply(this, arguments);
- // additional options
- qq.extend(this._options, {
- element: null,
- // if set, will be used instead of qq-upload-list in template
- listElement: null,
- template_id: '#fileupload_tmpl',
- classes: {
- // used to get elements from templates
- button: 'fileupload-button',
- drop: 'fileupload-drop-area',
- dropActive: 'fileupload-drop-area-active',
- list: 'fileupload-list',
- preview: 'fileupload-preview',
- file: 'fileupload-file',
- spinner: 'fileupload-spinner',
- size: 'fileupload-size',
- cancel: 'fileupload-cancel',
- // added to list item when upload completes
- // used in css to hide progress spinner
- success: 'fileupload-success',
- fail: 'fileupload-fail'
- }
- });
- // overwrite options with user supplied
- qq.extend(this._options, o);
- this._element = document.getElementById(this._options.element);
- this._listElement = this._options.listElement || this._find(this._element, 'list');
- this._classes = this._options.classes;
- this._button = this._createUploadButton(this._find(this._element, 'button'));
- //this._setupDragDrop();
- qq.FileUploader.instances[this._element.id] = this;
- };
- // inherit from Basic Uploader
- qq.extend(qq.FileUploaderInput.prototype, qq.FileUploaderBasic.prototype);
- qq.extend(qq.FileUploaderInput.prototype, {
- /**
- * Gets one of the elements listed in this._options.classes
- **/
- _find: function(parent, type){
- var element = qq.getByClass(parent, this._options.classes[type])[0];
- if (!element){
- alert(type);
- throw new Error('element not found ' + type);
- }
- return element;
- },
- _setupDragDrop: function(){
- var self = this,
- dropArea = this._find(this._element, 'drop');
- var dz = new qq.UploadDropZone({
- element: dropArea,
- onEnter: function(e){
- qq.addClass(dropArea, self._classes.dropActive);
- e.stopPropagation();
- },
- onLeave: function(e){
- e.stopPropagation();
- },
- onLeaveNotDescendants: function(e){
- qq.removeClass(dropArea, self._classes.dropActive);
- },
- onDrop: function(e){
- dropArea.style.display = 'none';
- qq.removeClass(dropArea, self._classes.dropActive);
- self._uploadFileList(e.dataTransfer.files);
- }
- });
- dropArea.style.display = 'none';
- qq.attach(document, 'dragenter', function(e){
- if (!dz._isValidFileDrag(e)) return;
- dropArea.style.display = 'block';
- });
- qq.attach(document, 'dragleave', function(e){
- if (!dz._isValidFileDrag(e)) return;
- var relatedTarget = document.elementFromPoint(e.clientX, e.clientY);
- // only fire when leaving document out
- if ( ! relatedTarget || relatedTarget.nodeName == "HTML"){
- dropArea.style.display = 'none';
- }
- });
- },
- _onSubmit: function(id, fileName){
- qq.FileUploaderBasic.prototype._onSubmit.apply(this, arguments);
- this._addToList(id, fileName);
- },
- _onProgress: function(id, fileName, loaded, total){
- qq.FileUploaderBasic.prototype._onProgress.apply(this, arguments);
- var item = this._getItemByFileId(id);
- var size = this._find(item, 'size');
- var text;
- if (loaded != total){
- text = Math.round(loaded / total * 100) + '% from ' + this._formatSize(total);
- } else {
- text = this._formatSize(total);
- }
- qq.setText(size, text);
- },
- _onComplete: function(id, fileName, result){
- qq.FileUploaderBasic.prototype._onComplete.apply(this, arguments);
- var item = this._getItemByFileId(id);
- var asset = result.asset ? result.asset : result;
- if (asset && asset.id){
- qq.addClass(item, this._classes.success);
- asset.size = this._formatSize(asset.size);
- asset.controller = (asset.type !== undefined && asset.type.toLowerCase() == "ckeditor::picture" ? "pictures" : "attachment_files");
- $(item).replaceWith($(this._options.template_id).tmpl(asset));
- } else {
- qq.addClass(item, this._classes.fail);
- }
- },
- _addToList: function(id, fileName){
- if (this._listElement) {
- if (this._options.multiple === false) {
- $(this._listElement).empty();
- }
- var asset = {
- id: 0,
- filename: this._formatFileName(fileName),
- size: 0,
- format_created_at: '',
- url_content: "#",
- controller: "assets",
- url_thumb: "/assets/ckeditor/filebrowser/images/preloader-3799a3e41d7787a31dac5796ebccc242951da2f2b57eb088326ab3bffe15056a.gif"
- };
- var item = $(this._options.template_id)
- .tmpl(asset)
- .attr('qqfileid', id)
- .prependTo( this._listElement );
- item.find('div.img').addClass('preloader');
- this._bindCancelEvent(item);
- }
- },
- _getItemByFileId: function(id){
- return $(this._listElement).find('div[qqfileid=' + id +']').get(0);
- },
- /**
- * delegate click event for cancel link
- **/
- _bindCancelEvent: function(element){
- var self = this,
- item = $(element);
- item.find('a.' + this._classes.cancel).bind('click', function(e){
- self._handler.cancel( item.attr('qqfileid') );
- item.remove();
- qq.preventDefault(e);
- return false;
- });
- }
- });
|