Built files from Bizgaze WebServer
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

unicloud.js 99KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361
  1. var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
  2. function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
  3. return new (P || (P = Promise))(function (resolve, reject) {
  4. function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
  5. function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
  6. function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
  7. step((generator = generator.apply(thisArg, _arguments || [])).next());
  8. });
  9. };
  10. var Unibase;
  11. (function (Unibase) {
  12. let Apps;
  13. (function (Apps) {
  14. let Collaboration;
  15. (function (Collaboration) {
  16. let Components;
  17. (function (Components) {
  18. class UniCloud {
  19. constructor() {
  20. this.selectedfolderid = 0;
  21. this.copyToSelectedFileId = 0;
  22. this.changedUserPermissions = [];
  23. this.mimeType = { "txt": "text/plain", "pdf": "application/pdf", "zip": "application/zip", "doc": "application/vnd.ms-word", "docx": "application/vnd.ms-word", "xls": "application/vnd.ms-excel", "xlsx": "application/ vnd.openxmlformatsofficedocument.spreadsheetml.sheet", "png": "image/png", "jpg": "image/jpeg", "jpeg": "image/jpeg", "gif": "image/gif", "csv": "text/csv", "mp3": "audio/mpeg3", "mp4": "video/mp4", "mpeg": "video/mpeg", "svg": "image/svg+xml", "xml": "application/xml", "ods": "application/vnd.oasis.opendocument.spreadsheet" };
  24. }
  25. init() {
  26. }
  27. jsFiles() {
  28. return ["apps/collaboration/managers/documentmanager.js", "apps/collaboration/managers/filemanager.js", "apps/collaboration/enums/enum.js", "apps/collaboration/components/unicloud.js"];
  29. }
  30. loadlist(id, type, installedappid, filetype) {
  31. if (type.toLowerCase() == "folder") {
  32. Unibase.Platform.Helpers.NavigationHelper.Instance().loadDetail(id, installedappid, null);
  33. }
  34. if (type == "File") {
  35. Unibase.Platform.Helpers.FileCacheHelper.Instance().loadJsFile("apps/collaboration/components/documents.js", function () {
  36. Unibase.Apps.Collaboration.Components.Documents.Instance().previewDocument(id, filetype, 0);
  37. });
  38. }
  39. }
  40. filedownload(sourcefileid, documentfileid) {
  41. debugger;
  42. var instance = this;
  43. if (sourcefileid != 0) {
  44. instance.filedownload_new(documentfileid);
  45. }
  46. else {
  47. Unibase.Platform.Helpers.FileCacheHelper.Instance().loadJsFile("platform/controls/filedragndrop/w_documentfiles.js", function () {
  48. return __awaiter(this, void 0, void 0, function* () {
  49. Unibase.Platform.Forms.Components.DocumentFiles.Instance().downloadDocument(documentfileid);
  50. });
  51. });
  52. }
  53. }
  54. filedownload_new(id) {
  55. debugger;
  56. var instance = this;
  57. var documentfileid = 0;
  58. var InstalledAppId = Unibase.Themes.Providers.DetailHelper.installedAppId;
  59. if (id == 0) {
  60. documentfileid = Number(Unibase.Themes.Providers.Detail_Settings.Instance().InputParameters.find(x => x.Key == "hf_" + InstalledAppId + "_documentfileid").Value);
  61. id = documentfileid;
  62. }
  63. else
  64. documentfileid = 0;
  65. Unibase.Platform.Helpers.FileCacheHelper.Instance().loadJsFile("apps/collaboration/managers/filemanager.js", function () {
  66. Unibase.Apps.Collaboration.FileManager.Instance().downloadfile(id).then((response) => {
  67. if (response.result != null) {
  68. debugger;
  69. if (response.result.FileData != null && response.result.FileData != '') {
  70. instance.downloadBase64File(response.result.FileData, response.result.DocumentFileName, response.result.FileType);
  71. }
  72. }
  73. });
  74. });
  75. }
  76. ;
  77. downloadfolder(id) {
  78. debugger;
  79. Unibase.Platform.Helpers.FileCacheHelper.Instance().loadJsFile("apps/collaboration/managers/filemanager.js", function () {
  80. Unibase.Apps.Collaboration.FileManager.Instance().downloadfolder(id).then((response) => {
  81. if (response != null && response.result != null)
  82. Unibase.Platform.Helpers.AssetHelper.Instance().download(response.result);
  83. });
  84. });
  85. }
  86. downloadBase64File(contentBase64, fileName, type) {
  87. var instance = this;
  88. var mimetype = instance.mimeType[type];
  89. const linkSource = `data:${mimetype};base64,${contentBase64}`;
  90. const downloadLink = document.createElement('a');
  91. document.body.appendChild(downloadLink);
  92. downloadLink.href = linkSource;
  93. downloadLink.target = '_self';
  94. downloadLink.download = fileName + "." + type;
  95. downloadLink.click();
  96. }
  97. deletefromproviders(documentfileid, sourcefileid, installedappid) {
  98. debugger;
  99. var instance = this;
  100. bootbox.confirm({
  101. message: "Are you sure delete this file ?",
  102. buttons: {
  103. confirm: {
  104. label: 'Ok',
  105. className: 'btn-success'
  106. },
  107. cancel: {
  108. label: 'Cancel',
  109. className: 'btn-danger'
  110. }
  111. },
  112. callback: function (result) {
  113. if (result) {
  114. if (sourcefileid == 0) {
  115. Unibase.Platform.Helpers.FileCacheHelper.Instance().loadJsFile("platform/files/managers/filemanager.js", function () {
  116. return __awaiter(this, void 0, void 0, function* () {
  117. Unibase.Platform.Files.Managers.FileManager.Instance().deleteDocumentFile(documentfileid).then(function (response) {
  118. MessageHelper.Instance().showSuccess(response.message, "div_message");
  119. debugger;
  120. var InstalledAppId = Unibase.Themes.Providers.DetailHelper.installedAppId;
  121. Unibase.Themes.Compact.Components.Nav.Instance().loadList(installedappid);
  122. });
  123. });
  124. });
  125. }
  126. else {
  127. instance.deletefile(documentfileid, installedappid);
  128. Unibase.Themes.Compact.Components.Nav.Instance().loadList(installedappid);
  129. }
  130. }
  131. else { }
  132. }
  133. });
  134. }
  135. deletefile(id, installedappid) {
  136. debugger;
  137. var instance = this;
  138. Unibase.Platform.Helpers.FileCacheHelper.Instance().loadJsFile("apps/collaboration/managers/filemanager.js", function () {
  139. return __awaiter(this, void 0, void 0, function* () {
  140. yield Unibase.Apps.Collaboration.FileManager.Instance().deleteFILE(id).then((response) => {
  141. Unibase.Themes.Compact.Components.Nav.Instance().loadList(installedappid);
  142. MessageHelper.Instance().showSuccess(response.message, "div_message");
  143. });
  144. });
  145. });
  146. }
  147. deletefolder(id, installedappid) {
  148. debugger;
  149. var instance = this;
  150. Unibase.Platform.Helpers.FileCacheHelper.Instance().loadJsFile("apps/collaboration/managers/filemanager.js", function () {
  151. return __awaiter(this, void 0, void 0, function* () {
  152. yield Unibase.Apps.Collaboration.FileManager.Instance().deletefolder(id).then((response) => {
  153. Unibase.Themes.Compact.Components.Nav.Instance().loadList(installedappid);
  154. });
  155. });
  156. });
  157. }
  158. unitemplatelist(filetype) {
  159. debugger;
  160. Unibase.Platform.Helpers.FileCacheHelper.Instance().loadJsFile("apps/collaboration/managers/filemanager.js", function () {
  161. debugger;
  162. Unibase.Platform.Helpers.FileCacheHelper.Instance().loadJsFile("platform/analytics/components/reportviewer/_reportviewer.js", function () {
  163. Unibase.Platform.Analytics.Components.ReportViewer.Instance().report_ViewAllByUniqueId('Bizgaze_Platform_Analytics_Reports_Drive_Templates', null, null, null);
  164. debugger;
  165. });
  166. });
  167. }
  168. unitemplatesheet(filetype) {
  169. debugger;
  170. Unibase.Platform.Helpers.FileCacheHelper.Instance().loadJsFile("apps/collaboration/managers/filemanager.js", function () {
  171. debugger;
  172. Unibase.Platform.Helpers.FileCacheHelper.Instance().loadJsFile("platform/analytics/components/reportviewer/_reportviewer.js", function () {
  173. Unibase.Platform.Analytics.Components.ReportViewer.Instance().report_ViewAllByUniqueId('Bizgaze_Platform_Analytics_Reports_Drive_sheettemplates', null, null, null);
  174. debugger;
  175. });
  176. });
  177. }
  178. blankdoc(templateid) {
  179. debugger;
  180. var InstalledAppId = Unibase.Themes.Providers.DetailHelper.installedAppId;
  181. var folderid = 0;
  182. if (InstalledAppId == 0) {
  183. folderid = 0;
  184. }
  185. else
  186. folderid = Number(Unibase.Themes.Providers.Detail_Settings.Instance().InputParameters.find(x => x.Key == "hf_" + InstalledAppId + "_folderid").Value);
  187. Unibase.Platform.Helpers.FileCacheHelper.Instance().loadJsFile("apps/collaboration/managers/filemanager.js", function () {
  188. Unibase.Apps.Collaboration.FileManager.Instance().createnewsheet(templateid, folderid).then((response) => {
  189. if (response.result != null) {
  190. var filepath = "https://115.248.56.12:3001/loleaflet/d0edfeabb/loleaflet.html?file_path=file://" + response.result.FilePath;
  191. let url = filepath;
  192. window.open(url);
  193. }
  194. else {
  195. alert(response.message);
  196. }
  197. });
  198. });
  199. }
  200. movefiles(fileid, folderid, containerid) {
  201. debugger;
  202. const instance = this;
  203. Unibase.Platform.Helpers.FileCacheHelper.Instance().loadJsFile("apps/collaboration/managers/filemanager.js", function () {
  204. instance.appendMoveCard(containerid, false, fileid);
  205. });
  206. }
  207. moveFolders(sourcefolderid, folderid, containerid) {
  208. const instance = this;
  209. instance.sourcefolderid = sourcefolderid;
  210. Unibase.Platform.Helpers.FileCacheHelper.Instance().loadJsFile("apps/collaboration/managers/filemanager.js", function () {
  211. instance.appendMoveCard(containerid, true, folderid);
  212. });
  213. }
  214. appendMoveCard(containerid, isFolder, id) {
  215. debugger;
  216. const instance = this;
  217. let folderId = 0;
  218. let dropdownEl = $(`#fileDropdown_${containerid}`);
  219. if (isFolder) {
  220. dropdownEl = $(`#folderDropdown_${containerid}`);
  221. folderId = id;
  222. }
  223. const cardCss = dropdownEl.attr('style');
  224. const cardHtml = `<div class="card mb-0 w-400p movable-card" id="moveFoldersCard_${containerid}" style="${cardCss}"><div class="bg-secondary-light-5 card-header pa-5"><div class="move-title-wrap flex-between-center c-gap-10"><div class="d-flex align-items-center c-gap-10 flex-grow-1"><a href="javascript:;" class="btn btn-flush-biz-theme btn-icon btn-rounded d-30 flush-soft-hover back-btn"><span class="btn-icon-wrap"><i class="icon dripicons-arrow-thin-left"></i></span></a><div class="card-title mb-0">My Drive</div></div><div class="d-flex align-items-center c-gap-10"><a class="btn btn-flush-biz-theme btn-icon btn-rounded d-30 flush-soft-hover text-danger close-btn" href="javascript:;"><span class="btn-icon-wrap"><i class="dripicons-cross icon text-danger"></i></span></a></div></div><div class="create-folder-wrap flex-between-center c-gap-10 d-none"><div class="input-group"><input type="text" class="form-control create-folder-input" placeholder="Enter title"><div class="input-group-append"><a href="javascript:;" class="btn btn-primary create-folder px-10" id="createFolder_${containerid}"><i class="las la-check font-18"></i></a></div></div><a class="btn btn-flush-biz-theme btn-icon btn-rounded d-30 flush-soft-hover text-danger flex-shrink-0 close-create-folder px-10" href="javascript:;"><span class="btn-icon-wrap"><i class="dripicons-cross icon text-danger"></i></span></a></div><div class="folder-search-wrap flex-between-center c-gap-10 d-none"><input type="text" class="form-control folder-search h-30p" placeholder="Search Here"><a class="btn btn-flush-biz-theme btn-icon btn-rounded d-30 flush-soft-hover text-danger flex-shrink-0 close-search-folder px-10" href="javascript:;"><span class="btn-icon-wrap"><i class="dripicons-cross icon text-danger"></i></span></a></div></div><div class="card-body h-200p biz-custom-scrollbar pa-5" id="moveCardBody_${containerid}"></div><div class="card-footer flex-between-center pa-5 c-gap-10"><span class="btn-icon-wrap"><i class="las la-folder-plus font-20"></i></span></a><a class="btn btn-sm btn-primary move-confirm-btn" id="moveConfirmBtn_${containerid}">Move</a></div></div>`;
  225. $(`#moveFoldersCard_${containerid}`).remove();
  226. dropdownEl.addClass('d-none');
  227. $(`#Viewer_${containerid}`).append(cardHtml);
  228. instance.bindFoldersList(containerid, folderId);
  229. const folderCardEl = $(`#moveFoldersCard_${containerid}`);
  230. folderCardEl.find('.close-btn').click(function (e) {
  231. debugger;
  232. e.stopPropagation();
  233. folderCardEl.addClass('d-none');
  234. dropdownEl.removeClass('d-none');
  235. });
  236. $(`#moveFoldersCard_${containerid} .back-btn`).click(function (e) {
  237. debugger;
  238. e.stopPropagation();
  239. const visibleFolderEl = folderCardEl.find('.folders-list:visible');
  240. folderCardEl.find('.folders-list.d-none').last().removeClass('d-none');
  241. if (visibleFolderEl.index() === 0) {
  242. folderCardEl.remove();
  243. }
  244. else {
  245. visibleFolderEl.remove();
  246. }
  247. });
  248. $(`#moveConfirmBtn_${containerid}`).click(function () {
  249. debugger;
  250. const activeFolderId = +folderCardEl.find('.folder-item.active').attr('data-id');
  251. if (id != 0) {
  252. Unibase.Apps.Collaboration.FileManager.Instance().movefiles(id, activeFolderId).then((response) => {
  253. debugger;
  254. if (response.status === Unibase.Data.Status.Success) {
  255. MessageHelper.Instance().showSuccess(response.message, '');
  256. folderCardEl.remove();
  257. }
  258. });
  259. }
  260. else {
  261. debugger;
  262. Unibase.Apps.Collaboration.FileManager.Instance().movefolders(instance.sourcefolderid, activeFolderId).then((response) => {
  263. debugger;
  264. if (response.status === Unibase.Data.Status.Success) {
  265. MessageHelper.Instance().showSuccess(response.message, '');
  266. folderCardEl.remove();
  267. }
  268. });
  269. }
  270. });
  271. let timer;
  272. folderCardEl.find('.folder-search').on('keyup', function (e) {
  273. debugger;
  274. const searchVal = $(this).val().toString().trim();
  275. const visibleFolderEl = folderCardEl.find('.folders-list:visible');
  276. window.clearTimeout(timer);
  277. timer = setTimeout(() => {
  278. if (searchVal) {
  279. visibleFolderEl.find('.folder-item').each(function (i, e) {
  280. const folderName = $(e).attr('data-name');
  281. if (folderName.includes(searchVal)) {
  282. $(e).show();
  283. }
  284. else {
  285. $(e).hide();
  286. }
  287. });
  288. }
  289. else {
  290. visibleFolderEl.find('.folder-item').show();
  291. }
  292. }, 1500);
  293. });
  294. folderCardEl.find('.folder-search-btn').click(function () {
  295. folderCardEl.find('.move-title-wrap').addClass('d-none');
  296. folderCardEl.find('.folder-search-wrap').removeClass('d-none');
  297. });
  298. folderCardEl.find('.close-search-folder').click(function () {
  299. folderCardEl.find('.folder-search').val('').trigger('keyup');
  300. folderCardEl.find('.move-title-wrap').removeClass('d-none');
  301. folderCardEl.find('.folder-search-wrap').addClass('d-none');
  302. });
  303. folderCardEl.find('.create-folder-btn').click(function () {
  304. folderCardEl.find('.move-title-wrap').addClass('d-none');
  305. folderCardEl.find('.create-folder-wrap').removeClass('d-none');
  306. });
  307. folderCardEl.find('.close-create-folder').click(function () {
  308. folderCardEl.find('.move-title-wrap').removeClass('d-none');
  309. folderCardEl.find('.create-folder-wrap').addClass('d-none');
  310. });
  311. $(`#createFolder_${containerid}`).click(function () {
  312. const createInput = folderCardEl.find('.create-folder-input');
  313. const folderName = createInput.val().toString().trim();
  314. const activeFolderId = +folderCardEl.find('.folders-list:visible').attr('data-folderid');
  315. if (folderName) {
  316. Unibase.Apps.Collaboration.FileManager.Instance().createfolder(activeFolderId, folderName).then((response) => {
  317. if (response.status === Unibase.Data.Status.Success) {
  318. createInput.val('');
  319. folderCardEl.find('.close-create-folder').trigger('click');
  320. if (response.result) {
  321. const { FolderId, FolderName, ParentId } = response.result;
  322. const folderItem = instance.getFolderItemHtml(containerid, FolderId, FolderName);
  323. $(`#foldersList_${ParentId}`).prepend(folderItem);
  324. }
  325. }
  326. });
  327. }
  328. });
  329. }
  330. bindFoldersList(containerid, folderid) {
  331. const instance = this;
  332. $(`#moveCardBody_${containerid} .folders-list:visible`).addClass('d-none');
  333. $(`#moveCardBody_${containerid}`).append(`<ul class="list-group folders-list" id="foldersList_${folderid}" data-folderid="${folderid}">Loading...</ul>`);
  334. Unibase.Apps.Collaboration.FileManager.Instance().GetFolderList(folderid).then((response) => {
  335. debugger;
  336. if (response.result.Folder) {
  337. const foldersHtml = response.result.Folder.map(folder => {
  338. const { FolderId, FolderName } = folder;
  339. return instance.getFolderItemHtml(containerid, FolderId, FolderName);
  340. }).join('');
  341. $(`#foldersList_${folderid}`).html(foldersHtml);
  342. }
  343. else {
  344. $(`#foldersList_${folderid}`).addClass('flex-center h-100').html('This folder is empty');
  345. }
  346. });
  347. }
  348. getFolderItemHtml(containerId, FolderId, FolderName) {
  349. debugger;
  350. return `<li class="list-group-item folder-item flex-between-center c-gap-10 pa-5 pl-10 border-0" data-id="${FolderId}" data-name="${FolderName}"><a href="javascript:;" class="foldername d-flex align-items-center c-gap-10 flex-grow-1 text-dark folder-link" id="folderLink_${FolderId}" onclick="Unibase.Apps.Collaboration.Components.UniCloud.Instance().activeFolderItem(${FolderId});"><i class="icon dripicons-folder"></i><span class="folder-title">${FolderName}</span></a><a href="javascript:;" class="btn btn-icon btn-flush-biz-theme btn-rounded flush-soft-hover d-30 go-to-folder-btn" onclick="Unibase.Apps.Collaboration.Components.UniCloud.Instance().bindFoldersList('${containerId}',${FolderId});"><span class="btn-icon-wrap"><i class="icon dripicons-chevron-right"></i></span></a></li>`;
  351. }
  352. activeFolderItem(folderId) {
  353. debugger;
  354. const folderEl = $(`#folderLink_${folderId}`);
  355. if (folderEl.parent().hasClass('active')) {
  356. folderEl.parent().removeClass('active');
  357. }
  358. else {
  359. $('.folder-item.active').removeClass('active');
  360. folderEl.parent().addClass('active');
  361. }
  362. }
  363. getFolderId(formproperty) {
  364. debugger;
  365. var formpropertyid = 0;
  366. var id_ = formproperty[0].id;
  367. var _id = id_.split("_");
  368. formpropertyid = _id[_id.length - 1];
  369. var filearray = Unibase.Forms.Controls.FileDragNDrop.Instance().files_array[formpropertyid];
  370. var installedAppId = Unibase.Themes.Providers.DetailHelper.installedAppId;
  371. var folderid = Number(Unibase.Themes.Providers.Detail_Settings.Instance().InputParameters.find(x => x.Key == "hf_" + installedAppId + "_recordid").Value);
  372. for (var i = 0; i < filearray.length; i++) {
  373. filearray[i].RefId = folderid;
  374. }
  375. }
  376. downloadFolder() {
  377. var folderid = 0;
  378. if (Unibase.Themes.Providers.Detail_Settings.Instance().InputParameters.length > 0) {
  379. var installedAppId = Unibase.Themes.Providers.DetailHelper.installedAppId;
  380. folderid = Number(Unibase.Themes.Providers.Detail_Settings.Instance().InputParameters.find(x => x.Key == "hf_" + installedAppId + "_recordid").Value);
  381. }
  382. Unibase.Platform.Helpers.FileCacheHelper.Instance().loadJsFile("apps/collaboration/managers/filemanager.js", function () {
  383. Unibase.Apps.Collaboration.FileManager.Instance().getFolder(folderid).then((response) => {
  384. var path = response.result.FolderPath;
  385. Unibase.Apps.Collaboration.FileManager.Instance().folderDownload(folderid).then((response) => {
  386. var filedata = response.result.FileData;
  387. var file = Unibase.Platform.Helpers.FileHelper.Instance().convertBase64tofile(response.result);
  388. });
  389. });
  390. });
  391. }
  392. loadFileProviders(documentfileid, containerid, fileproviderid, installedappid) {
  393. debugger;
  394. let dropdownEl = $(`#fileDropdown_${containerid}`);
  395. const cardCss = dropdownEl.attr('style');
  396. const html = `<div class="provider-dropdown dropdown-menu show" id="providersDpMenu_${containerid}" style="${cardCss}">
  397. <span>Loading...</span>
  398. </div>`;
  399. $(`#providersDpMenu_${containerid}`).remove();
  400. $(`#Viewer_${containerid}`).append(html);
  401. dropdownEl.addClass('d-none');
  402. Unibase.Apps.Collaboration.FileManager.Instance().getfileprovider(documentfileid, fileproviderid).then((response) => {
  403. debugger;
  404. if (response.result) {
  405. const providersDpHtml = response.result.map(provider => {
  406. const { FileProviderId, ProviderName } = provider;
  407. return `<a href="javascript:;" class="dropdown-item" id="providerItem_${FileProviderId}" onclick="Unibase.Apps.Collaboration.Components.UniCloud.Instance().uploadFilesByProviders(${FileProviderId},${documentfileid},${installedappid})">${ProviderName}
  408. </a>`;
  409. }).join('');
  410. $(`#providersDpMenu_${containerid}`).html(providersDpHtml).removeClass('d-none');
  411. }
  412. });
  413. }
  414. uploadFilesByProviders(providerId, documentfileId, installedappId) {
  415. Unibase.Apps.Collaboration.FileManager.Instance().uploadfilesbyproviders(providerId, documentfileId).then(function (response) {
  416. debugger;
  417. Unibase.Themes.Compact.Components.Nav.Instance().loadList(installedappId);
  418. MessageHelper.Instance().showSuccess(response.message, "div_message");
  419. });
  420. }
  421. loadFileRename(Id, title, type, installedappid) {
  422. let renameHtml = "";
  423. renameHtml = `<div class="settings-modal-container">
  424. <div class="modal fade" id="rename_` + Id + `" data-backdrop="static" data-keyboard="false" tabindex="-1" role="dialog" aria-hidden="true">
  425. <div class="modal-dialog modal-dialog-centered" role="document">
  426. <div class="modal-content rounded-10">
  427. <div class="modal-header" style="border-style: dashed;">
  428. <h5 class="modal-title ">Rename</h5>
  429. <button type="button" class="close" data-dismiss="modal" aria-label="Close"> <span aria-hidden="true" class="badge badge-soft-danger font-20 rounded-circle pb-2 px-2">×</span> </button>
  430. </div>
  431. <div class="modal-body">
  432. <form>
  433. <div class="form-group">
  434. <div id="error_mesg"><span id="renamemodal_errormessage"></span></div>
  435. <input type="text" class="form-control" id="listscreenrename_` + Id + `"></div>
  436. </div>
  437. <div class="text-center">
  438. <button class="btn btn-secondary px-4 py-1 black-white font-weight-500 pull-left ml-25 md-10" data-dismiss="modal" type="button">Close</button>
  439. <button type="submit" id="btn_filerename_` + Id + `" class="btn btn-primary px-4 py-1 text-white font-weight-500 pull-right mr-25 mb-10"onclick="Unibase.Apps.Collaboration.Components.UniCloud.Instance().rename(` + Id + `,'` + type + `',` + installedappid + `)">Rename</button>
  440. </div>
  441. </form>
  442. </div>
  443. </div>
  444. </div>
  445. </div>
  446. </div>`;
  447. $("#_bizgaze_modal").append(renameHtml);
  448. $("#listscreenrename_" + Id).val(title);
  449. $('#rename_' + Id).modal();
  450. }
  451. rename(Id, type, installedappid) {
  452. if ($("#listscreenrename_" + Id).val() == "") {
  453. MessageHelper.Instance().showError("Please Enter Filename", "renamemodal_errormessage");
  454. }
  455. else {
  456. var renamedata = {
  457. Id: Id,
  458. Title: $("#listscreenrename_" + Id).val(),
  459. Type: type,
  460. };
  461. Unibase.Platform.Helpers.FileCacheHelper.Instance().loadJsFile("apps/collaboration/managers/documentmanager.js", function () {
  462. Unibase.Apps.Collaboration.DocumentManager.Instance().renameFileTitle(renamedata).then(function (response) {
  463. if (response.errors == null) {
  464. MessageHelper.Instance().showSuccess("File Renamed Successfully", "Unibase_ValidationSummary");
  465. $('#rename_' + Id).modal("hide");
  466. Unibase.Platform.Helpers.NavigationHelper.Instance().loadList(installedappid, null);
  467. }
  468. else {
  469. MessageHelper.Instance().showError(response.errors[0].toString(), "renamemodal_errormessage");
  470. }
  471. });
  472. });
  473. }
  474. }
  475. getLink(id, type) {
  476. Unibase.Platform.Helpers.FileCacheHelper.Instance().loadJsFile("apps/collaboration/managers/filemanager.js", function () {
  477. Unibase.Apps.Collaboration.FileManager.Instance().getFileUrl(id, type).then(function (response) {
  478. var fileUrl = _appsettings.server_url() + response.result;
  479. let ModalHtml = `<div class="settings-modal-container">
  480. <div class="modal fade" id="div_getlink" data-backdrop="static" data-keyboard="false" tabindex="-1" role="dialog" aria-hidden="true">
  481. <div class="modal-dialog modal-dialog-centered" role="document">
  482. <div class="modal-content rounded-10">
  483. <div class="modal-header" style="border-style: dashed;">
  484. <h5 class="modal-title ">Get Link</h5>
  485. <button type="button" class="close" data-dismiss="modal" aria-label="Close"> <span aria-hidden="true" class="badge badge-soft-danger font-20 rounded-circle pb-2 px-2">×</span> </button>
  486. </div>
  487. <div class="modal-body">
  488. <form>
  489. <div class="form-group">
  490. <input type="text" class="form-control" readonly id="filegetlink" value="` + fileUrl + `"> </div>
  491. </div>
  492. <div class="text-center">
  493. <button class="btn btn-secondary px-4 py-1 black-white font-weight-500 pull-left ml-25 md-10" type="button" onclick="Unibase.Apps.Collaboration.Components.UniCloud.Instance().copyUrl()">Copy</button>
  494. <button type="submit" id="btn_done" class="btn btn-primary px-4 py-1 text-white font-weight-500 pull-right mr-25 mb-10" >Done</button>
  495. </div>
  496. </form>
  497. </div>
  498. </div>
  499. </div>
  500. </div>
  501. </div>`;
  502. $("#_bizgaze_modal").append(ModalHtml);
  503. $('#div_getlink').modal();
  504. $("#btn_done").click(function () {
  505. $("#div_getlink").modal("hide");
  506. });
  507. });
  508. });
  509. }
  510. copyUrl() {
  511. var element = $("#filegetlink");
  512. var $temp = $("<input>");
  513. $("body").append($temp);
  514. $temp.val($(element).val()).select();
  515. document.execCommand("copy");
  516. $temp.remove();
  517. MessageHelper.Instance().showSuccess("Link Copied", "Unibase_ValidationSummary");
  518. }
  519. share(pkid, curfileType, installAppID) {
  520. debugger;
  521. var instance = this;
  522. var ownerID;
  523. var ownerName;
  524. if (pkid == this.fileId) {
  525. this.fileId = pkid;
  526. }
  527. else {
  528. this.selectedfolderid = pkid;
  529. }
  530. var shareid = $("#hdn_shareid_" + pkid).val();
  531. var Linkinfo;
  532. Unibase.Platform.Helpers.FileCacheHelper.Instance().loadCssFiles(["apps/collaboration/components/share.css", "libs/select2/css/select2.css"], null);
  533. Unibase.Platform.Helpers.FileCacheHelper.Instance().loadJsFiles(["libs/select2/js/select2.min.js", "apps/collaboration/managers/filemanager.js", "apps/collaboration/managers/documentmanager.js", "apps/collaboration/enums/enum.js"], (res) => {
  534. Unibase.Apps.Collaboration.FileManager.Instance().getLinkInfo(pkid).then((response) => {
  535. debugger;
  536. Linkinfo = response.result;
  537. console.log(Linkinfo);
  538. Unibase.Apps.Collaboration.Components.UniCloud.Instance().changeFilePermissionOption(Linkinfo.PermissionLevel, Linkinfo.Restriction);
  539. });
  540. let identity = Unibase.Platform.Membership.Infos.Identity.getCurrentUser();
  541. debugger;
  542. let sharehtml = `<div class="biz-share-modal modal fade" id="bizShareModal" tabindex="-1" role="dialog" aria-labelledby="bizShareModal" aria-hidden="true">
  543. <div class="modal-dialog modal-dialog-centered" id="bizShareModalDialog" role="document">
  544. <div class="modal-content bg-transparent shadow-none" id="ShareModalOverlay">
  545. <div class="accordion biz-share-accordion">
  546. <div class="card" id="shareWithPeopleCard">
  547. <div class="card-header activestate">
  548. <a role="button" href="javascript:;" data-expanded="true" class="collapse-btn pa-0" id="collapseShareBtn">
  549. <div class="d-flex justify-content-between align-items-center">
  550. <div class="header-icon-wrapper">
  551. <button class="btn btn-icon btn-sm activestate" id="sharePeopleHeaderBtn">
  552. <span class="btn-icon-wrap"><i class="las la-user-plus font-18"></i><i class="las la-arrow-left font-18 d-none"></i></span>
  553. </button>
  554. <span class="header-title">Share with people and groups</span>
  555. </div>
  556. <div class="cursor-pointer">
  557. <i class="fa fa-cog font-25 " id="shareSettings" style="display: none;"></i>
  558. </div>
  559. </div>
  560. <div class="shared-users text-truncate font-weight-500 w-80" id="sharedusers"></div>
  561. </a>
  562. </div>
  563. <div id="collapese_share" class="collapse show">
  564. <div class="card-body pa-0">
  565. <div class="add-people-wrapper pt-0">
  566. <div class="d-flex align-items-center">
  567. <div id="div_users" class="people-select2-wrapper">
  568. <input type="hidden" id="hdnselect2" value="0" placeholder="Add people and groups">
  569. <select id="user_select2" class="value-control select2 type-control select2_users form-control text-control" multiple="multiple" style="width:100%;" data-regularexp="" data-validatemsg="" data-textformpropertyid=""><option>Select</option></select>
  570. </div>
  571. <div class="h-50p hidden ml-10" id="headereditorbtn" data-permissionLevel="` + Unibase.Apps.Collaboration.Enums.Share.Editor + `">
  572. <div class="user-role-wrapper h-100 p-0" >
  573. <div class="btn-group dropdown bg-light h-100 rounded">
  574. <button type="button" class="btn btn-sm dropdown-toggle py-2 permissionsBtn" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false" onclick="Unibase.Apps.Collaboration.Components.UniCloud.Instance().showHidePermissionDropdown(event)">
  575. Editor
  576. </button>
  577. <div class="dropdown-menu permissionsMenu">
  578. <a class="dropdown-item" value="` + Unibase.Apps.Collaboration.Enums.Share.Viewer + `" href="#" class="tenantviewerPermission" onclick="Unibase.Apps.Collaboration.Components.UniCloud.Instance().changeFilePermissionOption('` + Unibase.Apps.Collaboration.Enums.Share.Viewer + `',0,event)"><span>Viewer</span></a>
  579. <a class="dropdown-item" value="` + Unibase.Apps.Collaboration.Enums.Share.Commentor + ` href="#" class="tenantcommentorPermission" onclick="Unibase.Apps.Collaboration.Components.UniCloud.Instance().changeFilePermissionOption('` + Unibase.Apps.Collaboration.Enums.Share.Commentor + `',0,event)"><span>Commentor</span></a>
  580. <a class="dropdown-item" value="` + Unibase.Apps.Collaboration.Enums.Share.Editor + ` href="#" class="tenanteditorPermission" onclick="Unibase.Apps.Collaboration.Components.UniCloud.Instance().changeFilePermissionOption('` + Unibase.Apps.Collaboration.Enums.Share.Editor + `',0,event)"><i class="dropdown-icon las la-check"></i><span>Editor</span></a>
  581. </div>
  582. </div>
  583. </div>
  584. </div>
  585. </div>
  586. <select class="form-control custom-select ml-10 d-none" id="share_permissionlevel"><option value="` + Unibase.Apps.Collaboration.Enums.Share.Viewer + `">Viewer</option><option value="` + Unibase.Apps.Collaboration.Enums.Share.Editor + `" >Editor</option></select>
  587. </div>
  588. <div class="people-notification-area hidden" id="peopleNotificationArea"><div class="custom-share-checkbox" id="notifyCheckbox">
  589. <input type="checkbox" class="custom-control-input" id="notify_check" checked>
  590. <label class="notify-label" for="notify_check"><span>Notify people</span></label>
  591. </div>
  592. <textarea class="message-textarea" placeholder="Message" id="share_message"></textarea><div id="sharedFileDiv" class="hidden"><button id="div_share_filename" class="shared-file-btn"></button>
  593. </div></div>
  594. <div class="external-dropdown">
  595. <ul class="shared-people-list dropdown-menu-scrollbar" id="ul_shared_people_list" >
  596. </ul>
  597. </div>
  598. </div>
  599. <div class="card-footer">
  600. <a href="#" class="feedback-link">Send Feedback to Bizgaze</a>
  601. <div class="d-flex align-items-center">
  602. <span class="mr-3 d-none" id="permissionsSavePending"><i>Pending changes</i></span>
  603. <button class="btn btn-primary done-btn" id="doneBtn" onclick="Unibase.Apps.Collaboration.Components.UniCloud.Instance().saveShareUsers(` + pkid + `,` + shareid + `,` + 100010260000139 + `,'` + curfileType + `')">Done</button>
  604. </div>
  605. <div class="share-actions-btn-group hidden" id="shareActionsBtnGroup"><button class="btn btn-outline-danger cancel-btn mr-10" id="sharedActionsCancelBtn">Cancel</button><button class="btn btn-primary save-btn " id="sharedActionsSaveBtn" onclick="Unibase.Apps.Collaboration.Components.UniCloud.Instance().saveShareUsers(` + pkid + `,` + shareid + `,` + installAppID + `,'` + curfileType + `')">Send</button></div>
  606. </div>
  607. </div>
  608. </div>
  609. <div class="card mt-15" id="get-link-card">
  610. <div class="get-link-card-loader hidden">
  611. <div class="get-link-card-loaderBar"></div>
  612. </div>
  613. <div class="card-header pb-20" >
  614. <a role="button" href="javascript:;" data-expanded="false" class="collapse-btn pb-0" id="collapseGetLinkBtn">
  615. <div class="header-icon-wrapper">
  616. <button class="btn btn-icon btn-sm bg-secondary text-white">
  617. <span class="btn-icon-wrap"><i class="fa fa-link font-18 get_link_icon"></i></span>
  618. </button>
  619. <span class="header-title">Get link</span>
  620. </div>
  621. <div class="d-flex" >
  622. <div class="shared-users font-weight-500 w-90 d-flex flex-column" ><span id="collapsePermissionDesc">Restricted Only people added can open with this link</span> <span class="text-blue">Change</span></div>
  623. <input type="text" class="add-search-box bg-light p-0 rounded border-0 " id="hidden_txt_link" readOnly style='opacity:0;width:1px;'/>
  624. <button onclick="Unibase.Apps.Collaboration.Components.UniCloud.Instance().copyLinkText('#hidden_txt_link')" class="copy-link-btn w-15 ml-2 h-100 p-2 btn btn-white font-14 font-weight-500 text-blue" id="collapsecopybtn">Copy link</button>
  625. </div>
  626. </a>
  627. </div>
  628. <div id="collapse_getlink" class="collapse collapse-getlink">
  629. <div class="card-body pa-0">
  630. <div class="search-wrapper d-flex">
  631. <input type="text" class="add-search-box w-85 bg-light p-0 rounded border-0 px-2 text-truncate" id="txt_link" readOnly/>
  632. <button onclick="Unibase.Apps.Collaboration.Components.UniCloud.Instance().copyLinkText('#txt_link')" class="copy-link-btn w-15 ml-2 p-0 btn btn-white font-14 font-weight-500 text-blue" >Copy link</button>
  633. </div>
  634. <ul id="ul_link" class="pr-0 pl-15">
  635. <li class="col-sm-12 row border-0 pr-4 pl-0 m-0 align-items-center people-list-item" id="li_link_restrictions">
  636. <div class="user-role-wrapper col-sm-10 p-0">
  637. <div class="btn btn-icon btn-icon-circle ml-2 rounded-circle bg-light"><span class="btn-icon-wrap" id="filePermssionIcon"><i class="fa fa-users" ></i></span></div>
  638. <div class="btn-group dropdown flex-column align-items-start">
  639. <button type="button" class="btn btn-sm dropdown-toggle permissionsBtn pl-1" id="FilePermissionbutton" onclick="Unibase.Apps.Collaboration.Components.UniCloud.Instance().showHidePermissionDropdown(event)" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
  640. Restricted
  641. </button>
  642. <span class="font-14 pl-1 text-dark" id="FilePermissionDescription">Only people added can open with this link</span>
  643. <div class="dropdown-menu permissionsMenu">
  644. <a class="dropdown-item" id="permissionRestricted" value=1 href="#" onclick="Unibase.Apps.Collaboration.Components.UniCloud.Instance().changeFilePermissionOption('0','` + Unibase.Apps.Collaboration.Enums.Share.Ristrict + `')"><i class="dropdown-icon las la-check"></i><span>Restricted</span></a>
  645. <a class="dropdown-item" id="permissionOrganization" value=2 href="#" onclick="Unibase.Apps.Collaboration.Components.UniCloud.Instance().changeFilePermissionOption('0','` + Unibase.Apps.Collaboration.Enums.Share.TenantId + `')"><span> ` + identity.name + `</span></a>
  646. <a class="dropdown-item" id="permissionAnyoneWithLink" value=3 href="#" onclick="Unibase.Apps.Collaboration.Components.UniCloud.Instance().changeFilePermissionOption('0','` + Unibase.Apps.Collaboration.Enums.Share.AnyoneWithLink + `')"><span>Anyone with Link</span></a>
  647. </div>
  648. </div>
  649. </div>
  650. <div class="user-role-wrapper col-sm-2 pull-right d-none" id="getLinkUserPermissions">
  651. <div class="btn-group dropdown">
  652. <button type="button" class="btn btn-sm dropdown-toggle permissionsBtn" onclick="Unibase.Apps.Collaboration.Components.UniCloud.Instance().showHidePermissionDropdown(event)" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
  653. Viewer
  654. </button>
  655. <div class="dropdown-menu permissionsMenu">
  656. <a class="dropdown-item" href="#" class="tenantviewerPermission" href="#" onclick="Unibase.Apps.Collaboration.Components.UniCloud.Instance().changeFilePermissionOption('` + Unibase.Apps.Collaboration.Enums.Share.Viewer + `','0',event)"><i class="dropdown-icon las la-check"></i><span>Viewer</span></a>
  657. <a class="dropdown-item" href="#" class="tenanteditorPermission" href="#" onclick="Unibase.Apps.Collaboration.Components.UniCloud.Instance().changeFilePermissionOption('` + Unibase.Apps.Collaboration.Enums.Share.Editor + `','0',event)"><span>Editor</span></a>
  658. </div>
  659. </div>
  660. </div>
  661. </li>
  662. </li>
  663. </ul>
  664. </div>
  665. <div class="card-footer">
  666. <a href="#" class="feedback-link">Send Feedback to Bizgaze</a>
  667. <button class="btn btn-primary done-btn" id="getLinkDoneBtn">Done</button>
  668. </div>
  669. </div>
  670. </div>
  671. <div class="card d-none" id="shareSettingsCard">
  672. <div class="card-header">
  673. <a role="button" href="javascript:;" data-expanded="true" class="collapse-btn pa-0" id="collapseShareBtn">
  674. <div class="d-flex justify-content-between align-items-center">
  675. <div class="header-icon-wrapper">
  676. <button class="btn btn-icon" id="sharePeopleSettingsBtn">
  677. <span class="btn-icon-wrap cursor-pointer"></i><i class="las la-arrow-left font-25"></i></span>
  678. </button>
  679. <span class="header-title">Share with people settings</span>
  680. </div>
  681. </div>
  682. </a>
  683. </div>
  684. <div class="share-people-settings mx-30 mb-30 p-0" id="sharePeopleSettings">
  685. <div class="custom-share-checkbox p-0" id="shareSettingsContainer1">
  686. <input type="checkbox" class="sharePeopleSettingCheckbox" id="sharePeopleSetting1" name="sharePeopleSetting1"
  687. value="Editors can change permissions and share" checked>
  688. <label for="sharePeopleSetting1" class="mb-3"> Editors can change permissions and share</label>
  689. </div>
  690. <div class="custom-share-checkbox p-0" id="shareSettingsContainer2">
  691. <input type="checkbox" class="sharePeopleSettingCheckbox" id="sharePeopleSetting2" name="sharePeopleSetting2"
  692. value="Viewers and commenters can see the option to download, print, and copy" checked>
  693. <label for="sharePeopleSetting2"> Viewers and commenters can see the option to download, print, and copy</label>
  694. </div>
  695. </div>
  696. </div>
  697. </div>
  698. </div>
  699. </div>
  700. </div>
  701. <!-- Discard Modal -->
  702. <div class="modal fade" id="discardModal" tabindex="-1" role="dialog" aria-labelledby="discardModal" aria-hidden="true">
  703. <div class="modal-dialog modal-dialog-centered modal-sm" role="document">
  704. <div class="modal-content ">l
  705. <div class="modal-header border-0">
  706. <h6 class="modal-title" id="exampleModalLongTitle">Discard unsaved changes?</h6>
  707. </div>
  708. <div class="modal-footer border-0">
  709. <button type="button" class="btn btn-secondary" data-dismiss="modal">Cancel</button>
  710. <button type="button" class="btn btn-primary" id="DiscardModalBtn">Discard</button>
  711. </div>
  712. </div>
  713. </div>
  714. </div>`;
  715. $("#_bizgaze_modal").append(sharehtml);
  716. $('.modal-backdrop.show').addClass('d-none');
  717. $('#bizShareModal').modal({
  718. backdrop: 'static',
  719. keyboard: false
  720. });
  721. $('.modal-backdrop').css('z-index', '1050');
  722. $("#bizShareModal").on("shown.bs.modal", function () {
  723. Unibase.Apps.Collaboration.Components.UniCloud.instance.loadUsers();
  724. Unibase.Apps.Collaboration.FileManager.Instance().getFileUrl(pkid, curfileType).then(function (response) {
  725. let fileUrl = _appsettings.server_url() + response.result;
  726. $('#txt_link,#hidden_txt_link').attr('value', fileUrl);
  727. });
  728. });
  729. $('#user_select2').find('option').remove();
  730. Unibase.Apps.Collaboration.Components.UniCloud.instance.loadUsers();
  731. Unibase.Apps.Collaboration.Components.UniCloud.instance.getShareusers(pkid, curfileType);
  732. debugger;
  733. $('#user_select2').change(function () {
  734. debugger;
  735. var selectedLength = $(this).find('option:selected').length;
  736. if (selectedLength > 0) {
  737. if (!$('#notify_check').is(':checked')) {
  738. $('#notify_check').trigger('click');
  739. }
  740. $('#div_users').addClass('pr-0');
  741. $('#headereditorbtn').removeClass('hidden');
  742. $('#peopleNotificationArea,#sharedFileDiv,#shareActionsBtnGroup').removeClass('hidden');
  743. $('#ul_shared_people_list,#doneBtn,#get-link-card').addClass('hidden');
  744. $('#sharePeopleHeaderBtn').addClass('notifyBackBtn');
  745. $('#sharedActionsCancelBtn').addClass('notifyBackBtn');
  746. $('#sharePeopleHeaderBtn').find('.la-user-plus').addClass('d-none');
  747. $('#sharePeopleHeaderBtn').find('.la-arrow-left').removeClass('d-none');
  748. }
  749. else {
  750. $('#div_users').removeClass('pr-0');
  751. $('#headereditorbtn').addClass('hidden');
  752. $('#peopleNotificationArea,#sharedFileDiv,#shareActionsBtnGroup').addClass('hidden');
  753. $('#ul_shared_people_list,#doneBtn,#get-link-card').removeClass('hidden');
  754. $('#sharePeopleHeaderBtn').removeClass('notifyBackBtn');
  755. $('#sharePeopleHeaderBtn').find('.la-arrow-left').addClass('d-none');
  756. $('#sharePeopleHeaderBtn').find('.la-user-plus').removeClass('d-none');
  757. }
  758. });
  759. $('#notify_check').change(function () {
  760. debugger;
  761. if ($(this).is(':checked')) {
  762. $('#share_message').removeClass('d-none');
  763. $('#notifyCheckbox').removeClass('unchecked');
  764. }
  765. else {
  766. $('#share_message').addClass('d-none');
  767. $('#notifyCheckbox').addClass('unchecked');
  768. }
  769. });
  770. $('#sharePeopleHeaderBtn,#sharedActionsCancelBtn').click(function () {
  771. debugger;
  772. if ($(this).hasClass('notifyBackBtn')) {
  773. $('#peopleNotificationArea,#sharedFileDiv,#shareActionsBtnGroup').addClass('hidden');
  774. $('#ul_shared_people_list,#doneBtn,#get-link-card').removeClass('hidden');
  775. $("#user_select2").empty().trigger('change');
  776. $(this).removeClass('notifyBackBtn');
  777. $(this).find('.la-arrow-left').addClass('d-none');
  778. $(this).find('.la-user-plus').removeClass('d-none');
  779. }
  780. });
  781. $('#collapseGetLinkBtn,#collapseShareBtn').click(function () {
  782. debugger;
  783. if ($(this).attr('data-expanded') == 'false') {
  784. if ($(this).attr('id') == 'collapseShareBtn') {
  785. $('#collapse_getlink').collapse('hide');
  786. $('#collapese_share').collapse('show');
  787. $('#collapseGetLinkBtn').attr('data-expanded', 'false');
  788. $(this).attr('data-expanded', 'true');
  789. $('#collapsecopybtn').parent().removeClass('d-none');
  790. $('#collapsecopybtn').parent().addClass('d-flex');
  791. }
  792. else {
  793. $('#collapese_share').collapse('hide');
  794. $('#collapse_getlink').collapse('show');
  795. $('#collapseShareBtn').attr('data-expanded', 'false');
  796. $(this).attr('data-expanded', 'true');
  797. $('#collapsecopybtn').parent().removeClass('d-flex');
  798. $('#collapsecopybtn').parent().addClass('d-none');
  799. }
  800. }
  801. });
  802. $('#doneBtn,#sharedActionsSaveBtn,#getLinkDoneBtn').click(function () {
  803. $('#bizShareModal').modal('hide');
  804. });
  805. $('#DiscardModalBtn').click(function () {
  806. $('#bizShareModal').modal('hide');
  807. $('#discardModal').modal('hide');
  808. });
  809. $('#bizShareModal').click(function () {
  810. var selectedLength = $('#user_select2').find('option:selected').length;
  811. let isPermissionChanged = $('#permissionsSavePending').is(':visible');
  812. let sharedUsersLength = parseInt($('#ul_shared_people_list').attr('data-sharedUsersLength'));
  813. let sharedUsersChangedLength = $('#ul_shared_people_list li').length;
  814. if (selectedLength > 0 || isPermissionChanged || sharedUsersLength != sharedUsersChangedLength - 1) {
  815. $("#bizShareModal").css("z-index", "1050");
  816. $("#discardModal").modal("show");
  817. }
  818. else {
  819. $("#bizShareModal").modal("hide");
  820. }
  821. });
  822. $("#bizShareModalDialog").click(function (event) {
  823. event.stopPropagation();
  824. $('#bizShareModalDialog').find('.dropdown-menu').removeClass('show');
  825. });
  826. $("#bizShareModal").on("hidden.bs.modal", function () {
  827. $("#_bizgaze_modal").html('');
  828. });
  829. $("#discardModal").on("hidden.bs.modal", function () {
  830. $("#bizShareModal").css("z-index", "");
  831. });
  832. $("#shareSettings").click(function () {
  833. $('#shareSettingsCard').removeClass('d-none');
  834. $('#get-link-card,#shareWithPeopleCard').addClass('d-none');
  835. });
  836. $("#sharePeopleSettingsBtn").click(function () {
  837. $('#shareSettingsCard').addClass('d-none');
  838. $('#get-link-card,#shareWithPeopleCard').removeClass('d-none');
  839. });
  840. $('.sharePeopleSettingCheckbox').change(function () {
  841. if ($(this).is(':checked')) {
  842. $(this).parent().removeClass('unchecked');
  843. }
  844. else {
  845. $(this).parent().addClass('unchecked');
  846. }
  847. });
  848. $("#ul_shared_people_list").on("resize scroll", function () {
  849. var activeDropdown = $('.dropdown-menu.show');
  850. if (activeDropdown.length > 0) {
  851. var pos = parseInt(activeDropdown.attr('data-topPos')) - $(this).scrollTop();
  852. activeDropdown.css("top", pos);
  853. let liElem = activeDropdown.parents('.people-list-item');
  854. let isInViewport = instance.isInViewport(liElem);
  855. if (!isInViewport) {
  856. activeDropdown.removeClass('show');
  857. }
  858. }
  859. });
  860. $("#get-link-card").click(function () {
  861. if (!$('#shareWithPeopleCard').find('.card-header').hasClass('activestate')) {
  862. $('#shareWithPeopleCard').find('.btn-icon').removeClass('btn-primary');
  863. $('#shareWithPeopleCard').find('.btn-icon').addClass('bg-secondary text-white');
  864. }
  865. });
  866. $('#collapsecopybtn').click(function (event) {
  867. event.stopPropagation();
  868. });
  869. });
  870. }
  871. isInViewport(elem) {
  872. var elementTop = elem.offset().top;
  873. var elementBottom = elementTop + elem.outerHeight();
  874. var viewportTop = $('#ul_shared_people_list').scrollTop();
  875. var viewportBottom = viewportTop + $('#ul_shared_people_list').height();
  876. return elementBottom > viewportTop && elementTop < viewportBottom;
  877. }
  878. ;
  879. showHidePermissionDropdown(event) {
  880. debugger;
  881. event.stopPropagation();
  882. let clickedBtn = $(event.currentTarget);
  883. if (!clickedBtn.siblings('.dropdown-menu').hasClass('show')) {
  884. $('#bizShareModalDialog').find('.dropdown-menu').removeClass('show');
  885. clickedBtn.siblings('.dropdown-menu').addClass('show');
  886. }
  887. else {
  888. clickedBtn.siblings('.dropdown-menu').removeClass('show');
  889. }
  890. var buttonPos = event.currentTarget.offsetTop - $("#ul_shared_people_list").scrollTop();
  891. clickedBtn.siblings(".dropdown-menu").css("top", buttonPos);
  892. clickedBtn.siblings(".dropdown-menu").attr("data-topPos", event.currentTarget.offsetTop);
  893. }
  894. copyLinkText(element) {
  895. debugger;
  896. if (element == '#hidden_txt_link') {
  897. $('#hidden_txt_link').select();
  898. }
  899. else {
  900. $('#txt_link').select();
  901. }
  902. document.execCommand("copy");
  903. MessageHelper.Instance().showSuccess("Link Copied", "Unibase_ValidationSummary");
  904. }
  905. changeFilePermissionOption(permission, restricted, evt) {
  906. debugger;
  907. if (permission == '0' && restricted != Unibase.Apps.Collaboration.Enums.Share.Ristrict) {
  908. let permissionbtnValue = $('#getLinkUserPermissions button').text().trim();
  909. permissionbtnValue == 'Viewer' ? permission = Unibase.Apps.Collaboration.Enums.Share.Viewer : permission = Unibase.Apps.Collaboration.Enums.Share.Editor;
  910. }
  911. if (restricted == '0') {
  912. let restrictionbtnValue = $('#FilePermissionbutton').text().trim();
  913. if (restrictionbtnValue == 'Restricted') {
  914. restricted = Unibase.Apps.Collaboration.Enums.Share.Ristrict;
  915. }
  916. else if (restrictionbtnValue == 'Anyone with the link') {
  917. restricted = Unibase.Apps.Collaboration.Enums.Share.AnyoneWithLink;
  918. }
  919. else {
  920. restricted = Unibase.Apps.Collaboration.Enums.Share.TenantId;
  921. }
  922. }
  923. var userinfo = Unibase.Platform.Membership.Infos.Identity.getCurrentUser();
  924. if (restricted == Unibase.Apps.Collaboration.Enums.Share.Ristrict) {
  925. $("#permissionOrganization,#permissionAnyoneWithLink").find(".dropdown-icon").removeClass("las la-check");
  926. $("#permissionRestricted").append(`<i class="dropdown-icon las la-check"></i>`);
  927. $("#FilePermissionbutton").text("Restricted");
  928. $("#FilePermissionDescription").text("Only people added can open with this link");
  929. $('#getLinkUserPermissions').addClass('d-none');
  930. $("#collapsePermissionDesc").text("Restricted Only people added can open with this link");
  931. $("#filePermssionIcon").empty();
  932. $("#filePermssionIcon").append('<i class="fa fa-users"></i>');
  933. }
  934. else if (restricted == Unibase.Apps.Collaboration.Enums.Share.TenantId) {
  935. $("#permissionRestricted,#permissionAnyoneWithLink").find(".dropdown-icon").removeClass("las la-check");
  936. $("#permissionOrganization").append(`<i class="dropdown-icon las la-check"></i>`);
  937. $("#FilePermissionbutton").text("1");
  938. $("#FilePermissionDescription").text("Anyone in this group with this link can view");
  939. $('#getLinkUserPermissions').removeClass('d-none');
  940. $("#collapsePermissionDesc").text(userinfo.name + " Anyone in this group with this link can view");
  941. $("#filePermssionIcon").empty();
  942. $("#filePermssionIcon").append('<i class="fa fa-building"></i>');
  943. }
  944. else if (restricted == Unibase.Apps.Collaboration.Enums.Share.AnyoneWithLink) {
  945. $("#permissionRestricted,#permissionOrganization").find(".dropdown-icon").removeClass("las la-check");
  946. $("#permissionAnyoneWithLink").append(`<i class="dropdown-icon las la-check"></i>`);
  947. $("#FilePermissionbutton").text("Anyone with the link");
  948. $("#FilePermissionDescription").text("Anyone on the Internet with this link can view");
  949. $('#getLinkUserPermissions').removeClass('d-none');
  950. $("#collapsePermissionDesc").text("Anyone on the Internet with this link can view");
  951. $("#filePermssionIcon").empty();
  952. $("#filePermssionIcon").append('<i class="fa fa-globe font-28"></i>');
  953. }
  954. if (permission == Unibase.Apps.Collaboration.Enums.Share.Viewer) {
  955. if (evt != undefined) {
  956. $(evt.currentTarget).parents('.permissionsMenu.show').find(".dropdown-icon").removeClass("las la-check");
  957. $(evt.currentTarget).append(`<i class="dropdown-icon las la-check"></i>`);
  958. $(evt.currentTarget).parents('.permissionsMenu').siblings('.permissionsBtn').text("Viewer");
  959. }
  960. else {
  961. $("#getLinkUserPermissions .permissionsMenu.show").find(".dropdown-icon").removeClass("las la-check");
  962. $("#getLinkUserPermissions .tenanteditorPermission").append(`<i class="dropdown-icon las la-check"></i>`);
  963. $("#getLinkUserPermissions .permissionsBtn").text("Viewer");
  964. }
  965. $('#headereditorbtn').attr('data-permissionLevel', `${Unibase.Apps.Collaboration.Enums.Share.Viewer}`);
  966. }
  967. if (permission == Unibase.Apps.Collaboration.Enums.Share.Editor) {
  968. if (evt != undefined) {
  969. $(evt.currentTarget).parents('.permissionsMenu.show').find(".dropdown-icon").removeClass("las la-check");
  970. $(evt.currentTarget).append(`<i class="dropdown-icon las la-check"></i>`);
  971. $(evt.currentTarget).parents('.permissionsMenu').siblings('.permissionsBtn').text("Editor");
  972. }
  973. else {
  974. $("#getLinkUserPermissions .permissionsMenu.show").find(".dropdown-icon").removeClass("las la-check");
  975. $("#getLinkUserPermissions #tenanteditorPermission").append(`<i class="dropdown-icon las la-check"></i>`);
  976. $("#getLinkUserPermissions .permissionsBtn").text("Editor");
  977. }
  978. $('#headereditorbtn').attr('data-permissionLevel', `${Unibase.Apps.Collaboration.Enums.Share.Editor}`);
  979. }
  980. if (permission == Unibase.Apps.Collaboration.Enums.Share.Commentor) {
  981. if (evt != undefined) {
  982. $(evt.currentTarget).parents('.permissionsMenu.show').find(".dropdown-icon").removeClass("las la-check");
  983. $(evt.currentTarget).append(`<i class="dropdown-icon las la-check"></i>`);
  984. $(evt.currentTarget).parents('.permissionsMenu').siblings('.permissionsBtn').text("Commentor");
  985. }
  986. else {
  987. $("#getLinkUserPermissions .permissionsMenu.show").find(".dropdown-icon").removeClass("las la-check");
  988. $("#tenantcommentorPermission").append(`<i class="dropdown-icon las la-check"></i>`);
  989. $("#getLinkUserPermissions .permissionsBtn").text("Commentor");
  990. }
  991. $('#headereditorbtn').attr('data-permissionLevel', `${Unibase.Apps.Collaboration.Enums.Share.Commentor}`);
  992. }
  993. var data = {
  994. FileId: this.fileId,
  995. PermissionLevel: parseInt(permission),
  996. Restriction: parseInt(restricted),
  997. };
  998. $('.get-link-card-loader').removeClass('hidden');
  999. Unibase.Apps.Collaboration.FileManager.Instance().updateLink(data).then((response) => {
  1000. console.log(response.result);
  1001. $('.get-link-card-loader').addClass('hidden');
  1002. });
  1003. }
  1004. getShareusers(pkid, type) {
  1005. debugger;
  1006. let sharedusers = "Shared with ";
  1007. if (type == "file") {
  1008. Unibase.Platform.Helpers.FileCacheHelper.Instance().loadJsFile("apps/collaboration/managers/filemanager.js", function () {
  1009. Unibase.Apps.Collaboration.FileManager.Instance().getUsers(pkid).then((response) => {
  1010. debugger;
  1011. $("#ul_shared_people_list").empty();
  1012. $("#ul_shared_people_list").html(`<li class="hidden" id="li_hdn_shareuserlist"></li>`);
  1013. var sharelist = response.result;
  1014. if (sharelist.length <= 1) {
  1015. sharedusers = 'No one has been added yet';
  1016. }
  1017. $('#ul_shared_people_list').attr('data-sharedUsersLength', sharelist.length);
  1018. for (var i = 0; i < sharelist.length; i++) {
  1019. if (sharelist[i].UserName == null) {
  1020. sharelist[i].UserName = "Unknown";
  1021. }
  1022. var character = sharelist[i].UserName.trim().charAt(0);
  1023. var data = sharelist[i].UserName.toLowerCase();
  1024. if (sharelist.length > 1) {
  1025. sharedusers += data + ',';
  1026. }
  1027. var emailId;
  1028. if (sharelist[i].UserEmail != null) {
  1029. emailId = sharelist[i].UserEmail;
  1030. }
  1031. else {
  1032. emailId = "";
  1033. }
  1034. var sharelisthtml = `<li class="people-list-item" id="people-list-item_` + sharelist[i].ShareUserId + `">
  1035. <div class="user-detail-wrapper d-flex align-items-center">
  1036. <div class="avatar avatar-sm mr-10">
  1037. <span class="avatar-text avatar-text-inv-danger rounded-circle">
  1038. <span class="initial-wrap"><span>` + character + `</span></span>
  1039. </span>
  1040. </div>
  1041. <div class="user-name-email-wrapper">
  1042. <input type="hidden" id="hdn_shareuserid" value="` + sharelist[i].ShareUserId + `">
  1043. <input type="hidden" id="hdn_userid" value="` + sharelist[i].UserId + `">
  1044. <p class="user-name" id="user-name_` + sharelist[i].ShareUserId + `">
  1045. ` + sharelist[i].UserName + `
  1046. </p>
  1047. <p class="user-email">
  1048. ` + emailId + `
  1049. </p>
  1050. </div>
  1051. </div>
  1052. <div class="user-role-wrapper">
  1053. <div class="btn-group dropdown">
  1054. <button type="button" class="btn btn-sm dropdown-toggle permissionsBtn" id="btn_permissionlevel_` + sharelist[i].ShareUserId + `" onclick="Unibase.Apps.Collaboration.Components.UniCloud.Instance().showHidePermissionDropdown(event)" data-toggle="dropdown" data-value='2' data-permissionLevel=${sharelist[i].PermissionLevel} aria-haspopup="true" aria-expanded="false">
  1055. ` + Unibase.Apps.Collaboration.Enums.Share[sharelist[i].PermissionLevel] + `
  1056. </button>
  1057. <div class="dropdown-menu permissionMenu">
  1058. <a class="dropdown-item" href="#" value=1 onclick="Unibase.Apps.Collaboration.Components.UniCloud.Instance().changeUserPermissionbutton(` + sharelist[i].ShareUserId + `,` + 1 + `)"><span id="permissionlevel_1_` + sharelist[i].ShareUserId + `">Viewer</span></a>
  1059. <a class="dropdown-item" href="#" value=2 onclick="Unibase.Apps.Collaboration.Components.UniCloud.Instance().changeUserPermissionbutton(` + sharelist[i].ShareUserId + `,` + 2 + `)"><span id="permissionlevel_2_` + sharelist[i].ShareUserId + `">Editor</span></a>
  1060. <div class="dropdown-divider"></div>
  1061. <a class="dropdown-item" href="#" id="remove_user" onclick="Unibase.Apps.Collaboration.Components.UniCloud.Instance().removeshareuser(` + sharelist[i].ShareUserId + `,` + pkid + `,'` + type + `')" >Remove</a>
  1062. </div>
  1063. </div>
  1064. </div>
  1065. </li>`;
  1066. if (sharelist[i].IsOwner) {
  1067. let ownerhtml = `<li class="people-list-item">
  1068. <div class="user-detail-wrapper">
  1069. <div class="avatar avatar-sm mr-10">
  1070. <span class="avatar-text avatar-text-inv-danger rounded-circle">
  1071. <span class="initial-wrap"><span>` + character + `</span></span>
  1072. </span>
  1073. </div>
  1074. <div class="user-name-email-wrapper">
  1075. <p class="user-name">
  1076. ` + sharelist[i].UserName + `
  1077. </p>
  1078. <p class="user-email">
  1079. ` + sharelist[i].UserEmail + `
  1080. </p>
  1081. </div>
  1082. </div>
  1083. <div class="user-owner"><span class="text-secondary font-italic font-weight-500">Owner</span></div>
  1084. </li>`;
  1085. $("#ul_shared_people_list").prepend(ownerhtml);
  1086. }
  1087. else {
  1088. $("#ul_shared_people_list").append(sharelisthtml);
  1089. }
  1090. $("#user_select2").val();
  1091. if (sharelist[i].PermissionLevel == 1) {
  1092. $("#permissionlevel_1_" + sharelist[i].ShareUserId).append(`<i class="dropdown-icon las la-check"></i>`);
  1093. $("#btn_permissionlevel_" + sharelist[i].ShareUserId).text("Viewer");
  1094. }
  1095. if (sharelist[i].PermissionLevel == 2) {
  1096. $("#permissionlevel_2_" + sharelist[i].ShareUserId).append(`<i class="dropdown-icon las la-check"></i>`);
  1097. $("#btn_permissionlevel_" + sharelist[i].ShareUserId).text("Editor");
  1098. }
  1099. }
  1100. $("#sharedusers").text(sharedusers);
  1101. debugger;
  1102. if (type == 'file') {
  1103. Unibase.Apps.Collaboration.FileManager.Instance().getFile(pkid).then((response) => {
  1104. var filename = response.result.FileTitle;
  1105. var fileicon = response.result.FileIcon;
  1106. var filehtml = `<img src="` + fileicon + `" class="file-icon"><small id="div_share_filename" class="font-14 font-weight-600 file-text">` + filename + `</small>`;
  1107. $("#div_share_filename").append(filehtml);
  1108. });
  1109. }
  1110. });
  1111. });
  1112. }
  1113. }
  1114. loadUsers() {
  1115. debugger;
  1116. var userinfo = Unibase.Platform.Membership.Infos.Identity.getCurrentUser();
  1117. var url = _appsettings.server_url() + '/apis/v4/bizgaze/crm/contacts/getallemployeesauto/';
  1118. $("#user_select2").select2({
  1119. placeholder: "Add people and groups",
  1120. tags: true,
  1121. ajax: {
  1122. url: function (request) {
  1123. var reqUrl = url;
  1124. var term = request.term;
  1125. if (term == undefined || term == "")
  1126. reqUrl = reqUrl + "term/" + term + "/authtoken/" + userinfo.sessionId;
  1127. else
  1128. reqUrl = reqUrl + "term/" + term + "/authtoken/" + userinfo.sessionId;
  1129. return reqUrl;
  1130. },
  1131. dataType: 'json',
  1132. delay: 250,
  1133. data: function (params) {
  1134. var query = {
  1135. term: params.term,
  1136. type: 'GET'
  1137. };
  1138. return query;
  1139. },
  1140. beforeSend: function (xhr) {
  1141. if (userinfo !== undefined && userinfo !== null) {
  1142. xhr.setRequestHeader("Authorization", "Basic " + userinfo.sessionId);
  1143. xhr.setRequestHeader('geoposition', userinfo.latd + ':' + userinfo.lgId);
  1144. }
  1145. },
  1146. processResults: function (data, params) {
  1147. debugger;
  1148. return {
  1149. results: jQuery.map(JSON.parse(data.result), function (item) {
  1150. return {
  1151. id: item.Value,
  1152. text: item.SelectText
  1153. };
  1154. })
  1155. };
  1156. }
  1157. },
  1158. templateResult: function (item) { return item.text; },
  1159. templateSelection: function (item) { return item.text; },
  1160. });
  1161. }
  1162. saveShareUsers(pkid, shareid, installedappid, filetype) {
  1163. debugger;
  1164. var fileid = 0;
  1165. var folderid = 0;
  1166. if (filetype == 'file') {
  1167. fileid = pkid;
  1168. }
  1169. if (filetype == 'folder') {
  1170. folderid = pkid;
  1171. }
  1172. let userlist = [];
  1173. let shareuserslist = [];
  1174. var users = $("#user_select2").val();
  1175. var notify = $("#notify_check").is(":checked");
  1176. var message = $("#share_message").val().toString();
  1177. let permission = Number($("#headereditorbtn").attr('data-permissionlevel'));
  1178. console.log($(this));
  1179. let v = $(this);
  1180. if (users.toString().indexOf(',') > -1) {
  1181. userlist = users.toString().split(',');
  1182. }
  1183. else {
  1184. var shareuser = {
  1185. shareuserid: 0,
  1186. shareid: shareid,
  1187. userid: 0,
  1188. emailaddress: $("#user_select2").text(),
  1189. permissionlevel: permission,
  1190. installedappid: installedappid
  1191. };
  1192. shareuserslist[0] = shareuser;
  1193. }
  1194. if (userlist != null) {
  1195. for (let i = 0; i < userlist.length; i++) {
  1196. var userid = 0;
  1197. var emailaddress = "";
  1198. if (users[i].indexOf('@') > -1) {
  1199. emailaddress = userlist[i];
  1200. }
  1201. else {
  1202. userid = userlist[i];
  1203. }
  1204. var shareuser = {
  1205. shareuserid: 0,
  1206. shareid: shareid,
  1207. userid: Number(userid),
  1208. emailaddress: emailaddress,
  1209. permissionlevel: permission,
  1210. installedappid: installedappid
  1211. };
  1212. shareuserslist[i] = shareuser;
  1213. }
  1214. }
  1215. var share = {
  1216. shareid: shareid,
  1217. fileid: Number(fileid),
  1218. filetypeid: 0,
  1219. permission: permission,
  1220. folderid: folderid,
  1221. installedappid: installedappid,
  1222. message: message,
  1223. isnotify: notify,
  1224. shareusers: shareuserslist
  1225. };
  1226. Unibase.Platform.Helpers.FileCacheHelper.Instance().loadJsFile("apps/collaboration/managers/filemanager.js", function () {
  1227. Unibase.Apps.Collaboration.FileManager.Instance().share(share).then((response) => {
  1228. debugger;
  1229. if (response.result != null) {
  1230. MessageHelper.Instance().showSuccess("File Shared Successfully", "Unibase_ValidationSummary");
  1231. }
  1232. });
  1233. });
  1234. }
  1235. camelize(str) {
  1236. return str.replace(/\W+(.)/g, function (match, chr) {
  1237. return chr.toUpperCase();
  1238. });
  1239. }
  1240. changeUserPermissionbutton(shareuserid, permission) {
  1241. debugger;
  1242. var instance = this;
  1243. let permissionValue = parseInt($("#btn_permissionlevel_" + shareuserid).attr('data-permissionlevel'));
  1244. let existingBtnVal = Unibase.Apps.Collaboration.Enums.Share[permissionValue];
  1245. let selectedVal = Unibase.Apps.Collaboration.Enums.Share[permission];
  1246. let sharedUsersLength = parseInt($('#ul_shared_people_list').attr('data-sharedUsersLength'));
  1247. let sharedUsersChangedLength = $('#ul_shared_people_list li').length;
  1248. if (existingBtnVal != selectedVal || sharedUsersLength != sharedUsersChangedLength - 1) {
  1249. $('#permissionsSavePending').removeClass('d-none');
  1250. $("#btn_permissionlevel_" + shareuserid).addClass('permissionLevelChanged');
  1251. let changedUserPermissionsLength = instance.changedUserPermissions.length;
  1252. let shareuseridCount = 0;
  1253. if (changedUserPermissionsLength > 0) {
  1254. for (let i = 0; i < changedUserPermissionsLength; i++) {
  1255. if (instance.changedUserPermissions[i].shareuserid == shareuserid) {
  1256. shareuseridCount++;
  1257. }
  1258. }
  1259. }
  1260. if (!shareuseridCount) {
  1261. instance.changedUserPermissions.push({ shareuserid, permission });
  1262. console.log(instance.changedUserPermissions);
  1263. shareuseridCount = 0;
  1264. }
  1265. }
  1266. else {
  1267. $("#btn_permissionlevel_" + shareuserid).removeClass('permissionLevelChanged');
  1268. if ($('#ul_shared_people_list').find('.permissionLevelChanged').length <= 0) {
  1269. $('#permissionsSavePending').addClass('d-none');
  1270. }
  1271. let changedUserPermissionsLength = instance.changedUserPermissions.length;
  1272. if (changedUserPermissionsLength > 0) {
  1273. instance.changedUserPermissions = instance.changedUserPermissions.filter(function (obj) {
  1274. return !(obj.shareuserid == shareuserid && obj.permission != permission);
  1275. });
  1276. }
  1277. }
  1278. if (permission == 1) {
  1279. $("#permissionlevel_2_" + shareuserid).find(".dropdown-icon").removeClass("las la-check");
  1280. $("#permissionlevel_1_" + shareuserid).append(`<i class="dropdown-icon las la-check"></i>`);
  1281. $("#btn_permissionlevel_" + shareuserid).text("Viewer");
  1282. $('#headereditorbtn').attr('data-permissionLevel', `${Unibase.Apps.Collaboration.Enums.Share.Viewer}`);
  1283. }
  1284. if (permission == 2) {
  1285. $("#permissionlevel_1_" + shareuserid).find(".dropdown-icon").removeClass("las la-check");
  1286. $("#permissionlevel_2_" + shareuserid).append(`<i class="dropdown-icon las la-check"></i>`);
  1287. $("#btn_permissionlevel_" + shareuserid).text("Editor");
  1288. $('#headereditorbtn').attr('data-permissionLevel', `${Unibase.Apps.Collaboration.Enums.Share.Editor}`);
  1289. }
  1290. }
  1291. removeshareuser(shareuserid, pkid, type) {
  1292. Unibase.Platform.Helpers.FileCacheHelper.Instance().loadJsFile("apps/collaboration/managers/filemanager.js", function () {
  1293. Unibase.Apps.Collaboration.FileManager.Instance().removeshareuser(shareuserid).then((response) => {
  1294. Unibase.Apps.Collaboration.Components.UniCloud.Instance().getShareusers(pkid, type);
  1295. });
  1296. });
  1297. }
  1298. getUrl(pkid, type) {
  1299. debugger;
  1300. var Url = "";
  1301. Unibase.Platform.Helpers.FileCacheHelper.Instance().loadJsFile("apps/collaboration/managers/filemanager.js", function () {
  1302. Unibase.Apps.Collaboration.FileManager.Instance().getFileUrl(pkid, type).then(function (response) {
  1303. Url = _appsettings.server_url() + response.result;
  1304. $("#txt_link").val(Url);
  1305. });
  1306. });
  1307. return Url;
  1308. }
  1309. loadFileUrl(fileid) {
  1310. var fileurl = "";
  1311. Unibase.Platform.Helpers.FileCacheHelper.Instance().loadJsFile("apps/collaboration/managers/filemanager.js", function () {
  1312. Unibase.Apps.Collaboration.FileManager.Instance().getFile(fileid).then((response) => {
  1313. fileurl = response.result.FileUrl;
  1314. $(".labelSection_FileUrl").text(fileurl);
  1315. });
  1316. });
  1317. return fileurl;
  1318. }
  1319. notificationFilePreview(fileid) {
  1320. var filetype = "";
  1321. Unibase.Platform.Helpers.FileCacheHelper.Instance().loadJsFile("apps/collaboration/managers/filemanager.js", function () {
  1322. Unibase.Apps.Collaboration.FileManager.Instance().getFile(fileid).then((response) => {
  1323. filetype = response.result.FileType;
  1324. if (filetype != null) {
  1325. Unibase.Platform.Helpers.FileCacheHelper.Instance().loadJsFile("apps/collaboration/components/documents.js", function () {
  1326. Unibase.Apps.Collaboration.Components.Documents.Instance().previewDocument(fileid, filetype, 0);
  1327. });
  1328. }
  1329. });
  1330. });
  1331. }
  1332. notificationFolderPreview(folderid, installedappid) {
  1333. Unibase.Platform.Helpers.NavigationHelper.Instance().loadDetail(folderid, installedappid, null);
  1334. }
  1335. static Instance() {
  1336. if (this.instance === undefined) {
  1337. this.instance = new UniCloud();
  1338. }
  1339. return this.instance;
  1340. }
  1341. }
  1342. Components.UniCloud = UniCloud;
  1343. })(Components = Collaboration.Components || (Collaboration.Components = {}));
  1344. })(Collaboration = Apps.Collaboration || (Apps.Collaboration = {}));
  1345. })(Apps = Unibase.Apps || (Unibase.Apps = {}));
  1346. })(Unibase || (Unibase = {}));