PATH:
home
/
letacommog
/
letaweb
/
scripts
angular.module('pagemanager.file_manager') .factory('$upload_progress',['$dialog',function($dialog) { return function(files) { this.open = function() { this.modalInstance = $dialog.open({ templateUrl:getRelativeUrl() + 'api?path=content&action=getHtml&name=modules/image/upload_progress', controller:function($scope, $modalInstance) { $scope.files = files; for(var i = 0;i < $scope.files.length;i++) { $scope.files[i].progress = 0; } $scope.cancel = function() { $modalInstance.close(1); } } }); return this.modalInstance; }; this.changeProgress = function(file) { } this.close = function(file) { this.modalInstance.dismiss('cancel'); } } }]) .directive('fileUploadButton', ['$upload_progress',function($upload_progress) { function link(scope, element, attrs) { this.closeUploadProgress = function() { if(this.uploadProgress) this.uploadProgress.close(); }; this.createUploadProgress = function(files) { if(!this.uploadProgress) this.uploadProgress = new $upload_progress(files); var that = this; this.uploadProgress.open().result.then( function() { if(that.uploader) that.uploader.stop(); } ); }; this.closeUploadProgress = function() { this.uploadProgress.close(); } this.changeProgress = function(file) { this.uploadProgress.changeProgress(file); }; this.create = function() { var that = this; var id = 'button_' + randomString(); $(element).attr('id', id); var options = { runtimes : angular.isDefined(attrs.runtimes) ? attrs.runtimes : 'gears,html5,flash,silverlight,browserplus', browse_button : id, container : 'page', multi_selection:angular.isDefined(attrs.multiSelection) ? attrs.multiSelection : false, overwrite : angular.isDefined(attrs.overwrite) ? attrs.overwrite : false, max_file_size : angular.isDefined(attrs.maxFileSize) ? attrs.maxFileSize : '10mb', url : getRelativeUrl() + 'api?path=asset&action=upload' , flash_swf_url : '../scripts/plupload/plupload.flash.swf', silverlight_xap_url : '../../scripts/plupload/plupload.silverlight.xap', resize : angular.isDefined(attrs.resize) ? scope.$eval(attrs.resize) : {}, filters : angular.isDefined(attrs.filters) ? scope.$eval(attrs.filters) : [], multipart_params : { "YII_CSRF_TOKEN" : window.YII_CSRF_TOKEN, }, } if( angular.isDefined(attrs.folder)) options.url += '&f=' + attrs.folder; if(angular.isDefined(attrs.new_name)) options.url += '&n=' + attrs.new_name; if(angular.isDefined(attrs.overwrite)) options.url += '&overwrite=1'; this.uploader = new plupload.Uploader(options); this.uploader.init(); this.uploader.bind('Error', function(up, error) { if(angular.isDefined(attrs.onError)) scope.$eval(attrs.onError,{error:error}); }); this.uploader.bind('FileUploaded', function(up, file, response) { var r = $.parseJSON(response.response); file.response = r; if(angular.isDefined(attrs.onFileUploaded)) scope.$eval(attrs.onFileUploaded, {file:file,response:response}); }); this.uploader.bind('UploadComplete', function(up, files) { that.closeUploadProgress(); if(angular.isDefined(attrs.onUploadComplete)) scope.$eval(attrs.onUploadComplete,{files:files}); }); this.uploader.bind('FilesAdded', function(up, files) { up.start(); that.createUploadProgress(files); if(angular.isDefined(attrs.onFilesAdded)) scope.$eval(attrs.onFilesAdded, {files:files}); }); this.uploader.bind('UploadProgress', function(up, file) { that.changeProgress(file); if(angular.isDefined(attrs.onUploadProgress)) scope.$eval(attrs.onUploadProgress, {file:file}); }); } this.create(); } return { link:link, }; }]) .service('$file_uploader', ['$dialog','communication',function($dialog, communication) { this.open = function(settings) { var options = $.extend({}, { extensions: 'jpeg, png, gif', url:getRelativeUrl() + 'api?path=asset&action=upload', overwrite : false, }, settings); return $dialog.open( { templateUrl:getRelativeUrl() + 'api?path=content&action=getHtml&name=modules/image/file_uploader', //backdrop:false, controller: function($scope,$modalInstance) { $scope.ok = function() { $modalInstance.close($scope.uploadedFiles); }; $scope.cancel = function() { $scope.ok(); }; $scope.identify = window.randomString(); var browse_button = document.getElementById('image-upload-' + $scope.identify); $scope.hidden_browse_button = $('<button class="hidden-lg"></button>'); $scope.hidden_browse_button.attr('id', 'hidden_browse_button' + $scope.identify); $('body').append($scope.hidden_browse_button); $scope.addFileItem = function() { var input = $scope.hidden_browse_button; input.trigger('click'); }; $scope.uploader = new plupload.Uploader({ runtimes : 'gears,html5,flash,silverlight,browserplus', browse_button : 'hidden_browse_button' + $scope.identify, container : 'page', max_file_size : '10mb', url : options.url , flash_swf_url : '../scripts/plupload/plupload.flash.swf', silverlight_xap_url : '../../scripts/plupload/plupload.silverlight.xap', multipart_params : { "YII_CSRF_TOKEN" : window.YII_CSRF_TOKEN, }, //filters : [ // {title : "files", extensions : options.extensions}, // ], //resize : {width : 320, height : 240, quality : 90} }); $scope.uploader.init(); $scope.uploader.bind('Error', function(up, error) { }); $scope.uploader.bind('UploadComplete', function(up, files) { if($scope.onUploadComplete != undefined) $scope.onUploadComplete(); }); $scope.files = []; $scope.formatSize = function(s) { return plupload.formatSize(s); }; $scope.removeFile = function(file,$index) { if(!file.uploaded) $scope.files.splice($index, 1); }; $scope.startUpload = function() { if($scope.files.length == 0) return; $scope.uploader.start(); }; $scope.uploader.bind('FilesAdded', function(up, files) { for(var i = 0;i < files.length, file=files[i];i++) $scope.files.push(file); $scope.$digest(); }); $scope.uploader.bind('UploadProgress', function(up, file) { var flag = 0; for(var i = 0;i < $scope.files.length;i++) { if($scope.files[i].id == file.id) { $scope.files[i].uploading = 1; $scope.files[i].deletable = 0; $scope.files[i].percent = file.percent; $scope.$digest(); } } //$('#' + file.id).children('.fileprogress').children('.progress').css('width',file.percent + '%'); }); $scope.uploadedFiles = []; $scope.uploader.bind('FileUploaded', function(up, file,response) { var r = $.parseJSON(response.response); $scope.uploadedFiles.push(r); if(typeof options.onFileUploaded == 'function') { options.onFileUploaded(r); } var flag = 0; for(var i = 0;i < $scope.files.length;i++) { if($scope.files[i].id == file.id) { $scope.files[i].uploaded = 1; $scope.files[i].deletable = 0; $scope.$digest(); } } }); } }); } }]) .service('$ck_file_browser', ['$file_manager',function($file_manager) { this.open = function(settings) { return $file_manager.open({ windowClass:'ck_file_browser_wnd_class', backdropClass:'ck_file_browser_bdr_class', }); } }]) .service('$file_manager', ['$dialog','communication','$file_uploader',function($dialog, communication,$file_uploader) { this.open = function(settings) { var backitem ='<div class="item back_item col-md-4"><div class="thumbnail"><a href="javascript:void(0);"></a></div><div class="name"></div></div>'; var options = $.extend({}, { tabs: [ 'myfiles','libraries', 'background' ], footerTabs: { 'myfiles' :{name: t('LBL_IMAGE_MANAGER_MY_FILE'), url: 'api?path=asset&action=getList&name=asset', manage:true, copy_url:'api?path=asset&action=copyFile', cut_url:'api?path=asset&action=cutFile', delete_url:'api?path=asset&action=deleteFile', rename_url:'api?path=asset&action=renameFile', newfolder_url:'api?path=asset&action=newFolder', download_url:'api?path=asset&action=downloadFile'}, 'libraries':{name: t('LBL_IMAGE_MANAGER_LIBRARY'), url: 'api?path=asset&action=getLibraryList&'}, 'background':{name: t('LBL_IMAGE_MANAGER_BACKGROUND'), url: 'api?path=asset&action=getBackgroundList'}, }, extensions:['png','jpg','gif'], sortname: 'name', sortorder: 'asc', rp:10, sp: 1, }, settings); return $dialog.open( { windowClass:options.windowClass, backdropClass:options.backdropClass, templateUrl:getRelativeUrl() + 'api?path=content&action=getHtml&name=modules/image/file_manager', size:'lg', controller: function($scope,$modalInstance) { $scope.clipboard = false; $scope.data = {}; $scope.selectedFiles = []; $scope.relativeUrl = getRelativeUrl(); $scope.downloadFolder = function(folder) { var url = $scope.current_tab.download_url; url += '&folder=' + encodeURIComponent(folder) window.open(url); }; $scope.display_filesize = function(filesize){ if(!isNaN(filesize)){ var decr = 1024, step = 0; var prefix = ['Byte','KB','MB','GB','TB','PB']; while((filesize / decr) > 0.9){ filesize = filesize / decr; step++; } return (filesize*1).toFixed(2)+' '+prefix[step]; } else { return 'NaN'; } } $scope.maxUploadSize= window.max_upload_size; $scope.maxUploadSizeString = window.max_upload_size < 0 ? 'Unlimited' : $scope.display_filesize($scope.maxUploadSize); $scope.uploadSize= 0; $scope.uploadSizeString = $scope.display_filesize($scope.uploadSize); communication.api('getUploadSize',{},'asset').then(function(json) { $scope.uploadSize= json; $scope.uploadSizeString = $scope.display_filesize($scope.uploadSize); }); $scope.openUploader = function() { if($scope.maxUploadSize >=0 && $scope.maxUploadSize <= $scope.uploadSize) return; $file_uploader.open( { onFileUploaded: function(file) { $scope.files.splice(0,0,angular.copy(file)); $scope.uploadSize += parseInt(file.filesize); console.log($scope.uploadSize); $scope.uploadSizeString = $scope.display_filesize($scope.uploadSize); $scope.$digest(); } }) }; $scope.newFolder = function(folder) { var url = $scope.current_tab.newfolder_url; var that = this; var modalInstance = $dialog.open( { templateUrl:getRelativeUrl() + 'api?path=content&action=getHtml&name=modules/image/file_manager_new_folder', controller: function($scope,$modalInstance) { $scope.name = 'New Folder' $scope.ok = function() { communication.ajaxCall(url,{folder: folder.path, name:$scope.name,t:'d'}).then(function() { folder.folders = folder.folders || []; folder.folders.splice(0,0, {name:$scope.name, path:folder.path+'/'+ $scope.name}); $modalInstance.close(); }, function() { $modalInstance.close(); }); }; $scope.cancel = function() { $modalInstance.dismiss('cancel'); }; } }); }; $scope.openFolder = function(folder) { $scope.selectedFiles = []; $scope.selectedFolders = []; $scope.current_folder = folder.path; $scope.currentFolderObj = folder; $scope.currentPage = $scope.currentPage || options.sp || 1; $scope.searchPhrase = $scope.searchPhrase || ''; var gfld = 1; var a = { gfld: gfld, searchPhrase: $scope.searchPhrase, page:$scope.currentPage, folder: $scope.current_folder, rp: options.rp, sortname:options.sortname, sortorder:options.sortorder, extensions: options.extensions }; communication.ajaxCall($scope.current_tab.url,a).then(function(d) { $scope.files = d.files; $scope.inner_folders = d.folders; folder.folders = d.folders; }); }; $scope.changeTab = function(tab) { $scope.selectedFiles = []; $scope.selectedFolders = []; if(typeof $scope.current_tab != 'undefined' && tab.name == $scope.current_tab.name) return; $scope.current_tab = tab; $scope.currentPage = $scope.currentPage || options.sp || 1; $scope.searchPhrase = $scope.searchPhrase || ''; var gfld = 1; var a = { gfld: gfld, searchPhrase: $scope.searchPhrase, page:$scope.currentPage, folder: '', rp: options.rp, sortname:options.sortname, sortorder:options.sortorder, extensions: options.extensions }; communication.ajaxCall(tab.url,a).then(function(d) { $scope.files = d.files; $scope.inner_folders = d.folders; var root = {name:'All',path:''}; root.folders = d.folders; $scope.folders = []; $scope.folders.push(root); $scope.current_folder = ''; $scope.currentFolderObj = root; }); }; $scope.selectFolder = function(folder,$index) { $scope.selectedFolders = $scope.selectedFolders || []; if(!folder.selected) { $scope.selectedFolders.push($index); folder.selected = true; } else { delete folder.selected; $scope.selectedFolders.splice($.inArray($index, $scope.selectedFolders), 1); } }; $scope.selectFile = function(file,$index) { $scope.selectedFiles = $scope.selectedFiles || []; if(!file.selected) { $scope.selectedFiles.push($index); file.selected = true; } else { delete file.selected; $scope.selectedFiles.splice($.inArray($index, $scope.selectedFiles), 1); } }; $scope.checkFileSelected = function(file) { return $.inArray(file, $scope.selectedFiles); }; $scope.ok = function() { var data = []; for(var i = 0;i < $scope.selectedFiles.length;i++) { data.push($scope.files[$scope.selectedFiles[i]]); } $modalInstance.close(data); }; $scope.delete = function() { if(confirm("Delete these folders and files?") == false) return; var files = []; for(var i = 0;i < $scope.selectedFiles.length;i++) { files.push($scope.files[$scope.selectedFiles[i]]); } var folders = []; for(var i = 0;i < $scope.selectedFolders.length;i++) { folders.push($scope.inner_folders[$scope.selectedFolders[i]]); } communication.api('deleteItems',{files:files,folders:folders},'asset').then(function(json) { for(var i = $scope.selectedFiles.length-1;i >=0 ;i--) { $scope.files.splice($scope.selectedFiles[i],1); } for(var i = $scope.selectedFolders.length;i >= 0;i--) { $scope.inner_folders.splice($scope.selectedFolders[i],1); } $scope.selectedFiles = []; $scope.selectedFolders = []; $scope.uploadSize = json; $scope.uploadSizeString = $scope.display_filesize($scope.uploadSize); }); }; $scope.cancel = function() { $modalInstance.dismiss('cancel'); }; $scope.tabs = []; var default_tab = false; for(var i in options.tabs) { if(!options.tabs[i]) continue; $scope.tabs.push(options.footerTabs[options.tabs[i]]); } $scope.changeTab($scope.tabs[0]); } }); }; }])
[+]
..
[+]
sample_images
[-] ssultils.js
[edit]
[-] dialog.js
[edit]
[-] colorpicker.js
[edit]
[-] script.js
[edit]
[+]
libraries
[-] ui.dbfilter-editing.js
[edit]
[-] stgrid.js
[edit]
[-] ui.category-editing.js
[edit]
[-] forms.js
[edit]
[-] player.swf
[edit]
[-] language.js
[edit]
[-] im.js
[edit]
[-] terms_en.js
[edit]
[-] skinutils.js
[edit]
[-] create_page.js
[edit]
[-] ihover.js
[edit]
[-] builder.js
[edit]
[-] ui.tab-content.js
[edit]
[-] admin.js
[edit]
[-] ui.tab-editing.js
[edit]
[-] login.js
[edit]
[-] popup.js
[edit]
[-] ecommerce.js
[edit]
[-] stEditor.js
[edit]
[-] colorutils.js
[edit]
[-] livedemo.js
[edit]
[-] palette.js
[edit]
[+]
editor