Built files from Bizgaze WebServer
Vous ne pouvez pas sélectionner plus de 25 sujets Les noms de sujets doivent commencer par une lettre ou un nombre, peuvent contenir des tirets ('-') et peuvent comporter jusqu'à 35 caractères.

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 = {}));