private void FinderRequestSuccess(AdminFinderResponse response) { CKFinder.Config.Language = Strings.Get("CKFinderLanguage"); CKFinder.Config.ConnectorInfo = "token=" + response.token; finder = new CKFinder(); finder.BasePath = "ckfinder/"; finder.Callback = delegate(CKFinderAPI api) { api.DisableFileContextMenuOption("selectFile", false); api.DisableFileContextMenuOption("viewFile", false); api.DisableFileContextMenuOption("downloadFile", false); api.DisableFileContextMenuOption("renameFile", false); api.DisableFileContextMenuOption("deleteFile", false); api.DisableFolderContextMenuOption("removeFolder", false); api.DisableFolderContextMenuOption("kl", false); api.DisableFolderContextMenuOption("lI", false); jQueryObject finderFrame = jQuery.Select("#admin-finder-body iframe").Contents(); finderFrame.Find("a.cke_button_upload").Remove(); finderFrame.Find("a.cke_button_maximize").Remove(); Show(); }; finder.SelectActionFunction = delegate(string fileUrl) { if (cid != -1) { ChangeTargetFieldAndHide(fileUrl); } }; finder.AppendTo("admin-finder-body"); }
public override void HandleRequest(string jsonString, AjaxBase ajax) { if (!User.IsAdminLoggedIn(ajax)) { ajax.Unauthorized(); return; } AdminFinderRequest request = Utility.ParseJson<AdminFinderRequest>(jsonString); AdminFinderResponse response = new AdminFinderResponse(); Collection collection = null; string[][] finderData; if (request.cid != -1) { collection = Collection.GetById(request.cid); if (collection == null) { ajax.BadRequest(); return; } finderData = new string[][] { new string[] { collection.Name, collection.Path } }; } else { List<string[]> diskData = new List<string[]>(); string[] discs = Environment.GetLogicalDrives(); for (int i = 0; i < discs.Length; i++) { string driveLetter = discs[i].Replace(":\\", ""); using (System.Management.ManagementObject diskObj = new System.Management.ManagementObject("win32_logicaldisk.deviceid=\"" + driveLetter + ":\"")) { if (diskObj["DriveType"].ToString() == "3") // Local Disk { diskData.Add(new string[] { driveLetter + ":", driveLetter + ":\\" }); } } } finderData = diskData.ToArray(); } Random r = new Random(); StringBuilder tokenBuilder = new StringBuilder(); for (int i = 0; i < 32; i++) { int n = r.Next(36); if (n < 10) { tokenBuilder.Append(n); } else { tokenBuilder.Append(Convert.ToChar(55 + n)); } } response.token = tokenBuilder.ToString(); SessionWrapper.SetFinderData(ajax, response.token, finderData); ajax.ReturnJson(response); }